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

深層学習による自然言語処理 輪読会#1 資料

Yoichi Tokita
February 24, 2022

深層学習による自然言語処理 輪読会#1 資料

機械学習プロフェッショナルシリーズの「深層学習による自然言語処理」の輪読会の第1回資料。

https://learn-stats-ml.connpass.com/event/239039/

輪読会中の書き込みありなので、ちょっとみづらいかも。

Natural Language Processing by Deep Learning

Yoichi Tokita

February 24, 2022
Tweet

More Decks by Yoichi Tokita

Other Decks in Science

Transcript

  1. ⾃⼰紹介 • tokita(@yoichi_t) • 所属:株式会社Glia Computing (https://www.glia-computing.com/) • 2018年8⽉に設⽴(Co-Founder) •

    機械学習/データ分析のPoC、導⼊⽀援、コンサル • 過去 • 広告会社で推薦システムの開発をやっていたり、警備会社で⼈物⾏動 の研究をしてました
  2. 書籍の構成 • 1章 ⾃然⾔語処理のアプローチ • ⾃然⾔語処理(NLP)の難しさ、深 層学習への期待 • 2章 ニューラルネットの基礎

    • モデル構造、損失関数(尤度)、最 適化法(勾配法)、誤差逆伝播法 の基礎 • 3章 ⾃然⾔語処理における深層 学習の基礎 • ⾔語モデルとは何か、分散表現 (word2vec)、系列変換 (seq2seq) • 4章 ⾔語処理特有の深層学習の 発展 • Attention機構、記憶ネットワーク、 ⾼速化 • 5章 応⽤ • 応⽤モデルの紹介と課題の整理: 翻訳、要約、対話、質問応答 • 6章 汎化性能を向上させる技術 • 汎化誤差を低減させる技術 • 7章 実装 • 実装上の⼯夫、効率的な計算⽅法
  3. 1章 ⾃然⾔語処理のアプローチ • 1.1 伝統的な⾃然⾔語処理 • 応⽤タスクを部分問題に分割して、それらを組み合わせる • 1.2 深層学習への期待

    • 応⽤タスクを直接ニューラルネットで解く • 1.3 テキストデータの特徴 • 1.4 他分野への広がり
  4. 1.1 伝統的な⾃然⾔語処理 • 深層学習以前の⾔語処理 • 応⽤タスクを複数の部分問題に分割。汎⽤的な部分問題(⾔語解析タ スク)を組み合わせて所望のタスクを解く。 • 応⽤タスク:翻訳、⽂書分類など •

    部分問題:品詞タグ付け、単語分割、構⽂解析など (p.2参照) • 課題 • 各⾔語解析タスクが部分問題を解くのに最適化されており、応⽤タス クを解くために全体を最適化させるのが難しい • 各⾔語解析タスクの定義や特性をよく把握しておかなければ、使いこ なすのが難しい
  5. 1.3 テキストデータの特徴 • 単語:NLPでの⼀般的な処理単位。 • ⽂:単語(記号)が⼀つ以上連なったデータ。 • ⽂、単語の分割については扱わない • NLPで扱うデータ

    • 「可変⻑」の「記号列」(詳細は3章) • 1.4 他分野への広がり • 可変⻑の記号列を扱う問題にNLPの技術が応⽤できる • 購買履歴からの商品推薦 • 分⼦構造を記号列として、創薬につなげる研究
  6. 2章 ニューラルネットの基礎 • 2.1 教師あり学習 • 2.2 順伝播型ニューラルネット • 2.3

    活性化関数 • 2.4 勾配法 • 2.5 誤差逆伝播法 • 2.6 再帰ニューラルネット • 2.7 ゲート付き再帰ニューラルネット • 2.8 ⽊構造再帰ニューラルネット • 2.9 畳み込みニューラルネット
  7. 2.1 教師あり学習 • 損失関数:最適化の度合いを測るための関数(設計要素) • 交差エントロピー(cross-entropy loss) • ヒンジ損失 :ニューラルネットの出⼒

    ニューラルネットの出⼒の確率化→softmax関数 ⽬的変数次元の確率が⾼ければ⼤きい値 (これにマイナスがかかる) 正解次元を除いて最⼤の出⼒ 正解次元の出⼒とそれ以外が離れるほど値が⼩さくなる (マージン最⼤化を狙う)
  8. 交差エントロピーの導出 • 多クラス分類問題でよく使われる • 単語列𝑦!:#$! が与えられた場合の𝑦# の予測は、語彙の中でどの単語を選 択するべきかの分類問題となる • 単語𝑦#,&

    の確率モデルとしてカテゴリ分布を設定したものとみなせる (2値分類ならベルヌーイ分布=ロジスティック回帰) • ニューラルネットワークの出⼒層の活性化関数にソフトマックス関数 (式2.5)を設定すると交差エントロピーが導出できる • 次⾴
  9. 2.2 順伝播型ニューラルネット • ニューラルネットはパラメータ⾏列と特徴ベクトルとの積 • 特徴ベクトルとパラメータ⾏列の積で特徴抽出する(隠れ状態) • 多層ニューラルネットは特徴抽出を多数繰り返したもの p.13, 図2.1

    活性化関数 パラメータ⾏列 特徴ベクトル バイアス 最終層だけを⾒ると、多項ロジスティック回帰と等価。 特徴抽出(隠れ状態への変換)が深層学習の表現⼒のポイント。
  10. 2.4 勾配法 • 損失関数の最⼩化が⽬的→勾配法がよく⽤いられる • 勾配法により損失関数を最⼩化するパラメータθを推定 p.17, 式2.17, 図2.3 最急降下法

    確率的降下法 - 全データで勾配を計算 - 1回の評価に時間がかかりすぎることがある - ミニバッチ分のデータだけを使って勾配を計算 - 雑にでも速く何度もパラメータを更新 - 偏微分の分散が⼤きいと収束が遅いので注意
  11. ⻑短期記憶:LSTM • ゲート付き再帰ニューラルネットの代表的なモデル • セル(cell)という隠れ状態を新たに⽤意。セルと3つのゲートを使って 隠れ状態ℎ# (')を⽣成。 • セルの状態𝑐! (#)を出⼒ゲート𝑜!

    (#)で調整して隠れ状態ℎ! (#)として出⼒ • セルの状態𝑐! (#)は過去のセルの情報𝑐!%& (#) を忘却ゲート𝑓! (#)で減衰させ、⼊⼒ゲート 𝑖! (#)で減衰させた通常のRNNの隠れ状態& ℎ! (#)を⾜し合わせて更新する • 3つのゲートと& ℎ! (#)はそれぞれの パラメータ⾏列と状態 ℎ! #%& , ℎ!%& # ' の積で計算される(式2.58) 依存関係の⾼い情報の場合に出⼒を出せるよう になる(活性化させる) - 適切なタイミングで過去の状態をリセット (過去を忘れる) - 注⽬すべき⼊⼒かどうかを判定する
  12. ゲート付き回帰ユニット • LSTMで使ったセル(cell)を使わずに状態を更新していく • LSTMよりもゲートが少なく、学習すべきパラメータ数が少ない • 更新ゲート𝑧# (')の割合で過去の隠れ状態ℎ#$! (') と候補状態%

    ℎ# (')を混ぜる • 候補状態% ℎ# (')はリセットゲート𝑟# (')の値で過去の状態ℎ#$! (') を減衰させ、 RNNの状態を計算する 過去の状態をどのくらい残すか(どの程度忘れ るか)を調整 過去の状態からの更新量を調整