採点範囲
Section1: 再帰型ニューラルネットワークの概念
1点100字以上で要点のまとめ
再帰型ニューラルネットワークは時系列のデータを扱うのに使う。中間層から中間層への出力を持つことで、
以前のデータを考慮して出力することができる。学習にはBPTTを用いる。誤差逆伝搬法と要領は同じ。
BPTTの数式表現は以下の通り。
$\frac{\partial E}{\partial W_{in}} = \frac{\partial E}{\partial u^t}[\frac{\partial u^t}{\partial W_{in}}]^T$
$\frac{\partial E}{\partial W_{out}} = \frac{\partial E}{\partial v^t}[\frac{\partial v^t}{\partial W_{out}}]^T$
$\frac{\partial E}{\partial W} = \frac{\partial E}{\partial u^t}[\frac{\partial u^t}{\partial W}]^T$
$\frac{\partial E}{\partial b} = \frac{\partial E}{\partial u^t}\frac{\partial u^t}{\partial b}$
$\frac{\partial E}{\partial c} = \frac{\partial E}{\partial v^t}\frac{\partial v^t}{\partial c}$
実装演習結果キャプチャーまたはサマリーと考察
一番下部の実装演習結果に記載
「確認テスト」など、自身の考察結果
確認テスト1
テスト2
テスト3
テスト4
$y=g(W_{out} f(W_{in} x + W s_0 + b) + c)$
テスト5
演習問題や参考図書、修了課題など関連記事レポート
Section2: LSTM
1点100字以上で要点のまとめ
RNNの課題:さかのぼればのぼるほど勾配が消失してしまうという課題がある。構造自体を変えて解決したのがLSTM。
勾配消失の逆で勾配爆発という問題がある。
LSTMの定式化。
CECがLSTMの中間層の中心となる。
CECは覚えることだけに特化している。学習はしないので勾配消失は避けられる。
学習機能は別で設ける。
入力ゲートで、入力値を変形する。出力ゲートで出力値を変形する。
入力ゲートと出力ゲートの重みを学習させることで学習させる。
入力ゲートと出力ゲートだけでは、CECは過去の情報をずっと覚えてしまっているので、
忘却ゲートを設けて忘れるようにする。
CECの状態を忘却ゲートに反映させる覗き穴結合があるが、大した改善は得られなかった。
実装演習結果キャプチャーまたはサマリーと考察
一番下部の実装演習結果に記載
「確認テスト」など、自身の考察結果
テスト1
テスト2
勾配クリッピングという方法もある。勾配がある一定大きくなったら一定以下にするという方法。
(1)が正しい
テスト3
忘却ゲートが関係する。単純に一律に忘れるのではなく、単語によって覚えておく、忘れるというのができるのが
すごいなと思った。
テスト4
テスト5
(3) 前回の出力にforget_gateをかけているから3番。
演習問題や参考図書、修了課題など関連記事レポート
Section3: GRU
1点100字以上で要点のまとめ
GRUはLSTMの改良版。従来のLSTMはパラメータが多く存在していたたため、計算量が多くモバイルフォンで動かせないなどの問題があった。GRUはLSTMを簡略化し計算量が少なくなっている。LSTMと比べても遜色のない学習結果を出す。また、場合によってはLSTMより良い結果が出る場合もがある。
$h(t) = F(W_r x(t) + U_r(r(t)h(t-1)b_h(t))$
となる。
predict_word.py は最初に%tensroflow_version 1.xとつけることで高速化して動かすことができる。
実装演習結果キャプチャーまたはサマリーと考察
一番下部の実装演習結果に記載
「確認テスト」など、自身の考察結果
確認テスト
CECは学習機能がないため、その学習機能を補完するために入力ゲート、忘却ゲート、出力ゲートを設けているため、LSTMは計算量が多くなったという課題がある。
演習チャレンジ
確認テスト
演習問題や参考図書、修了課題など関連記事レポート
Section4: 双方向RNN
1点100字以上で要点のまとめ
双方向RNNとは過去の情報だけではなく未来の情報も加味して時系列データを扱うモデル。
例えば、翻訳などは、過去の情報だけではなく未来の情報も含めたうえで翻訳した方が精度が良くなるため、
未来の情報も含めた双方向RNNを用いることもある。
実装演習結果キャプチャーまたはサマリーと考察
一番下部の実装演習結果に記載
「確認テスト」など、自身の考察結果
演習チャレンジ
演習問題や参考図書、修了課題など関連記事レポート
Section5: Seq2Seq
1点100字以上で要点のまとめ
seq2seqは自然言語で用いられている。機械翻訳に用いられる。
単語を入力とし、中間データにたまっていき、意味がベクトル表現でたまっていく。保持された文脈の情報をもう一つのニューラルネットワークに渡してやり、別の出力に作り替えるということをやってやる。まるで翻訳のようだ。
下の入力をエンコーダー、上の出力をデコーダーという。seq2seqはエンコーダーデコーダーの一種。
seq2seqは時系列のデータを入力とし、時系列のデータを出力とする。
Enxoder RNNは、文を一個ずつ取り込んでいく。文の意味がベクトルで注入されていく。全部の文が入力されたら、中間層にベクトルとして保持される。
自然言語は1-hot vectorであらわす。embedding表現という方法で数百次元までベクトルを抑えることができる。embedding表現は機械学習によって作ることが多い。embedding表現は似た単語は似たベクトル表現にする。自然言語ではGoogleの出したバークが優秀な成績を出している。Masked Language Modelという手法が使われる。
システムがアウトプットデータを単語などのトークンごとに生成する機能。
Seq2Seqは一問一答しかできない。過去の文脈を保持する試みがHRED(エイチレッド)。
HREDはありがちな回答しかしなくなるという欠点がある。
VhREDはHREDを改良したもの。
オートエンコーダーはEncoderからDecoderで元の情報に戻す。中間層が元の次元より少ない表現にすることで情報量削減することができる。VAE。
実装演習結果キャプチャーまたはサマリーと考察
一番下部の実装演習結果に記載
「確認テスト」など、自身の考察結果
Section6: Word2vec
1点100字以上で要点のまとめ
word2vecとは単語のような文字列をベクトルに変換する手法。embedding表現を求める方法の一つになる。Oneホットベクトルに対し行列を作る。変換表を機機械学習によって求めることでメモリを削減することができる。
そのあとseq2seqに流し込んでやりたいことをやるなど。
実装演習結果キャプチャーまたはサマリーと考察
一番下部の実装演習結果に記載
「確認テスト」など、自身の考察結果
word2vecの手法をふかぼると、同じような文脈で同じ単語が使われていたら似たベクトルとなるようにする手法があり、それをもちいてembedding表現を得ることができる。
演習問題や参考図書、修了課題など関連記事レポート
Section7: Attention Mechanism
1点100字以上で要点のまとめ
seq2seqは問題点ある。seq2seqは長い文章に対応できない。中間層は固定だから、百個の中間層であらわさないといけない。そうすると、長い文章には対応できない。Attention Mechanismは自力で重要な単語を見分けて、それに対し、中間層の情報が一定量でも、重要な情報をつかむことができる。最近処理性能があがっているのはすべてAttention Mechanismである。
実装演習結果キャプチャーまたはサマリーと考察
一番下部の実装演習結果に記載
「確認テスト」など、自身の考察結果
RNN 時系列データを扱う仕組み
word2vec 単語からembedding表現を得るための仕組み
seq2seq シーケンスからシーケンスを得るための仕組み。機械翻訳など
Attention Mechanismは重要なものを見極めるための仕組み。
seq2seq … 時系列から時系列を出力
hRED 文脈を保持
VHRED HREDは当たり障りのない会話に終始するのを改良したもの。
Section1: 強化学習
1点100字以上で要点のまとめ
長期的に報酬を最大化できるように環境のなかで行動を選択できるエージェントを作ることを目標とする。
探索と利用のトレードオフというのがあって、探索すれば学習はよくするが、今までの結果を利用しないため成績が出ない。利用すれば成績が上がるが、あまり学習しない。探索と利用のトレードオフをどこにするかがポイント。
強化学習は優れた方策を見つけるのが目標。
強化学習はQ学習と関数近似法がある。
価値関数は状態価値関数と行動価値関数がある。状態価値関数は状態の価値を、行動価値関数は状態と行動両方を組み合わせた時の価値。
実装演習結果キャプチャーまたはサマリーと考察
一番下部の実装演習結果に記載
「確認テスト」など、自身の考察結果
Q学習には、深層学習を組み合わせた deep Q Networkがある。Q関数をニューラルネットワークと組み合わせたもの。
演習問題や参考図書、修了課題など関連記事レポート
Section2: AlphaGo
1点100字以上で要点のまとめ
AlphaGoはPolicyNet、ValueNet、RolloutPolicyがある。
PolicyNetはインターネット碁の棋譜をもとに学習させた。PolicyNetを用いてValueNetの学習を行う。モンテカルロ法による学習。モンテカルロ法は、ある盤面からPolicyNetによってランダムに対戦を行い勝率を求める手法。Alphago Zeroは
教師あり学習をやめて1から学習するようにした。また、PolicyNetとValueNetを一つに統合した。Residual Networkはネットワークにショートカットを用いることで勾配消失問題に対応した。
実装演習結果キャプチャーまたはサマリーと考察
一番下部の実装演習結果に記載
「確認テスト」など、自身の考察結果
AlphaGoZeroは、世界最強のイセドルに勝ち、イセドルは引退した歴史的な機械学習。
演習問題や参考図書、修了課題など関連記事レポート
Section3: 軽量化・高速化技術
1点100字以上で要点のまとめ
データ並列化、モデル並列化、GPUによる高速技術。
データ並列化はデータを分割し、複数のワーカーにそれぞれのデータを処理させることで高速化させる技術のことを指す。
データ並列化は同期型、非同期型に分かれる。同期型は各ワーカーがそれぞれ処理が終わるのを待つ。非同期型は待たない。
同期型の方が精度が良いことが多いので、同期型が今は主流。
モデル並列化は複数のモデルを複数のワーカーで学習させ統合させる手法のことを表す。
GPUは、GPUによって演算が並列に計算でき高速化することができる。
Section4: 応用モデル
実装演習結果キャプチャーまたはサマリーと考察
モバイルネットは、ネットワークの軽量化を狙ったもの。ネットワークが深いと学習もできるが演算にマシンリソースが必要となりお金が大量にかかる。
Depthwise ConvolutionとPointwise Convolutionの組み合わせで軽量化を実現する。
Depthwise Convolutionはフィルタ1枚にすることによって軽量化を実現する。
Pointwise Convolutionはフィルタは複数だが、サイズは1で実施することで軽量化を実現する。
Depthwise ConvolutionとPointwise Convolutionをすることで、計算量を抑えつつ、Convolutionのずけいの形を認識しが実現できる。
DenseNetという考え方もある。
一番下部の実装演習結果に記載
「確認テスト」など、自身の考察結果
GPUはグラフィック用のものを深層学習に転用しているが、深層学習専用のTPUというモジュールが今はある。
演習問題や参考図書、修了課題など関連記事レポート
Section5: Transformer
1点100字以上で要点のまとめ
ニューラル機械翻訳の問題点は長さに弱いことである。文の長さが長くなると表現力が足りなくなる。
Attentionで重要な単語に注目するようにする。
TransformerはRNNを使わずAttentionのみを使う。自己注意機構により文脈を考慮して各単語をエンコードする。
Decoderは、Encoderと同じく6層で実現している。注意機構の仕組みはEncoderと似ている。未来の情報を見ないようにマスク をかけたりする。Add & Normという考え方がある。
実装演習結果キャプチャーまたはサマリーと考察
一番下部の実装演習結果に記載
「確認テスト」など、自身の考察結果
Transformerは、巨大な一般言語データセットでトレーニングされており、ファインチューニングすることができる。
演習問題や参考図書、修了課題など関連記事レポート
Section6: 物体検知・セグメンテーション
1点100字以上で要点のまとめ
物体検知は、特定の四角でバウンドを囲み物体を検知する。物体検出において、クラスラベルだけではなく、位置がどの程度予測できているかの精度も図りたい。AlexNetからDCNNが主流となった。YOLOなどが有名。CornerNetなども出てきた。2段階検出器は、候補領域の検出とクラス推定を別々に行う。1段階検出器は候補領域の検出とクラス推定を同時に行う。
実装演習結果キャプチャーまたはサマリーと考察
一番下部の実装演習結果に記載
「確認テスト」など、自身の考察結果
物体検知として、OpenCVなどが有名だ。
演習問題や参考図書、修了課題など関連記事レポート
実装演習結果
3_1_simple_RNN.ipynb
3_1_simple_RNN_after.ipynb
4_1_tensorflow_codes.ipynb
実行するとエラーが発生して動かない
4_1_tensorflow_codes_after.ipynb
実行するとエラーが発生して動かない