Closed ksnt closed 4 years ago
以前ザッとは読んだので、今回は復習がてら読む。
ちゃんと読んだ。再急降下法を用いてどのようにNNの重みが変わっていき出力が教師データに近づいていくのかをちゃんと手で計算した。
残りは
12章「ディープラーニング入門」 13章「転移学習とNyanCheckの開発」
ちゃんと読む予定。
・隠れ層を持つパーセプトロンのころを多層パーセプトロンとよぶ ・隠れ層が複数あるNNのことをディープニューラルネットという ・多層パーセプトロンを学習するにはバックプロパゲーションを用いる ・バックプロパゲーションは最急降下法をチェインルールによって行う方法 ・実際に手を動かして計算したわけではない
・クロスエントロピーは損失(Loss)の一種 ・連続的な数値を出力したい場合はLossにはMSEを使うが、離散的な値を扱うときには一般にCrossEntropyを用いる ・詳細はこの本では割愛 ・クロスエントロピーとKLダイバージェンスの大小関係は一致 ・最尤推定を行っていることに相当
・softmaxはNNの出力を確率に変換する ・つまり、各出力は0から1となり、出力の総和が1になるようにする ・単純にMaxを取るものとの違いは、softmaxが微分可能なこと ・これは、バックプロパゲーションを計算するためには必要な条件
・SGDは最適化手法の一種で、確率的勾配降下法のこと ・これは、最急降下法を逐次学習するように改良したもの
・DLを行うときに避けては通れないのが勾配消失問題 ・理論的にはバックプロパゲーションでどんな深さのNNも学習することが出来るが、実際には勾配消失問題があったのでDLが最近まで発展することはなかった ・シグモイド関数の傾きは最大でも0.25であるためバックプロパゲーションのチェインルールを考えたときに、n層あるNNでは微分値は0.25のn乗となる ・これはとても小さな値である ・これを回避するために、活性化関数にシグモイド関数を使う代わりにLeRUが使われることが多くなっている
・DLで用いられるレイヤにも大きく分けて3つある。
密結合 ・これまで解説してきたもので、下層の全てのユニットと上層の全てのユニットとの接続がある層 ・Fully Connected Layer, あるいはDesnly Connected Layerともよばれる ・ここまで何度か登場したDenseというのがこれ
畳み込み層 ・下層レイヤーの一部の領域に反応する層 ・Convolution Layer ・本章で解説
再帰層 ・上層の出力が再帰的に下層に戻る層 ・Recurrent Layer ・本書では扱わない
・2012年にDLによってImage Netの認識誤差が大きく改善 ・このときに使われたのでが畳み込みニューラルネットワーク
・畳込みNNは、下層の一部の領域に反応するNN ・畳込み層は下層の一部の領域にフィルタを掛ける畳み込み演算を行う
・畳込みNNでは、マックスプーリングという処理が行われる ・マックスプーリングでは、下層の一部の領域の最大値を出力するようなレイヤになっている ・マックスプーリングは特徴抽出や特徴選択を行っていると考えられている
・マックスプーリングと似たものに、アベレージプーリングというものがある ・アベレージプーリングは下層の一部のレイヤの領域の平均値を出力する
・バッチ正則化とは、DLの学習を安定化させる手法で、英語だとBatch Normalizationと書く。 ・これは、内部共変量シフトという状態を解消することを目的とする
●共変量シフト ・共変量シフトとは、学習したデータと予測に用いるデータの分布に偏りがあることをいう ・共変量シフトがあると、機械学習システムではうまく予測できない ・これを解消するために通常白色化が用いられる ・白色化では入力データを平均0、分散1に変換する
●内部共変量シフト ・内部共変量シフトとは、ディープラーニングの層と層の間に起こる共変量シフトのこと ・学習しているうちに、下層の出力が、それまで学習していた上層の入力とずれることで起こる
・このようなことが起こると、ズレをそろえるような学習に時間が使われ、学習が非常に遅くなる ・そこで、ずれを人為的にそろえてしまう方法がバッチ正則化 ・バッチ正則化によって学習が早くなる
残りは
12.11「Global Average Pooling」 12.12 「Keras」 13章「転移学習とNyanCheckの開発」
ちゃんと読む。
12.6 「ディープラーニングを利用した学習」 12.7 「密結合ニューラルネットワークによる分類」 12.8 「密結合ニューラルネットワークによる分類(CIFAR10)」
・読んだ。 ・Flickrからデータをスクレイピングするところで1時間くらいかかった。Colaboratory上で行った。 ・DLを用いて転移学習によってモデルを作成した ・学習には12時間くらいかかるとのことで一旦保留としたが、Colaboratory上でやる方法は理解した ・アプリケーションをGCPにデプロイした └Google Compute Engineを使った └ハマるとしたら、ファイアウォールルールの作成を忘れるとかそういうところかな、と思ったり └SSHでサーバに接続するとコンソールが現れるが、Fxだとうまく見れなかった └GCPはFxでやるのは止めたほうがよさそう。Chromeなら問題なし。 └ある程度GCPを使い慣れてきたので他は問題なかった
残りは
12.11「Global Average Pooling」 12.12 「Keras」
をちゃんと読む。
読んだ。
読んだ。
ということで、読了。
おもしろかった、で終わらせずに自分のプロジェクトで使ってみることを目標とする。
11章「単純パーセプトロン」、12章「ディープラーニング入門」、13章「転移学習とNyanCheckの開発」の部分のみを読む。