上記2つは事前学習という教師なし学習のステップが含まれていた。
入力(Visible) <-> 隠れ層 で 教師なし学習をする。(入力と出力が一致するように学習する。)
隠れ層 -> 中間層
中間層 <-> 隠れ層 でまた学習
隠れ層 -> ロジスティック回帰
最後に全体でFine Tuningする。
上記の通り計算量が多い。
画像生成の分野で使われている。
Variational Auto Encoders(VAE)など。
DLでは低次元レイヤーであるほど点や線などの特徴を抽出し、高次元になるほど輪郭などの情報を抽出する。
全パターン(sin波の周期)を含むように予測する
教師データの中に共通のパターンが存在する。
重みWはそのすべてのパターンを表現できるように調整されるだけ。
あらゆる関数はマクローリン展開により多項式で近似できる。
入力に何らかの関数を当てはめると出力yがでる。その関数を求める。
その神関数fを合成関数
$$ f = g \circ h \circ i \circ j \circ k... $$で求める。それぞれの関数がニューラルネットワークの各層にあたる。
合成関数をやりすぎるのがオーバーフィッティング。
sin波の場合隠れ層1層なので、P.212の式(5.4)(5.5)のU,W,Tの3つのパラメータで近似ができるようになるということ。
それ以上に複雑だと隠れ層を増やしたりLSTM(パラメータ15個)やGRU(パラメータ数8個)が必要。
Adding ProblemはLSTMが最初に発表されたときに使われた。
書いてあるとおり。
微分$ \frac{\partial E}{\partial W} $が計算できればよい。計算しやすいものが選ばれる。
機械学習は基本分類問題と回帰問題の2つに分けられる。
e.g.
GRUはパラメータ数がLSTMより少ないのでGRUのほうが早いのは確実だが、精度はケース・バイ・ケース。
時間に重みをつける。どの過去の値が重要なのかというのを決める。FXでは遅行スパンとかが該当する?
異なる。式(6.3)で過去と未来の出力を合わせて出力するので、誤差が異なるようになる。
式(6.2)の(t-1)は(t+1)の誤りである。
Encoder-Decoderだと逐次的に予測できるので。
自分で計算しよう。
attention と RNN Encoder-Decoderは組み合わせ可能。
attentionを入れてもそんなに前のことを見ていないというデータもあり、ケース・バイ・ケースだが基本入れておいたほうが良い。
外部記憶は構造上外部にあるように見えているが、実際はニューラルネットワーク内に組み込まれている。
In [ ]: