[ディープラーニング入門]⑦ディープラーニングの関連技術

ディープラーニングは奥が深い。

引き続き「はじめてのディープラーニング(我妻幸長[著])」を使用して学んでいきます。
今回がラスト。
ディープラーニングは意外と入門しやすいのかもしれない、ただし奥が深くて大変そうだ。

1.再帰型ニューラルネットワーク(RNN)

文脈(時間の変化)を考慮した判断を可能にするニューラルネットワーク。

例)
・交通状況予測・・・12:00時点→12:01時点→12:02時点...と状況の変化を踏まえた予測が可能になる。
・会話の流れから次の発言を予測する。同じ言葉でも文脈から意図が変わる。

再帰するのは中間層であり、その時の入力と前回の出力が中間層の入力になる。

層が深くなるので、勾配消失が起きやすい。そのため長期の記憶を保持する(長期依存性を有する)のは難しい。

●長期既存性保持対策一例

LSTM ゲートと呼ばれる過去の情報を忘れる仕組みを有する。中間層の代わりにLSTMブロックを配置する。
GRU LSTMを改良したもの。シンプルな構造になり使い勝手が向上している。

2.自然言語処理(NLP)

言語をコンピュータに処理させる技術のこと。
自然言語をニューラルネットワークで扱うために、以下の手法を用いる。

(1) 形態素解析

自然言語を形態素(単語)まで分解する技術のこと。形態素解析エンジンにはMeCab、JUMAN、ChaSenなどがある。

(2) 分散表現

単語をベクトル化(定量化)する手法。単語同士の類似度の計算や、単語間での意味の足し算・引き算などが可能。

例)「王」-「男性」+「女性」=「女王」

分散表現モデルにはword2vec、fastTextなどがあり、ベクトルを作成するアルゴリズムにはContinuous_Bag-of-Words、skip-gramなどがある。

3.生成モデル

学習させたデータと似たようなデータを生成するモデルのこと。
以下は一例。

(1) GAN(敵対的生成ネットワーク)

生成するネットワークと識別するネットワークを競い合わせることで学習するネットワーク。
畳み込みニューラルネットワークを利用したものをDCGANと呼ぶ。

(2) VAE(変分自己符号化器)

先にオートエンコーダ(自己符号化器)の説明。
入力と同じ出力を行うニューラルネットワークで、中間層は入力よりも次元が小さくなっている(次元削減)。
入力から潜在変数への生成をEncoderと呼び、潜在変数から出力の生成をDecoderと呼ぶ。いわば圧縮と復元を行っているに等しい。

VAEはオートエンコーダを発展させたもので、潜在変数を正規分布に沿うようにしたネットワーク。
正規分布に沿うようにしたことで、連続性が生まれ、潜在変数を調整することで人の表情を連続的に変化させることなども可能になる。

4.強化学習

現時点の状態から一番価値の高い行動をとれるように学習する仕組み。
ディープラーニングのように正解があるわけではなく、行動の対価に報酬が与えられることで、より多くの報酬を得るような行動を学習する。
強化学習では目先の報酬(即時報酬)ではなく、将来にわたっての価値が最大になるように学習する。
強化学習の代表的な手法の「Q学習」はQ値(状態行動価値)と呼ばれ、今の状態からとりえる行動のうち、Q値が最大の行動を選択する。
Q値は即時報酬と次の行動のQ値をもとに更新されていき、最適化されていく。

強化学習とディープラーニングを組み合わせたものを深層強化学習と呼び、特にQ学習とディープラーニングを組み合わせたものをDQNとよぶ。
Q学習の弱点として、状態の数が多い場合に非常に多くの試行数が必要となる(時間がかかる)ことがあげられるが、
Q値の決定にディープラーニングを用いることでその弱点を解決することができる。
例えば、「ニューラルネットワークの入力に今の状態を入力し、分類問題として解かせ適切な行動を学習させる」など。何を正解とするのかは難しそうだが。