#学習記録(29日目)
勉強開始:12/7(土)〜
教材等:
・大重美幸『詳細! Python3 入門ノート』(ソーテック社、2017年):12/7(土)〜12/19(木)読了
・Progate Python講座(全5コース):12/19(木)〜12/21(土)終了
・Andreas C. Müller、Sarah Guido『(邦題)Pythonではじめる機械学習』(オライリージャパン、2017年):12/21(土)〜12月23日(土)読了
・Kaggle : Real or Not? NLP with Disaster Tweets :12月28日(土)投稿〜1月3日(金)まで調整
・Wes Mckinney『(邦題)Pythonによるデータ分析入門』(オライリージャパン、2018年):1/4(水)〜1/13(月)読了
・斎藤康毅『ゼロから作るDeep Learning』(オライリージャパン、2016年):1/15(水)〜1/20(月)
#『ゼロから作るDeep Learning』
1/20(月) 読み終わり。
##8章 ディープラーニング
・7章に出てきたCNNの層を増やし、より深く(ディープ)したものがディープなニューラルネットワーク(ディープラーニング)
・MNISTデータセットような問題、規模ではあまり恩恵が少ないが、より大規模な一般物体認識では認識精度の向上に大きく貢献する。
・アンサンブルやData Augmentation(データ拡張)なども認識精度の向上に貢献している。
Data Augmentationとは、入力画像に対し、回転や縦横の微小変化を加えることで画像枚数を増やす(画像の嵩増しをする)ことをいう。
・層を深くすることの利点1
パラメータ数を少なくできる。
小さなフィルターを重ねてネットワークを深くすることで、ニューロンに変化を生じさせる局所的な空間領域(受容野)を広くカバーできる。
・層を深くすることの利点2
学習の効率性が高まる。
ネットワークを深くすることで、学習すべき問題を階層的に分解でき、より単純な問題として取り組むことができる。
具体的には第1層ではエッジのみ重点を置いて学習、2層以降では、前層で学習した情報をもとに、より高度なパターンを効率良く学習することができる。
・これらの利点がもたらされたのは、層を深くしても正しく学習できるだけの技術や環境(ビッグデータ、GPU等)が整備されてきたというのも大きい。
・VGG:畳み込み層とプーリング層から構成される基本的なCNN
小さなフィルターによる畳み込み層を連続して行ない、プーリング層でサイズを半分に、という処理を繰り返す。
最後は全結合層を経由して結果を出力する。
シンプルな構成であり汎用性が高いことから、多くの技術者が用いるベース。
・GoogLeNet:縦方向だけでなく、横方向にも深さ(広がり)を持つネットワーク
サイズの異なるフィルターとプーリングを複数適用し、結果を結合するインセプション構造と呼ばれるものを、一つのビルディングブロックとして使用する。
・ResNet:スキップ構造(バイパスやショートカットとも呼ばれる)を導入したネットワーク
入力データの畳み込み層をまたいで出力に月山する仕組みをとることで、層を深くしても効率よく学習することができる。
入力データをそのまま流すことで、勾配が小さくなったりする心配がなく、意味のある勾配が伝わっていくことが期待でき、層を深くすることで生じていた勾配消失問題にも軽減効果があるとされている。
・ディープラーニングでは大量の積和演算(もしくは行列計算)を行う必要がある。これを大きく助けているのがGPU
GPUはグラフィックのための専用ボードとして利用されていたが、大量の並列的演算も得意とするため、ディープラーニングの発展にも多大な影響を与えている。
(逆にCPUは連続的で複雑な計算を得意としている。)
・実用例1:物体検出
画像中から物体の位置特定を含めたクラス分類を行う問題
・実用例2:セグメンテーション
画像に対してピクセルレベルでクラス分類を行う問題
出力の際には、すべてのピクセルに対してクラス分類を行う。
・実用例3:画像キャプション生成
NIC(Neural Image Caption)と呼ばれるモデルが有名
ディープなCNNと自然言語を扱うためのRNN(Recurrent Neural Network)から構成されている。
画像からCNNによって特徴を抽出し、RNNに渡すことで、この特徴を初期値として、入力テキストを再帰的に生成する。
本実用例のような複数の種類の情報を組み合わせて処理することをマルチモーダル処理と言う。近年注目を集めている。
・実用例4:自動運転
構成する技術の中でも、特に重要と言われる周囲を認識する技術で大きく貢献している。
走路環境を、どのような状況でもロバストに認識できるようになることで、実現に近づく。
・実用例5:Deep Q-Network(強化学習)
エージェントと呼ばれるものが、環境の状況に応じて行動を選択し、その行動によって環境が変化するというのが基本的な枠組み
環境の変化によって、エージェントが報酬(観測結果)を得ることで、今後の行動指針も判断していく。
アルファ碁などもこれにあたる。