1. サイエンマニア
  2. 深層学習の基本と歴史!Attent..
2023-01-09 37:46

深層学習の基本と歴史!Attentionはすべてを解決する?【ディープラーニング 前編】 #102

ディープラーニングとは?どんな歴史を辿ってきたのか?機械学習と深層学習について基礎的なところから最近のディープラーニング事情までを分かりやすく語っていただきました。

【ゲスト】

機械学習エンジニア・ポッドキャスター

カイワレ さん(https://twitter.com/obake_kaiware)

ブックメン 本の紹介と感想共有を軽めに行う読書会風Podcast

まずはココロカラダ! ココロとカラダについてお話するポッドキャスト番組

【トピック】

・機械学習とは?

・ディープラーニングとは?

・ニューラルネットワークは学校?

・順伝播と逆伝播

・ディープラーニングの歴史

・CNN(Convolutional Neural Network)

・ResNet(Residual Network)

・ILSVRC (ImageNet Large Scale Visual Recognition Challenge)での衝撃

・深層学習のブレークスルー

・RNN(Recurrent Neural Network)

・Attention Is All You Need

https://arxiv.org/abs/1706.03762

・後編は最近のディープラーニングの例を体感しながら聴きました。お楽しみに。


【Twitter】

#サイエンマニア で感想お待ちしてます!番組情報も更新中。

【公式サイト】

番組へのおたよりやプロフィールはこちらから→ https://scientalkclub.wixsite.com/scienmania

おたよりはメールでも募集しています。  scientalkclub@gmail.com

毎週月曜日配信。ポッドキャストのフォローやレビューいただけると嬉しいです。

【サイエンマニアについて】

あらゆる分野のゲストを招き、サイエンスの話題を中心にディープでマニアな話を届けるポッドキャスト。

研究に夢中な大学院生や趣味を突き詰めている方まで、好きな事を好きなだけ語りたい人が集まる番組です。

第3回 Japan Podcast Awards 2021 推薦作品

【プロフィール】

研究者レン from サイエントーク

化学と生命科学が専門のおしゃべり好き研究者。サイエンスをエンタメっぽく発信するために様々な形で活動中。ポッドキャスト「サイエントーク」ではOLエマと共に番組を制作中。

Twitter: https://twitter.com/REN_SciEnTALK

Note: https://note.com/ren_scientalk/

【サイエントーク】

おしゃべりな研究者レンと普通のOLエマが科学をエンタメっぽく語るポッドキャスト番組です。

人類の科学の歩みと2人の人生を重ね合わせるシリーズ「科学史と人生史」を更新中。

https://scientalkclub.wixsite.com/scientalk

【BGM】

DOVA-SYNDROME

00:00
サイエンマニア
こんにちは、レンです。サイエンマニアは、あらゆる分野のゲストを招き、
サイエンスの話題を中心に、ディープでマニアの話を届けるポッドキャストです。
今回のゲストは、機械学習エンジニアでもあり、ポッドキャスターでもある、かいわれさんです。よろしくお願いします。
よろしくお願いします。
実は、かいわれさんと話すの、これ何回目ですかね?
3、4回目ぐらい。
いろいろかいわれさんの番組に僕が出演させていただいたりとか、
ポッドキャストウィークエンドで直接会ったりとか、
お会いしましたね。
お会いしましたね。
いろいろ関わりあったんですけど、今回初めて遊びに来ていただきました。
ということで、自己紹介の方お願いします。
かいわれと申します。
ポッドキャスト番組は主に2つやっていまして、
1つ目が小説を紹介して感想を共有する番組、ブックメン。
2つ目が心理学と職生活について学んだことを解説して、
心と体の健康に役立つことを共有する番組、まずはココロカラダ。
この2つをやっています。
他にもやってるんですけれども、
結構やられてますよね、いろんな番組。
ブックメンとココロカラダがメインの2つになってます。
ココロカラダの方は鬼卸さんとやられてて、
ポッドキャストウィークエンドでお2人にお会いしましたけど、
一緒に行きましたからね。
あの柔らかい番組そのまんまの2人だなと思ってみた。
ほんとですか。
一応経歴的なものもお話しますと、
数学科の修士を卒業した後に、数学の教員として3年間働きました。
その後転職して機械学習エンジニアになりまして、今5年目です。
先生やってたっていう話は以前聞いた気がしますけど、
どこかで。
僕エンジニアの方とがっつり仕事をしたこととかはないんですけど、
多分間接的には結構お世話になってて、会社とかで。
僕ら研究者が使ってるシステム作ってますみたいな、
社内用システム作ってますとかいう人結構いるんですよね。
その中の機械学習の専門みたいな。
具体的にやっていることは、
研究者とか企業の研究部門のお手伝いですね僕は。
お手伝い。
例えばこの論文合ってるかどうか確かめてくれみたいな感じのものだったり、
あとは論文に書かれてるプログラムをうちのデータを使って、
どんな感じの結果が出るか試してみてくれみたいな感じの。
だったりその結果を改善してくれとか、
そういう感じの研究者のお手伝いをするっていうのが今の僕の仕事ですね。
じゃあ結構いろんな会社とやり取りしてるというか。
はいそうなんです。
ってことですよね。
はいいろんなお客さんとやり取りします。
03:01
数学の先生からそっちに行ったのすごいなって思うんですけど。
結構たまたまですね。
たまたま?
教員はいろいろあってもういいかなってなって。
もういいかなっていうのは先生もういいかなというんですかね。
まあちょっと忙しかったんでね。
でまあなんか次の仕事どうしようかなって考えてたときに、
たまたまその大学の時の友達が今の会社で働いてて、
うち来てみるみたいな感じで入りました。
そういう感じだったんだ。
はいだから何にも知らない状態で入ったんですけれども。
そうなんですか。
一から勉強しましたね。
それすごいですね。
なんかよく前の仕事やりながら最近だったら多いじゃないですか。
エンジニアっぽいこと勉強をしてとかそういう学び用の会社とかもなんかいっぱいできてますけど。
はいはいはい。
そういうのからじゃなく。
もう一切ゼロから。
いきなり飛び込んだってことですね。
それめっちゃすごいな。
ほんとそうですよね。
まあなんで今日はちょっと機械学習主にディープラーニングのことについて、
ちょっと僕も全然素人なんで色々と聞いていきたいなと思います。
はいお願いします。
じゃあどこから聞きましょうかね。
一個だけ最初に言い訳をしたいんですけれども。
言い訳どうぞどうぞ。
さっきも言ったように僕研究者のお手伝いなんですよね。
だから研究者自身ではないので、
あんまりサイエンマニアで他に出てる方みたいな感じに、
ディープでマニアな話はちょっとできないかもしれないです。
最初の冒頭のやつ僕プレッシャーかけてることになってるかなって、
最近薄々気づき始めたんですけど。
たださっきも言ったように色んなお客さんと接して、
その度に新しい知識を取り入れていくので、
結構広く浅く知識があります。
まあでもそれも結構大事ですよね。
実際色んな分野の方と一緒にお仕事するんだったら。
なので今回も広く浅く機械学習関連について、
話していければなというふうに思っています。
僕はすごい助かります。
今日話すことは、まずは機械学習で何ができるか。
そしてディープラーニングとは何か。
そしてディープラーニングの歴史。
最後に今のディープラーニングはこんな感じですというふうに話していこうと思います。
めちゃめちゃしっかりタメになりそう。
ありがてえ。
超準備した。
ありがたいですね。
はい、じゃあ行きましょうか。
まずは機械学習とは何か、何ができるのかについてですね。
レイさんAIって何か説明できますでしょうか。
人工知能。
その通り。
人工的に作った知能ですね。
ここで問題となるのは、この知能って何なのっていうことなんですけれども、
06:04
知能を定義するのはかなり難しいんですが、
知能の一つの側面として、
特定のタスクを学習して実行できるようになることというのはありますよね。
勉強して何かアウトプットできるようになるとか。
そうです。
それが知能ですね。
それが知能の一側面なんですけれども、
機械学習というのはコンピューターが特定のタスクを学習して実行できるようになる手法のことを言います。
ディープラーニングというのは機械学習の一種で、
ニューラルネットワークというものを用いた機械学習をディープラーニングと言います。
きましたね、ニューラルネットワーク。
はい、きましたきました。
こちら後でちゃんと説明するんですけれども。
最近ちょっと聞き慣れてますけど。
本当ですか。
何も知らない人から聞いたらいきなり神経みたいな単語出てきてるみたいな。
本当に知らない人が聞いたら思います。
そうですよね。
脳のことかなってなりますよね。
ディープラーニングだから何か深い学習なんだろうなみたいな。
深い学習なんですよ。
さっき言った特定のタスクってどういうものがあるかっていうのを例を挙げたいんですけれども。
よくやられるものがあって、まず一つ目は分類。
例えば猫と犬の画像を見分けるとかそういう感じのことですね。
ありますね。
で、次に検出。
これ製品の異常を検出したり。
他に身近な例だと写真に写ってる顔を検出するとかそういうのがありますね。
iPhoneの顔認証とかも検出ですよね。
あれもきっとディープラーニング入ってると思います。
で、次に予測。
例えば株価を予測するとかそういうことですね。
なるほど。それも過去のデータをもとに予測するっていう。
で、最後に生成。
生成。
例えば文章に沿った画像を生成するとか何かしらを生成するやつですね。
今流行りのやつですね。
そうなんですよ。今流行りのやつ。これも最後ら辺に紹介しますけれども。
Twitterで最近もうAIが描いた絵死ぬほど出てくるんで。
そうですね。それもディープラーニングの一種のモデルですね。
めっちゃ身近ですね。だから。
こんな感じのことをコンピューターを使ってやっていこうっていうのが機械学習なんですね。
で、ニューラルネットワークとは何かというのを説明していきます。
で、ニューラルネットワークというのは人間の脳の構造を真似したモデルのことです。
だから意外と名が体を表しているというか。
ほんとそのままの名前なんですよね。
人間の脳ってたくさんのニューロンっていうものが複雑につながってできているわけですよね。
で、情報を受け取ったニューロンが次のニューロンたちにその情報を伝えるっていうのを連鎖させていって、
で、たくさんのニューロンたちが伝達していた情報を統合したものを認識しているわけですよね、人は。
それがトータルで脳みたいな。
09:00
はい。で、ニューラルネットワークっていうのはこの人間の脳の構造をシンプルにして再現したものです。
だから何かしらの回路みたいになっているってことですよね。
はい、そうなんです。で、これすごく簡単に言い表したいなと思って、
はい。
ちょっと例を考えてきた、例えを考えてきたんですけれども。
はいはい。
ニューラルネットワークは学校ですね。
学校。
はい。この学校に3クラス、例えばあるとします。
はいはい。
A組、B組、C組っていう3クラスが。
はいはい。
で、タスクとして犬と猫の画像を見分けるっていうモデルを考えたいとします。
うんうん。
だからこの学校に犬と猫の画像を見分けるっていうことを勉強させたいですね。
とんでもない学校ですね、はい。
で、ニューラルネットワークで学習するときって主に2つのフェーズがあって、
うんうんうん。
純電波と逆電波って呼ばれるんですけれども。
純電波と逆電波、これ電波ってどういう感じですか?
電波は何かが伝達していくの電波ですね。
水平電波の電波かって言っても何か余計分かりにくくなるか。
分からないですよ。
それぞれ判定するフェーズと修正するフェーズという2つに分かれてます。
うんうんうん。
はい。で、まず純電波判定するフェーズではどのようなことが行われるかというと、
犬猫の画像を見分けるので何か画像をまずA組の人たちに見せます。
うんうんうん。
それでみんなに判断してもらいます、一人一人に。
犬か猫か。
はい。
A組の人たちそれぞれがこれはちょっと犬だな、これは猫だなというふうに結果を出します。
うんうんうん。
で、その結果をB組に伝えます。
ああ、なるほど。クラス単位なんですね。
はい。
でも実際もう少し抽象的な値を伝えてるんですけれども、ここは簡単に犬か猫かというふうにしましょう。
うんうん。
で、B組はそれを受けてまたB組の人たちそれぞれがこれは犬かな猫かなというふうに判断します。
うんうんうん。
だからA組のこの人が猫って言っててこの人が犬って言ってることは自分だったら多分猫かなみたいな感じで判断していきます。
ああ、なるほど。A組のいろんな人の意見を参考にして判断するってことですね。
そうなんです。
なるほど。
で、A組の人たち全員がそれを行って、で、B組の人たちはまたそれぞれの結果をC組に伝えます。
うんうんうん。
で、C組も同じように判断して、それを受けて判断して、で、C組の判断結果をまとめて提出します。
うんうんうん。
それが純電波です。
なるほど。
で、次に逆電波なんですけれども、先生が判定した結果と正解を見比べて誤差をC組に教えます。
おお、今度逆向きなんですね。
はい。もうこの最終的に提出した結果っていうのは、犬70%猫30%みたいな感じの割合で表されていることが多いので、
12:04
そんな感じで本当は犬だから犬100%猫0%でその差分の30%があるわけじゃないですか。
30%差分がありましたよということをC組に伝えていきます。
で、C組のそれぞれの人は30%違いがあったということはどれぐらい修正しようかなというふうに各々考えて、
その判断を修正してその誤差っていうのをまたB組に伝えます。
うんうんうん。
で、B組も同じように修正してA組に伝えます。
はい。
っていう感じでA、B、C組は判断を修正していくんですね。
なるほど。これが逆向きですね。
はい。これが逆電波です。
っていう感じで順電波判定するフェーズと逆電波修正するフェーズを何回も何回も繰り返して判断修正というのを繰り返していくんですね。
なるほど。A組はだから受け取ってまたじゃあこうかなみたいので。
さっきの修正したらこんな感じかなというふうにまたまた同じように繰り返していきます。
で、これを何回もしてこの学校のレベルを上げていこうっていうのが機械学習、ディープラーニングです。
なるほど。学校自体が、なるほどそういうことですね。
はい。
それをめちゃくちゃ繰り返せば繰り返すほど精度が上がるというか。
はい。
犬か猫かを見分ける優秀な学校みたいな。
そうなんです。
感じになるってことですね。
はい。これがディープラーニングなんです。
なるほど。
どこら辺がディープかというとディープかっていう感じはするんですけれども何個も層が重なってる感じがあるんですよね。A組、B組、C組っていうふうな感じね。
その伝える数の層なんですか。これがクラスがめちゃくちゃいっぱいあったらそんだけ深いっていう意味になる。
はい、そうです。そこら辺がディープという言葉が来てるのかなっていうふうに思います。
分かった気になりました。とりあえず。
ちょっとディープラーニングの歴史どういうふうに発展してきたかっていうのを話していきましょうか。
これ気になりますね。
まず1950年頃にこのニューラルネットワークの概念自体はもう考えられていたみたいです。
50年ってことはパソコン系の発展どれぐらいの時ですか。
同じぐらいだと思いますね。
全然まだですよね。
このディープラーニングって実際には行列の計算をたくさん行っていくんですけど。行列の計算と変微分の計算をいっぱい行っていくんですけれども。
これはその当時のパソコンではできなかったんですよね。
ですよね。
2000年頃からコンピューターの発達によってニューラルネットワークが学習できるようになったみたいです。
だいぶ時間が経ちましたね。
そうなんですよね。
それまでこれ概念だけあったっていうのは本当に何かそれを使おうとかじゃなくてこういう考え方できるよねみたいな。
15:02
最初はそうだと思います。
ってことですよね。
2000年頃できるようになったんですけれどもこの当時は特別優秀な方法ではなかったんですね。
それはパソコンの進化的にとかですかね。
それもあるとは思うんですけれどもちょっとモデルがまだ洗練されていなかったっていう部分があるんですよね。
結構初期モデルみたいな感じだったっていう。
さっきの例で考えてみるとさっき犬と猫の画像どっちが描かれてるかっていうのを見分けるっていうことを考えましたよね。
これ実際にどういうふうにこのモデルは判断していってるかというと一番単純なモデルですと1ピクセルごとに見てこのピクセルにこれが描かれているからきっと猫だろうみたいな感じの全ピクセルをずらーっと見てって判断してるんですよ。
それめっちゃ大変だし当たるかみたいな感じになりそうですよね。
そうすごく単純な画像であればまあまあうまくいくんですけれども犬猫みたいに写真みたいに結構複雑な画像だとあんまり性が出ないんですよね。
でこれがどうやって乗り越えていったかっていうとちょっと問題を考えてみましょうか。
はい問題。
れんさん今から○か×が描かれた画像を見せられたとします。
そこに○と×どちらが描かれているかをどうやって判断しますか。
どうやって判断するかなんか輪郭とかそういう話ですか。
輪郭。
まあ空間が仕切られている方が○とか。
いいですね。
そういう感じですかね。
これ人にとってすごい難しい質問なんですよね。
難しいですね。
だって見ればわかるじゃんって。
ただ見てわかるためにはコンピューターがどう判断すればいいかっていうと一つの判断方法として。
例えば×で言うと交差している部分がありますよね。
はいはい。
だから交差している部分があれば×だければ○みたいな感じで言うこともできますよね。
そうですね。
だから局所的な形を見てなんかここに何があるからっていうふうに判断できるとさっきのよりは良くなりそう。
ということでCNNっていうモデルが出てきます。
CNNなんかの略ですか。
コンボリューショナルニューラルネットワークの略でコンボリューションは畳み込み。
聞いたことありますね。
数学的な計算の計算式ですね。
これ2012年に出たんですけれどもこのCNNっていうのは局所的に3×3ピクセルとか5×5ピクセルだけを見てそこにどんな形があるかっていうものを判断して判定していくようなモデルなんですね。
マックス3ピクセルごとに区切ってっていうのをでっかい画像だったらいっぱいやるってことですか。
18:02
はいもう3ピクセル×3ピクセルをずらーっと横に動かして縦に動かしてっていうふうにして全ての部分にどういう形があるかっていうのを見ていきます。
これなかなかいいモデルで今もすごい根本的な部分にはこれが使われてるんですけどこれが使われてるものが多いんですけれども。
そうなんですね。
どれぐらい良かったかっていうのを今から言いたくてILSVRCというコンペがあったみたいなんですよね。
なんかこういうのよくコンペありますよね。
計算速度競うとかそういう大会みたいな。
これ2010年から行われたコンペらしくて120万個の画像1000種類の画像を学習して分類するコンペだったみたいです。
やばい数ですね。
120万個の画像があってそれには1000種類のどれかが書かれていてそれを判断するっていうモデルですね。
今僕のPCめっちゃシューシュー言ってるんですけど収録してるだけで爆発しますね多分そんなこと。
爆発しますねこれは。
これ正解率がどれぐらいだったかっていうと最初はディープラーニングが使われなかったんですけれどもディープラーニング以外のモデルで2010年は72%正解したようです。
72%はいはい。
2021年にこれもディープラーニング以外の手法なんですけれども74%に上がったようです。
1年で2%も上がりました。
まあ上がってはいますね。
で2012年にさっき言ったCNNをベースとしたモデルが出てきて正解率が84%になりました。
10%も上がったんです。
めちゃめちゃ上がってますね。
そうさっきはディープラーニング使わないと1年で頑張って2%しか上がらなかったのに一気に10%も上がっちゃったんですね。
これであれディープラーニングやばくねっていう風になってみんな研究しだすんですよ。
それが結構きっかけみたいな感じなんですね。
はいこれが大きなインパクトになったと思います。
確かにその割とポッて最初に出てきたやつで80何パーだったらさっきの学校の例えだともう繰り返せば繰り返すほど精度上がりそうみたいな概念だったらなんか結構数打ったらもっと良くなんじゃねみたいになりそうですもんね。
そう思いますよね。
だがそうでもなくて。
そうでもない。
今レンさんが言ったようなクラスの数どんどん積み重ねれば積み重ねるほど確かに理論的には表現力が上がるのできっとモデルは良くなるはずなんですね。
なんですけれども大体20クラスぐらいでCNNベースのモデルはなんか頭打ちになっちゃうんですよ。
えーそれ20ぐらいって決まってるんですかなんか。
はい。
そうなんだ。
それが結構困った問題に昔なってもうちょっと層を増やしてクラスの数増やして精度良くしたいけどあんま良くならないんだよなっていう風になってたんですけれどもこれを乗り越えたモデルが2015年に出ました。
21:06
3年後ぐらい。
これがレズネットというモデルなんですけれどもレズネットはレシーデュアルネットワークの略でレシーデュアルは中で残差結合という操作を行っているのでその残差のレシーデュアルから来てますね。
ただ単純に差分ですね。
あ差分ってことか。
はい。
でこれどういうモデルかっていうのを説明する前に何で層を増やしてもあんまうまくいかなかったかっていうのをちょっと考えたいんですけれどもこれ僕も自身もすごくちゃんと理解してるわけではないんですけれども多分こうだろうなっていうことを話すと。
例えば最初の学校のABC組3クラスで割といい結果を残せていたとしましょう。
そこにD組を追加してさらに良くしようというふうに考えるとD組っていうのはC組が出した結果をまた勉強していくわけですよね。
はいそうですね。
ただC組がそこそこ良い結果を出しているのでD組がやることっていうのは微調整ということになるはずです。
ただCNNっていうのは結構複雑な処理をしちゃってるのでこう結果をそのまま渡すとか微調整をするっていうのは逆に難しいんですよね。
難しくしちゃってる。
はい。
その過程で難しくしちゃってる。
そう畳み込みの計算の仕様上ちょっと高等変換とかそれに近いものを表すの結構難しいんですよね。
だからそう積み重ねていってもなんかあんまり頭打ちになってうまくいかないっていうことが起きるんじゃないかなって思います。
なんかイメージは掴めました。
このレズネットっていうのは何をやってるかっていうと微調整が難しいならC組の結果をちょっとずらしてD組に渡せばいいじゃんっていうことをやったんですね。
ずらす。
あえてちょっと質を落とすみたいな。
質を落とすというよりは平行移動に近い感じでちょっとずらしてそれをD組に渡して微調整じゃなく普通に調整するような感じで。
ああそういうことか。
できるように渡すっていう感じです。
そうすると畳み込みでも簡単に学習することができてこれによって100クラス以上にしても頭打ちにならないで限界突破しました。
テストの点数でいうと98点ぐらいのやつがずっと回されてたらそんなにやる気出ないけどあえて80点ぐらいに落としてから渡したらちょっと勉強し直して99点出たみたいなそんな感じですか。
そんな感じですね。
ああそうなのなるほど。
ちょっとこれが正確な原因かは判断できないんですけれども多分こういうことなんじゃないかなというふうに僕は思ってます。
でも結構そういう細かい最適化じゃなくてあえて質を落とすみたいなのはありそうですよね。
このレズネットすごく優秀なモデルで今もかなりこれをベースにしたものが多くあるんですけれども、
24:05
画像分類とかではこのCNAが登場してレズネットが出ることによってすごい色々とできるようになったという感じになってます。
じゃあ今結構主流というか。
そうですね主流の一つですね。
そうなんだそういう進化が。
それってなんかまたコンペで何パーセントみたいなの出てないんですか。
さっきのあのすごいパーセント上がったよっていうコンペではみんな結果が優秀すぎてもう0点何パーセントの差しか出なくなっちゃったんですよね。
えもう99点何パーとかって。
だからもうそのコンペ自体がなくなっちゃいました。
まあまた別のコンペはあるとは思うんですけれども。
そうなんだ。
それだけリフラーには優秀だったんですね。
優秀すぎて大会を破壊してしまったってことか。
えーおもろいですね。
で今は主に画像データについて話してきたんですけれども、
ちょっとまた別に系列データについても話してみたくて。
系列。
順序が関係あるデータですね。
どういうものになります。
例えば言語とかあとは音声とかもそうですね。
確かに順序がありますね。
順序が関係あるデータに対してはどういうふうに発展していたかっていうのを説明したいんですけれども。
結構大事ってことですよね順序があるかないかで。
はいそうなんです。
まずベースとなったモデルをRNNと言います。
RNN。
リカレントニューラルネットワークかな。
リカレントは再起的っていう意味で前後の関係を意識するようなっていう意味が含まれてますね。
これが1997年に出てちょっとすごく単純なモデルを考えてみて翻訳するようなモデルを考えましょう。
Google翻訳的な。
日本語から英語に翻訳するようなモデルを考えたとして、
まずはこのリカレントの部分を考えず単純なニューラルネットワークで何かしらの学習をして、
単語を翻訳できるようになったとしましょう。
それで例えば彼は背が高いっていう文章があったとしますよね。
これを3パーツに分けて彼とはと背が高いこの3パーツをそれぞれ翻訳したいというふうに考えます。
普通に翻訳するとHe is tallですけれども、
例えば彼を見てまあHeだろうと翻訳します。
ただ和を見てもひらがなの葉を見てもこれがisなのか葉っぱのleafなのか、
それとも口にある葉のteethなのかわかんないですよね。
なるほどそういうことか。
なのでリカレントニューラルネットワークっていうのはどういうふうにやっていくかっていうと、
前の結果の出力と今のデータを見て判断するっていうことを行っていくんですね。
27:03
全体を見るみたいな感じですね。
はい。だから例えばさっきの彼と和とは背が高いで言うと、
彼はまあそのままHeと訳すんですけれども、
そのHeっていう結果と次の言葉の和を見て次の言葉は何になるかなっていうふうに予測していくんですね。
Heの後に和が来たらそりゃisだろうっていうふうになるので、
そうですね。
こんな感じで前の結果と今のデータを見て判断していくっていうのがRNNになってます。
わかりやすい。
で、ちょっと問題があって、これ工夫すれば前後の値を見ることができるんですけれども、
前後の結果ではちょっと足りない部分が、足りない場合があるんですね。
足りない場合っていうのは、いろんなパターンが出ちゃうとかそういうことですか?
例を出すのが難しいですけど、なんかすごい長い文章で、
最初と最後らへんの単語が関係し合ってるみたいなことあるじゃないですか。
ああ、そういうことか。単純な。
これ、最期的とかって、なんか言語だと言語の最期性とか言いますけど、
誰々が言ったって言ったみたいな文章が言語的に結構難しいとか、高度だみたいな話があるじゃないですか。
私が、あなたが、弟が言ったって言ったって言ったみたいな文章があったときに、
2個ぐらい含むやつは言語としてあるけど、3個以上のやつは、
なんか、現存する言語にはないみたいな。
みたいな話を、なんか最近それをサイエントークでやってたやつでなんか読んだことがあって。
今、言語やってますもんね。
だけど、その言語としてそういう構造を取れるっていうのは人間の言語だけですよみたいな話があったりするんですけど、
そのなんか言語の成り立ちとかも結構複雑ですよね。
それも最初と最後がつながるというか。
そういうところが関係し合ってることがあって、それは前後を見ただけじゃよくわかんないんですよね。
ですよね。わけわかんない。今言っててもちょっとよくわかんないですけど。
で、それを解決する手段がちょっと開発されまして、
アテンションというものが2015年に考えられました。
アテンション。
アテンション。日本語では注意機構というふうに言ったりするんですけれども、
単純にアテンションと呼んじゃいます。
これは各パーツが他の全パーツとどういう関係にあるかっていうのを見る機構なんですね。
だからRNNにアテンションを付け加えることによって、
局種的なものを見つつも全体もちゃんと考えることができるっていうふうになって、
結構精度が上がっていったんですね。
なるほど、それは確かに上がりそう。
このアテンションっていうのも、基本的には中身は行列計算をするだけなので、
そんなに難しいものではないという感じだったんですけれども、
RNNは1個だけ弱点があるんですよ。
何ですか?
遅い。
遅い?普通に?
30:01
なんで遅いかっていうと、やっぱり前の結果が必要なんで、
じゅんぐりじゅんぐりに学習していかなきゃいけないんですよね。
じゃあめっちゃ長い文章とかだったらすっごい時間かかっちゃうとかするんですか?
はい、そうなんです。
最初に出した画像とかはCNNでやると結構並列処理が一気にできちゃうので、
割と早くできちゃうんですけれども、
RNNで系列データを扱う場合、順序が関係するので、
順番順番に学習していかなくちゃいけないから遅い。
それは遅そうですね、確かに。
だからRNNまあいいんだけどちょっと遅いんだよなーっていうふうになっていたんですね。
そんな時にちょっと恐ろしい論文が出まして、
恐ろしい論文?また破壊的な論文ですか?
破壊的な論文が出たんですよ、本当。
2017年に出たんですけれども、
その論文のタイトルが、
Attention is all you need.
映画のタイトルじゃないですか?
これどういうモデルかわかりますか?
必要なもんここに全部あるぜみたいなことですか?
さっきはRNNプラスアテンションっていうのを使って頑張ってたんですね。
そっかもういらない、最初のやついらんよみたいな。
最初の順繰り順繰りに学習するやつなんていらなくて、
アテンションだけでいいじゃんっていうふうにいった論文があるんですよ。
それは確かにやばいですね。
前後の関係見るとかはいらなくて、
各パーツが他の前パーツとどういう関係にあるかっていうのを見るだけでいいっていうふうにいったんですね、このアテンションは。
Attention is all you need.っていうのは。
それって元々そのアテンションってやつ出てきたのは、
最初はその順序を、順序がある上で成り立ってたシステムってことですか?
最初はRNNを補強するために使われてたものですね。
補強するためだから、そっかそっか。
パーツとして一応独立はしていたんですね。
それを突き詰めたらベースいらなくねってなった。
そのアテンションのみを使ったモデルっていうのがTransformerっていう名前がついていて、
トランスフォーマー。
このトランスフォーマーがやばいんですよ。
これ今のモデルにもすごいたくさん使われているモデルです。
これはもうめっちゃ並列できるし、早いしみたいな感じですか?
そう、アテンション自体は単に行列計算なんで、すごい並列してできるんですよね。
だから計算コストは結構かかるはかかるんですけれども、
時間的にはそんなにかかんないっていうようなモデルがトランスフォーマーです。
今のGoogle翻訳とかもトランスフォーマーが使われてるでしょうね。
そうなんだ、Google翻訳に使われてるんだ。
ちょっとだけ戻っていきたいんですけれども、
さっき画像分類の時にCNNっていうのを紹介しましたね。
これは局種的にその3ピクセルかける3ピクセルをずらっと見ていって、
どういう形があるかっていうのを判断していくわけですよね。
CNNの弱点は何だと思いますか?
弱点?
それもデカすぎたら遅そうだなって思いましたけど、部分的にバーって見ていくから。
33:00
あとはあくまで局種をたくさん見るっていう形だから、
全体として意味があるやつは使えないみたいな。
その通りです。
局種のみしか見ないんで、やっぱ全体を見なきゃいけないようなものは少し苦手なんですよね。
ここでやばいことを考えた人がいるんですよ。
画像をいくつかのパーツに分けて、
そしたらアテンションを使えばいいじゃんっていうふうに考えたんですよね。
ああ、そういうことか。
その画像のいくつかのパーツがお互いにどういう関係を持つかっていうのを考えることによって、
その画像が何かっていうのを判断できるんじゃなかろうかと。
そっかそっか。だからその局種に区切るとか別にやんなくても、
その全体をなんとなく見るみたいなのができちゃう。
確かにそれはやばい。
それが2020年にビジョントランスフォーマーという形で出てきました。
それ結構今の画像検索とかそういうのに近そうな感じがしますね。
このビジョントランスフォーマーがさっき紹介したレズネットよりも、
場合によってはいい結果を出すんですね。
だから結構だんだんとビジョントランスフォーマーに置き換わっていってるっていうのが今の状況ですね。
じゃあこれアテンションを最初に作ったやつが相当やばいですね。
やばいですね。作ったやつもやばいですし、
アテンションだけでいいじゃんってした人もやばいんですよね。
オールユーニードがやばいのか。
思い出そうとするとオールユーニードイズキルみたいなの出てきそうですけど。
多分それを参考にしてるんでしょうね。
文字ってそうな感じしますね。
機械学習系の論文そういうの多いんですよね。何かしらのパロディーになってるみたいな。
ああそうなんだ。
でもそれ確かに画像に言語処理のやつ、言語処理だったんですか元々その翻訳の。
そうですね言語処理が多いですね。
言語処理が多くてそれを画像に持ち込んだのか。
賢いですね。
そうなんですよ。
こんな感じがディープランニングの歴史ですね。
でもうだいたいそれが今の基盤になっている。
だいたいレズネットがトランスフォーマーです。
そんなに?
乱暴に言えばですけれど。
これって逆に何か問題はないんですか?これ以上。
異なりしちゃってるのか。
もう一発ぐらいブレイクするがあるのかとか。
あるかな。どうなんでしょうね。
やっぱりいつになっても問題となるのは計算コストですね。
ああやっぱりそうなんだ。
トランスフォーマー使えば場合によってはレズネットよりも上回るという風に言ったんですけれども。
トランスフォーマーでいい結果を出すには超大量のデータが必要なんですよね。
レズネットに比べて。
それを学習するとなると超大量のコストが必要で、
それを一回学習するだけでも何億円かかったりとかするみたいですね。
それって一回学習してしまえばそれを使うのはめっちゃ軽いみたいな。
36:05
そうですね。そんなに重くないはずです。
学習自体は何回も何回も繰り返して学習するので、
その繰り返しがかさむとかなり大きなコストになるっていう感じですね。
これなんかそういう系やってる人ってみんなグラフィックボードじゃなくて。
GPU。
そうそうそう。GPU。
あの辺をめちゃくちゃ買い漁るみたいな。
買い漁りはしないですけどもGPUは必須となることが多いですね。
やっぱそうなんだ。
いや本当あれがないと段違いですね。
それはめっちゃ効きますね。やってる人から。
ただGPU使うと熱いんですよ。
自作PCとかやってる人とかめっちゃそういうの入れてそうな。
今会社で使ってるパソコンもGPUで動かしてるんですけれども、やっぱやると気温が1度か2度上がりますね。
そんなに変わらない。そんなに熱いんですか。
本当に熱いんですよあれは。
しょうがないのか。
しょうがない。よしじゃあ最近のディープラーニング紹介していきますか。
今のでペースはつかめましたね。
いくつか紹介したいんですけれども。
ここまでお聞きいただきありがとうございます。
サイエンマニアはあらゆる分野のゲストを招き、サイエンスの話題を中心にディープでマニアの話を届けるポッドキャストです。
番組に関する情報はツイッターを中心に発信しています。
感想はハッシュタグサイエンマニアで。
またポッドキャストのレビューもよろしくお願いします。
次回もまたお楽しみに。
37:46

コメント

スクロール