G検定メモ⑯　ディープラーニング　自然言語処理、音声認識、強化学習、編

#7-2　自然言語処理分野
単語の意味を表すベクトル空間モデル

######・word2vec（ワードツーベック）
単語wordは記号の集まり（文字列）
ワードツーベックの他の呼び方

記号をベクトルで表現することで、単語の意味を表現しようとするモデルなので
ベクトル空間モデル

単語の意味をベクトル空間の中に表現したと考えられるため
単語埋め込みモデル（word embedding models）

######・ワードツーベックの根拠
→単語の意味はその周辺の単語によって決まる

######・ワードツーベックの手法
①スキップグラム（Skip-gram）
ある単語を与えて周辺の単語を予測するモデル
②CBOW
周辺の単語を与えてある単語を予測する

どちらのモデルも中間層の表現をその単語の意味表現とみなしている

国と首都との対応関係を示した図は、ワードツーベックによって得られた意味表現のうち、国と対応する首都との関係に限って取り出し、主成分分析PCAをもちいて2次元に次元圧縮して表示した図
横軸は国と首都との対応関係を表している
縦軸は、下から上に向かって、ユーラシア大陸を西から東に横断するように地理的関係を保ってそれぞれがプロットされている

###2．単語の意味表現から文章の意味表現へ
word2vecに触発され、単語埋め込みモデルは爆発的に発展した
単語埋め込みモデルは、自動翻訳や極性分析などを行う際の第一段階の処理となっている
単語埋め込みモデルは自然言語処理の基礎と考えることができる
自然言語処理　natural　language　processing　NLP
可変長の単語を固定長のベクトルで表現することで、ベクトルでの演算が可能となる
数学的な扱いが用意であるという長所がある

######●word2vecによる単語ベクトル表現を拡張して、文章ベクトル表現を得ようとする一連の研究

######①fastText
2013年　トマス・ミコロフ　が開発
トマスミコロフはワードツーベックの開発者でもある
単語の表現に文字情報も含める
文字データを援用することで、訓練データには存在しない単語（OOVアウトオブボキャブラリー）を表現することを可能にした
学習に要する時間が短いという特徴もある
・ウィキペディアと顧問クロールを用いて訓練した世界中157言語によるそれぞれの訓練済みデータを提供している
######②ELMo
※エルモは2018年の2大キーワードの一つ、もう一つはバート（BERT）

アレンインスティテュートによって開発された文章表現を得るモデル
2層の双方向リカレントネットワーク言語モデルの内部状態から計算
文字ベースの単語表現を作るため、学習データには存在しない語彙OOVであっても意味表現を得ることが可能

言語モデルにおいては、各層は単語に関する異なる種類の情報を符号化する
例）品詞のタグ付けは下位層の出力に依存し予測可能だが、語義曖昧さの除去には講じそうの表現が利用される。
全ての層の情報を連結することで
様々な単語表現を自由に組み合わせて解くべき言語課題の性能を向上させる

fastTextとELMoに共通するが、文章の表現は単語埋め込みモデルで得られた単語表現の平均を用いる
文章表現のベクトルモデルによってマルチタスク言語モデルへの道が開かれた

######●マルチタスク言語モデル
①次の文あるいは前文予測
②機械翻訳
③構文解析
④自然言語推論
これらが行える文章ベクトルモデルをマルチタスク言語モデルという

1対多のマルチタスク学修により、複数課題間に共通の普遍的な文章埋め込み表現学習させた。
このモデルは普遍埋め込みモデルと呼ばれている
universalembedding

###3．画像脚注付け
######●ニューラル画像脚注付け（Neural Image Captioning:NIC）
「画像認識を実行するCNN」と「言語モデル（Language Model:LM）としてのRNN」を組み合わせると、
ニューラル画像脚注付け（NIC)が出来る
######NIC
NICは2014年に注目を集めた技術
・背景
　画像識別と言語モデルの精度がディープラーニングで向上した事で実現が容易になった。
・ポイント
　CNNの最終層の出力は使わない、全結合層の直下、すなわち畳み込み層の最上位層をリカレントニューラルネットワークで構成される文章生成ネットワークの入力とする
R-CNNでは
全結合層直下の　畳み込み層からの領域の切り出し　と　切り出した領域にある物体の認識　を行う事が出来る。
これと同様に、畳み込み層からの領域の切り出し　と　切り出した領域にある物体の情報に基づいて、
文章生成リカレントネットワークを動作させれば、入力画像の脚注付けが可能となる。

NICに関しては、多くの成果が報告されているが、いずれも基本はCNNで画像認識して、全結合層直下の畳み込み層を言語生成モデルに伝える形になる

これはリカレントニューラルネットワークの出力が、１対多、多対１、多対多などさまざまな入出力が可能だからだ。


自動翻訳技術で用いられる　シーケンス２シーケンス（SeqSeq）なども、翻訳元となるソース文の直近の中間層の状態を翻訳先となるターゲット文を生成するリカレントニューラルネットワークの中間層の値とすることが行われている。

この場合、ソース文の持つ情報を中間層の状態としてターゲット文生成ネットワークに与える事となるので、１対多とみなすことが出来る。

###４．ニューラルチューリングマシン
リカレントニューラルネットワークの応用分野
######・音声認識
######・自然言語処理
######・その他いろいろな応用

######ニューラルチューリングマシン（Neural Turing Machines:NTM）
⇒系列制御・時系列処理に加えて複雑な問題を解くことが可能
例）
・並べ替えアルゴリズムを覚える
・ロンドンの地下鉄の経路から最適な乗り換え経路を検索する
・古典的なテリーウィノグラードのシャードルーを解いたりできる

#７－３．音声認識
######●WaveNet　ウェーブネット
RNNの聴覚、音声分野の成果
音声合成（Speech synthesis）と音声認識（Speech recognition）の両社を行う事が出来るモデル

WaveNetは既存手法より、人間に近い発音が出来る
５点満点評価でE4.21点/C4.08点と人間（E4.55点/C4.21点）の発音に近い数値まで来ている。


#７－４．強化学習（ロボティクス）
強化学習（Reinforcement Learning:RL）

######初期
ブロック崩しやインベーダーゲームなど、アタリ社のゲームに対して応用したDQN（Deep-Q Network）

囲碁への応用
・アルファ碁（AlphaGo）
アルファ碁では、碁盤の状況認識にCNNを用いた（純粋な画像認識ではなく、盤面の情報を符号化して入力）、次の手の選択にモンテカルロ木探索（Monte Carlo Tree Search:MCTS）を用いて成果を上げた

######強化学習の改善手法
・方策（ポリシー）ベース（value funcion base）
・行動価値関数ベース（Q function base）
・モデルベース（model base)

アルファ碁では、上記の手法で訓練されたあと、さらに強くなる為に、
セルフプレイ（self play)が用いられた

アルファ碁ゼロ　は、過去の棋譜を学習せず、すべてセルフプレイのみで学習した。
その結果元祖アルファ碁を圧倒した強さになった。

このことからわかるように、
伝統的な知識の蓄積を用いる事だけでなく、
ゼロから偏見にとらわれずに学習を進めた方が良い場合がある。

######DQN依頼強化学習は進歩している
強化学習の性能を改善するためには、適切な意思決定をすることが求められる。
意思決定行動を改善する為のモデルとして
・方策ベース（UNREALなど）
・状態価値関数（（Q関数）ベースなど）
・モデルベース（A3Cなど）
の３種類がある

######RAINBOWモデル
全部入れるとRAINBOWモデルとなる
RAINBOWモデルはそれまで提案されてきたモデルを凌駕する成績を示している。