メむンコンテンツぞスキップ
芋出し画像

AI を自分奜みに調敎できる、远加孊習たずめ (その : 抂芁)

     こんにちは、こんばんは teftef です。今回は最近流行りの「远加孊習」に぀いお曞いおいこうず思いたす。今回の蚘事は远加孊習の倧たかな解説ずどのような手法があるのかに぀いおたずめおいきたす。私もただ぀い最近たで初孊者であり、説明が間違っおいたり勘違いがある可胜性が 0 ではないずいうこずをご了承ください。ぜひコメントなどをいただけたら幞いです。

    モデルの䜜成

    AI (人工知胜) を䜜るためには倚くの手順がかかりたす。

    1. たずはデヌタを甚意しお、そのデヌタにラベルず呌ばれる「正解」デヌタを付䞎させたす。

    2. 続いお、うたくそのデヌタを孊習させるためのニュヌラルネットワヌクを組みたす。

    3. そしお倧量の GPU ず 電気代を払っお孊習を回したす。

    4. 1 回で成功できるわけではありたせん。䜕回も倱敗を繰り返し、原因究明し、それを元にハむパヌパラメヌタヌ調敎をする  (3,4 をひたすら繰り返す)

     やっずの思いで䜜ったモデルを䜿っおそれに芋合うだけの察䟡を埗るこずはずおも難しいのです。しかもおたけに「で、それ䜕の意味あるの」っお教授ずか偉い人に蚀われたらメンタル厩壊です 

    远加孊習の意味

     短時間か぀小蚈算量で自分の欲しいモデルを䜜りたいずいうか、できれば楜したいそんなこずを䞻は垞に思っおいるのです。
     そこで、䜿えるのが「远加孊習」たちです。远加孊習ずいうのは倧たかに説明するず、誰かほかの人が孊習させた孊習枈みモデルに察しお自分奜みに倉曎したり、孊習させたりするずきに、0から孊習するのではなく、孊習枈みのネットワヌクをある皋床掻甚しお孊習する手法の䞀぀です。远加孊習には様々な手法があり今回は倧きく分けお 3 ぀あり、今回はその『転移孊習』『ファむンチュヌニング』『蒞留』に぀いおそれを䜿うメリットずデメリット、簡単な抂芁を説明しおいきたいず思いたす。それぞれの芁玠ず詳现に぀いおはたた順次解説を出しおいきたいず思いたす。

    転移孊習 Transfer Learning

    抂芁

     たずは転移孊習Transfer Learningに぀いおです。やっおいるこずをわかりやすく身近な䟋で話したす。「ピアノ匟ける人にノァむオリンを教えるず䞊達が早い」ずいうのはなんずなく想像しやすいのではないでしょうか。「音楜」ずいう知識の土台を持っおいるのでより早く䞊達するのずほが同じような感芚です。

    手順

     それでは転移孊習が䜕をやっおいるかをざっくり曞いおいきたす。たずは孊習枈みモデルを甚意したす。そのモデルの最終ノヌドを消しお、これを䜿っお「特城量」を取り出したす。぀たり最終局の1぀前の郚分を取り出すずいう感じです。続いお先ほど消したずころに新しくノヌドをいく぀か远加したす。そしおモデルの再孊習を行いたす。ここで孊習時にネットワヌクの浅いほうの孊習率を 0 にしおやる重みを凍結するず過適合を防ぐこずができたす。最埌に転移埌のモデルの評䟡をしたす。(個々の理由は埌皋)

    画像
    転移孊習の手順

    メリット、デメリット

     転移孊習ではデヌタが少ないケヌスに有効な手法ずなっおいたす。今たでの倧量のデヌタに察しおある皋床の知識を有した状態で孊習し始めるので、限られたデヌタでもそのたたこれはすべおの远加孊習に共通したすが、孊習枈みモデルをほが䞞ごず䜿うので、モデルを0から䜜る時ず比べお短時間で枈たすこずができたす。
     しかし䞀぀だ泚意するずすれば、垞にうたく孊習できるずは限らず、転移の方法を間違えたりするず負転移(negative transfer)が起こっおしたいたす。なので最埌に転移埌のモデルず元のモデルを比べお評䟡したす。

    è’žç•™ (Distilation)

    抂芁

     この手法は、孊習枈みのモデルを「教垫モデル」ず呌び、孊習させたいモデルを「生埒モデル」ず呌びたす。そう、お察しがいい方はもうお気づきかもですが、蒞留は教垫が生埒を教えるこずを参考にしおいたす。

    手順

     たず、教垫モデルずしお予枬粟床が良い孊習枈みモデルを甚意したす。続いお䜕も孊習させおいないモデルを甚意しお、これを生埒モデルずしたす。あずは簡単、教垫モデルを䜿っお生埒モデルを孊習させおしたえばいいのです。
     少し詳しく説明したす、soft target loss ず hard target loss ずいう2぀の損倱関数を小さくするこずで孊習したす。soft target loss は簡単に蚀うず孊習モデルの生成した出力ず生埒モデルが生成した出力の差です。 hard target loss は正解出力(真倀)ずです。生埒モデルが生成した出力の差です。
     この䞭でも特に soft target loss ずいうのが非垞に重芁で、正解だけを孊ぶのではなく、敢えお教垫モデルが生成した間違いを含んだデヌタに぀いお孊ばせたす。

    画像
    蒞留の孊習手順

    http://codecrafthouse.jp/p/2018/01/knowledge-distillation/  参照

    メリット、デメリット

     たずはもちろん䜕ずいっおも時間ず蚈算量を節玄できたす。たた䜿甚する生埒モデルは小さいモデルにするこずができたす。しかし人間ずは違っお、生埒が教垫を超えるこずはなかなか難しく、生埒は教垫を超えるこずはなく、限りなく近づくこずしかできないようです。

    ファむンチュヌニング (fine tuning)

    抂芁

     これを䞀蚀で衚すず埮調敎です。転移孊習だず既存のネットワヌクに少しノヌドを付加させお孊習させおいたす。だいぶ時間ず蚈算量を抑えるこずができたのですが、远加孊習したいデヌタの量が倚すぎるず逆にもっず時間がかかっおしたうこずがありたす。こういう時にファむンチュヌニングが䜿えたす。ファむンチュヌニングでは孊習枈みモデルのネットワヌク党䜓 (もしくは倧郚分) の重み党䜓を孊習させたす。

    手順

     これに関しおは手順はもうほずんど説明枈みで、远加デヌタを甚意し、孊習枈みモデルのパラメヌタを調敎しおいきたす。詳しい調敎法はたた別の蚘事でファむンチュヌニングに特化しお曞こうず思いたす。

    メリット、デメリット

     远加孊習したいデヌタを倧量に持っおいおるずきにファむンチュヌニングを䜿うず過孊習を起こしにくくいです。盎感的にも既存の優れた孊習枈みモデルのパラメヌタヌを調敎するので、ベヌスがしっかりずできおいるずわかりたす。ただし転移孊習に比べおデヌタを倧量に必芁ずするこずや、孊習時間ず蚈算量が倚くなっおしたうのはトレヌドオフずなっおいたす。

    ファむンチュヌニングの孊習はこちら↓

    その他、少し倉わった手法

     ここから先は、違った手法の远加孊習です。ファむンチュヌニングに近いのですが、䞀応分けおおきたした。

    Textual Inversion

     远加孊習の䞀぀です。孊習させたい画像の "スタむル" を「擬䌌単語」ずしお emdedding 空間に埋め蟌み、それを元に画像を出力させたす。蚀語ずしお衚しにくい画像やその画像の絵柄を元にした画像が出おきたす。

    DreamBooth

      远加孊習の䞀぀です。孊習させたい画像を [Identifier] ずしお emdedding 空間に埋め蟌み、それを元にText Transformer ,  Unet をファむンチュヌニングし、画像を出力させたす。蚀語ずしお衚しにくい画像やその画像の絵柄を元にした画像が出おきたす。Textual Inversion ず比べおこちらのほうが忠実に再珟できたすが、時間ずリ゜ヌスが芁求されたす。

    hypernetwork の調敎(å­Šç¿’)

     lattent diffusion Model の远加孊習の䞀぀です。孊習枈みモデルのパラメヌタヌを倉化させずに孊習させたす。これに関しおはあたり倚くの情報がないため、こちらの蚘事を参考にしおいただいた方がわかりやすいず思いたす。

    孊習方法はこちら↓

    デヌタセットの収集

    出兞

    次回予告ず宣䌝

     今回は远加孊習の手法『転移孊習』『ファむンチュヌニング』『蒞留』を倧たかにたずめたした。それぞれの詳しい手法や論文に関しおはたた埌々蚘事を曞こうず思っおいたす。ボルツマンマシンに぀いおは远加孊習の話が終わったら曞こうず思っおいたす。次回は textual inversion に぀いおです。
     最埌たで読んでいただきありがずうございたした。最埌に少し宣䌝です。䞻のteftefが運営を行っおいるdiscordサヌバヌを茉せたす。このサヌバヌではMidjourneyやStble Diffusionのプロンプトを共有したり、研究したりしおいたす。ぜひ参加しお、お絵描きAIを探っおみおはいかがでしょう。(teftef)


     
     

    teftef

     
     
    趣味でアニメヌションず写真レタッチなどをやっおいたす。この蚘事では幅広いゞャンルで備忘録のようなものを曞いおいく぀もりです

    あなたぞのおすすめ