LoginSignup
1
0

More than 1 year has passed since last update.

【E資格・深層学習②】自然言語処理 重要なネットワーク(Word2Vecなど)とその特徴

Posted at

1.初めに

JDLA主催のE資格(2021#2)の受験も終わり、学習した内容、自分自身が引っかかったポイントを本記事にまとめた。
特に本記事では自然言語処理(NLP)をスコープにしている。

参考として、第一弾の画像処理を以下に記載する。
【E資格・深層学習】画像処理 重要なネットワーク(AlexNetなど)とその特徴

2.重要なネットワーク・手法

2- 1.ポイント

ー文法が曖昧。
ー単語列を確率モデルとする手法が主流。
ー文をナイーブに、そのまま素直に扱うと、高次元でスパースなデータになる。
ー上記を踏まえ、まずはニューラル言語モデル、すなわちRNNが最も成功し、その次にAttention機構が現れた。

2- 2.N-gram

n-gramとは異なる。
自然言語の単語の並びを確率モデルで表現したい時に使う概念。
Token: 文を区切る最小単位。単語、文字、byteなど。

仮説:ある単語の分布は、直前のN単語だけに依存すると仮定する。その場合、t番目の単語Xtの確率は
スクリーンショット 2021-09-23 23.58.34.png

文全体、すなわち、X1, X2, X3, ・・・XTと単語が並ぶ確率は、
スクリーンショット 2021-09-23 23.58.45.png

2-3. ニューラル言語モデル(RNNなど)を扱うにあたっての指標

もともと、言語モデルの目的は、
「ある文字列(単語列、文章)が与えられた時に、次に来る単語を予測する」
ことにある。

解説1
解説2

BLEU:
数ある指標の中で、もっとも重要な指標。
文を対象にしている。
正解の文(プロの翻訳家の作成した文章)と、生成された文(機械による翻訳文)の類似度を表している。
n-gramの一致度が基本。ライブラリなどで細かい算出基準が異なるので、詳細は都度確認。
スクリーンショット 2021-09-26 20.48.06.png

解説

perplexity:
BLEUは文を対象にしていることに対して、単語の評価指標に相当。以下の定義式のように、実質的にエントロピーと同等。
スクリーンショット 2021-09-26 21.04.11.png

解説

2-4. 単語埋め込み

単語を、数百次元の低レベル(!?)のベクトル表現をする。

解説

2-5. Encode-Decode

スクリーンショット 2021-09-26 21.56.41.png

2-6. simple RNN(Recurrent Neural Network)

-各時刻の予測値=softmax[線形関数(次の時刻の入力)]
-学習方法の一つに、教師強制がある。通常の誤差逆伝播法だと時間がかかるため、前時刻の正解データを使用。

2-7. LSTM

-学習対象のパラメータ=各入力に対する重み・バイアス、及び各ゲートを制御する重み・バイアス
-inputゲート・・・現在の入力をどれだけメモリに取り込むか。(メモリ=記憶セル)
-outputゲート・・・現在のメモリの値をどれだけ出力するか。
-forgetゲート・・・メモリの値を、次の時刻に向けてどれだけ保持するか。
すでに良記事があるため、記事を紹介。
(Qiita記事)LSTMネットワークの概要

2-8. GRU

-2つのゲート
-出力=内部状態(どういうことだっけ)
-パラメータの数を減らし、LSTMと同程度の性能を持つ。
-時刻t-1の情報を、
  入力時:u(t)
出力時:1-u(t)
として利用。
-すでに良記事があるため、記事を紹介。

解説1
解説2
解説3

2-9. Bidirectional RNN

-すでに良記事があるため、記事を紹介。
解説1

2-10. エコーステートネットワーク

-学習が容易なパラメータに絞って学習を行い、短期記憶を残す。
-以下の学習は難しい。
 --1ステップ前の出力を入力として写像する回帰重み(=時刻列情報の回帰重み)
 --入力へ適用する重み
-スペクトル半径は「固有値の絶対値のmax」をとる。

スクリーンショット 2021-09-27 23.35.30.png

スクリーンショット 2021-09-27 23.36.41.png

2-11. Seq2Seq

エンコードした結果となる文脈ベクトルは固定長。そして、文脈ベクトルは特徴空間。
スクリーンショット 2021-09-26 22.03.06.png
文脈C(Encoder Vector)は固定長。入力系列が長すぎると、うまくエンコードができない。
そして、”入力の長さ”と”出力の長さ”は異なっていて良い。
対策として、エンコーダの各ステップでの出力を直接参照できるモデルとして、Attention機構が提案されている。
スクリーンショット 2021-09-30 0.52.44.png

解説1
解説2

2-12. word2vec

主に以下の2つの手法に分類される。
CBOW・・・周辺の単語から、ある単語を推測する。
skip-gram・・・ある単語から、周辺の単語を予測する。
どちらの手法も、入力層の重みWinと出力側の重みWoutをパラメータとしても持つ。
一般に、Winが単語埋め込み行列として埋め込まれる。
スクリーンショット 2021-10-02 0.04.51.png

解説1
解説2

2-13. Attention機構

Transformer含め、別の記事にて解説する。

3. 工夫

3-1. Leaklyユニット

前時刻の出力を重み付けしたもの、及び現時刻の入力に重み付けしたものを、それぞれ入力として利用する。
-時刻t-1からの接続(出力)にα倍
-入力層からの接続(入力)に1-α倍

3-2. スキップ接続

追記予定。

3-3. 勾配クリッピング

勾配爆発の回避を目的とする。

3-4.誤差逆伝播法と教師強制

追記予定

3-5.長期依存性

長期(遠い過去)のデータの特徴を適切に維持・管理するために、主に3つのアプローチがある。

a)複数の時間スケールで動作するモデル・・・短期と長期で分離。
-スキップ接続
-Leaklyユニット

b)複数の時間スケールで構造化・・・短期と長期で分離
-接続の解除

c)ゲート付きRNN・・・上2つと異なり、性能が格段に向上。
-LSTM
-GRU

短期の依存性 -> (約10ステップ) -> 長期の依存性

4.まとめ

LSTMやGRUも入りそうだが、こちらは他の記事(時系列or系列データ)で説明したい。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0