【深層学習】Transformer - Multi-Head Attentionを理解してやろうじゃないの【ディープラーニングの世界vol.28】

  Рет қаралды 112,076

AIcia Solid Project

AIcia Solid Project

Күн бұрын

Пікірлер: 236
@shinjibaba2321
@shinjibaba2321 3 жыл бұрын
わかりやすかったです!とても勉強になりました.質問なのですが,35:00あたりにて「ベクトルを回転させてぶつけることによってXの注目の仕方を変える」といった説明がいまいち理解できませんでした.ここの部分を理解するにはどういった知識が必要でしょうか,また参考にできる資料があれば教えていただきたいです.
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
それは良かったです!!!😍🎉🎉🎉 そこの説明は私のオリジナルなので、残念ながら参考にできる資料はありません🙇‍♀️ 追加で少し説明しますと、 「重みが大きい(注目する) "⇔" 内積が大きい "⇔" 同じ向き」 と動画では説明しました。 つまり、 q と k の向きが同じなら注目するわけですが、 その前で q, k(, v) を回転するわけなので、 どのペアが同じ向きなのかがガンガン変わることになります。 これを、「回転させてぶつけることで X の注目の仕方を変える」と表現しました! 伝わりますでしょうか、、、?
@shinjibaba2321
@shinjibaba2321 3 жыл бұрын
@@AIcia_Solid 返信ありがとうございます! 分かりやすい説明ありがとうございます. 「回転させてぶつけることで X の注目の仕方を変える」の表現について理解できました. 最後に一点だけ質問があります. q:次元を1/8にするために,行列をかけてどの部分を処理するか決める k:回転させることによって,どの部分に注目させるか決める とありますが,kをどのくらい回転させるかによって類似度(内積)の大きさは変わると思うのですが,この行列の部分はどのように決定しているのでしょうか?学習する過程で決定されるのでしょうか?
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
そのとおりです! まさに学習で決定されます! (行列のすべての成分が、学習可能なパラメタです)
@shinjibaba2321
@shinjibaba2321 3 жыл бұрын
@@AIcia_Solid なるほど!理解できました. 今日自然言語処理について学び始めて,BERTの動画からAlciaさんにたどり着きましたがどのサイトよりも理解しやすかったです! ありがとうございました.
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
それはとてもよかったです!😍🎉🎉🎉 お褒めに預かり光栄です。今後もぜひご活用くださいませ!🎉
@雑ゲームチャンネル
@雑ゲームチャンネル Жыл бұрын
最近AIの研究エンジニアとして内定を頂きました。 AI業界未経験のプログラマー歴1年でしたがここまでこれたのは、奇跡だと感じてます。 何時も分かり易い動画で勉強させて頂いてます。 ありがとうございます!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
おおおおお! おめでとうございます!🎉🎉🎉🎉🎉 新たな旅立ちですね! 応援しております!🔥 私も良き動画を生成できるよう頑張りますので、応援の程よろしくお願いします!🎉
@こころ-i6r
@こころ-i6r 9 ай бұрын
ものすごく理解しやすかったです。正直しびれましたw 数式の意味をかみ砕いて解説してくれる点が、とても理解の手助けになりました。
@AIcia_Solid
@AIcia_Solid 8 ай бұрын
ご視聴コメントありがとうございます!!!🎉🎉🎉 そう言っていただけるととても嬉しいです🥰 ぜひこの理解をご活用いただけたら嬉しいです🎉
@niruru9560
@niruru9560 3 жыл бұрын
ありがとうございます。何度か見直しが必要そうですが、イメージは理解できました。
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
ご視聴コメントありがとうございます! 一発ではなかなか厳しいですよね、、、! もし分からないことがあれば聞いてくださーい!🎉
@JunHattori-m7d
@JunHattori-m7d 10 ай бұрын
他のTransformerについての解説動画を見てましたが、この動画がダントツでわかりやすかったです。 特に、Generative AIに興味のある、行列の勉強をしている学生さんたちには見てほしいですね! さらに興味を持って、研究や学術に取り組めると思います
@AIcia_Solid
@AIcia_Solid 10 ай бұрын
ご視聴コメントありがとうございます! お褒めに預かり光栄です🌞✨ まさに、そういう方々に見ていただけたら嬉しいです😊 必要そうにしている方がいましたら是非おすすめいただけると嬉しいです。 よろしくお願いします🎉
@男団子-x5t
@男団子-x5t Жыл бұрын
4年の研究でMOTやってて,日本語でこんなにわかりやすい動画見られて本当に助かってます。ありがとうございます。
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます!🎉🎉 研究にトライしているか方に届いて私も本当に嬉しいです!(^o^) ぜひ、その理解をご活用くださいませ🎉
@edbshllanss
@edbshllanss 3 жыл бұрын
待ちわびてました!😍
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
おまたせしました😍
@ryoumasameshima93
@ryoumasameshima93 Жыл бұрын
クソほど有益なコンテンツありがとうございます!この動画が初見ですが、これから動画、全部みます!!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます!🎉 お楽しみいただけたようでとても嬉しいです😊 ぜひいろいろ見てみてくださーい!(^o^)/
@jyapper_
@jyapper_ Жыл бұрын
クエリとキーの内積の意味が分かんなくて詰んでたので助かりました! 他のところもすごく分かりやすくて良かったです!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます🎉🎉🎉 それはとても良かったです🤩 是非この理解をご活用くださいませ!!
@matsutaku1788
@matsutaku1788 3 жыл бұрын
非常に分かり易かったです! Decoderの入力でXをそのままQKVに使うのは目から鱗の発想でしたが,よく理解できました.
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
お役にたてて何よりです!😍🎉 目から鱗ですよね😮 はじめは私も何やってるのかよくわかりませんでした(笑)
@doggy9745
@doggy9745 10 ай бұрын
RNNの時系列的な依存関係を解決するためにattention機構を導入し、計算速度を解決するために、RNN的な構造を取り除いたのがtransfomerって感じでざっくりと理解しました。 また、コンセプトは異なるし目的も違いますが、(複数チャネルの重要度調整のための)SEnetと(シーケンスデータの特徴抽出のための)attention機構はソフトマックス関数を噛ませて、重要度の重み付けをしている点で共通したコンセプトがあるなと感じました。 それにしても内積を類似度と解釈した第一人者は天才of天才ですね、、その解釈がなかったら統計から深層学習はおろか、データサイエンス自体成り立たないなと、、、
@AIcia_Solid
@AIcia_Solid 10 ай бұрын
ご視聴コメントありがとうございます! Attention is All You Need の論文タイトルにある通り、RNN の補助としての attention 利用ではなく、attention のみでこの精度にしたことは本当に重要な貢献ですね! SENet も似た発想で、文献によっては attention の走りと紹介されていることもあるので、まさにその通りと思います。 やはり、人間の創造性にはいつも驚かされます😊
@小野賢一郎
@小野賢一郎 5 ай бұрын
10万回再生おめでとうございます!🎉 お食事代にでもお使いください。
@AIcia_Solid
@AIcia_Solid 5 ай бұрын
小野さん!!!!! いつもご支援いただきましてありがとうございます!!! とても助かります!!!!!🎉 それでは、お言葉に甘えてバーチャル美味しいものでもいただいてきます🤤🎂 ありがとうございます!!!
@user-fy9dz1cr8x
@user-fy9dz1cr8x Жыл бұрын
理解度が格段に上がりました、ありがとうございます
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます🤩🎉 ぜひこの理解を活用してあげてください!🥳
@sushisushi8362
@sushisushi8362 3 жыл бұрын
こんな風に数式の意味を解説してくれてたら大学数学もっと好きになれたかなー
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
そんなあなたにはこの人がおすすめ😎✌️ kzbin.info
@GreeceSheep
@GreeceSheep Жыл бұрын
@社会の歯車
@社会の歯車 11 ай бұрын
本を読んでいてK,Vがどこから来るのか良く分からなかったから,疑問が解消されてとても良かった。。わかりやすい説明ありがとうございます。
@AIcia_Solid
@AIcia_Solid 11 ай бұрын
ご視聴コメントありがとうございます!🎉 私の解説が役に立てば光栄です!🤩 ぜひこの理解をお役立てくださいませ🥳✌️
@user-xy2cm6id2z
@user-xy2cm6id2z Жыл бұрын
動画ありがとうございます! いま研究で深層学習について学んでいたのですが、数式が難しくて心が折れかけていました。Alciaさんの動画も正直自分にとっては難しい部分があります。。。 ですが、諦めずにいつか動画内容をしっかり理解できるように頑張ります! 動画ありがとうございます。応援してます!!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます! そして、正直な感想をありがとうございます。なかなか書くのも難しいコメントだと思いますが、決意に満ちていて素敵だと感じました。 応援しています! 質問など、なにか私にできることがあれば、ぜひお答えしますので、そのときは何でもお申し付けください!(^o^)
@udon2809
@udon2809 3 жыл бұрын
本当にわかりやすかった! 素晴らしい動画をありがとうございます! BERT編もすごく楽しみにしてます!
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
お楽しみいただけて嬉しいです!🎉 BERT もお楽しみに!
@stripe_yt
@stripe_yt 7 ай бұрын
お前らここ分かりづらいだろ?っていう問いかけが的確で、わかりやすかったです!
@AIcia_Solid
@AIcia_Solid 7 ай бұрын
ご視聴コメントありがとうございます!🥰 そう言っていただけるととても嬉しいです😊 ぜひこの理解をご活用くださいませ🥰🎉🎉🎉
@AIcia_Solid
@AIcia_Solid 7 ай бұрын
ご視聴コメントありがとうございます🥰 (返信失敗したかもなので、再送しています。2通来ていたらすみません) そう言っていただけるととても嬉しいです🥰🎉🎉🎉 ぜひこの理解をご活用くださいませ🤩🎉
@shinsokayborg
@shinsokayborg 6 ай бұрын
クエリとキーとバリューのところ 一体どうなってしまうのか ドキドキしていましたが ものすごく わかりやすい説明で助かりました。
@AIcia_Solid
@AIcia_Solid 6 ай бұрын
ご視聴コメントありがとうございます!🎉 そう言っていただけるととても嬉しいです😊 ぜひこの理解をご活用くださいませ🥰
@GL-Kageyama2ndChannel
@GL-Kageyama2ndChannel 3 жыл бұрын
まさしく、「AIcia Solid is All You Need」な、内容でした😄
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
わーい! ありがとうございます!😍🎉
@zumi4229
@zumi4229 2 жыл бұрын
ギネス級に分かりやすい… 世の中の書籍が売れなくなるレベルや🥹 いつも困った時にアリシアさんの動画見て解決してます🙇
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
ご視聴コメントありがとうございます🎉 お褒めに預かり嬉しいです😊 ちなみに私はアイシアです! お見知りおきを😋✌️
@burny9451
@burny9451 3 жыл бұрын
とても分かりやすかったです。さすがですね!
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
それはよかったです! よき Transformer ライフを!!!😍🎉
@kone2018
@kone2018 Жыл бұрын
この手法思いついたやつ天才すぎやろ たくさんある操作の中から、今の所これが一番うまくいくんやろ? 本当にすごいな もっとすごいと思うのが、人間の頭の中でも同じようなことをしてることよな
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ですね😎✌️
@からあげ-s8f9c
@からあげ-s8f9c Жыл бұрын
重み行列って入力を回す役目だったんですね、、、定性的にもとてもわかりやすい説明ありがとうございます!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございますー(^o^) 私はそうだと理解しています!うまく比較するための線形変換なんだと思います😊
@齋藤優-j7s
@齋藤優-j7s 2 жыл бұрын
素晴らしい動画をありがとうございます。 9:16辺りで、「入力単語列をベクトルの列に」とありますが、入力する行列の列に単語をベクトル化したものが入っていて、行数が単語数になっているのか、もしくはその逆なのかどちらでしょうか、、、? ご回答いただけると幸いです。
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
ご視聴コメントありがとうございます😍🎉 実装依存なのでなんとも言えません! どちらのパターンもあるのではないかと思います。 少なくとも私が確認した範囲では、Transformer の原論文(の中の数式)では、行ベクトルが分散表現で、それが縦に単語数分だけ並んでいる感じになっています!
@齋藤優-j7s
@齋藤優-j7s 2 жыл бұрын
@@AIcia_Solid 早速、回答いただき、ありがとうございます! 理解が深まりました😆
@mirai6964
@mirai6964 2 жыл бұрын
神授業です。本当にありがとう!
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
それはよかった! ぜひご参考にしてください!(^o^)
@tkmtyshr
@tkmtyshr 3 жыл бұрын
つい最近このチャンネルを知り、以降ずっと勉強させて頂いております。もちろん高評価ボタン連打させて頂いてます。 私自身は自然言語処理やらAIやらには縁遠い、構造生物学の研究者なのですが、 この業界はここ数か月、DeepMind社の開発したAlphaFold2というAIの話題で騒然としております。 生物の機能を支える蛋白構造を、実験と同等の精度で予測できるという化け物AIなのですが、 その論文中で中核技術とされている "Evoformer" なるものが、 "Transformer" なるものをベースにしたもので、それは "Attention" である、と。 さっぱり意味が理解できず苦労していましたが、おかげで「何をやろうとしているのか」は、何となく理解できるようになりました。 今後も新作を期待しております。
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
それは良かったです! まさに、Yoshihiro Takamatsuさんのような方に届けーと思って動画生成したので、とても嬉しいです! 私にとっては生物の知識がないので AlphaFold2 の論文を読むのはけっこう大変なのですが、いつか動画にしたいなと妄想しています。 気長にお待ち下さい!
@コナン-o8d
@コナン-o8d 3 жыл бұрын
分かりやすすぎて驚きました。 Multi-Head Attention でQ,K,Vを行列の積で回転させるというお話がありましたが、NNで非線形変換したベクトルなどでも代用できると思いました。 行列積である必要はないという理解でよいでしょうか?
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
でしょー!(^o^) ご視聴ありがとうございました🎉 理論上は、行列積である必要はないとは思います。 ただ、 Transformer の強みは、並列計算可能性にもあるので、その強みは失わない範囲の方がいいような気はします🤔
@ほためんでぃー
@ほためんでぃー Жыл бұрын
いつもわかりやすい説明ありがとうございます! Transformerにおいて、Encoderに入力を行う(input)のは当たり前に理解できるのですが、DecoderにEncoderでの出力以外のインプットがあることが腑に落ちません。。 例えば、 「私 は アイシア です 。」 という文章があり、それを 「I am AIcia .」 と翻訳する場合のEncoderの入力は 「私 は アイシア です 。」で、Decoderの出力は 「I am AIcia .」 となると思うのですが、この時のDeciderの入力は何になるのでしょうか?
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます!🎉 Decoder の入力は、 I am Aicia となります。 たとえば、Aicia を推論するときは、その直前までの I と am (と という文頭を表す記号)を入力します。 これによって、「今まで何を出力してきたか」を元に、次に何を出力するかを推論することができます。 生成系言語モデルではよく使われるテクニックです! このあたりは、ノリとしては、ここで解説しているものが近いと思います! (細部はやや違いますが、ノリは一緒) kzbin.info/www/bejne/hHvHo4ysjsyUhq8
@ほためんでぃー
@ほためんでぃー Жыл бұрын
@@AIcia_Solid ご丁寧にありがとうございます! Decoderの入力に関して理解できました!本当にアイシアさんのおかげで、統計の勉強が楽しいものになっています。これからも参考にさせて頂きます。
@AIcia_Solid
@AIcia_Solid Жыл бұрын
それは良かったです! そんな言葉をいただけて私も嬉しいです!😍🎉🎉🎉 これからも良き動画を生成できるように頑張りますので、応援いただけると嬉しいです。 よろしくお願いします!🎉
@strawberryfield891
@strawberryfield891 3 жыл бұрын
いつもお世話になっております! 一つ確認させていただきたいのですが、13:49頃で仰っている「単語の次元のベクトル」というのは、「ボキャブラリーサイズの次元のベクトル」という理解で合っていますでしょうか?
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
その通りです!🎉 (正確には、記号があったり subword を使ったりなので、 token 数の次元の方が良いかもです)
@ocean-m5z
@ocean-m5z Жыл бұрын
positional encodingで三角関数が使われている理由をぜひ教えてください! 文書中に出てくる場所をそのままベクトルの要素に加える(i番目の単語ならベクトルの一番最後の要素にiをくっつける)とか、対数関数などその他の関数を利用するとかではどうして駄目なのか知りたいです。
@AIcia_Solid
@AIcia_Solid Жыл бұрын
三角関数と考えるより、2次元ベクトルが d_model / 2 個並んでいると考えるのが良いかと思います。 この2次元ベクトルは、token 位置に応じて、それぞれの速さで回転しています。 Multi-Head Attention (のなかにはる Scaled Dot-Product Attention)は、内積で関係性を見ています。 内積を見ているということは、ラフに言えば、角度を見ているということなので、 一定の速度で回転しているベクトルの内積を見ることで、token の間の距離がどの程度離れているかを、 その token の位置によらず判断することができます。 このような特性を持っているため、三角関数(というより、それぞれのペースで回転しているベクトルたち)が使われていると考えられます!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
鋭くて素敵なコメントですね!! ありがとうございます!!!!!🤩🎉🎉🎉
@msykokb9050
@msykokb9050 3 жыл бұрын
色々サイト見てきましたが、一番分かりやすかったです。 素晴らしい動画ありがとうございました。 機械学習素人で特に、Q、K同じ入力のはずなのに数式上なぜ類似度求めてるのかが ずっと疑問でしたが、31:50辺りでそこを解説して下さっていて、私にとっては非常にためになりました。 詰むポイント?を丁寧に解説してくださり、とてもありがたかったです。
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
わーい!それはよかった! お役に立てて光栄です!😍🎉🎉🎉 すごいんですけど謎も多い論文ですからね🤔🤔🤔 そういう部分を受信いただけて嬉しいです!🎉
@夢のまた夢-i8o
@夢のまた夢-i8o Жыл бұрын
とても分かりやすい解説ありがとうございます! 質問なのですが、こちら(kzbin.info/www/bejne/mIHHqqh_mseLja8&pp=iAQB) で紹介されているAttentionと論理的・思想的にどのようなつながりがあるのでしょうか? 「注目すべき情報を適切に選べる」というのが、Attentionという思想であって、その手法はまったく異なるという理解であってますでしょうか? Multi-Head Attentionを理解するために上記Attentionの動画も見たのですが、両者の関係性が分からなくなってしまい…
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます!🎉 まさに、そんな理解で良いと思いますよ! 最後に softmax を使って重みを計算するのは流石に両者共通で、 その softmax に入れる数値をどう計算するかが異なると、そういう理解で良いのではないかと思います。 あと、加えるとしたら、Attention is All You Need という論文タイトルにもあるように、Encoder も Attention 機構で計算し、RNN を用いないことは、Transformer の大きな特徴かと思います!
@りょう-b5n8c
@りょう-b5n8c Жыл бұрын
神授業ありがとうございます。 ViTも解説して欲しいです!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます🎉 ぜひこの理解をご活用いただけると嬉しいです!🎉 ViT はやりたいことリストに入っております! が、ちょっと先になりそうです🙇‍♀️ お急ぎの場合は、ぜひ、論文や他の資料をご覧くださいませ🙇‍♀️🙇‍♀️🙇‍♀️
@自家撞着
@自家撞着 3 жыл бұрын
楽しみ〜
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
是非お楽しみを!!
@napoupai1152
@napoupai1152 3 жыл бұрын
とてもわかりやすく、勉強になりました。特にMulti-head-Attentionについてわからなかったところがすっきりしました! 質問なのですが、論文を見たところEmbedding層では学習済みの単語分散表現を使っていると書いてあったのですが、こちらはword2vecなどで得られた単語分散表現を使っているのですか?
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
うーん、私も論文にかいてあること以上はわかりません🙇‍♀️🙇‍♀️🙇‍♀️ もしわかったらお教えください!
@uchuu-neko
@uchuu-neko Жыл бұрын
動画すごく面白かったです 質問があります ローカルLLMを動かしていると同じ文章が繰り返し出力され続けることがありますが、MHAで死ぬほど複雑な計算をしているのにそのような繰り返し(あるいは収束のようなもの?)が起こるのはqを分割してある意味近視眼的になっているからなのでしょうか? ChatGPTなど大規模なモデルではあまり見ない現象のため(クワインなど意識的なプロンプトは除いて)計算の規模によるものなのかなあと想像していて、この動画の説明を聞いて上のように考えました
@AIcia_Solid
@AIcia_Solid Жыл бұрын
あるあるですよね😇 ChatGPT でうまくいってる理由は良くわかりません。 たぶん、RLHF の段階で、繰り返しが抑制されているのか、 はたまた、学習時や推論時になにか工夫が入っているのかも知れません。 vanilla な言語モデルで繰り返しが出るのは、ある程度仕方ないと思います。 言語モデルは、前までの単語列から次の単語を予測しますが、たまたま似た内容を2度出力し始めてしまったら、「前までの」が似通ってくるので、ずーっとそのループから抜けられなくなることもよくあると理解しています!
@uchuu-neko
@uchuu-neko Жыл бұрын
@@AIcia_Solid ありがとうございます 最近VSCodeの拡張でELYZAさんのCodeLlama日本語版を使っていて、コード生成は概ねうまくいくものの自然言語を用いるQ&Aがうまくいかないのでモデルのせいかパラメータのせいか悩んでいました 原理的にはしょうがないとのことで、ある程度諦めることにします
@AIcia_Solid
@AIcia_Solid Жыл бұрын
なるほど! それをやっていたのですね! おそらく、ネット上に、たくさんの試行錯誤の記事があると思われるので、参考にされると良いと思います!!!🎉
@user-tz3gv8vs3f
@user-tz3gv8vs3f Жыл бұрын
いつもありがとうございます! ここまで詳細にわかりやすくAttentionについて解説している動画や記事はなかなかないので本当に助かります! 質問なのですが、softmaxの入力でQK^Tを√d_kで割る部分がいまいち理解できません。ベクトルが長いとはどういうことなのでしょうか? また、Attentionの出力のところでqとk_iが似ていれば出力はほぼv_iになるとのことでしたが、似ているベクトルが複数あった場合にそれらが足されてよくわからない出力になるのではと思いました。 以上のことについてご返信をいただけたら幸いです。
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます! 楽しんでいただけたようでとても嬉しいです😊 頂いたご質問にお答えしますね! √d_k は定数なので、あってもなくても数学的には変わりません。 ですが、実際には、学習の挙動が変わります。 背景として、次元が大きいベクトルの内積は値(の絶対値)が大きくなる傾向にあります。 じっさい、各成分が平均0、分散1の正規分布になっている d 次元ベクトルの内積は、期待値は0なのですが、分散は d になります。 というわけで、内積の大きさのばらつきは次元によって変わるわけですが、 次元が高いと、パラメタが初期値のときの内積の値が大きくなりすぎて、出力がめちゃくちゃになり、学習がまともに進まない現象が起こってしまいます。 そのため、これを防ぐために、√d_k が利用されています。 2つ目の質問です! q と k のペアで、似てるものが複数あれば、出力は対応する v を混ぜ合わせた(係数つけて足した)ものになります。 なので、よくわからないといえばよくわからないものではありますが、なんとなく複数の単語の意味を混ぜ合わせたものが送られると考えると、理解がしやすいかもしれません。 以上です! またなにか質問があればお教えください!
@user-tz3gv8vs3f
@user-tz3gv8vs3f Жыл бұрын
@@AIcia_Solidありがとうございます! 理解が深まりました!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
それは良かったです! また何かあればいつでもご質問ください!🎉
@moyamoyamoyamoya
@moyamoyamoyamoya 3 жыл бұрын
めっちゃ分かりやすかった!ありがとう
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
どういたしまして! ぜひ色んな人に紹介していただけると嬉しいです!🎉
@しゅん-f2j1e
@しゅん-f2j1e Жыл бұрын
めちゃくちゃ分かりやすかったです!!けど何点かまだ疑問があるので以下に書きます!(deep learningを学び始めてまだ数週間ですので、的外れな質問でしたらすみません) ・結局アテンションへの入力Q,K,VはXを線形変換することでできてて、その線形変換する行列(Wたち)は学習していると思います。そうなると、なぜQ,K,Vが動画のような解釈になるのかが分かりませんでした(目的関数からそう考えられるのでしょうか??) ・推論時におけるデコーダーへの入力は、いままで推論した翻訳後の文章でしょうか?だとするとMHAにマスクをかけるのは、一度推論した単語の確率を変更しないためですか?(例えば5単語目までデコーダーの出力が得られているとして、maskをかけないと1単語目の予測に2〜5単語目までの情報が入り、SOSしか持っていなかった時の出力と異なってしまう) ・そもそも、一般的なencoder-decoderモデルのような潜在表現がないモデルなのでしょうか。エンコーダーの出力が、source-targetアテンションにしか利用されないモデルと言えますか?
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます! とても深く学ばれているのですね、素敵ですね! 以下、質問にお答えします! Q1. なぜQ,K,Vが動画のような解釈? 先にお答えしますと、「事実としてそうなっている」かは不明です。ですが、少なくとも「そういう設計思想でこの数式が組まれている」のは正しいと思われます。(論文にそういう説明があるので!) Encoder では Q, K の役割は対象なので、必ずしも query と key になっているかはわかりません。 ですが、Decoder の方では、Q が1つ前の層からの入力であるのに対し、K, V が Encoder の出力となっているので、 Q の処理にふさわしい V を、K を使って持ってきているという解釈がわかりやすいのではないかと思います。 Q2-1. 推論時におけるデコーダーへの入力は、いままで推論した翻訳後の文章でしょうか? はい、そうです。 Q2-2. だとするとMHAにマスクをかけるのは、一度推論した単語の確率を変更しないためですか? はい、そうです。 加えて、言語モデルは、今までの単語を条件として、次の単語の確率を推論する、条件付き確率の計算モデルなので、後続の単語の影響を排除するというのは、(当時も今もある意味)自然な発想と思います。 Q3. 一般的なencoder-decoderモデルのような潜在表現がないモデルなのでしょうか。エンコーダーの出力が、source-targetアテンションにしか利用されないモデルと言えますか? 両方 Yes と理解していいと思います。(「潜在表現とは何か」という半分哲学的な問いに足を突っ込むので、立場によるというのが正確ですが、、、) Transformer の論文タイトルである "Attention Is All You Need" と言う主張は、(基礎的な)Encoder-Decoder の RNN や、それに補助として attention を加えるのではなく、 そもそも attention のみでいいのだ。 という主張です。 なので、通常、頂いた質問には、Yes と答える理解で良いと思います。 ======== 以上です! この回答や、他にご質問があれば、またどしどし聞いていただけると嬉しいです! よろしくお願いします!
@しゅん-f2j1e
@しゅん-f2j1e Жыл бұрын
@@AIcia_Solid すごく早いご返答ありがとうございます😂ものすごく分かりやすいです! なるほど, 設計思想が先にあって数式に落とし込む, という流れで考えると面白いですね。 >>Q の処理にふさわしい V を、K を使って持ってきている すごくこの表現にしっくり来ました! 加えてXを使ってKやVを作っているため, KやVは(でたらめなベクトルでなく)文章内の単語を基底としたベクトルと考えられて, だから文脈や文法を汲み取れるのかなあと思いました! ありがとうございます!推論時のアルゴリズムを全然理解できず, やっとスッキリしました笑 やはりそうなのですね, 今まで知っていたモデルとはかなり異なっていて理解に時間かかりました😅 浅い感想ですが論文タイトルものすごくかっこいいですね笑
@AIcia_Solid
@AIcia_Solid Жыл бұрын
こちらこそ、素敵な質問をありがとうございます!🎉 じつは、このあと、○○ is all you need っていうタイトルの論文が一時期流行しました、、、(笑) (内容まで大粒なものは必ずしも多くありませんでしたが、、、) それだけかっこよく、また、大きな影響を与えた論文だと思います!
@user-boobooboo
@user-boobooboo Жыл бұрын
Positional Encodingの加法定理が〜〜っていう話、聞きたいです!!!!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます! 聞きたいですか、そうですか、そうですよね😎 検討します! 動画が無理なら blog とかでの公開も含めて!🙇‍♀️ ご意見いただきありがとうございます!🤩
@Nekoneko0319
@Nekoneko0319 Жыл бұрын
質問失礼します。Attentionの関数の中のW行列3つ(キー、クエリ、バリュー用)があると思うのですがこの行列をTransformerは学習するということで良いのでしょうか? またWの初期値はランダムですか?
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます! はい、まさに、それらの行列(や他のパラメタ)がデータから学習されます! W の初期値もランダムに決められております!
@Nekoneko0319
@Nekoneko0319 Жыл бұрын
@@AIcia_Solid 返信ありがとうございます!スッキリしました!
@Nekoneko0319
@Nekoneko0319 Жыл бұрын
​@@AIcia_Solid これもお答えいただけると有難いのですがTransformerの訓練データは和▶英の学習であれば「ある日本語の文章と、それを人間の手で翻訳した英語の文章」ということですよね?初歩的な質問ですみません🙇‍♂️
@AIcia_Solid
@AIcia_Solid Жыл бұрын
スッキリしていただけてよかったです! 学習用のデータは WMT 2014 (という名前のデータ)などの対訳データが用いられていますが、その具体的な作り方までは分かりません🙇‍♀️ 私が調べていないだけで、論文を当たれば(または Claude などの AI に読んでもらえば)わかるかと思います!
@ponzupudding
@ponzupudding Жыл бұрын
非常に分かりやすくためになりました! これからもお世話になります!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ぽんさん、ご視聴コメントありがとうございます!(^o^) ぜひ、この理解を活用してくださいませ!🤩🎉
@doggy9745
@doggy9745 10 ай бұрын
質問させていただきます。 低レベルな質問ですがさせていただきます。 質問は、Encoder層を繰り返した時の解釈です。 CNNは畳み込み層を繰り返すと、より抽象的で複雑な構造を捉えられるようになりますが、transformerではEncoderを繰り返した時(つまり、内積とソフトマックス関数による重み付けを繰り返すと)どのような解釈になるのでしょうか??
@AIcia_Solid
@AIcia_Solid 10 ай бұрын
ご視聴コメントありがとうございます!🎉 全く低レベルではない、すごく本質的な質問かと思います! はじめはなかなか難しいかもしれませんが、質問のレベルも徐々に把握できると良いかと思います🎉 こちらに関しては、私はあまり詳しくありませんが、LLM を Fine-Tuning したり LoRA などやっている界隈では、各層で何がされているかが実践知が溜まっているらしいので、その界隈を探して覗いてみるのが良いのではないかと思います!🎉
@doggy9745
@doggy9745 10 ай бұрын
@@AIcia_Solid ありがとうございます。そちらも覗いてみようかと思います。少し話は変わりますが、CNNベースの物体検知は理解できたのですが、transformerベースのDETRがわかりづらいです笑 もし今後機会があればご解説していただけると非常に嬉しいです!(現在強化学習を拝見させていただいてます)
@AIcia_Solid
@AIcia_Solid 10 ай бұрын
リクエストありがとうございます! そして、強化学習もご覧いただきありがとうございます🎉 深層学習は、強化学習が終わってから再開しようと思うので、約2025年からの予定です。 それまでのんびりお待ちいただけますと助かります。 よろしくお願いします🎉
@おた-p6l
@おた-p6l 2 жыл бұрын
Multi-head attentionでは入力X を行列で変換することで,Q,K,V を入力しているとのことでしたが,Scaled dot product attention では,QとKとV はどのように入力しているのでしょうか?Qは入力そのものだと思いますが,KとV は何がどのように入力されているのでしょうか?
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
ご視聴コメントありがとうございます!🎉 よいしつもんですね! これは論点を分離して考えるのが良いかと思います。 Multi-Head Attention (MHA) では、X を回転してから scaled dot-product attention に入れています。 その部品たる scaled dot-product attention は、何か知らないけど用意された Q, K, V に対して、結果を出力する機会です。 scaled dot-product attention は入力に agnostic に処理をする存在で、 MHA はその scaled dot-product attention にいい感じに入力し、出力をいい感じに束ねているものになっています。 そんな感じです。 伝わりますでしょうか?👀
@NISHI000d
@NISHI000d 3 жыл бұрын
これは期待!
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
是非ご覧ください!!!
@34562724ba18
@34562724ba18 2 жыл бұрын
Encoder部分でもDecoder部分でも、Feed Forward Networkが使われていますが、こちらを2層ではなく、3層、4層と増やしていくと、(少なくてもこの部分では)よりうまく表現できるようになるのでしょうか?そうだとするなら、2層にしているのは計算量の都合でしょうか?
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
素敵な質問ですね! 素敵な質問すぎて、私にもわかりません🤔🤔🤔 正確には、実験するか、研究者に聞いてみるしかないと思うのですが、 私が想像するに、2層にしているのは、なるべく浅めで、なるべく非線形性を導入するためじゃないかなーなんて思います。 普遍近似定理でも2層ですし、そういったからみかなーと想像します。 ただ、実際のところはわからないので、実験してみたりするのが良い気がします! (あと、やはり、パラメタ数や推論速度の都合はあると思うので、それで2層なのかもしれません🤔)
@yuya9623
@yuya9623 Жыл бұрын
いつもありがとうございます。本当に助かっております。 とても初歩的な質問なのですが、このアルゴリズムを組んで実際に動かす時の様子がうまくイメージできていません。 自分のイメージでは先に学習したデータがあって(重要なパラメータ【W(係数)】やKEYとVALUEの対応表みたいなものが決まっている)、それをもとに翻訳したい入力を行うと欲しい訳が出てくる って感じなのですが、マルチヘッドアテンションだと全部Xを入力して、QUERY、KEY、VALUEを得るとなっていて、完全にハテナ?になってしまいました。 この機構が沢山の文を読み込みながら学習して、少しずつデータ(係数とか)をブラッシュアップしながら次の文を訳していき、進化(データの蓄積)をし続けるという感じなのでしょうか? 質問がわかりにくくて申し訳ないです。その辺の概要がわかる動画を作っていらっしゃったら教えていただきたいです。
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます!🎉 なんとなく、学習と推論を分けて考えるのが重要な気がしています。 このシリーズの1本目、2本目はいかがでしょうか?👀 m.kzbin.info/www/bejne/iaq6qKKDpbWShpY m.kzbin.info/www/bejne/iH3PhaCYrq-CiK8 これもかなり短く説明しているので、よく分からなければ、一般的な機械学習の教科書を見てみると良いかもしれません!
@yuya9623
@yuya9623 Жыл бұрын
@@AIcia_Solidとてもお忙しいそうなところ、 ご丁寧にありがとうございます😭 順番に勉強してきます!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ぜひぜひ!(^o^) また分からなかったら聞いてくださいね!🎉
@yukio_takagi6429
@yukio_takagi6429 3 жыл бұрын
毎回ありがとうございます。行列wを使って、様々な角度に入力Xを変換してますが、EncoderのMultiHeadAttentionはVが注目する意味合いということでしょうか?またこの時の各々のベクトルv1, v2, vmというのは、各単語の意味(例えば未来を表す等)ように捉えればよいものでしょうか?
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
ご視聴コメントありがとうございます! うーん、たしかに、Vはどういう意味なんでしょう? 何となく、深さによって抽象度も変わってくる気がします。 深い層でのVはかなり意味的な気もしますが、想像するに、他のところは処理途中で、 Positional Encoding の影響が残っていたり、意味になる前段階だったり、次誰に注目するのかをうまく見極めるためのベクトルだったりするのかもです。 ちょっと私は確固たることは言えないです。 そういう研究がないか探してみると楽しいかもしれません!
@minazemi3333
@minazemi3333 2 жыл бұрын
Attentionの動画から視聴してます! いつもわかりやすくて非常にありがたいです。 ありがとうございます。 質問なのですが、22:30あたりでベクトルの類似度を計算しているQKだが、次元が高くなると値が大きくなってしまうため、純粋な類似度を計算する為にroot(d)で割るという話があったと思うのですが、どうしてroot(d)で割ると純粋な類似度が計算できるのでしょうか? 以下は駄文です… これはroot(d)で割ることにより正規化をしているということですよね…?なんとなくroot(d)を標準偏差的な扱いをしているのかなとも思ったんですがそれによってどうして正規化できるんだ…?と考え続けて夜も眠れません。
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
ご視聴コメントありがとうございます! 純粋な類似度を計算する、、、というわけではなく、 次元が変わっても類似度のスケールが変わらないようにするために√dで割っているのだと思います。 (細かいことを言うと色々謎な点もありますが、このあたりは正則化の強さとも関連するところで、おそらく実際に学習させる実験なども行った結果、導入されているのだと思います。)
@minazemi3333
@minazemi3333 2 жыл бұрын
@@AIcia_Solid なるほど…。ありがとうございます!
@differenthuman6412
@differenthuman6412 2 жыл бұрын
非常にわかりやすい解説動画ありがとうございます。大変勉強になりました。 29:10付近の内容で、ひとつ気になった事があるので質問させていただきます。 Multi-Head AttentionにおけるW_Oの重みを掛ける操作の必要性(意味)を教えていただけますでしょうか。 単に著者が定義したものであり、天下り的に受け入れるべきものなのでしょうか。 私の理解では、Concatした時点で次元数は元に戻っていると解釈しています。 ※例えば論文中ではd_model=512、h=8となっており、Scaled Dot-Product Attentionを行った後にConcatした時点で出力の次元が512に戻っているという解釈です。(64×8=512) それならばLinearレイヤーを通す操作(W_Oを掛ける操作)を行わなくても良いのでは?という疑問です。 この分野を学び始めて日が浅いため、頓珍漢な質問でしたらご容赦ください。 よろしくお願いいたします。
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
ご視聴コメントありがとうございます! この疑問素敵すぎます! 私もそう思います!!!!!!!!!!!! W^Q, W^K, W^V がこの後かかりますもんね、、、! 数学的には不要だと思いますが、実際に不要かどうかは私では分かりません、、。最適化上の都合もあるのかも、、、? と想像していますが、謎です。 もし何かこれについて言及されたものを見つけたら私も知りたいです!😍
@differenthuman6412
@differenthuman6412 2 жыл бұрын
@@AIcia_Solid ご返信ありがとうございます。 やはり数学的には不要な気がしますよね。 自分でももう少し深く調べたり考えてみます…。 何かわかったらお知らせしますね!
@jaitjait3720
@jaitjait3720 3 жыл бұрын
天才ですね…めちゃめちゃわかりやすかったです。 最後の①と④の行列部分は、自分で設定できるのか気になりました!
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
でっしょー!😍🎉 ご視聴いただきありがとうございます!(^o^) ①、④は、無理矢理自分で設定することもできるとは思いますが、ここを学習で得ることが深層学習の根幹なので、あまり手で設定するメリットはない気がします、、、!
@にぶたん-l7m
@にぶたん-l7m 3 жыл бұрын
つい最近aliciaさんのことを知りましたが、このレベルの解説をタダで聞けるなんて、、、素晴らしいです。 Scaled Dot-Product Attentionの解説が特に分かりやすかったです。成る程、類似度により検索しているのですね。 ところで、multi-head attentionのクエリとキーが同じもの(区別できない)ように見えるのですが、それはいいのかな? 初期値が違うから? その辺は論文読めば分かるんですかね
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
おほめに預かり光栄です😊 Multi-Head Attention の query と key は、たしかに、(Encoder のものと Decoder の1段目は)区別つかなさそうですね。 本質的には、回転して比較するということなので、区別つかなくても問題ないのかもしれません!
@niruru9560
@niruru9560 3 жыл бұрын
BERT~GPT3(特に、GPT3がなぜ、翻訳から分類などいろいろなタスクで汎用的に利用できるのか?)が知りたいです。
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
後々紹介します(^o^) お楽しみに!
@ynnmikasa3547
@ynnmikasa3547 2 жыл бұрын
いつもわかりやすい動画ありがとうございます! 質問ですが、「W^Qで回転されたXとW^Kで回転されたXが類似するようなXを重点的にW^Vで回転されたXを取り出す」といったような構造になっていると思いますが、「回転されたX同士での類似度」を基準にするのであれば、「回転されたXとそのままのXの類似度」を基準にしても数学的には違いが無いように思えますが、パラメータ数を増やしてまでそうする利点はあるのでしょうか?私の理解が間違えていたり、わかりにくかったら申し訳ありません。 とはいえDecoderでのAttentionには両方での回転が必要だと思いますが。 追記:すみません!解決しました!TransformerにおいてはMultiなattentionとなるため、一回LinerでXを低次元空間に写像して、二つの行列を掛けることで表現力が増えるということで、自己解決しました!
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
ご質問いただきありがとうございます!!🎉 素敵な疑問だと思います🎉🎉🎉 おっしゃるとおりの事情があります! それに加えて、数学的には等価でも、行列席を挟み込むことで学習ダイナミクスが変わることもあります。(要するに、学習の速さや、最後の精度が変わったりする) そういうことも含めていろんなアーキテクチャが検討・提案されているという側面もあるかと思います!
@ynnmikasa3547
@ynnmikasa3547 2 жыл бұрын
@@AIcia_Solid なるほど!ありがとうございます!
@ken8392
@ken8392 3 жыл бұрын
21:50の「次元の高いベクトルは長い」という日本語がよく分かりません... 要素の分散が大きくなるからsqrt(d)でスケーリングしていると理解しているのですが、私の認識は合ってるでしょうか?
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
そのままの意味のことが起こります。 次元の呪いや球面集中現象などと調べてみると色々出てきます! 直感的には、全ての成分が標準正規分布に従うd次元ベクトルは、その長さの2乗の期待値が d になるので、次元が高いほど長いということが起こります😮
@ken8392
@ken8392 3 жыл бұрын
@@AIcia_Solid 調べてみます!
@NISHI000d
@NISHI000d 3 жыл бұрын
動画乙。5:25 親の顔より見たモデル(コロナ渦)。 TransFormerはいろいろ記事があるけど、やっぱこの動画はわかりやすい。適用モデルが広く、精度も良い。本当、(計算リソースが潤沢であれば)つよつよモデル。
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
おほめに預かり光栄です😊 計算量があればあるほど強くなれるってのもすごいですよね😮
@kimata9002
@kimata9002 3 жыл бұрын
ありがとうございます!
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
どういたしまして!🎉
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
すみません!!!🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️ いま、このコメントが Super Thanks であることに気づきました!🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️ とんでもない大金をご支援いただきましてありがとうございます。 たくさんの価値を感じていただけたようで嬉しいとともに、とても気持ちが引き締まります! 今後とも良き動画を生成できるようがんばります! 応援よろしくお願いします!🔥🔥🔥
@さんねこ-p3b
@さんねこ-p3b 2 жыл бұрын
multi-head attentionでQ,K,Vが同じ入力を元にしている意味は何なんでしょうか?それぞれに行列かけてから類以度計算するんだとしたら最初から別の入力を用いても問題ない気がしちゃいます。
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
素敵なアイデアですね! 実際、 Transformer の Decoder では、Q と K, V が異なる入力になっていますよね。 そのアイデアが新しい発見になる可能性もとてもあると思いますので、色々考えて試してみると良いかと思います!
@rss6370
@rss6370 2 жыл бұрын
position wise ffnはどういう意味があるのでしょうか?attentionの説明はネットでも多くあるのですが、それ以外がよくわかってないです...。(損失関数なども)
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
position-wise ffn では、attention で集めた情報を再び処理して次のブロックに渡しています。 通常の深層学習同様、この層ひとつひとつで少しずつ情報を処理して、出力に近づけているのではないかと想像しています!👀
@rss6370
@rss6370 2 жыл бұрын
@@AIcia_Solid 返信ありがとうございます! attentionで集めた情報だけでは出力としては最適ではないからffnで出力の最適化を行っているという認識ですかね?
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
そうですね、さらなる変換を加えることで、より処理を勧めているのだと思います!
@ember-w2e
@ember-w2e 11 ай бұрын
Thank you so much🤓
@AIcia_Solid
@AIcia_Solid 10 ай бұрын
Thank you for your watching and comment! Welcome!🎉
@まぬる-b7b
@まぬる-b7b 2 жыл бұрын
位置エンコーディングでの「何番目」というのはテキトーに決まるものですか? 文中の順番とかも関係ありますか?どなたか教えていただきたいです・・・
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
もちろん文章の中での登場順で決まります!
@まぬる-b7b
@まぬる-b7b 2 жыл бұрын
@@AIcia_Solid ご本人!!ありがとうございます神!!
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
だいたいぜんぶ質問にはお答えしてます😋 また何かあれば聞いてください!(^o^)
@reotail0105
@reotail0105 2 жыл бұрын
めちゃくちゃ分かりやすく勉強になりました。 いまいち分からないのが29:10のhead_iは横ベクトルと説明なされてましたが、scaled dot productの説明から行くと横ベクトルが縦に並んだ行列と思ったのですがどういった理解が正しいのでしょうか?
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
ご視聴コメントありがとうございます! concat(head_i) は、横ベクトルを横に並べるという理解が正しいです! ここは、短い(低次元)ベクトル head_i をたくさん並べて長い(高次元)ベクトルを作る操作なので、 縦に積み上げるのが正解です。 あまり真面目に話していませんでしたが、Transformer では512次元のベクトルを64次元 x 8に分割して scaled dot product attention やって、結果の64次元 x 8をまたくっつけて512次元にする 的な操作が行われています!(次元数はバージョンによっていろいろです)
@reotail0105
@reotail0105 7 ай бұрын
@@AIcia_Solid1年半越しくらいにスクラッチから実装してやっと完全に理解できました。
@AIcia_Solid
@AIcia_Solid 7 ай бұрын
お久しぶりです! 勉強を継続されていて素敵ですね!🤩 おめでとうございます!ぜひその理解を活かしてあげてください😊🎉🎉🎉
@こひぎぬ
@こひぎぬ 3 жыл бұрын
いつも参考にさせて頂いております…! 質問なのですが,動画内でも少し触れられている通り,NNの書籍などでは重み計算の表記としてWxの場合とxWの2種類が見られますが,なんとなくミニバッチ処理を含む表記などを考えるとxWの方が(N×D)・(D×M)=(N×M)のようにミニバッチの次元Nが潰れないので都合が良いように思うのですが,このあたりの使い分けに何か意味はあるのでしょうか?
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
素敵な質問ありがとうございます!! うーーん、私は詳しくないのでわかりません。 数学的には等価だなぁとは思いますが、最適化の都合的に何かあるかもしれません🤔 もし何かわかったら教えていただけると嬉しいです!🎉
@masawad
@masawad 3 жыл бұрын
ちゃんと勉強しているわけではないので勘違い質問であればすみません。22分あたりのdについて、スケーリングしてからsoftmaxすることから、dはqueryの数だけ(n個)あるのだと思いますが、似た入力が入れば、dの算出にquery間の相関(類似度)を無視できなくなることはないのでしょうか?
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
d は固定値なので、 query ごとに算出されるものではありません。 (原論文では、 d = 512 などが利用されています) これで質問の回答になっているでしょうか?? 違ったら教えてください!
@masawad
@masawad 3 жыл бұрын
定数ですか! 定数だとすると、私なりに納得できる部分は、これから類似度の一種Vを求めるのだから、qの類似度を用いてdを算出するロジックだとすると循環構造になっちゃってまずいだろうなと思ったこと。逆に納得できないのは、softmaxするのに定数倍に意味があるのかなと。定数dはsoftmaxの引数だけに登場して、何か効果があるのでしょうか?
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
なにか混乱があるかもしれません。 「q の類似度」は計算していません。計算しているのは、「q と k の類似度」です。また、V は類似度ではありません。 また、d を算出することもありません。 なかなか複雑なところではありますが、動画を確認すると理解が進むかもしれません!
@masawad
@masawad 3 жыл бұрын
質問の本質が噛み合っていない!と思ったのですが、やっとわかりました。大変失礼しました、私が超基本事項を誤解していました。 dを定数(固定数)としたときに、ベクトルxに対して、softmax(x)とsoftmax(d*x)は異なるのですね! 私はうっかり、softmax関数の引数を定数倍しても不変だと信じていたので、上記質問になったのです。ご容赦ください。
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
なるほど、そういうことだったのですね! 解決したようでよかったです!!!🎉 全く何も気にしないでください。本気で前に進むときであればあるほど、いろんな勘違いはあるものです。 そして、気づいてしまえば単純なこともたくさんあるものですから、、、😇 こちらこそ、序盤に気づけずすみません。 今後もお役立ていただけると嬉しいです!(^o^)
@-_-plm2232
@-_-plm2232 2 жыл бұрын
multi head attentionの説明のときのQって行列ですよね?そしたらhead_iって行列になりませんか? 18:39の説明ではqはベクトルなので出力もベクトルになるっていうのは理解できるんですけど
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
たしかに!!!!! そうですね、Q が行列なら head_i も行列になります! おっしゃるとおりです!!!!!
@niruru9560
@niruru9560 3 жыл бұрын
Multi-Head Attentionの接続先のネットワークは、これ以外のCNNのようなネットワークでも良いのでしょうか?
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
深層学習の構成要素は、だいたい、入出力のテンソルのサイズがあっていればどれを繋いでもちゃんと動くと思います。 (精度が出るかは分かりません🤔)
@北野圭祐-o1s
@北野圭祐-o1s 3 жыл бұрын
今回も大変勉強になりました!! RNNによる逐次計算を無くす事が動機で一文しか使わないself-attention機構を複数備えたtransformerが生まれたんですね〜 そこで一つ質問なのですがtransformerのencoderでは単語を一括に計算でき逐次計算が不必要ですが、decoderでは一単語ずつ予測した結果を使うため逐次計算が必要なのでしょうか?
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
いつもご視聴コメントありがとうございます😍🎉🎉 まさにその通りです! Decoder はそういう仕組みになっています😋
@北野圭祐-o1s
@北野圭祐-o1s 3 жыл бұрын
多分解決しました!! 学習時はdecoderにインプットするのは教師データで、予測された単語でないため逐次計算は必要なく、全単語一括でattentionを計算できる。(そのためのmasked multi-head attention。) 推論時のみdecoder部分のインプットは予測された単語になるので、逐次計算が必要になる。 って事ですかね。
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
学習時の話は、わたしも論文に書いてあることまでしかわからないので、そのレベルの詳細についてはわかりません🙇‍♀️🙇‍♀️🙇‍♀️
@北野圭祐-o1s
@北野圭祐-o1s 3 жыл бұрын
ご返信頂きありがとうございます!合っていたようでよかったです😀 精進します!
@apatite530
@apatite530 Жыл бұрын
大変理解の助けになっております。素晴らしい動画ありがとうございます。一つ質問させてください。 Masked Multi-Head Attention についてです。 decorderモデルでは、推論した単語ベクトルが逐次入力されていくものと認識しています。ともすれば、後ろの単語情報って推論時入ってこないのでは...と疑問が浮かびました。 勝手な推測ですが、学習時に正解のシーケンスデータを一度に渡す都合上、後ろのデータにアクセスできる問題が発生する。これを防ぐための Masked Multi-Head Attentionなのかなと...?と想像しています。見当違いなことを言っていったらすみません。 これについて ご知見等あれば お教えいただけれますと幸いです。
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます!! まさに、ご指摘のとおり、 後ろの単語情報は、前の単語の推論時には入ってきません。 導入理由も、学習時のリーク(カンニング)を防ぐためです! 動画では軽くしか話していませんが、原論文ではそのあたりもしっかり書いてありますので、是非参考にしてみてください!
@apatite530
@apatite530 Жыл бұрын
@@AIcia_Solid ありがとうございます。霧が一つ晴れました。現論文の方見てみます!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ぜひぜひ! なかなか歴史に残る論文ですので、是非楽しんで!🎉
@yuki1228
@yuki1228 8 ай бұрын
ルートdで割る理由を教えていただきたいです。なぜ、ルートのでしょうか?
@AIcia_Solid
@AIcia_Solid 8 ай бұрын
ご視聴コメントありがとうございます! √d で割るのは、内積の大きさを標準化するためです。 各成分の大きさが平均0、分散1で独立なベクトル同士の内積は、平均0、分散dになることが知られています。 次元によって内積のスケールが変わらないようにするため、√dで割っているのだと思います!
@ねぎま-m5o
@ねぎま-m5o Жыл бұрын
めっちゃわかりやすかった!けどFNN層の役割がまだちょっと理解しきれてない。。。 K,Vがそれぞれ別々の変換行列を持っていて、そのパラメータを学習させることがAttentionとして機能するのどうしてだろ〜 パラメータあたりの表現力が高くなるから、とかなのかな。。。 そうだとしたら、FNN層も含めてになるけど、「Encodeする中で特徴ベクトル全体は複雑に変形されるほど表現力が高いから嬉しい」ってことになるのかな あと学習させるときは各変換行列Wはどうやって更新するんだろ。バックプロパゲーションするわけでもないし。。。元論文読もう。。。
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます!🎉 FNN は、多分ですが、非線形性をより強くするためあたりで入れてるんじゃないかと想像しています🤔 わたしの想像を超えて、真に、どういう役割なのかは、最新研究の範疇なので、論文を探してみるのが良いかもしれません、、! ちなみに、学習は、通常通り誤差逆伝播が使われています!
@宇佐見英晴
@宇佐見英晴 Жыл бұрын
GPT-nにどのように使われているか教えてください。
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます!!! GPT-n の動画も出していますので、是非そちらを見ていただければと思います!! m.kzbin.info/www/bejne/rXW7gYudo5qbjpY m.kzbin.info/www/bejne/aXO4nGqjqctkZq8 m.kzbin.info/www/bejne/eXO9iK2Hi8iLe5Y
@desucam7717
@desucam7717 3 жыл бұрын
BERTまってます!
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
BERT は間もなく来ます!
@窪田悠介-m2x
@窪田悠介-m2x 10 ай бұрын
エンコーダに入力する512次元のベクトルというのは、分析モデルのp160にあるような、512×1のBowベクトルのことでしょうか?(>_
@AIcia_Solid
@AIcia_Solid 10 ай бұрын
ご視聴コメントありがとうございます! ちょっと細部が違うので補足しますね! エンコーダーへの入力は one-hot vector です。なので、単語数次元(Transformer の現論文なら30000~40000次元です)のベクトルが入ります。 この出力が512次元のベクトルで、『分析モデル』本のp168からの word2vec で解説されている単語分散表現が得られます。 (ちなみに、Transformer についてはp202から解説があるので、ご参照ください。) 一旦以上にします。 この後も追加で質問が出るかと思いますので、何かあればまた是非ご質問くださいませ!
@窪田悠介-m2x
@窪田悠介-m2x 10 ай бұрын
​@@AIcia_Solid ありがとうございます!理解できました😂
@AIcia_Solid
@AIcia_Solid 10 ай бұрын
それは良かったです! また何かあればいつでもご質問ください!
@この顔にピンときたら-g8l
@この顔にピンときたら-g8l 3 жыл бұрын
来たー!
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
キマシタ━(゚∀゚)━!
@kone2018
@kone2018 Жыл бұрын
p横矢印 ではなくて、 pベクトル じゃだめなの? 異なる概念ってこと?
@AIcia_Solid
@AIcia_Solid Жыл бұрын
概念としては似ていますが、行列を右から掛ける時、左から掛けるときの計算の意味が異なるので、区別する必要があります。 一般的には縦ベクトルが多いですが、この動画では例外的に横ベクトルを用いるので、強調しておきました!
@Nagato624
@Nagato624 8 ай бұрын
無料で見ていいのか不安になる定期
@AIcia_Solid
@AIcia_Solid 8 ай бұрын
えへへ🤤 これで多くの人が技術を知ってくれて、それで明日の世界が良くなればいいなって思っています! (教育事業者にはダメージを与えている可能性があるので、それだけ申し訳ないですが、、、) もしどうしても課金したくてしたくてたまらなくなったらこちらへどうぞ😋 → community.camp-fire.jp/projects/view/709000
@勇気竹内
@勇気竹内 3 жыл бұрын
分かりやすすぎる… これが無料!?って驚きました…
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
ご視聴コメントありがとうございます!😍🎉 お役に立てて何よりです!(^o^)
@kone2018
@kone2018 Жыл бұрын
chat gptが流行る前に解説していたんか めちゃめちゃすごいな インターステラーを紹介すているだけの一発屋とは大違いやな
@AIcia_Solid
@AIcia_Solid Жыл бұрын
でしょ😎✌️ ちなみに、次は強化学習が流行りますよ😎😎😎
@kone2018
@kone2018 Жыл бұрын
@@AIcia_Solid そうなんですか? ありがとうございます!!
@AIcia_Solid
@AIcia_Solid Жыл бұрын
そうです、ロボットが来ますので😎 是非お楽しみに!(^o^)
@niruru9560
@niruru9560 3 жыл бұрын
待ってます。
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
お ま た せ !
@ogurahiroto9591
@ogurahiroto9591 3 ай бұрын
3:11
@AIcia_Solid
@AIcia_Solid 3 ай бұрын
ご視聴コメントありがとうございます🐑🪄
@hokkaido1114
@hokkaido1114 2 жыл бұрын
やるやん
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
でしょ😎
@ty55551137
@ty55551137 2 ай бұрын
😅?
@AIcia_Solid
@AIcia_Solid 2 ай бұрын
😎✌️
@luposX
@luposX 2 жыл бұрын
wtf
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
I hope you enjoy this 😋
@KK-zw7wg
@KK-zw7wg Жыл бұрын
全然解説になってない。なんか、とか、よく分からんけど、とか曖昧なところを濁してる。 最後の英語toドイツ語翻訳の例もわけわからん。Qがドイツ語なの?Qは入力じゃないの?ドイツ語入力してドイツ語出すの?は?
@AIcia_Solid
@AIcia_Solid Жыл бұрын
ご視聴コメントありがとうございます! ご意見いただきありがとうございます。ぜひ今後の参考にさせていただきたいので、解説になっていないと感じられた部分を具体的にお教えいただいても良いでしょうか? 後半の翻訳の例については、おそらく、もう一度見返していただくか、原論文をお読みいただくかすれば、より理解が深まるのではないかと思います。(現論文は概要欄に URL があります。) ぜひご参考にしてみてください!
@kochikyushu
@kochikyushu 3 жыл бұрын
なんでアバターが女?違和感ハンパない
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
そのうち慣れます😎✌️
@kochikyushu
@kochikyushu 3 жыл бұрын
@@AIcia_Solid 一通り真剣に見てたら結構なれてきました.新たな癖に目覚めてしまったのでしょうか.内容は圧倒的にわかりやすかったです!
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
ご視聴ありがとうございます!😍 Welcome to the New World!!!🎉
@クリーブランド-e5l
@クリーブランド-e5l 3 жыл бұрын
こんな話はネット上にしこたま転がってるから別に… 逆にsoftmaxの重みが斜線上になることの意味とかはみんな語らないけど、解説はやっても実際に学習やったことある人は居ないのかな
@AIcia_Solid
@AIcia_Solid 3 жыл бұрын
私は理論メインなので残念ながら学習を真面目にやったことはありません😇 そういう人があまりいないならチャンスですね! ぜひやってみてはいかがでしょう?(^o^)
@sxzaqwedcxs
@sxzaqwedcxs 2 жыл бұрын
ありがとうございます!
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
どういたしまして!(^o^)
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
すみません!!!🙇‍♀️🙇‍♀️🙇‍♀️ いま、このコメントが Super Thanks であることに気づきました!🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️ ご支援いただきありがとうございます!😍 今後の動画清静の励みになります!(^o^) 今後も良き動画を生成していきますので、応援よろしくお願いします!!!
@haro9407
@haro9407 2 жыл бұрын
ありがとうございます!
@AIcia_Solid
@AIcia_Solid 2 жыл бұрын
ご支援いただきありがとうございます! 今後とも良き動画を生成できますよう精進します!🔥 Transformer 動画は大作です!😍 ぜひご活用いただけると嬉しいです!!!
Из какого города смотришь? 😃
00:34
МЯТНАЯ ФАНТА
Рет қаралды 2,5 МЛН
The IMPOSSIBLE Puzzle..
00:55
Stokes Twins
Рет қаралды 170 МЛН
GPTとは何か Transformerの視覚化 | Chapter 5, Deep Learning
26:36
3Blue1BrownJapan
Рет қаралды 178 М.
【Transformerの基礎】Multi-Head Attentionの仕組み
37:47
Transformer誕生物語|Attention is All You Need
1:27:41
数理の弾丸
Рет қаралды 2,6 М.
The Elegant Math Behind Machine Learning
1:53:12
Machine Learning Street Talk
Рет қаралды 82 М.
Why Does Diffusion Work Better than Auto-Regression?
20:18
Algorithmic Simplicity
Рет қаралды 378 М.
高校数学からはじめる深層学習入門(畳み込みニューラルネットワークの理解)
55:35
予備校のノリで学ぶ「大学の数学・物理」
Рет қаралды 341 М.