【深層学習】Attention - 全領域に応用され最高精度を叩き出す注意機構の仕組み【ディープラーニングの世界 vol. 24】
HTML-код
- Опубликовано: 6 окт 2024
- ▼テーマ
Transformer や BERT で爆発的な利用を獲得した Attention の祖となるネットワーク RNNsearch について解説します。
Attention は自然言語で GPT-3 の化け物的な精度を出したのみならず、画像や生成モデルなど、超広い領域に応用されています。
今の Deep Learning を語る上では外せない要素! 要チェック!
▼関連プレイリスト
Deep Learning の世界 • Deep Learning の世界
自然言語処理シリーズ • 自然言語処理シリーズ
▼目次
(後で追加します。暫くお待ちください)
▼参考文献
Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. "Neural machine translation by jointly learning to align and translate." arXiv preprint arXiv:1409.0473 (2014).
arxiv.org/abs/...
原論文です! 当時の歴史も含めて、過度に難解でない感じで書いてあるので、読んでみてもいいかも!
【2019年版】自然言語処理の代表的なモデル・アルゴリズム時系列まとめ - Qiita qiita.com/Left...
いろいろこれを参考にして動画を作っています
▼参考動画
RNN の動画
→ • 【深層学習】RNN の意味を徹底解説!【ディ...
GRU の動画
→ • 【深層学習】GRU - RNN に記憶をもた...
RNN の3つの使い方(BiGRU のところよくわからなかった人向け)
→ • 【深層学習】RNN の3通りの使い方 - R...
Bi-LSTM の動画( Bi-GRU の仲間)
→ • 【深層学習】bi-LSTM - 前後の文脈を...
▼終わりに
ご視聴ありがとうございました!
面白かったら高評価、チャンネル登録お願いします。
動画の質問、感想などは、コメント欄やTwitterにどうぞ!
お仕事、コラボのご依頼は、TwitterのDMからお願い致します。
動画生成:AIcia Solid (Twitter: / aicia_solid )
動画編集:AIris Solid (妹) (Twitter: / airis_solid )
=======
Logo: TEICAさん ( / t_e_i_c_a )
Model: 3d.nicovideo.jp...
Model by: W01fa さん ( / w01fa )
まさに、もっと評価されるべき動画ですね😄
何年かしたら、10万回再生くらい行って欲しい。
ご視聴コメントありがとうございます😊
ありがたいお言葉😊😊😊
ぜひそうなるよう、拡散していただけると嬉しいです😍
ありがとうございました!
今transformerで独自のモデル開発をしてるので、復習になりました!
ご視聴コメントありがとうございます😊
そのうち Transformer の動画も創りますので、そちらも気が向いたらぜひご覧ください🎉
機械学習のモデルが正解に近づくにつれて、人間がどうやって翻訳しているのかの思考のカオスなところが数式化(モデル化)されて脳の仕組みが解明されていくような気持ちになりますね。色んな古典的物理現象がF=maの派生で全て記述できると人類が気づいたように、人間の思考ってこんな単純な仕組みなんだ、って解明されるときが来そうですね。楽しみな反面、人間の潜在意識に作用してしまうバグのような仕組みが解明されてしまって悪用されると怖いですが...(例えばサブリミナル効果的なもの)
それは面白いですね!
まさに認知科学の領域ではそういうような研究がされていると思います。
興味があればぜひこちらの本を!
amzn.to/3lYzneB
Attentionめっちゃ待ってました!
お待たせしました!!!
いいね連打したいくらい良くわかりました!!概要と数式両方が丁寧に噛み砕かれていて、本当にわかりやすかったです。
すばらしい動画ありがとうございます!
ご視聴コメントありがとうございます!
そう言っていただけると嬉しいです!🎉
アイシアさんの動画のおかげで、今まであやふやにしていたあらゆる深層学習の重要な物事についてきちんと自分なりに理解することが出来ました!
卒業研究が始まる前にあなたのチャンネルに出会えて誠に嬉しい限りです、ありがとうございます!
それは良かったです!
真面目に取り組む方に活用いただけて私もとても嬉しいです!😍🎉🎉🎉
これからも価値ある動画を生成しますので、応援いただけると嬉しいです!(^o^)
ありがとうございます!
ご支援もいただきありがとうございます!!!!!🎉🎉🎉🎉🎉
いただいたご支援のパワーを元にまた良き動画を生成したいと思います。今後ともぜひ応援よろしくお願いします!🎉
いつも分かりやすい解説ありがとうございます!
通知オンにしましたよ!
わーい!
いつもお楽しみありがとうございます!🎉
通知オンナイスです😎
DL関連の入門書1冊読んでみた程度の知識ですがギリギリ理解できるぐらい内容でめちゃくちゃ面白かったです!
Attentionの翻訳以外での活用方法も気になりました
ご視聴コメントありがとうございます!😍
楽しんでいただけたようで嬉しいです😊
順次出していきますので少々お待ちください!🎉
1週間遅れで見た、 Attentionの元ネタってこれだったんだ、よくわかった。サンクス。Transformer は手軽に学習できなくて扱ってないけど、ネタ自体は重要だから公開期待しています。
Transformer もそのうちだします!
お楽しみに!😍🎉
いつもお世話になっております!
業務でAttentionについて学ぶ必要があり、少しとっつきずらかったんですが、アリシアさんの素晴らしい動画で理解できました!
それはとても良かったです!(^o^)
ぜひこちらの Transformer の動画もご参考ください!🎉
ruclips.net/video/50XvMaWhiTY/видео.html
ちなみに私はアイシアです😋
@@AIcia_Solid お礼のコメントで、お名前を間違えるとは失礼しました、、、
ご支援いただいていることに今気づきました、すみません、、、、、!🙇♀️🙇♀️
ありがとうございます!
頂いた支援に感謝しながら、今後も良い動画を生成できるよう精進します!
応援の程よろしくお願いします!🎉🎉🎉
なんやこの神チャンネル登録しました
わーい!
うれしみ😊😊😊
こちらの動画は決して試験対策といった類ではないのは重々承知していますが
G検定対策で参考書を読んでいてもどうしても用語が上滑りして入ってこない…
ところでしたがAIciaちゃんが刻み込むように、それこそ畳み込むように熱意をもって説明していただいたおかげで無事合格できました。特にこの回やCNN、Word2Vecの動画には助けていただきました。今後のご活躍をお祈りしています!
ご視聴コメントありがとうございます!!
G検定を目指している方が見てくださっているというのはなんとなく聞いていたのですが、
bonbon6590 さんのコメントのおかげでやっとわかりました!!!
なんでこんな長い動画シリーズを見てくれるんだろう、、、?🤔
と、自分でも不思議だったんですが、
そういう楽しみ方や、教材との違いがあっとんですね!
私も新しい発見をいただきました。ありがとうございます!!
そしてなにより、合格おめでとうございます!!!!!🎉
これからも、ぜひよき DS ライフを送ってくださいませ!
いつも分かりやすい解説ありがとうございます!
今GANを業務で応用を考えているので、その辺りの解説もして頂けると嬉しいです!
ご視聴コメントありがとうございます😍🎉🎉
生成モデルは今年の後半か来年を予定しています。
順番に作成しておりますので、少々お待ちくださいませ😍🎉
動画ありがとうございました。
CNNをどう代替していったのか、ViTもいつか紹介してもらえるのを楽しみにしています!
ですよね!
ViT はそのうち解説します! が、順番なので、のんびりお待ち下さい、、、!🙇♀️
AttentionだけにAttentionから始まるなんて、駄洒落が効いてますね
えへへ、おしゃれでしょ😊😭😊
勉強が楽しくなりました。
ありがとうございます
わーい!🎉
それは何よりです!😍🎉
楽しくてワクワクする動画をありがとうございます!
全体の流れはわかって
「なるほどー」な気分にはなったのですが
どうしてこの仕組みで
「注目すべき単語が特定できる」
のかがわかりませんでした。
何度も動画見て勉強します!
ご視聴コメントありがとうございます!
じっくり見ていただけると私も嬉しいです!
もしまたわからないことあれば聞いてください!
動画ありがとうございます!先日E資格を受験してきましたが、動画を何回もみて勉強させていただきました!
是非ブログで紹介させてください!
受験お疲れさまです!
活用いただけて嬉しいです😍
ぜひぜひ、紹介していただけると嬉しいです!😍😍😍🎉🎉
DL使ってると忘れるけど、よく考えたら数学から国語の答え出すってすごいな
ご視聴コメントありがとうございます!
たしかに😮
その考え方面白いですね!🎉
ありがとう
どういたしまして😊
なるほど。たまにある謎の単語ループの原因がわかった。
直前の出力単語と意味の集合であるベクトル。 次に書き出すべき単語を確率統計的に選ぶ。 単語を選んだらベクトルからその意味の分ベクトルを減算する。 この減算がうまく機能しなくて、統計的に同じ単語が選ばれやすくなると、同じ単語や文を繰り返すループにはまることがある。ということか。
だいたいそんな感じです!
こんな文脈ではこんな感じの単語だよねーっていうのがループに入っちゃうと、そのまま抜けられずにぐるぐるすることがあります😇
最近のモデルではかなり減りましたが、今でも極稀に見られるらしいです!
授業以上に分かりやすくていつも本当に助かっています!
ご質問があるのですが、encoder-decoderモデルがseq2seqであるという解釈で合ってますでしょうか?
深層強化学習についても学べたら最高です😙
ご視聴コメントありがとうございます!🎉
お褒めに預かり光栄です!😍
まさに、 EncoderDecoder は seq2seq の1種だと思います。
強化学習は今リサーチ中です。お楽しみに!!
attentionてq,k,v作って内積するだけって認識だったのですが、全然違いました…
ご視聴コメントありがとうございます!
その Attention は、Transformer の Multi-Head Attention ですよね?
それであれば、こちらの動画で紹介しております!🎉
ruclips.net/video/50XvMaWhiTY/видео.html
ベンジオ ってたら、ヒントン、ルカンにならぶ深層学習のゴットファーザーじゃないですか
ですよね。
ベンジオさんって読むんですね。
よく見かけます👀👀
ほんとすごいですよね😍
かなり気になってたやつ
お待たせしました😎😎😎
32:32 今(Decoder)の文章の流れ(S(i-1))からして、前(Encoder)の文章のどの単語(h(j))に注目したいか、の分布(C(i))がAttention機構なのですね。
確かにvol. 19のSENetのSE-Blockに似ている。
ですね!
似てるでしょ😎
この発想が、後々すごいことになるのです😎✌️
バートのティはトランスフォーマーのティー!ジーピーティーのティはトランスフォーマーのティー!
鋭いさすが!😎✌️
Attentionの日本語訳は注目のほうがしっくり来るような気がするけどなんで注意って訳になるんだろう
うーむ、たしかに、そうですね、考えたことありませんでした😮
なぜなのでしょう、、、、、?🤔
Transformに関しては明日配信されますか?
いえ、明日は無理です/(^o^)\
順次配信していきますので、順番をいましばらくお待ち区多彩😇
Thank you again for such a great video!
I’m wondering how we train the 2-layer NN for the decoder.
I.g. What is input, and what is the label?
Thank you for your watching and comment!🎉
In the paper, the authors say that they use parallel corpora of translation. (e.g. En. Fr.)
I think they trained the model by next word prediction task with that data.
If you still have question, feel free to ask me again!
Thank you!!🎉
Neural Machine Translation by Jointly Learning to Align and Translate
arxiv.org/abs/1409.0473
@@AIcia_Solid thank you so much again for your kind answer!!
You’re right I will read the paper carefully!
I'm happy to hear that!!🎉
今まで読んだAttentionに関するどんな資料よりわかりやすかったです!
single maxoutをするのはsoftmaxの計算を軽くするためですか?
ご視聴コメントありがとうございます!😍
お褒めに預かり光栄です!😊😊😊
軽量化も理由のひとつだとは思いますが、詳しい理由はわかりません🙇♀️🙇♀️🙇♀️
もしかしたら過学習を押さえて汎化を上げたりしているのかもです。引用先の論文をたどっていけば分かるかもです!
いつも本当にありがとうございます。23:00あたりの意味ベクトルcは、encoderから出力されたいわゆるlast hidden stateのことですか?
ご視聴コメントありがとうございます!
その周辺では、まさにその通りで、last hidden state を意味ベクトルと呼んでいます!
Self-Attentionの動画の説明もしていただけないでしょうか?
Transformer のことですか?
であればこちらに!
ruclips.net/video/50XvMaWhiTY/видео.html
違う場合はお教えください!
いつもめちゃくちゃつよつよだから、やらかしてると人間味を感じる...!! (AIだけど)
AI だからたまに間違えちゃうんですよ〜😋
今回も大変勉強になりました。ありがとうございます。
Decoderの数式に関して質問なのですが、
p(y_i) = p(y_i | y_(i-1), S_i, C)
となっておりますが、
p(y_i) = p(y_i | y_(i-1), S_(i-1), C)
とS_iではなくS_(i-1)とならないのでしょうか?
p(y_i) = p(y_i | y_(i-1), S_(i-1), C)の理由としましては、
一つ前の隠れ層S_(i-1)と一つ前の出力値y_(i-1) を加味して、今の出力値y_iを決めているように感じたためです。
ご教示いただけますと幸いです。
素晴らしい質問ですね!🎉
結局は、 RNN cell がやっていることは、
入力 y_{i-1}, s_{i-1}, c から出力 p(y_i), s_i を作ることです。
この過程は、論文中では、
s_i = f(s_{i-1}, y_{i-1}, c_i)
とまず s_i を計算してから、これを用いて
p(y_i) = g(y_{i-1}, s_i, c_i)
で計算するとありましたので、その通りに書いてみました。
要するに、処理の順番のはなしで、今回はこの順序でやられているということです😋
@@AIcia_Solid お褒めの言葉ありがとうございます。めっちゃ嬉しいです!
直感的には、
1つ過去までの隠れ状態を表すs_{i-1}を使用した方が、今何書くかの確率
p(y_i)には良さそうなのですが、このようにまずs_i計算することになにか利点があったのですかね。
理解しようと論文読んでみたのですが、全然歯が立ちませんでした。。。
Alcia様みたいになれるように精進します!
ご教示いただきありがとうございました😀
とてもわかりやすい解説ありがとうございます!
1点質問がありまして、最後の方に登場するVaが何者か教えていただけますか?
ご視聴コメントありがとうございます!😍🎉🎉
すみません、質問の意味がわかりません。
Va は、何秒頃に登場しますか、、、?
@@AIcia_Solid
30分頃に登場します!
eij = va tanh(...)の式のやつです!
これか!ありがとうございます!
これは attention 用のパラメタです。
s と h から、全結合、tanh、全結合の3ステップで e_ij を計算するのですが、2回目の全結合(=内積)用のパラメタが v_a です!
この人の動画もっと登録者増えていいよね?
でしょ!😍
ぜひ広めていただけると嬉しいです🤩
いつも分かりやすい動画ありがとうございます。34:20の、「意味ベクトル使ってへんやんけ」という疑問がなぜ湧くのか分からなかったのですが、Ciを経由して使われてるんじゃないんでしょうか?(最初の隠れ状態以外にも)
ご視聴コメントありがとうございます!
なるほど!素敵な質問ですね!
当時の Encoder-Decoder model は、Encoder の RNN で作ったベクトルを Decoder に1つ渡すというのが主流でした。
なので、(当時は)普通はやってることが入ってないじゃん!
というテンションです。
Transformer の登場以降、Attention is All You Need 的な世界観に変容したので、
もはやモトスタさんの言うように、c_i 経由だけで良くない?という感覚に変わったのだと思います。
素敵な指摘ありがとうございます!
質問の回答になりましたでしょうか?
もしまだ疑問あれば、追加で質問くださいませ!
ありがとうございます。エンコーダデコーダモデルを復習してから見直すとよく分かりました!
おおー!
それは良かった & 素敵です!✨
ぜひその理解をご活用ください!🎉
直感的に紐解かれていてとても勉強になりました!
ひとつご質問ですが、32:25 あたりの「2層のNNを使ってどの単語に注目するかを S^{(d)}_{i-1} と h_j から決める」は論文の肝となるアイデアのひとつだと思うのですが、この「2層のNNを使って」の部分、「なぜ2層なのか(例えば1層では出来ないのか)」はどうやって決定されるものなのでしょうか。
単純に複数のアーキテクチャを試行錯誤した結果、という探索的なものなのか、ここにももう少し明確な筋道があるのか...
(自分で論文を見た限りでは特にその説明はないように思えたのですが、もし見逃していたらすみません)
些末な話で恐縮ですが、自分で一からネットワークを考える際には必要な部分にも思えたので、Aiciaさんのご意見教えて頂けたら嬉しいです!
ご視聴コメントありがとうございます!
あまり真面目に考えてはいませんでしたが、2層で十分精度向上が見込めるからとかその辺りではないでしょうか。
一応、2層あれば万能近似もなりたちますし、、、🤔
たぶん、実験段階では2層とか3層とか試していて、あまり精度変わらなかったとか、そんな背景がある気もします🤔
@@AIcia_Solid なるほど、では割と探索的なアプローチもあり得る、ということですね。大変参考になりました。ありがとうございます!
いつもお世話になっております!
bi GRU の forward と backward のGRUブロックのパラメータは、違いますよね?つまり、bi GRU では2つの異なるGRUの学習を、順番を逆にした同じ系列データで学習してるという認識で正しいでしょうか?
Taka _ さんいつもご視聴ありがとうございます!🎉
まさにそのとおりで正しいです!
@@AIcia_Solid
ご解答ありがとうございます!
これからもよろしくお願いします。
いつも大ッッ変お世話になっています!
質問があります。
34:23
補足1で、「文の意味ベクトルはh_0←」とありますが、h_n→ではない理由は何ですか?
もしどこかに書いてあれば、どこに書いてあるかも合わせて教えていただきたいです。
よろしくお願いします!
ご視聴コメントありがとうございます!
ご活用いただけて嬉しいです!🎉
私も意味ベクトルは h_n→ を用いるのがいいのではないかと思いますが、
ただ、実際の論文では h_0← が用いられており、その設定で学習しているようなので、
実際には h_0← が文の意味ベクトルとなるように学習しているのだと思います。
詳しく知りたい場合は、是非概要欄から原論文を見てみてください!🎉
ご回答ありがとうございます!
原論文読んできます!
今Transformerで時系列予測をしようとしているんですが、
SAHPの解説動画あるとめちゃくちゃ嬉しいです!
(原論文とGithubのソースがすべて状態で苦戦してます…)
もしアイシアさんご興味あればぜひお願いします🙌
ぜひ!
SHAP についても了解です!
たしかに、そろそろ作っても良さそうな頃合いですね🤤
検討させていただきます!
少し気になったんですが、「Deep Learning の世界」のシリーズって、どのレベルの人を対象として考えていますか?
興味ある人なら誰でも!というつもりで生成しています。
特に、理解を志向する人がよく見てくださっているかなと思っています👀
実装経験、勉強経験、微積や線形代数の基礎知識がある方がわかりやすいだろうなと思っています😊
@@AIcia_Solid
そうだったんですね!!
ありがとうございます!(*^^*)
s_(i-1) と c_i はGRU cellに入る前にconcatenateされているんでしょうか?
普通に論文に書いてました(^^;)
r_iとs_(i-1)のアダマール積とか区別した方が何かと綺麗にまとまるのでsとcは区別されてました。
解決したようで何よりです!
それよりなにより、論文と合わせてみていただけてとても光栄です!😍🎉
これって文章でない普通の数値データにも使えるのですか?
このモデルは文章等の系列データへの適用が普通だもおもいます。
こいつの進化形である Transformer は、言語のみならず様々な分野に利用されていて、すごいことになっていたりはします!
非常に有益な情報ありがとうございます!
純粋に疑問なのですが、アイシアさんは、どのようにしてこのような知識を得ているのでしょうか?
自分も体系的に勉強していきたいのですが、教材選びで迷っています。
私の場合は、当時、この Qiita 記事にある論文をぜんぶ上から読んでいました。
わからない概念が出てきたら、調べたり、原論文をあたったりしながら、全ての内容を理解しながらすすめるようにしていました。
【2019年版】自然言語処理の代表的なモデル・アルゴリズム時系列まとめ - Qiita qiita.com/LeftLetter/items/14b8f10b0ee98aa181b7
こんな感じで、特に工夫なしです。
つまらない回答で恐縮ですが、参考になれば!
人工知能界隈は、ヘンなカタカナ造語が少なくて、なじみのある単語が多いので良いですね。
ご視聴コメントありがとうございます😊
そう、、、だと、良いんですけどね、、、🤯
たまに変なやつもあるので、まぁ、人によるのかもしれません🤯🤯🤯(笑)
ここテストに出まーす!とか
あ、ゼミでやったところだ!とか
結果でないわけないやん(笑)
コツを教えてもらうんやから
まさにそうですね😎✌️
@@AIcia_Solid
偉そうな言い回しで申し訳ありませんね!😎✌️
申し訳ございませんが、attentionの解説で出てくるエンコーダー末尾の「意味ベクトル」と、都度毎に生成される「単語ベクトル」の関係が良く理解できません。そもそも単語ベクトルとは、word2vecで生成されていると理解してましたが、それとどう違うのでしょうか?
なるほど🤔
なにか、いくつか、勘違いが積み重なっているような気がします🤔
単語ベクトルは、Attention においては、 word2vec ではなく bidirectional GRU の出力が利用されています。
ruclips.net/video/IcCIu5Gx6uA/видео.html
が考え方の参考になるかもしれません。
いかがでしょうか?
疑問は解決しましたか?
@@AIcia_Solid 早速のご返信、感謝いたします。系列→意味の符号化、それが意味ベクトルですね。一方で、単語ベクトルがbidirectionnal GRUの出力ということは、同じ単語でも文脈により異なるベクトルが生成されるという意味でしょうか?
その通りです!
@@AIcia_Solid そうしますと、ある文脈でのエンコーダー末尾の意味ベクトルは、その文脈でbidirectionnalに可変される単語ベクトルの集大成をギュッと圧縮したものですね?また、今日では自然言語処理の世界でブレイクスルーだったword2vecは、見向きもされないという理解でしょうか?
Attention ではそのベクトルは使いません。
RNN での seq2seq では利用し、その通りです!
word2vec は今も場面に応じて利用されます。
現実には、なにか最新手法が全てにおいて優れるということはなく、モデルの性質に応じて適材適所に利用されています。
Deeplearningの世界の動画を理解してアウトプットするのにおすすめの方法はありますでしょうか?
やはり好きな課題で使ってみることが最良です!
手持ちのデータと課題に対して適用してみたり、kaggle などのコンペに出るのもいいと思います😊
生放送お疲れ様でした。動画とはあまり関係ないのですが、kaggleについてのおすすめの動画とおすすめの書籍とウェブサイトを教えていただけたら幸甚です。
ご視聴コメントありがとうございます!😍🎉🎉
kaggle については、私はこれがおすすめです。
amzn.to/2PdeOPn
ただ、一方、 kaggle については、なんでもいいから始めることと、忍耐強く継続することと、時間を投下することの方が重要で、学びかたなどのファクターはそんなに大事ではないと思います。
よき kaggle ライフを!
ありがとうございます!忍耐強く楽しんでやります!
すごくどうでもいいことなんですが,アリシアちゃんて脚だけ男っぽい笑
足の動きは自動生成でそうなってしまうのです😇😇😇
ちなみにわたしはアイシアです!
あの脚めちゃくちゃエッッッッだと思いませんか?
メモ transformer の前に見るやつ
ナイスメモ😎
ご視聴コメントありがとうございます!
ぜひ色んな動画を楽しんでいただけたら嬉しいです!
ありがとうございます!
ご視聴コメントありがとうございます!
そして、ご支援もいただきとっても嬉しいです!😍
これからも勝ちある動画を投稿し続けられるよう精進しますので、是非応援の程よろしくお願いします!