らんだむな記憶

blogというものを体験してみようか!的なー

Attention (1)

ちょっと気持ちを入れ替えて、ゼロつく 2 (17) - らんだむな記憶 以来 100 日ほど寝かせたゼロつく 2 を題材に attention について整理をしておきたい。

ざっと 7 章「RNN による文章生成」からおさらいしたい。[Embedding]->[LSTM]->[Affine]->[Softmax] というレイヤが重なってこれが時系列データで呼ばれるのであった。画像分類モデルとの比較で強引に書くと

  • Embedding ↔︎ スパース過ぎないベクトル化 ↔︎ 画像の $[0, 255]^N$ での解釈
  • LSTM ↔︎ 特徴量の抽出 ↔︎ 畳み込み層
  • Affine ↔︎ 分類器 ↔︎ 線形層 ※ Affine か線形かは単なる呼び方の問題だと思う
  • Softmax ↔︎ 確率 ↔︎ Softmax
  • 推論

という感じで RNN の場合、前の時刻のデータが入力に入ってくることを除けばやってることはほとんど同じだと思う。画像分類も CNN だと位置情報として前後のデータを入力にとってごにょごにょして特徴量を出力しているので、やはりあまり変わらない気がする。

Embedding をつかう理由はスパースなベクトル化を避けるためであった。ワンホットエンコーディングでは次元数の大きいベクトル空間の中でスパースなコード化をするので嬉しくなく、可能なら連続的なベクトル化ができるようなもっと密な仕組みが欲しかったわけである。

期待を込めてネットワーク構造を組み立てて訓練を実行した結果、良い感じの推論が実現できた時には、最初はジャンクであったネットワークも、Embedding 層には何らかの単語の意味が詰まったパラメータが、LSTM 層には時系列の何某かが詰まったパラメータが、そして Affine 層にはそれらから良い感じに次の単語を推論する digit を算出できるパラメータが現れる・・・と信じられているのであった。