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

Поделиться
HTML-код
  • Опубликовано: 1 июл 2021
  • Transformer のモデル構造とその数理を完全に解説しました。このレベルの解説は他にないんじゃないかってくらい話しました。
    結局行列と内積しか使ってないんですよ。すごくないですか?
    ※行列の転値は、「左上に小文字の t 」という文化で生きています。
    ☆お知らせ☆
    AIcia Solid Project 公式HPが出来ました!!!
    sites.google.com/view/aicia-o...
    HPでは私たちや動画コンテンツの紹介、板書データの公開などをしています。是非ご活用ください!!
    ▼関連動画
    忙しい人向けはこちら → • 【深層学習】忙しい人のための Transfo...
    Multi-Head Attention は 15:27 から!
    Deep Learning の世界 • Deep Learning の世界
    自然言語処理シリーズ • 自然言語処理シリーズ
    ▼目次
    公開後追加予定!
    ▼参考文献
    Vaswani, Ashish, et al. "Attention is all you need." arXiv preprint arXiv:1706.03762 (2017).
    arxiv.org/abs/1706.03762
    原論文! やや数式は難解ですが、この動画を見終わった後なら読めるはず!
    当時の問題意識や、Transformerの売りどころがたくさん書いてあります。
    (個AI的には、論文タイトルは、内容の要約であるべきだよなーと思います。意見や感想じゃなくて。)
    【2019年版】自然言語処理の代表的なモデル・アルゴリズム時系列まとめ - Qiita qiita.com/LeftLetter/items/14...
    いろいろこれを参考にして動画を作っています
    ▼終わりに
    ご視聴ありがとうございました!
    面白かったら高評価、チャンネル登録お願いします。
    動画の質問、感想などは、コメント欄やTwitterにどうぞ!
    お仕事、コラボのご依頼は、TwitterのDMからお願い致します。
    動画生成:AIcia Solid (Twitter: / aicia_solid )
    動画編集:AIris Solid (妹) (Twitter: / airis_solid )
    =======
    Logo: TEICAさん ( / t_e_i_c_a )
    Model: 3d.nicovideo.jp/works/td44519
    Model by: W01fa さん ( / w01fa )
  • НаукаНаука

Комментарии • 234

  • @shinjibaba2321
    @shinjibaba2321 2 года назад +24

    わかりやすかったです!とても勉強になりました.質問なのですが,35:00あたりにて「ベクトルを回転させてぶつけることによってXの注目の仕方を変える」といった説明がいまいち理解できませんでした.ここの部分を理解するにはどういった知識が必要でしょうか,また参考にできる資料があれば教えていただきたいです.

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +13

      それは良かったです!!!😍🎉🎉🎉
      そこの説明は私のオリジナルなので、残念ながら参考にできる資料はありません🙇‍♀️
      追加で少し説明しますと、
      「重みが大きい(注目する) "⇔" 内積が大きい "⇔" 同じ向き」
      と動画では説明しました。
      つまり、 q と k の向きが同じなら注目するわけですが、
      その前で q, k(, v) を回転するわけなので、
      どのペアが同じ向きなのかがガンガン変わることになります。
      これを、「回転させてぶつけることで X の注目の仕方を変える」と表現しました!
      伝わりますでしょうか、、、?

    • @shinjibaba2321
      @shinjibaba2321 2 года назад +2

      @@AIcia_Solid 返信ありがとうございます!
      分かりやすい説明ありがとうございます.
      「回転させてぶつけることで X の注目の仕方を変える」の表現について理解できました.
      最後に一点だけ質問があります.
      q:次元を1/8にするために,行列をかけてどの部分を処理するか決める
      k:回転させることによって,どの部分に注目させるか決める
      とありますが,kをどのくらい回転させるかによって類似度(内積)の大きさは変わると思うのですが,この行列の部分はどのように決定しているのでしょうか?学習する過程で決定されるのでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +2

      そのとおりです!
      まさに学習で決定されます!
      (行列のすべての成分が、学習可能なパラメタです)

    • @shinjibaba2321
      @shinjibaba2321 2 года назад

      @@AIcia_Solid なるほど!理解できました.
      今日自然言語処理について学び始めて,BERTの動画からAlciaさんにたどり着きましたがどのサイトよりも理解しやすかったです!
      ありがとうございました.

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      それはとてもよかったです!😍🎉🎉🎉
      お褒めに預かり光栄です。今後もぜひご活用くださいませ!🎉

  • @udon2809
    @udon2809 3 года назад +1

    本当にわかりやすかった!
    素晴らしい動画をありがとうございます!
    BERT編もすごく楽しみにしてます!

    • @AIcia_Solid
      @AIcia_Solid  3 года назад

      お楽しみいただけて嬉しいです!🎉
      BERT もお楽しみに!

  • @user-ms7yt2lu1b
    @user-ms7yt2lu1b 4 месяца назад

    ものすごく理解しやすかったです。正直しびれましたw
    数式の意味をかみ砕いて解説してくれる点が、とても理解の手助けになりました。

    • @AIcia_Solid
      @AIcia_Solid  4 месяца назад

      ご視聴コメントありがとうございます!!!🎉🎉🎉
      そう言っていただけるととても嬉しいです🥰
      ぜひこの理解をご活用いただけたら嬉しいです🎉

  • @edbshllanss
    @edbshllanss 3 года назад +3

    待ちわびてました!😍

    • @AIcia_Solid
      @AIcia_Solid  3 года назад

      おまたせしました😍

  • @user-fy9dz1cr8x
    @user-fy9dz1cr8x Год назад

    理解度が格段に上がりました、ありがとうございます

    • @AIcia_Solid
      @AIcia_Solid  Год назад

      ご視聴コメントありがとうございます🤩🎉
      ぜひこの理解を活用してあげてください!🥳

  • @niruru9560
    @niruru9560 3 года назад +2

    ありがとうございます。何度か見直しが必要そうですが、イメージは理解できました。

    • @AIcia_Solid
      @AIcia_Solid  3 года назад +2

      ご視聴コメントありがとうございます!
      一発ではなかなか厳しいですよね、、、!
      もし分からないことがあれば聞いてくださーい!🎉

  • @jyapper_
    @jyapper_ 11 месяцев назад

    クエリとキーの内積の意味が分かんなくて詰んでたので助かりました!
    他のところもすごく分かりやすくて良かったです!

    • @AIcia_Solid
      @AIcia_Solid  11 месяцев назад +1

      ご視聴コメントありがとうございます🎉🎉🎉
      それはとても良かったです🤩
      是非この理解をご活用くださいませ!!

  • @user-ez3nc5vi5n
    @user-ez3nc5vi5n Год назад

    4年の研究でMOTやってて,日本語でこんなにわかりやすい動画見られて本当に助かってます。ありがとうございます。

    • @AIcia_Solid
      @AIcia_Solid  Год назад

      ご視聴コメントありがとうございます!🎉🎉
      研究にトライしているか方に届いて私も本当に嬉しいです!(^o^)
      ぜひ、その理解をご活用くださいませ🎉

  • @matsutaku1788
    @matsutaku1788 3 года назад +5

    非常に分かり易かったです!
    Decoderの入力でXをそのままQKVに使うのは目から鱗の発想でしたが,よく理解できました.

    • @AIcia_Solid
      @AIcia_Solid  3 года назад

      お役にたてて何よりです!😍🎉
      目から鱗ですよね😮
      はじめは私も何やってるのかよくわかりませんでした(笑)

  • @mirai6964
    @mirai6964 Год назад

    神授業です。本当にありがとう!

    • @AIcia_Solid
      @AIcia_Solid  Год назад

      それはよかった!
      ぜひご参考にしてください!(^o^)

  • @burny9451
    @burny9451 2 года назад +1

    とても分かりやすかったです。さすがですね!

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      それはよかったです!
      よき Transformer ライフを!!!😍🎉

  • @moyamoyamoyamoya
    @moyamoyamoyamoya 3 года назад

    めっちゃ分かりやすかった!ありがとう

    • @AIcia_Solid
      @AIcia_Solid  3 года назад +1

      どういたしまして! ぜひ色んな人に紹介していただけると嬉しいです!🎉

  • @ryoumasameshima93
    @ryoumasameshima93 Год назад +2

    クソほど有益なコンテンツありがとうございます!この動画が初見ですが、これから動画、全部みます!!

    • @AIcia_Solid
      @AIcia_Solid  Год назад

      ご視聴コメントありがとうございます!🎉
      お楽しみいただけたようでとても嬉しいです😊
      ぜひいろいろ見てみてくださーい!(^o^)/

  • @user-uf6xz4yu9o
    @user-uf6xz4yu9o Год назад +5

    最近AIの研究エンジニアとして内定を頂きました。
    AI業界未経験のプログラマー歴1年でしたがここまでこれたのは、奇跡だと感じてます。
    何時も分かり易い動画で勉強させて頂いてます。
    ありがとうございます!

    • @AIcia_Solid
      @AIcia_Solid  Год назад +2

      おおおおお!
      おめでとうございます!🎉🎉🎉🎉🎉
      新たな旅立ちですね!
      応援しております!🔥
      私も良き動画を生成できるよう頑張りますので、応援の程よろしくお願いします!🎉

  • @user-qz4pq9wc5s
    @user-qz4pq9wc5s Год назад

    重み行列って入力を回す役目だったんですね、、、定性的にもとてもわかりやすい説明ありがとうございます!

    • @AIcia_Solid
      @AIcia_Solid  Год назад

      ご視聴コメントありがとうございますー(^o^)
      私はそうだと理解しています!うまく比較するための線形変換なんだと思います😊

  • @user-ev7vq5zi7z
    @user-ev7vq5zi7z 14 дней назад +1

    10万回再生おめでとうございます!🎉 お食事代にでもお使いください。

    • @AIcia_Solid
      @AIcia_Solid  13 дней назад

      小野さん!!!!!
      いつもご支援いただきましてありがとうございます!!!
      とても助かります!!!!!🎉
      それでは、お言葉に甘えてバーチャル美味しいものでもいただいてきます🤤🎂
      ありがとうございます!!!

  • @user-xy2cm6id2z
    @user-xy2cm6id2z 9 месяцев назад

    動画ありがとうございます!
    いま研究で深層学習について学んでいたのですが、数式が難しくて心が折れかけていました。Alciaさんの動画も正直自分にとっては難しい部分があります。。。
    ですが、諦めずにいつか動画内容をしっかり理解できるように頑張ります!
    動画ありがとうございます。応援してます!!

    • @AIcia_Solid
      @AIcia_Solid  9 месяцев назад

      ご視聴コメントありがとうございます!
      そして、正直な感想をありがとうございます。なかなか書くのも難しいコメントだと思いますが、決意に満ちていて素敵だと感じました。
      応援しています!
      質問など、なにか私にできることがあれば、ぜひお答えしますので、そのときは何でもお申し付けください!(^o^)

  • @sushisushi8362
    @sushisushi8362 3 года назад +21

    こんな風に数式の意味を解説してくれてたら大学数学もっと好きになれたかなー

    • @AIcia_Solid
      @AIcia_Solid  3 года назад +5

      そんなあなたにはこの人がおすすめ😎✌️
      ruclips.net/user/yobinori

    • @user-sn2nt3rl5m
      @user-sn2nt3rl5m Год назад +1

  • @msykokb9050
    @msykokb9050 2 года назад +2

    色々サイト見てきましたが、一番分かりやすかったです。
    素晴らしい動画ありがとうございました。
    機械学習素人で特に、Q、K同じ入力のはずなのに数式上なぜ類似度求めてるのかが
    ずっと疑問でしたが、31:50辺りでそこを解説して下さっていて、私にとっては非常にためになりました。
    詰むポイント?を丁寧に解説してくださり、とてもありがたかったです。

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      わーい!それはよかった!
      お役に立てて光栄です!😍🎉🎉🎉
      すごいんですけど謎も多い論文ですからね🤔🤔🤔
      そういう部分を受信いただけて嬉しいです!🎉

  • @zumi4229
    @zumi4229 Год назад +2

    ギネス級に分かりやすい… 世の中の書籍が売れなくなるレベルや🥹 いつも困った時にアリシアさんの動画見て解決してます🙇

    • @AIcia_Solid
      @AIcia_Solid  Год назад +2

      ご視聴コメントありがとうございます🎉
      お褒めに預かり嬉しいです😊
      ちなみに私はアイシアです!
      お見知りおきを😋✌️

  • @user-oz8zk5kf9x
    @user-oz8zk5kf9x 3 года назад +2

    楽しみ〜

  • @haro9407
    @haro9407 2 года назад

    ありがとうございます!

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      ご支援いただきありがとうございます!
      今後とも良き動画を生成できますよう精進します!🔥
      Transformer 動画は大作です!😍
      ぜひご活用いただけると嬉しいです!!!

  • @napoupai1152
    @napoupai1152 2 года назад

    とてもわかりやすく、勉強になりました。特にMulti-head-Attentionについてわからなかったところがすっきりしました!
    質問なのですが、論文を見たところEmbedding層では学習済みの単語分散表現を使っていると書いてあったのですが、こちらはword2vecなどで得られた単語分散表現を使っているのですか?

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      うーん、私も論文にかいてあること以上はわかりません🙇‍♀️🙇‍♀️🙇‍♀️
      もしわかったらお教えください!

  • @user-yu5rc4tu5k
    @user-yu5rc4tu5k Год назад

    神授業ありがとうございます。
    ViTも解説して欲しいです!

    • @AIcia_Solid
      @AIcia_Solid  Год назад

      ご視聴コメントありがとうございます🎉
      ぜひこの理解をご活用いただけると嬉しいです!🎉
      ViT はやりたいことリストに入っております!
      が、ちょっと先になりそうです🙇‍♀️
      お急ぎの場合は、ぜひ、論文や他の資料をご覧くださいませ🙇‍♀️🙇‍♀️🙇‍♀️

  • @tkmtyshr
    @tkmtyshr 2 года назад +4

    つい最近このチャンネルを知り、以降ずっと勉強させて頂いております。もちろん高評価ボタン連打させて頂いてます。
    私自身は自然言語処理やらAIやらには縁遠い、構造生物学の研究者なのですが、
    この業界はここ数か月、DeepMind社の開発したAlphaFold2というAIの話題で騒然としております。
    生物の機能を支える蛋白構造を、実験と同等の精度で予測できるという化け物AIなのですが、
    その論文中で中核技術とされている "Evoformer" なるものが、 "Transformer" なるものをベースにしたもので、それは "Attention" である、と。
    さっぱり意味が理解できず苦労していましたが、おかげで「何をやろうとしているのか」は、何となく理解できるようになりました。
    今後も新作を期待しております。

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      それは良かったです!
      まさに、Yoshihiro Takamatsuさんのような方に届けーと思って動画生成したので、とても嬉しいです!
      私にとっては生物の知識がないので AlphaFold2 の論文を読むのはけっこう大変なのですが、いつか動画にしたいなと妄想しています。
      気長にお待ち下さい!

  • @ponzupudding
    @ponzupudding Год назад

    非常に分かりやすくためになりました!
    これからもお世話になります!

    • @AIcia_Solid
      @AIcia_Solid  Год назад

      ぽんさん、ご視聴コメントありがとうございます!(^o^)
      ぜひ、この理解を活用してくださいませ!🤩🎉

  • @gmaiI.com.
    @gmaiI.com. 2 года назад +1

    scaled dot product好き

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      わかる、私も好きです🤤

  • @user-zg3oo2qd5n
    @user-zg3oo2qd5n 5 месяцев назад

    他のTransformerについての解説動画を見てましたが、この動画がダントツでわかりやすかったです。
    特に、Generative AIに興味のある、行列の勉強をしている学生さんたちには見てほしいですね!
    さらに興味を持って、研究や学術に取り組めると思います

    • @AIcia_Solid
      @AIcia_Solid  5 месяцев назад

      ご視聴コメントありがとうございます!
      お褒めに預かり光栄です🌞✨
      まさに、そういう方々に見ていただけたら嬉しいです😊
      必要そうにしている方がいましたら是非おすすめいただけると嬉しいです。
      よろしくお願いします🎉

  • @user-dx2vb6xw7l
    @user-dx2vb6xw7l 6 месяцев назад

    本を読んでいてK,Vがどこから来るのか良く分からなかったから,疑問が解消されてとても良かった。。わかりやすい説明ありがとうございます。

    • @AIcia_Solid
      @AIcia_Solid  6 месяцев назад +1

      ご視聴コメントありがとうございます!🎉
      私の解説が役に立てば光栄です!🤩
      ぜひこの理解をお役立てくださいませ🥳✌️

  • @user-jq7hg6lq9x
    @user-jq7hg6lq9x 2 года назад

    いつも参考にさせて頂いております…!
    質問なのですが,動画内でも少し触れられている通り,NNの書籍などでは重み計算の表記としてWxの場合とxWの2種類が見られますが,なんとなくミニバッチ処理を含む表記などを考えるとxWの方が(N×D)・(D×M)=(N×M)のようにミニバッチの次元Nが潰れないので都合が良いように思うのですが,このあたりの使い分けに何か意味はあるのでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      素敵な質問ありがとうございます!!
      うーーん、私は詳しくないのでわかりません。
      数学的には等価だなぁとは思いますが、最適化の都合的に何かあるかもしれません🤔
      もし何かわかったら教えていただけると嬉しいです!🎉

  • @stripe_yt
    @stripe_yt 2 месяца назад

    お前らここ分かりづらいだろ?っていう問いかけが的確で、わかりやすかったです!

    • @AIcia_Solid
      @AIcia_Solid  2 месяца назад

      ご視聴コメントありがとうございます!🥰
      そう言っていただけるととても嬉しいです😊
      ぜひこの理解をご活用くださいませ🥰🎉🎉🎉

    • @AIcia_Solid
      @AIcia_Solid  2 месяца назад

      ご視聴コメントありがとうございます🥰
      (返信失敗したかもなので、再送しています。2通来ていたらすみません)
      そう言っていただけるととても嬉しいです🥰🎉🎉🎉
      ぜひこの理解をご活用くださいませ🤩🎉

  • @NISHI000d
    @NISHI000d 3 года назад +4

    これは期待!

    • @AIcia_Solid
      @AIcia_Solid  3 года назад

      是非ご覧ください!!!

  • @yukio_takagi6429
    @yukio_takagi6429 3 года назад

    毎回ありがとうございます。行列wを使って、様々な角度に入力Xを変換してますが、EncoderのMultiHeadAttentionはVが注目する意味合いということでしょうか?またこの時の各々のベクトルv1, v2, vmというのは、各単語の意味(例えば未来を表す等)ように捉えればよいものでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  3 года назад +1

      ご視聴コメントありがとうございます!
      うーん、たしかに、Vはどういう意味なんでしょう?
      何となく、深さによって抽象度も変わってくる気がします。
      深い層でのVはかなり意味的な気もしますが、想像するに、他のところは処理途中で、 Positional Encoding の影響が残っていたり、意味になる前段階だったり、次誰に注目するのかをうまく見極めるためのベクトルだったりするのかもです。
      ちょっと私は確固たることは言えないです。
      そういう研究がないか探してみると楽しいかもしれません!

  • @jaitjait3720
    @jaitjait3720 2 года назад +3

    天才ですね…めちゃめちゃわかりやすかったです。
    最後の①と④の行列部分は、自分で設定できるのか気になりました!

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      でっしょー!😍🎉
      ご視聴いただきありがとうございます!(^o^)
      ①、④は、無理矢理自分で設定することもできるとは思いますが、ここを学習で得ることが深層学習の根幹なので、あまり手で設定するメリットはない気がします、、、!

  • @doggy9745
    @doggy9745 5 месяцев назад

    RNNの時系列的な依存関係を解決するためにattention機構を導入し、計算速度を解決するために、RNN的な構造を取り除いたのがtransfomerって感じでざっくりと理解しました。
    また、コンセプトは異なるし目的も違いますが、(複数チャネルの重要度調整のための)SEnetと(シーケンスデータの特徴抽出のための)attention機構はソフトマックス関数を噛ませて、重要度の重み付けをしている点で共通したコンセプトがあるなと感じました。
    それにしても内積を類似度と解釈した第一人者は天才of天才ですね、、その解釈がなかったら統計から深層学習はおろか、データサイエンス自体成り立たないなと、、、

    • @AIcia_Solid
      @AIcia_Solid  5 месяцев назад +1

      ご視聴コメントありがとうございます!
      Attention is All You Need の論文タイトルにある通り、RNN の補助としての attention 利用ではなく、attention のみでこの精度にしたことは本当に重要な貢献ですね!
      SENet も似た発想で、文献によっては attention の走りと紹介されていることもあるので、まさにその通りと思います。
      やはり、人間の創造性にはいつも驚かされます😊

  • @GL-Kageyama2ndChannel
    @GL-Kageyama2ndChannel 3 года назад +3

    まさしく、「AIcia Solid is All You Need」な、内容でした😄

    • @AIcia_Solid
      @AIcia_Solid  3 года назад +2

      わーい!
      ありがとうございます!😍🎉

  • @user-or1lk9cw6b
    @user-or1lk9cw6b 2 года назад +2

    分かりやすすぎて驚きました。
    Multi-Head Attention でQ,K,Vを行列の積で回転させるというお話がありましたが、NNで非線形変換したベクトルなどでも代用できると思いました。
    行列積である必要はないという理解でよいでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      でしょー!(^o^)
      ご視聴ありがとうございました🎉
      理論上は、行列積である必要はないとは思います。
      ただ、 Transformer の強みは、並列計算可能性にもあるので、その強みは失わない範囲の方がいいような気はします🤔

  • @user-es3ke8lb5s
    @user-es3ke8lb5s 6 месяцев назад

    Thank you so much🤓

    • @AIcia_Solid
      @AIcia_Solid  6 месяцев назад

      Thank you for your watching and comment!
      Welcome!🎉

  • @shinsogayborg
    @shinsogayborg Месяц назад

    クエリとキーとバリューのところ 一体どうなってしまうのか ドキドキしていましたが ものすごく わかりやすい説明で助かりました。

    • @AIcia_Solid
      @AIcia_Solid  Месяц назад

      ご視聴コメントありがとうございます!🎉
      そう言っていただけるととても嬉しいです😊
      ぜひこの理解をご活用くださいませ🥰

  • @34562724ba18
    @34562724ba18 2 года назад

    Encoder部分でもDecoder部分でも、Feed Forward Networkが使われていますが、こちらを2層ではなく、3層、4層と増やしていくと、(少なくてもこの部分では)よりうまく表現できるようになるのでしょうか?そうだとするなら、2層にしているのは計算量の都合でしょうか?

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      素敵な質問ですね!
      素敵な質問すぎて、私にもわかりません🤔🤔🤔
      正確には、実験するか、研究者に聞いてみるしかないと思うのですが、
      私が想像するに、2層にしているのは、なるべく浅めで、なるべく非線形性を導入するためじゃないかなーなんて思います。
      普遍近似定理でも2層ですし、そういったからみかなーと想像します。
      ただ、実際のところはわからないので、実験してみたりするのが良い気がします!
      (あと、やはり、パラメタ数や推論速度の都合はあると思うので、それで2層なのかもしれません🤔)

  • @strawberryfield891
    @strawberryfield891 2 года назад +1

    いつもお世話になっております!
    一つ確認させていただきたいのですが、13:49頃で仰っている「単語の次元のベクトル」というのは、「ボキャブラリーサイズの次元のベクトル」という理解で合っていますでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      その通りです!🎉
      (正確には、記号があったり subword を使ったりなので、 token 数の次元の方が良いかもです)

  • @user-nn4xo1eq2t
    @user-nn4xo1eq2t 3 года назад +4

    つい最近aliciaさんのことを知りましたが、このレベルの解説をタダで聞けるなんて、、、素晴らしいです。
    Scaled Dot-Product Attentionの解説が特に分かりやすかったです。成る程、類似度により検索しているのですね。
    ところで、multi-head attentionのクエリとキーが同じもの(区別できない)ように見えるのですが、それはいいのかな? 初期値が違うから?
    その辺は論文読めば分かるんですかね

    • @AIcia_Solid
      @AIcia_Solid  3 года назад +1

      おほめに預かり光栄です😊
      Multi-Head Attention の query と key は、たしかに、(Encoder のものと Decoder の1段目は)区別つかなさそうですね。
      本質的には、回転して比較するということなので、区別つかなくても問題ないのかもしれません!

  • @user-uc3ft3tb2w
    @user-uc3ft3tb2w 2 года назад +1

    素晴らしい動画をありがとうございます。
    9:16辺りで、「入力単語列をベクトルの列に」とありますが、入力する行列の列に単語をベクトル化したものが入っていて、行数が単語数になっているのか、もしくはその逆なのかどちらでしょうか、、、?
    ご回答いただけると幸いです。

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      ご視聴コメントありがとうございます😍🎉
      実装依存なのでなんとも言えません!
      どちらのパターンもあるのではないかと思います。
      少なくとも私が確認した範囲では、Transformer の原論文(の中の数式)では、行ベクトルが分散表現で、それが縦に単語数分だけ並んでいる感じになっています!

    • @user-uc3ft3tb2w
      @user-uc3ft3tb2w 2 года назад

      @@AIcia_Solid 早速、回答いただき、ありがとうございます!
      理解が深まりました😆

  • @user-iu9qz5xo5h
    @user-iu9qz5xo5h Год назад +1

    いつもわかりやすい説明ありがとうございます!
    Transformerにおいて、Encoderに入力を行う(input)のは当たり前に理解できるのですが、DecoderにEncoderでの出力以外のインプットがあることが腑に落ちません。。
    例えば、
    「私 は アイシア です 。」
    という文章があり、それを
    「I am AIcia .」
    と翻訳する場合のEncoderの入力は
    「私 は アイシア です 。」で、Decoderの出力は
    「I am AIcia .」
    となると思うのですが、この時のDeciderの入力は何になるのでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  Год назад +1

      ご視聴コメントありがとうございます!🎉
      Decoder の入力は、
      I am Aicia
      となります。
      たとえば、Aicia を推論するときは、その直前までの I と am (と という文頭を表す記号)を入力します。
      これによって、「今まで何を出力してきたか」を元に、次に何を出力するかを推論することができます。
      生成系言語モデルではよく使われるテクニックです!
      このあたりは、ノリとしては、ここで解説しているものが近いと思います!
      (細部はやや違いますが、ノリは一緒)
      ruclips.net/video/NJdrYvYgaPM/видео.html

    • @user-iu9qz5xo5h
      @user-iu9qz5xo5h Год назад

      @@AIcia_Solid ご丁寧にありがとうございます!
      Decoderの入力に関して理解できました!本当にアイシアさんのおかげで、統計の勉強が楽しいものになっています。これからも参考にさせて頂きます。

    • @AIcia_Solid
      @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 года назад +1

      ご視聴コメントありがとうございます!
      この疑問素敵すぎます!
      私もそう思います!!!!!!!!!!!!
      W^Q, W^K, W^V がこの後かかりますもんね、、、!
      数学的には不要だと思いますが、実際に不要かどうかは私では分かりません、、。最適化上の都合もあるのかも、、、? と想像していますが、謎です。
      もし何かこれについて言及されたものを見つけたら私も知りたいです!😍

    • @differenthuman6412
      @differenthuman6412 2 года назад

      @@AIcia_Solid
      ご返信ありがとうございます。
      やはり数学的には不要な気がしますよね。
      自分でももう少し深く調べたり考えてみます…。
      何かわかったらお知らせしますね!

  • @minazemi3333
    @minazemi3333 2 года назад

    Attentionの動画から視聴してます!
    いつもわかりやすくて非常にありがたいです。
    ありがとうございます。
    質問なのですが、22:30あたりでベクトルの類似度を計算しているQKだが、次元が高くなると値が大きくなってしまうため、純粋な類似度を計算する為にroot(d)で割るという話があったと思うのですが、どうしてroot(d)で割ると純粋な類似度が計算できるのでしょうか?
    以下は駄文です…
    これはroot(d)で割ることにより正規化をしているということですよね…?なんとなくroot(d)を標準偏差的な扱いをしているのかなとも思ったんですがそれによってどうして正規化できるんだ…?と考え続けて夜も眠れません。

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      ご視聴コメントありがとうございます!
      純粋な類似度を計算する、、、というわけではなく、
      次元が変わっても類似度のスケールが変わらないようにするために√dで割っているのだと思います。
      (細かいことを言うと色々謎な点もありますが、このあたりは正則化の強さとも関連するところで、おそらく実際に学習させる実験なども行った結果、導入されているのだと思います。)

    • @minazemi3333
      @minazemi3333 2 года назад

      @@AIcia_Solid なるほど…。ありがとうございます!

  • @kone2018
    @kone2018 10 месяцев назад

    この手法思いついたやつ天才すぎやろ
    たくさんある操作の中から、今の所これが一番うまくいくんやろ?
    本当にすごいな
    もっとすごいと思うのが、人間の頭の中でも同じようなことをしてることよな

  • @niruru9560
    @niruru9560 3 года назад +1

    BERT~GPT3(特に、GPT3がなぜ、翻訳から分類などいろいろなタスクで汎用的に利用できるのか?)が知りたいです。

    • @AIcia_Solid
      @AIcia_Solid  3 года назад +2

      後々紹介します(^o^)
      お楽しみに!

  • @ynnmikasa3547
    @ynnmikasa3547 Год назад

    いつもわかりやすい動画ありがとうございます!
    質問ですが、「W^Qで回転されたXとW^Kで回転されたXが類似するようなXを重点的にW^Vで回転されたXを取り出す」といったような構造になっていると思いますが、「回転されたX同士での類似度」を基準にするのであれば、「回転されたXとそのままのXの類似度」を基準にしても数学的には違いが無いように思えますが、パラメータ数を増やしてまでそうする利点はあるのでしょうか?私の理解が間違えていたり、わかりにくかったら申し訳ありません。
    とはいえDecoderでのAttentionには両方での回転が必要だと思いますが。
    追記:すみません!解決しました!TransformerにおいてはMultiなattentionとなるため、一回LinerでXを低次元空間に写像して、二つの行列を掛けることで表現力が増えるということで、自己解決しました!

    • @AIcia_Solid
      @AIcia_Solid  Год назад +1

      ご質問いただきありがとうございます!!🎉
      素敵な疑問だと思います🎉🎉🎉
      おっしゃるとおりの事情があります!
      それに加えて、数学的には等価でも、行列席を挟み込むことで学習ダイナミクスが変わることもあります。(要するに、学習の速さや、最後の精度が変わったりする)
      そういうことも含めていろんなアーキテクチャが検討・提案されているという側面もあるかと思います!

    • @ynnmikasa3547
      @ynnmikasa3547 Год назад

      @@AIcia_Solid なるほど!ありがとうございます!

  • @user-lo6vh7hb9e
    @user-lo6vh7hb9e Год назад

    とても分かりやすい解説ありがとうございます!
    質問なのですが、こちら(ruclips.net/video/bPdyuIebXWM/видео.html&pp=iAQB)
    で紹介されているAttentionと論理的・思想的にどのようなつながりがあるのでしょうか? 「注目すべき情報を適切に選べる」というのが、Attentionという思想であって、その手法はまったく異なるという理解であってますでしょうか?
    Multi-Head Attentionを理解するために上記Attentionの動画も見たのですが、両者の関係性が分からなくなってしまい…

    • @AIcia_Solid
      @AIcia_Solid  Год назад +1

      ご視聴コメントありがとうございます!🎉
      まさに、そんな理解で良いと思いますよ!
      最後に softmax を使って重みを計算するのは流石に両者共通で、
      その softmax に入れる数値をどう計算するかが異なると、そういう理解で良いのではないかと思います。
      あと、加えるとしたら、Attention is All You Need という論文タイトルにもあるように、Encoder も Attention 機構で計算し、RNN を用いないことは、Transformer の大きな特徴かと思います!

  • @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 3 месяца назад

      @@AIcia_Solid1年半越しくらいにスクラッチから実装してやっと完全に理解できました。

    • @AIcia_Solid
      @AIcia_Solid  3 месяца назад

      お久しぶりです!
      勉強を継続されていて素敵ですね!🤩
      おめでとうございます!ぜひその理解を活かしてあげてください😊🎉🎉🎉

  • @user-xo7bl2kf1t
    @user-xo7bl2kf1t Год назад

    Multi-head attentionでは入力X を行列で変換することで,Q,K,V を入力しているとのことでしたが,Scaled dot product attention では,QとKとV はどのように入力しているのでしょうか?Qは入力そのものだと思いますが,KとV は何がどのように入力されているのでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  Год назад

      ご視聴コメントありがとうございます!🎉
      よいしつもんですね!
      これは論点を分離して考えるのが良いかと思います。
      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 にいい感じに入力し、出力をいい感じに束ねているものになっています。
      そんな感じです。
      伝わりますでしょうか?👀

  • @user-xg7dp3lf6o
    @user-xg7dp3lf6o 2 года назад

    multi-head attentionでQ,K,Vが同じ入力を元にしている意味は何なんでしょうか?それぞれに行列かけてから類以度計算するんだとしたら最初から別の入力を用いても問題ない気がしちゃいます。

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      素敵なアイデアですね!
      実際、 Transformer の Decoder では、Q と K, V が異なる入力になっていますよね。
      そのアイデアが新しい発見になる可能性もとてもあると思いますので、色々考えて試してみると良いかと思います!

  • @niruru9560
    @niruru9560 3 года назад

    Multi-Head Attentionの接続先のネットワークは、これ以外のCNNのようなネットワークでも良いのでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  3 года назад +1

      深層学習の構成要素は、だいたい、入出力のテンソルのサイズがあっていればどれを繋いでもちゃんと動くと思います。
      (精度が出るかは分かりません🤔)

  • @user-yr9gr2qw4k
    @user-yr9gr2qw4k Год назад

    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  Год назад

      鋭くて素敵なコメントですね!!
      ありがとうございます!!!!!🤩🎉🎉🎉

  • @user-wh2hv1xd9p
    @user-wh2hv1xd9p Год назад

    めちゃくちゃ分かりやすかったです!!けど何点かまだ疑問があるので以下に書きます!(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  Год назад +1

      ご視聴コメントありがとうございます!
      とても深く学ばれているのですね、素敵ですね!
      以下、質問にお答えします!
      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 と答える理解で良いと思います。
      ========
      以上です!
      この回答や、他にご質問があれば、またどしどし聞いていただけると嬉しいです!
      よろしくお願いします!

    • @user-wh2hv1xd9p
      @user-wh2hv1xd9p Год назад

      @@AIcia_Solid
      すごく早いご返答ありがとうございます😂ものすごく分かりやすいです!
      なるほど, 設計思想が先にあって数式に落とし込む, という流れで考えると面白いですね。
      >>Q の処理にふさわしい V を、K を使って持ってきている
      すごくこの表現にしっくり来ました! 加えてXを使ってKやVを作っているため, KやVは(でたらめなベクトルでなく)文章内の単語を基底としたベクトルと考えられて, だから文脈や文法を汲み取れるのかなあと思いました!
      ありがとうございます!推論時のアルゴリズムを全然理解できず, やっとスッキリしました笑
      やはりそうなのですね, 今まで知っていたモデルとはかなり異なっていて理解に時間かかりました😅
      浅い感想ですが論文タイトルものすごくかっこいいですね笑

    • @AIcia_Solid
      @AIcia_Solid  Год назад +2

      こちらこそ、素敵な質問をありがとうございます!🎉
      じつは、このあと、○○ is all you need っていうタイトルの論文が一時期流行しました、、、(笑)
      (内容まで大粒なものは必ずしも多くありませんでしたが、、、)
      それだけかっこよく、また、大きな影響を与えた論文だと思います!

  • @user-boobooboo
    @user-boobooboo 9 месяцев назад

    Positional Encodingの加法定理が〜〜っていう話、聞きたいです!!!!

    • @AIcia_Solid
      @AIcia_Solid  9 месяцев назад

      ご視聴コメントありがとうございます!
      聞きたいですか、そうですか、そうですよね😎
      検討します!
      動画が無理なら blog とかでの公開も含めて!🙇‍♀️
      ご意見いただきありがとうございます!🤩

  • @user-cp4yu5ox6f
    @user-cp4yu5ox6f 2 года назад

    今回も大変勉強になりました!!
    RNNによる逐次計算を無くす事が動機で一文しか使わないself-attention機構を複数備えたtransformerが生まれたんですね〜
    そこで一つ質問なのですがtransformerのencoderでは単語を一括に計算でき逐次計算が不必要ですが、decoderでは一単語ずつ予測した結果を使うため逐次計算が必要なのでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      いつもご視聴コメントありがとうございます😍🎉🎉
      まさにその通りです!
      Decoder はそういう仕組みになっています😋

    • @user-cp4yu5ox6f
      @user-cp4yu5ox6f 2 года назад

      多分解決しました!!
      学習時はdecoderにインプットするのは教師データで、予測された単語でないため逐次計算は必要なく、全単語一括でattentionを計算できる。(そのためのmasked multi-head attention。)
      推論時のみdecoder部分のインプットは予測された単語になるので、逐次計算が必要になる。
      って事ですかね。

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      学習時の話は、わたしも論文に書いてあることまでしかわからないので、そのレベルの詳細についてはわかりません🙇‍♀️🙇‍♀️🙇‍♀️

    • @user-cp4yu5ox6f
      @user-cp4yu5ox6f 2 года назад

      ご返信頂きありがとうございます!合っていたようでよかったです😀
      精進します!

  • @ken8392
    @ken8392 2 года назад

    21:50の「次元の高いベクトルは長い」という日本語がよく分かりません...
    要素の分散が大きくなるからsqrt(d)でスケーリングしていると理解しているのですが、私の認識は合ってるでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      そのままの意味のことが起こります。
      次元の呪いや球面集中現象などと調べてみると色々出てきます!
      直感的には、全ての成分が標準正規分布に従うd次元ベクトルは、その長さの2乗の期待値が d になるので、次元が高いほど長いということが起こります😮

    • @ken8392
      @ken8392 2 года назад

      @@AIcia_Solid 調べてみます!

  • @NISHI000d
    @NISHI000d 3 года назад +3

    動画乙。5:25 親の顔より見たモデル(コロナ渦)。
    TransFormerはいろいろ記事があるけど、やっぱこの動画はわかりやすい。適用モデルが広く、精度も良い。本当、(計算リソースが潤沢であれば)つよつよモデル。

    • @AIcia_Solid
      @AIcia_Solid  3 года назад +1

      おほめに預かり光栄です😊
      計算量があればあるほど強くなれるってのもすごいですよね😮

  • @user-tz3gv8vs3f
    @user-tz3gv8vs3f 8 месяцев назад

    いつもありがとうございます! ここまで詳細にわかりやすくAttentionについて解説している動画や記事はなかなかないので本当に助かります!
    質問なのですが、softmaxの入力でQK^Tを√d_kで割る部分がいまいち理解できません。ベクトルが長いとはどういうことなのでしょうか?
    また、Attentionの出力のところでqとk_iが似ていれば出力はほぼv_iになるとのことでしたが、似ているベクトルが複数あった場合にそれらが足されてよくわからない出力になるのではと思いました。
    以上のことについてご返信をいただけたら幸いです。

    • @AIcia_Solid
      @AIcia_Solid  8 месяцев назад +1

      ご視聴コメントありがとうございます!
      楽しんでいただけたようでとても嬉しいです😊
      頂いたご質問にお答えしますね!
      √d_k は定数なので、あってもなくても数学的には変わりません。
      ですが、実際には、学習の挙動が変わります。
      背景として、次元が大きいベクトルの内積は値(の絶対値)が大きくなる傾向にあります。
      じっさい、各成分が平均0、分散1の正規分布になっている d 次元ベクトルの内積は、期待値は0なのですが、分散は d になります。
      というわけで、内積の大きさのばらつきは次元によって変わるわけですが、
      次元が高いと、パラメタが初期値のときの内積の値が大きくなりすぎて、出力がめちゃくちゃになり、学習がまともに進まない現象が起こってしまいます。
      そのため、これを防ぐために、√d_k が利用されています。
      2つ目の質問です!
      q と k のペアで、似てるものが複数あれば、出力は対応する v を混ぜ合わせた(係数つけて足した)ものになります。
      なので、よくわからないといえばよくわからないものではありますが、なんとなく複数の単語の意味を混ぜ合わせたものが送られると考えると、理解がしやすいかもしれません。
      以上です!
      またなにか質問があればお教えください!

    • @user-tz3gv8vs3f
      @user-tz3gv8vs3f 8 месяцев назад

      @@AIcia_Solidありがとうございます! 理解が深まりました!

    • @AIcia_Solid
      @AIcia_Solid  8 месяцев назад

      それは良かったです!
      また何かあればいつでもご質問ください!🎉

  • @uchuu-neko
    @uchuu-neko 7 месяцев назад

    動画すごく面白かったです
    質問があります
    ローカルLLMを動かしていると同じ文章が繰り返し出力され続けることがありますが、MHAで死ぬほど複雑な計算をしているのにそのような繰り返し(あるいは収束のようなもの?)が起こるのはqを分割してある意味近視眼的になっているからなのでしょうか?
    ChatGPTなど大規模なモデルではあまり見ない現象のため(クワインなど意識的なプロンプトは除いて)計算の規模によるものなのかなあと想像していて、この動画の説明を聞いて上のように考えました

    • @AIcia_Solid
      @AIcia_Solid  7 месяцев назад +1

      あるあるですよね😇
      ChatGPT でうまくいってる理由は良くわかりません。
      たぶん、RLHF の段階で、繰り返しが抑制されているのか、
      はたまた、学習時や推論時になにか工夫が入っているのかも知れません。
      vanilla な言語モデルで繰り返しが出るのは、ある程度仕方ないと思います。
      言語モデルは、前までの単語列から次の単語を予測しますが、たまたま似た内容を2度出力し始めてしまったら、「前までの」が似通ってくるので、ずーっとそのループから抜けられなくなることもよくあると理解しています!

    • @uchuu-neko
      @uchuu-neko 7 месяцев назад

      @@AIcia_Solid ありがとうございます
      最近VSCodeの拡張でELYZAさんのCodeLlama日本語版を使っていて、コード生成は概ねうまくいくものの自然言語を用いるQ&Aがうまくいかないのでモデルのせいかパラメータのせいか悩んでいました
      原理的にはしょうがないとのことで、ある程度諦めることにします

    • @AIcia_Solid
      @AIcia_Solid  7 месяцев назад

      なるほど!
      それをやっていたのですね!
      おそらく、ネット上に、たくさんの試行錯誤の記事があると思われるので、参考にされると良いと思います!!!🎉

  • @Nekoneko0319
    @Nekoneko0319 8 месяцев назад

    質問失礼します。Attentionの関数の中のW行列3つ(キー、クエリ、バリュー用)があると思うのですがこの行列をTransformerは学習するということで良いのでしょうか?
    またWの初期値はランダムですか?

    • @AIcia_Solid
      @AIcia_Solid  8 месяцев назад

      ご視聴コメントありがとうございます!
      はい、まさに、それらの行列(や他のパラメタ)がデータから学習されます!
      W の初期値もランダムに決められております!

    • @Nekoneko0319
      @Nekoneko0319 8 месяцев назад

      @@AIcia_Solid 返信ありがとうございます!スッキリしました!

    • @Nekoneko0319
      @Nekoneko0319 8 месяцев назад

      ​@@AIcia_Solid
      これもお答えいただけると有難いのですがTransformerの訓練データは和▶英の学習であれば「ある日本語の文章と、それを人間の手で翻訳した英語の文章」ということですよね?初歩的な質問ですみません🙇‍♂️

    • @AIcia_Solid
      @AIcia_Solid  8 месяцев назад

      スッキリしていただけてよかったです!
      学習用のデータは WMT 2014 (という名前のデータ)などの対訳データが用いられていますが、その具体的な作り方までは分かりません🙇‍♀️
      私が調べていないだけで、論文を当たれば(または Claude などの AI に読んでもらえば)わかるかと思います!

  • @rss6370
    @rss6370 Год назад

    position wise ffnはどういう意味があるのでしょうか?attentionの説明はネットでも多くあるのですが、それ以外がよくわかってないです...。(損失関数なども)

    • @AIcia_Solid
      @AIcia_Solid  Год назад

      position-wise ffn では、attention で集めた情報を再び処理して次のブロックに渡しています。
      通常の深層学習同様、この層ひとつひとつで少しずつ情報を処理して、出力に近づけているのではないかと想像しています!👀

    • @rss6370
      @rss6370 Год назад

      @@AIcia_Solid
      返信ありがとうございます!
      attentionで集めた情報だけでは出力としては最適ではないからffnで出力の最適化を行っているという認識ですかね?

    • @AIcia_Solid
      @AIcia_Solid  Год назад

      そうですね、さらなる変換を加えることで、より処理を勧めているのだと思います!

  • @masawad
    @masawad 2 года назад

    ちゃんと勉強しているわけではないので勘違い質問であればすみません。22分あたりのdについて、スケーリングしてからsoftmaxすることから、dはqueryの数だけ(n個)あるのだと思いますが、似た入力が入れば、dの算出にquery間の相関(類似度)を無視できなくなることはないのでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      d は固定値なので、 query ごとに算出されるものではありません。
      (原論文では、 d = 512 などが利用されています)
      これで質問の回答になっているでしょうか??
      違ったら教えてください!

    • @masawad
      @masawad 2 года назад

      定数ですか! 定数だとすると、私なりに納得できる部分は、これから類似度の一種Vを求めるのだから、qの類似度を用いてdを算出するロジックだとすると循環構造になっちゃってまずいだろうなと思ったこと。逆に納得できないのは、softmaxするのに定数倍に意味があるのかなと。定数dはsoftmaxの引数だけに登場して、何か効果があるのでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      なにか混乱があるかもしれません。
      「q の類似度」は計算していません。計算しているのは、「q と k の類似度」です。また、V は類似度ではありません。
      また、d を算出することもありません。
      なかなか複雑なところではありますが、動画を確認すると理解が進むかもしれません!

    • @masawad
      @masawad 2 года назад

      質問の本質が噛み合っていない!と思ったのですが、やっとわかりました。大変失礼しました、私が超基本事項を誤解していました。
      dを定数(固定数)としたときに、ベクトルxに対して、softmax(x)とsoftmax(d*x)は異なるのですね! 私はうっかり、softmax関数の引数を定数倍しても不変だと信じていたので、上記質問になったのです。ご容赦ください。

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      なるほど、そういうことだったのですね!
      解決したようでよかったです!!!🎉
      全く何も気にしないでください。本気で前に進むときであればあるほど、いろんな勘違いはあるものです。
      そして、気づいてしまえば単純なこともたくさんあるものですから、、、😇
      こちらこそ、序盤に気づけずすみません。
      今後もお役立ていただけると嬉しいです!(^o^)

  • @yuya9623
    @yuya9623 Год назад

    いつもありがとうございます。本当に助かっております。
    とても初歩的な質問なのですが、このアルゴリズムを組んで実際に動かす時の様子がうまくイメージできていません。
    自分のイメージでは先に学習したデータがあって(重要なパラメータ【W(係数)】やKEYとVALUEの対応表みたいなものが決まっている)、それをもとに翻訳したい入力を行うと欲しい訳が出てくる って感じなのですが、マルチヘッドアテンションだと全部Xを入力して、QUERY、KEY、VALUEを得るとなっていて、完全にハテナ?になってしまいました。
    この機構が沢山の文を読み込みながら学習して、少しずつデータ(係数とか)をブラッシュアップしながら次の文を訳していき、進化(データの蓄積)をし続けるという感じなのでしょうか?
    質問がわかりにくくて申し訳ないです。その辺の概要がわかる動画を作っていらっしゃったら教えていただきたいです。

    • @AIcia_Solid
      @AIcia_Solid  Год назад +1

      ご視聴コメントありがとうございます!🎉
      なんとなく、学習と推論を分けて考えるのが重要な気がしています。
      このシリーズの1本目、2本目はいかがでしょうか?👀
      m.ruclips.net/video/SyWwoMpP_P4/видео.html
      m.ruclips.net/video/RLlTmbyJORM/видео.html
      これもかなり短く説明しているので、よく分からなければ、一般的な機械学習の教科書を見てみると良いかもしれません!

    • @yuya9623
      @yuya9623 Год назад

      @@AIcia_Solidとてもお忙しいそうなところ、 ご丁寧にありがとうございます😭 順番に勉強してきます!

    • @AIcia_Solid
      @AIcia_Solid  Год назад +1

      ぜひぜひ!(^o^)
      また分からなかったら聞いてくださいね!🎉

  • @user-td2dh3ez6r
    @user-td2dh3ez6r 2 года назад

    位置エンコーディングでの「何番目」というのはテキトーに決まるものですか?
    文中の順番とかも関係ありますか?どなたか教えていただきたいです・・・

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      もちろん文章の中での登場順で決まります!

    • @user-td2dh3ez6r
      @user-td2dh3ez6r 2 года назад

      @@AIcia_Solid
      ご本人!!ありがとうございます神!!

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      だいたいぜんぶ質問にはお答えしてます😋
      また何かあれば聞いてください!(^o^)

  • @user-nl5fm9br8m
    @user-nl5fm9br8m 3 года назад +1

    来たー!

    • @AIcia_Solid
      @AIcia_Solid  3 года назад

      キマシタ━(゚∀゚)━!

  • @doggy9745
    @doggy9745 5 месяцев назад

    質問させていただきます。
    低レベルな質問ですがさせていただきます。
    質問は、Encoder層を繰り返した時の解釈です。
    CNNは畳み込み層を繰り返すと、より抽象的で複雑な構造を捉えられるようになりますが、transformerではEncoderを繰り返した時(つまり、内積とソフトマックス関数による重み付けを繰り返すと)どのような解釈になるのでしょうか??

    • @AIcia_Solid
      @AIcia_Solid  5 месяцев назад +1

      ご視聴コメントありがとうございます!🎉
      全く低レベルではない、すごく本質的な質問かと思います!
      はじめはなかなか難しいかもしれませんが、質問のレベルも徐々に把握できると良いかと思います🎉
      こちらに関しては、私はあまり詳しくありませんが、LLM を Fine-Tuning したり LoRA などやっている界隈では、各層で何がされているかが実践知が溜まっているらしいので、その界隈を探して覗いてみるのが良いのではないかと思います!🎉

    • @doggy9745
      @doggy9745 5 месяцев назад +1

      @@AIcia_Solid ありがとうございます。そちらも覗いてみようかと思います。少し話は変わりますが、CNNベースの物体検知は理解できたのですが、transformerベースのDETRがわかりづらいです笑
      もし今後機会があればご解説していただけると非常に嬉しいです!(現在強化学習を拝見させていただいてます)

    • @AIcia_Solid
      @AIcia_Solid  5 месяцев назад +1

      リクエストありがとうございます!
      そして、強化学習もご覧いただきありがとうございます🎉
      深層学習は、強化学習が終わってから再開しようと思うので、約2025年からの予定です。
      それまでのんびりお待ちいただけますと助かります。
      よろしくお願いします🎉

  • @-_-plm2232
    @-_-plm2232 2 года назад

    multi head attentionの説明のときのQって行列ですよね?そしたらhead_iって行列になりませんか?
    18:39の説明ではqはベクトルなので出力もベクトルになるっていうのは理解できるんですけど

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      たしかに!!!!!
      そうですね、Q が行列なら head_i も行列になります!
      おっしゃるとおりです!!!!!

  • @user-el3jv6wv9g
    @user-el3jv6wv9g Год назад

    GPT-nにどのように使われているか教えてください。

    • @AIcia_Solid
      @AIcia_Solid  Год назад

      ご視聴コメントありがとうございます!!!
      GPT-n の動画も出していますので、是非そちらを見ていただければと思います!!
      m.ruclips.net/video/wDXPXgn5hX4/видео.html
      m.ruclips.net/video/3BUk7mtf10M/видео.html
      m.ruclips.net/video/CBZWzQVcXE4/видео.html

  • @LoveScarletDevil
    @LoveScarletDevil 2 года назад

    Aは転置取らなくていいですか?
    xとAの積がAのベクトルの積にならないのでは。

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      xA = Σ x_i a_i のところですよね?
      転置取らなくてこのままであってます!
      xA は A の行ベクトルの係数付きの和になるのであってるとおもいます。確認してみてください!🙇‍♂️

  • @user-uj1cn8zz6l
    @user-uj1cn8zz6l 2 года назад +1

    分かりやすすぎる…
    これが無料!?って驚きました…

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      ご視聴コメントありがとうございます!😍🎉
      お役に立てて何よりです!(^o^)

  • @desucam7717
    @desucam7717 3 года назад +2

    BERTまってます!

    • @AIcia_Solid
      @AIcia_Solid  3 года назад +2

      BERT は間もなく来ます!

  • @yuki1228
    @yuki1228 4 месяца назад

    ルートdで割る理由を教えていただきたいです。なぜ、ルートのでしょうか?

    • @AIcia_Solid
      @AIcia_Solid  4 месяца назад +1

      ご視聴コメントありがとうございます!
      √d で割るのは、内積の大きさを標準化するためです。
      各成分の大きさが平均0、分散1で独立なベクトル同士の内積は、平均0、分散dになることが知られています。
      次元によって内積のスケールが変わらないようにするため、√dで割っているのだと思います!

  • @apatite530
    @apatite530 9 месяцев назад

    大変理解の助けになっております。素晴らしい動画ありがとうございます。一つ質問させてください。 Masked Multi-Head Attention についてです。
    decorderモデルでは、推論した単語ベクトルが逐次入力されていくものと認識しています。ともすれば、後ろの単語情報って推論時入ってこないのでは...と疑問が浮かびました。
    勝手な推測ですが、学習時に正解のシーケンスデータを一度に渡す都合上、後ろのデータにアクセスできる問題が発生する。これを防ぐための
    Masked Multi-Head Attentionなのかなと...?と想像しています。見当違いなことを言っていったらすみません。 これについて ご知見等あれば お教えいただけれますと幸いです。

    • @AIcia_Solid
      @AIcia_Solid  9 месяцев назад

      ご視聴コメントありがとうございます!!
      まさに、ご指摘のとおり、
      後ろの単語情報は、前の単語の推論時には入ってきません。
      導入理由も、学習時のリーク(カンニング)を防ぐためです!
      動画では軽くしか話していませんが、原論文ではそのあたりもしっかり書いてありますので、是非参考にしてみてください!

    • @apatite530
      @apatite530 9 месяцев назад

      @@AIcia_Solid ありがとうございます。霧が一つ晴れました。現論文の方見てみます!

    • @AIcia_Solid
      @AIcia_Solid  8 месяцев назад

      ぜひぜひ!
      なかなか歴史に残る論文ですので、是非楽しんで!🎉

  • @Nagato624
    @Nagato624 4 месяца назад

    無料で見ていいのか不安になる定期

    • @AIcia_Solid
      @AIcia_Solid  3 месяца назад

      えへへ🤤
      これで多くの人が技術を知ってくれて、それで明日の世界が良くなればいいなって思っています!
      (教育事業者にはダメージを与えている可能性があるので、それだけ申し訳ないですが、、、)
      もしどうしても課金したくてしたくてたまらなくなったらこちらへどうぞ😋
      → community.camp-fire.jp/projects/view/709000

  • @user-og5qf3fm2g
    @user-og5qf3fm2g 5 месяцев назад

    エンコーダに入力する512次元のベクトルというのは、分析モデルのp160にあるような、512×1のBowベクトルのことでしょうか?(>_

    • @AIcia_Solid
      @AIcia_Solid  5 месяцев назад

      ご視聴コメントありがとうございます!
      ちょっと細部が違うので補足しますね!
      エンコーダーへの入力は one-hot vector です。なので、単語数次元(Transformer の現論文なら30000~40000次元です)のベクトルが入ります。
      この出力が512次元のベクトルで、『分析モデル』本のp168からの word2vec で解説されている単語分散表現が得られます。
      (ちなみに、Transformer についてはp202から解説があるので、ご参照ください。)
      一旦以上にします。
      この後も追加で質問が出るかと思いますので、何かあればまた是非ご質問くださいませ!

    • @user-og5qf3fm2g
      @user-og5qf3fm2g 5 месяцев назад

      ​@@AIcia_Solid
      ありがとうございます!理解できました😂

    • @AIcia_Solid
      @AIcia_Solid  5 месяцев назад

      それは良かったです!
      また何かあればいつでもご質問ください!

  • @user-ft4ur3ct3q
    @user-ft4ur3ct3q 11 месяцев назад

    めっちゃわかりやすかった!けどFNN層の役割がまだちょっと理解しきれてない。。。
    K,Vがそれぞれ別々の変換行列を持っていて、そのパラメータを学習させることがAttentionとして機能するのどうしてだろ〜
    パラメータあたりの表現力が高くなるから、とかなのかな。。。
    そうだとしたら、FNN層も含めてになるけど、「Encodeする中で特徴ベクトル全体は複雑に変形されるほど表現力が高いから嬉しい」ってことになるのかな
    あと学習させるときは各変換行列Wはどうやって更新するんだろ。バックプロパゲーションするわけでもないし。。。元論文読もう。。。

    • @AIcia_Solid
      @AIcia_Solid  11 месяцев назад

      ご視聴コメントありがとうございます!🎉
      FNN は、多分ですが、非線形性をより強くするためあたりで入れてるんじゃないかと想像しています🤔
      わたしの想像を超えて、真に、どういう役割なのかは、最新研究の範疇なので、論文を探してみるのが良いかもしれません、、!
      ちなみに、学習は、通常通り誤差逆伝播が使われています!

  • @hokkaido1114
    @hokkaido1114 2 года назад

    やるやん

  • @niruru9560
    @niruru9560 3 года назад +1

    待ってます。

    • @AIcia_Solid
      @AIcia_Solid  3 года назад +1

      お ま た せ !

  • @kone2018
    @kone2018 9 месяцев назад

    chat gptが流行る前に解説していたんか
    めちゃめちゃすごいな
    インターステラーを紹介すているだけの一発屋とは大違いやな

    • @AIcia_Solid
      @AIcia_Solid  9 месяцев назад

      でしょ😎✌️
      ちなみに、次は強化学習が流行りますよ😎😎😎

    • @kone2018
      @kone2018 9 месяцев назад

      @@AIcia_Solid
      そうなんですか?
      ありがとうございます!!

    • @AIcia_Solid
      @AIcia_Solid  8 месяцев назад

      そうです、ロボットが来ますので😎
      是非お楽しみに!(^o^)

  • @kone2018
    @kone2018 10 месяцев назад

    p横矢印
    ではなくて、
    pベクトル
    じゃだめなの?
    異なる概念ってこと?

    • @AIcia_Solid
      @AIcia_Solid  10 месяцев назад

      概念としては似ていますが、行列を右から掛ける時、左から掛けるときの計算の意味が異なるので、区別する必要があります。
      一般的には縦ベクトルが多いですが、この動画では例外的に横ベクトルを用いるので、強調しておきました!

  • @luposX
    @luposX 2 года назад

    wtf

  • @kochikyushu
    @kochikyushu 2 года назад

    なんでアバターが女?違和感ハンパない

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +2

      そのうち慣れます😎✌️

    • @kochikyushu
      @kochikyushu 2 года назад

      @@AIcia_Solid 一通り真剣に見てたら結構なれてきました.新たな癖に目覚めてしまったのでしょうか.内容は圧倒的にわかりやすかったです!

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      ご視聴ありがとうございます!😍
      Welcome to the New World!!!🎉

  • @KK-zw7wg
    @KK-zw7wg Год назад +1

    全然解説になってない。なんか、とか、よく分からんけど、とか曖昧なところを濁してる。
    最後の英語toドイツ語翻訳の例もわけわからん。Qがドイツ語なの?Qは入力じゃないの?ドイツ語入力してドイツ語出すの?は?

    • @AIcia_Solid
      @AIcia_Solid  Год назад

      ご視聴コメントありがとうございます!
      ご意見いただきありがとうございます。ぜひ今後の参考にさせていただきたいので、解説になっていないと感じられた部分を具体的にお教えいただいても良いでしょうか?
      後半の翻訳の例については、おそらく、もう一度見返していただくか、原論文をお読みいただくかすれば、より理解が深まるのではないかと思います。(現論文は概要欄に URL があります。)
      ぜひご参考にしてみてください!

  • @user-sf7tb3pn1q
    @user-sf7tb3pn1q 3 года назад

    こんな話はネット上にしこたま転がってるから別に…
    逆にsoftmaxの重みが斜線上になることの意味とかはみんな語らないけど、解説はやっても実際に学習やったことある人は居ないのかな

    • @AIcia_Solid
      @AIcia_Solid  3 года назад +1

      私は理論メインなので残念ながら学習を真面目にやったことはありません😇
      そういう人があまりいないならチャンスですね!
      ぜひやってみてはいかがでしょう?(^o^)

  • @kimata9002
    @kimata9002 2 года назад

    ありがとうございます!

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      どういたしまして!🎉

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      すみません!!!🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️
      いま、このコメントが Super Thanks であることに気づきました!🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️
      とんでもない大金をご支援いただきましてありがとうございます。
      たくさんの価値を感じていただけたようで嬉しいとともに、とても気持ちが引き締まります!
      今後とも良き動画を生成できるようがんばります! 応援よろしくお願いします!🔥🔥🔥

  • @sxzaqwedcxs
    @sxzaqwedcxs 2 года назад

    ありがとうございます!

    • @AIcia_Solid
      @AIcia_Solid  2 года назад

      どういたしまして!(^o^)

    • @AIcia_Solid
      @AIcia_Solid  2 года назад +1

      すみません!!!🙇‍♀️🙇‍♀️🙇‍♀️
      いま、このコメントが Super Thanks であることに気づきました!🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️🙇‍♀️
      ご支援いただきありがとうございます!😍
      今後の動画清静の励みになります!(^o^)
      今後も良き動画を生成していきますので、応援よろしくお願いします!!!