Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【第二回】サイエンスフロンティア高校 サイエンスリテラシI 授業スライド

【第二回】サイエンスフロンティア高校 サイエンスリテラシI 授業スライド

More Decks by Semantic Machine Intelligence Lab., Keio Univ.

Other Decks in Technology

Transcript

  1. 慶應義塾大学 杉浦孔明研究室 飯岡雄偉,小槻誠太郎,小松拓実, 是方諒介,松尾榛夏,和田唯我 サイエンスフロンティア高校 サイエンスリテラシI

  2. 第3回 - Image-to-text: 画像の説明文を生成する - 2 -

  3. 今日の目標:知る+試す - 3 - 知る • 自然言語処理とはどんなもの? 試す • BLIPを使ってみよう!

  4. 知る 自然言語処理とはどんなもの? - 4 -

  5. 自然言語とは - 5 - 自然言語 • 人間が普段使う日本語や英語のような言語 例: ▪ 『夏休みが無くなったらすごく悲しい。』

    ▪ “I wanna sleep a day”.
  6. 自然言語とは - 6 - 自然言語 • 人間が普段使う日本語や英語のような言語 厄介ポイント↓ • 意味が文脈に依存するケースがある

    例:『あまい』 『ドーナツがあまい。』/『彼は子供にあまい。』 • スラング、話し言葉など新しい言葉がどんどん出てくる 例:wanna, doggo, Doggo by Imagine
  7. 自然言語処理とは - 7 - ⚠Warning • 事前知識が必要なので一定以上の詳細には踏み込みません... • お気持ちを知るつもりで…! 📔Note

    • 勉強したい人はとりあえず高校数学を修めて大学数学をかじりましょう • ベクトル(線形代数) • 確率 • 微積分 … etc
  8. 自然言語処理とは - 8 - 1. 自然言語をどう扱うのか? 2. 自然言語処理では何をしているのか?

  9. 1. 自然言語をどう扱うか - 9 - 結論: 文を小さい単位に分割して、その列として扱う

  10. 1. 自然言語をどう扱うか - 10 - 結論: 文を小さい単位に分割して、その列として扱う • 文字:「おはよう」→ お

    / は / よ / う • サブワード:部分文字列。単体で意味が取れる保証はしない。 例:”ball” → b / all • 単語:意味がとれる分割 例:”What are you doing” → what / are / you / doing
  11. 1. 自然言語をどう扱うか - 11 - 結論:文を小さい単位に分割して、その列として扱う → では分割した後は、どうする?

  12. 1. 自然言語をどう扱うか - 12 - 結論:文を小さい単位に分割して、その列として扱う → では分割した後は、どうする? N次元のベクトルに変換して扱います

  13. 1. 自然言語をどう扱うか - 13 - 結論:文を小さい単位に分割して、その列として扱う → では分割した後は、どうする? N次元のベクトルに変換して扱います (ここは頭からっぽにしていてもいいです)

  14. 1. 自然言語をどう扱うか - 14 - 結論:文を小さい単位に分割して、その列として扱う → では分割した後は、どうする? N次元のベクトルに変換して扱います (ここは頭からっぽにしていてもいいです)

    z x y N=3の例 3次元空間上の点を 原点からの各座標方向の変位で示す (1, 7, 4)T
  15. 1. 自然言語をどう扱うか - 15 - 結論:文を小さい単位に分割して、その列として扱う → では分割した後は、どうする? N次元のベクトルに変換して扱います (ここは頭からっぽにしていてもいいです)

    z x y N=3の例 この空間の上に分割した 単語/サブワードをマッピング king woman
  16. 1. 自然言語をどう扱うか - 16 - 結論:文を小さい単位に分割して、その列として扱う → では分割した後は、どうする? N次元のベクトルに変換して扱います (ここは頭からっぽにしていてもいいです)

    z x y N=3の例 このベクトルの足し算で意味の足し算が 出来るようにマッピングされる king woman queen
  17. 1. 自然言語をどう扱うか - 17 - 結論:文を小さい単位に分割して、その列として扱う → では分割した後は、どうする? N次元のベクトルに変換して扱います (ここは頭からっぽにしていてもいいです)

    z x y N=3の例 このベクトルの足し算で意味の足し算が 出来るようにマッピングされる king woman queen N次元のベクトルに変換 N は768や1024くらいの大きさ (自然言語が内包する語彙数よりは かなり小さい) 自然言語処理モデルは こうしたベクトルの列を扱います
  18. CLIP[Radford+, ICML21] • 画像もベクトルに変換することができる • CLIP[Radford+, ICML21] • 自然言語と画像のベクトルを近づける →

    自然言語と画像を対応付けることができる 2. 自然言語と画像を対応付ける - 18 - z x y king woman 近づける 近づける
  19. CLIP[Radford+, ICML21] • 画像もベクトルに変換することができる • CLIP[Radford+, ICML21] • 自然言語と画像のベクトルを近づける →

    自然言語と画像を対応付けることができる 2. 自然言語と画像を対応付ける - 19 - z x y king woman 近づける 近づける はい、 頭からっぽでも 良いよゾーンは終わりです! 深呼吸して次に進みましょう
  20. Image-to-text: 画像の説明文を生成する BLIPを使ってみよう! - 20 -

  21. 画像キャプション生成(Image Captioning) - 21 - ▪ 画像の内容を説明する文章を生成する技術 ▪ 使われている場面 ▪

    視覚障害者の補助 ▪ 未来に起こりそうな出来事を説明 ▪ =Future Captioning 前の車が車線変更 しそうです。 [Mori+ IV21] 着物を羽織った女性が 竹をくわえていますね。
  22. ビジュアル質問応答(Visual Question Answering / VQA) - 22 - ▪ 画像中の物体に関する質問に答える技術

    ▪ 使われている場面 ▪ 医療画像をもとにした診察 ▪ 対話を通した子供の学習補助 [問題] 男性は何の動物の被り物をしている? おそらく猪かと。 [Umada+ DEIM20] 何か異常は見られますか? 若年性皮膚筋炎です。 Q. A.
  23. Image Captioning / VQA 手法:BLIPを使ってみよう ▪ BLIP ▪ 2022年にSalesforceが発表したモデル ▪

    様々なVision and Languageタスクを実行可能 ▪ 今回は、”Image Captioning” と “VQA” を実際にBLIPに実行させます “A man swinging a tennis racket at a tennis ball” [Image Captioning] [VQA] Q. “What sport does he play?” A. “Tennis” https://mainichi.jp/articles/20220114/k00/00m/050/207000 c
  24. BLIPで Image Captioning / VQA ▪ 使いたい写真をパソコンに送信 ▪ スマホからGoogle ドライブへアップロード

    ▪ ブラウザで検索して画像を保存 ▪ 以下のリンクにアクセス ▪ https://example.com
  25. ライブラリのインストール ▪ ”ライブラリのインストール”のプログラムを実行 ▪ カーソルを近づけると実行ボタン が表示されるのでクリック

  26. 画像をアップロード ▪ “テスト画像のロード”のプログラムを実行 ▪ 「Choose Files」or「ファイルを選択」が出てくるのでクリック ▪ 好きな画像を選択

  27. Image Captioningを実行 ▪ “画像キャプション生成モデルのロード” を実行 ▪ “画像キャプション生成” を実行 ▪ 先ほどアップロードした画像に、AIがキャプションを生成!

    ▪ ※違う画像でキャプション生成するとき ▪ “テスト画像のロード” 〜 ”画像キャプション生成” を順番に実行
  28. Image Captioningの実行例 ▪ 正確に画像の説明文を生成可能 ▪ セパタクローはバレーボールと説明 “an orange cat riding

    a red bicycle on a sidewalk” https://www.pinterest.jp/pin/cat-on-a-bike-- 356558495482515964/ “a group of men playing a game of volleyball” https://helloworld.international/events_/free-event-sepak-takraw/
  29. Visual Question Answering (VQA) を実行 ▪ “Visual Question Answeringモデルのロード” を実行

    ▪ “VQAの実行”の右側にある”Question設定”を編集 ▪ 先ほどアップロードした画像に関する質問文を英語で記述 ▪ “VQAの実行”のプログラムを実行 → AIが質問に対する答えを生成! ▪ ※違う画像について質問するとき ▪ “テスト画像のロード” と上記 を順番に実行
  30. Visual Question Answering (VQA) の実行例 ▪ 正確に質問の答えを生成 ▪ イラストについても正しく回答 Q.

    what is the mood of the children? A. happy Q. how many children in the picture? A. 3 [2] Wang, Peng, et al. "Unifying architectures, tasks, and modalities through a simple sequence-to-sequence learning framework." arXiv preprint arXiv:2202.03052 (2022). [2] Q. what is the woman doing? A. snowboarding Q. what is the season in the picture? [1] https://livejapan.com/ja/article- a0000435/ A. winter [1]
  31. 31 Appendix : モデル図 ▷ 入力画像・入力テキストから特徴量を抽出 ◦ 画像エンコーダ :Vision Transformer

    ◦ テキストエンコーダ:BERT
  32. 32 Appendix: Captioning and Filtering (CapFilt) ▷ Filter ◦ 一度事前学習済みのImage-grounded

    Text Encoderを利用 ◦ ITM headがFalseであればデータセットから排除 Li, J., Li, D., Xiong, C., & Hoi, S. (2022). Blip: Bootstrapping language-image pre-training for unified vision-language understanding and generation. arXiv preprint arXiv:2201.12086.
  33. 第4回 - 自然言語生成: 文の続きを生成する - 33 -

  34. 知る 自然言語生成技術はどんなもの? - 34 -

  35. 自然言語生成 - 35 - ▪ 自然言語の文などの入力から自然言語の文を生成する技術 ▪ 使われている場面 ▪ キーボードで次の単語を予測

    ▪ AIエージェントによる会話 ▪ Siri, Alexa, … ▪ Pepper https://www.softbankrobotics.com/jp/product/biz3/
  36. 1. 自然言語をどう扱うか (復習) - 36 - 前提:文を小さい単位に分割して、その列として扱う → では分割した後は、どうする? N次元のベクトルに変換して扱います

  37. 1. 自然言語をどう扱うか(復習) - 37 - 前提:文を小さい単位に分割して、その列として扱う → では分割した後は、どうする? N次元のベクトルに変換して扱います (ここは頭からっぽにしていてもいいです)

    z x y N=3の例 このベクトルの足し算で意味の足し算が 出来るようにマッピングされる king woman queen N次元のベクトルに変換 N は768や1024くらいの大きさ (自然言語が内包する語彙数よりは かなり小さい) 自然言語処理モデルは こうしたベクトルの列を扱います
  38. 2. 自然言語生成では何をしているのか - 38 - 結論: トークンの列を与えた時に次に続くトークンを予測する 例1/2: f が、

    「トークンの列を入力すると、 それに続くトークンを予測して返す」関数 だとする この f は自然言語を処理する深層学習モデル 例:GPT-3
  39. 2. 自然言語生成では何をしているのか - 39 - 結論: トークンの列を与えた時に次に続くトークンを予測する 例1/2: f (“自分は東北の田舎に生”)

    = “れ”
  40. 2. 自然言語生成では何をしているのか - 40 - 結論: トークンの列を与えた時に次に続くトークンを予測する 例1/2: f (“自分は東北の田舎に生”)

    = “れ” f (“自分は東北の田舎に生れ”) = “ました”
  41. 2. 自然言語生成では何をしているのか - 41 - 結論: トークンの列を与えた時に次に続くトークンを予測する 例1/2: f (“自分は東北の田舎に生”)

    = “れ” f (“自分は東北の田舎に生れ”) = “ました” f (“自分は東北の田舎に生れました”) = “の”
  42. 2. 自然言語生成では何をしているのか - 42 - 結論: トークンの列を与えた時に次に続くトークンを予測する 例1/2: f (“自分は東北の田舎に生”)

    = “れ” f (“自分は東北の田舎に生れ”) = “ました” f (“自分は東北の田舎に生れました”) = “の” : f (“自分は東北の田舎に生れましたので、 汽車をはじめて見たのは、よほど大きくなってからでした”)=“。” 『人間失格』参考 (https://www.aozora.gr.jp/cards/000035/files/301_14912.html)
  43. 2. 自然言語生成では何をしているのか - 43 - 例2/2:GPT-2の動作例 (次の単語の予測を繰り返す!) https://jalammar.github.io/illustrated-gpt2/

  44. 2. 自然言語生成では何をしているのか - 44 - 例2/2:GPT-2の動作例 (次の単語の予測を繰り返す!) https://demo.allennlp.org/next-token-lm ↑ リンク先はAllen

    Institute for AIが提供する簡単なデモ 文章の続きを「予測」するイメージが掴みやすい (余裕がある人は触ってみても良いです) (次のスライドに例を載せてます)
  45. 2. 自然言語生成では何をしているのか - 45 - 例2/2:GPT-2の動作例 (次の単語の予測を繰り返す!) https://demo.allennlp.org/next-token-lm

  46. 試す GPT-2を使ってみよう! - 46 -

  47. 文書生成手法:GPT-2を使ってみよう - 47 - ▪ GPT-2 ▪ 2019年2月にOpenAIが発表した文生成モデル ▪ 「元女子高生AIりんな」で有名なrinna社が日本語GPT-2を公開

    ▪ ある文章を与えると、続きになる文を生成 確実に目的意識を持って、やることを掴 むということです。何事も、最初の動機 が明確なほど、充実した時間を過ごせる はずです。例えば… “高校生活で大事なことは” Radford, Alec, et al. "Language models are unsupervised multitask learners." OpenAI blog 1.8 (2019): 9.
  48. GPT-2で文書生成 (1/2) - 48 - ▪ 以下のリンクにアクセス ▪ https://example.com ▪

    プログラムを上から順番に実行 ▪ カーソルを近づけると実行ボタン が表示されるのでクリック
  49. GPT-2で文書生成 (2/2) - 49 - ▪ 冒頭の文章を好きな文に変更可能 ▪ ダブルクォーテーション「”」で囲むこと ▪

    例 ▪ 文章を変更後は、「冒頭の文章を指定」と「続きの文章を生成」 をそれぞれ実行
  50. 実行例 (1/2) - 50 - なんか暇だとさ、暇な時間がもったいない んだよね。でもね、俺にとってその時間を 埋めることが出来るのはポケモンゲームぐ らいしかないのよね。… 山間部の給水停止や水質汚濁などの問題も

    あげられます。日本は森林を多く含んでい るため、水不足の心配は少ないのですが… “なんかいいことないかなぁ〜、 最近暇なんだよね〜。” ▪ 非常に高いクオリティの文書を生成 ▪ 口調もしっかり合わせてくれる “近年問題となっている こととして、”
  51. 実行例 (2/2) - 51 - なんか暇だとさ、暇な時間がもったいない んだよね。でもね、俺にとってその時間を 埋めることが出来るのはポケモンゲームぐ らいしかないのよね。… 山間部の給水停止や水質汚濁などの問題も

    あげられます。日本は森林を多く含んでい るため、水不足の心配は少ないのですが… “なんかいいことないかなぁ〜、 最近暇なんだよね〜。” ▪ 非常に高いクオリティの文書を生成 ▪ 口調もしっかり合わせてくれる “近年問題となっている こととして、”
  52. GPT-2で色々試してみよう - 52 - ▪ 同じ入力を与えても実行するたびに結果が変わる ▪ 何回か実行してみよう ▪ 周りの人と出力結果を比べてみよう

    ▪ “ ”の中を変えてみよう ▪ 口調も変えてみよう ▪ 面白い例を探してみよう ★ 面白い例を見つけたら私たちにも教えてください!! ★ 使い方で分からないことが合ったら気軽に声をかけてください