1. 思考日記
  2. 最近勉強してること、AIが中で..
2024-06-08 12:18

最近勉強してること、AIが中で何をしているのか~その4~

つよつよと言われているTransformerという機械学習の種類についてご紹介

00:01
前回は、アテンションというワードだけ出して終わっちゃったんですけど、注意という意味なので、その通りのニュアンスで使われているんですけれど、
例えば画像とかだと、物体が映っている画像を見るときに、アテンションというワードを使っているんですけれど、
例えば画像とかだと、物体が映っている画像とか、猫とか、その猫の画像の画素の中で重要な部分と重要じゃない部分、背景とかどうでもいいじゃないですか、
そういうのを、どこが重要な部分なのかというのを機械に学習させるというメカニズムのことなんですけれど、それがすごく重要らしくて、私はまだ勉強中なんですけれど、
トランスフォーマーの論文のタイトルが、アテンション is all you need というタイトルだったと思うんですけど、アテンションこそ全てという意味ですね。
前回言った、最適的ニューラルネットワークというのは、処理の並列化ができないというすごい大きな弱点があるんですね。
というのも、前回の入力を次の入力に適用するという目的というか仕組みですので、前回の出力が終わるまで次の計算ができない、始められないということなんです。
なので、ちょっとその最適的な機構は捨て去ろうということだらしいですね。
ご紹介はこの辺で、私が今勉強している内容は大体しゃべったかなという感じなんですけれど、ここからはちょっと個人的なチャレンジみたいな感じで、
プログラミング経験者に今まで勉強してきたことを説明できるかどうかという、自分自身が理解しているかどうかというテストするという意味で、
ガンガン専門用語を使って説明してみようかなと思いますので、プログラミングしちゃってないよという方は置いていきます。
03:13
すいません。置いていかせてもらえませんね。
それも私の理解がまだ自信がない部分というのをスポットして説明してみようかなと思います。
で、最適的ニューラルネットワークですね。
ちょっと最近捨て去られたとか聞いてあれって思ったんですけど、勉強した後だったんです、それも。
理解とニューラルネットワークですね。
というのは、言語モデルの話から前提から説明チャレンジしてみましょうかね。
言語、漢語の意味を数値で表すように学習済みのデータがあるとします。
誰でも使えるようにコーパスという何万文字とか何百万文字とかの文章データを読み込ませてですね、機械に。
それぞれの単語の意味をターゲットの単語の周りの単語を統計的に計算しですね、ベクトルで単語を表すと。
よく例えられるのは、クイーンとキングという単語のベクトルを想像します。
二次元ベクトルで想像しますね、今は。
実際、百次元とかなんですけれども、クイーンとキングがXY平面上に点としてあると。
そこが線形台詞のベクトルみたいな感じで、そのベクトルがその単語の意味を表すということが実践できるんですね。
その単語を数値として表すということができるようになると、機械学習にも使えるということなんです。
06:02
単語の向きとか大きさが似ている単語っていうのは、近い意味の単語になるんです。
例えば、ウォークとランとかは同じような方向を向く。
キングとクイーンも同じような方向を向いてるんですけど、女性と男性の王ということで若干違う点にあるんですね。
キングとクイーンの位置関係っていうのは、マンとウーマンの位置関係と近いように自動的に学習させることができるというものです。
それらのデータを使って言語モデルを作成するという話です。
これは、ゼロから作るディープラーニングの2の内容なんですけれども、
最初の文字を与えると、2文字目以降自動的に作ってくれるみたいなものが最初に勉強しましたね。
例えば、アイとか与えると、アイはキャットとか出力してくるわけです。
1回目の出力がアイになるんですけれど、与えるのが入力がアイになるんですけれども、その出力がアムになるんですね。
アイになるとアムがよく来ますよね。もしくは動詞とかね。他の動詞とかね。
アムという出力を次の入力に与えるんですね。
そういう感じで前の入力を鑑みて出力をしていくと、そうすると自然な文章が出来上がると。
ただですね、このリカネートニューラルネットワークにも弱点がありまして、同じ重みとバイアスを使い回すんですね。
09:11
アムを出力する時も、アを出力する時も、キャットを出力する時も、同じ重みとバイアスを使います。
そうするとですね、重みが勾配爆発しちゃうんですよね。もしくは勾配消失しちゃうんですよね。
というのも同じ値を使いますので、指数関数的に増えたり減ったりするわけです。
なので、その弱点を補うためにですね、ロングショートカームモデルというのを使います。
というのも、2つ目の出力にですね、前回の入力だけじゃなくて、
いや違うな、1個飛ばしました。すみません。
リカネートニューラルネットワークの弱点をもう1個先に説明すべきことがあって、
要は文章が長くなればなるほど、ずっと今まで出力した文章を計算に含まないとダメで、
めちゃくちゃ処理が重くなるという弱点があってですね。
それで、ある一定の区切りで、その最適的な時系列データを打ち切る。
で、次、新しくやり直すみたいなことをするんですよ。
ターン携帯とリカネートニューラルネットワークだったから。
ターン携帯と切り捨てるという意味ですね。
で、その切り捨てた後は、次のブロック、新しく始めるブロックですね。
前回までの出力を一つのひとまとめにして与えるんですね。
完全に切られるわけじゃなくて、重要なエッセンスを次のブロックに与えて、処理を繋いでいくと。
そうすると、さっきの弱点が補えるということなんです。
でもそれにもまた弱点があって、ブロックからブロックに引き継ぐ情報に入る情報が限られちゃうという弱点があるんですね。
12:10
ちょっと時間が来たので、次回にします。
ありがとうございます。
12:18

コメント

スクロール