アルパカログ

カスタマーサポート (CS) とエンジニアリングを掛け算したい CRE (Customer Reliability Engineer) が気になる技術や思ったことなど。

ディープラーニング未経験者の「ゼロから作るDeep Learning」キーワードまとめ

「ゼロから作るDeep Learning」を読んだのでキーワードをまとめておきます。「あの用語なんだっけ?」というときにご活用ください。

www.oreilly.co.jp

パーセプトロン(単純パーセプトロン)

f:id:otoyo0122:20180520150340p:plain

ニューラルネットワークのベースとなる考え方。

出力信号は入力信号にそれぞれ重みを乗じたものの総和となる。

活性化関数 (Activation Function)

ニューロンの入力信号の総和を出力信号に変換する関数。h(a) のように表記される。

活性化関数としてはステップ関数、シグモイド関数、ReLU などがある。

ステップ関数

f:id:otoyo0122:20180520154227p:plain

0より大きいときは1を、0以下のときは0を出力する。

シグモイド関数

f:id:otoyo0122:20180520151119p:plain

y = 1 / 1 + exp(-x)

ステップ関数とは異なり、0から1まで滑らかに変化する。

ReLU (Rectified Linear Unit)

f:id:otoyo0122:20180520151134p:plain

y = max(0, x)

0以下のときは何も出力せず、0より大きいときは入力信号をそのまま出力する。

出力層の活性化関数

出力層の活性化関数には恒等関数とソフトマックス関数が利用される。

一般に、回帰問題では恒等関数が、分類問題ではソフトマックス関数が用いられる。

恒等関数

入力をそのまま出力する。

ソフトマックス関数

確率のように、全ての出力の総和が1になるように正規化する。

MNIST データセット

手書き数字のデータセット機械学習の分野で広く利用されている。

MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges

損失関数 (Loss Function)

ニューラルネットワークの性能の悪さを表す指標。二乗和誤差や交差エントロピー誤差などが用いられる。

勾配降下法

損失関数の最小値を探索するための方法。坂道を下るように、勾配が大きい方に向かってパラメータを更新していく。

誤差逆伝播

勾配の計算を効率よく行うための手法。

パラメータの更新アルゴリズム

学習の目的は重みのパラメータを最適化することにある。パラメータの更新アルゴリズムは次のようなものがある。

SGD は今でも多くの研究者に使われているが、最近では Adam が好んで使われる傾向がある。

過学習

訓練データに対して適合し過ぎてしまい訓練データに含まれない他のデータに対してうまく対応できない状態のこと。

過学習を抑制する手法として Weight Decay や Dropout などがある。

Weight Decay (荷重減衰)

学習の過程において大きな重みを持つことにペナルティを課す手法。

Dropout

ニューロンをランダムに消去しながら学習する手法。

畳み込みニューラルネットワーク (CNN: Convolutional Neural Network)

畳み込み層とプーリング層を持つニューラルネットワークで、画像認識分野で効果を上げている。

畳み込み層

畳み込み層は全結合層とは異なり、入力データの空間的な情報 (形状) を維持したまま次の層にデータを出力する。

CNN では畳み込み層の入出力データを特徴マップ (Feature Map) と呼ぶ。

プーリング層

プーリング層ではフィルターの領域を1つの代表値に集約する処理を行い、微小なズレに対する頑健性 (ロバスト性) を高める。

フィルター領域の代表として最大値を用いる手法を Max プーリングと呼ぶ。画像認識の分野では主に Max プーリングが使われる。

ディープラーニング

層を何層にも深くしたニューラルネットワーク。計算量が膨大になるため GPU 性能の向上や分散学習、ビット制度の削減などが高速化を支えている。


感想

私は技術書を読むのが苦手 (数式が苦手) だったのでディープラーニングを勉強しようと思い立ったとき、これまでプログラミング言語を学んできたのと同様に、技術書を避けてネット上の情報だけでなんとかしようと思っていました。

ところがネット上にはディープラーニングと一口に言ってもディープラーニングの様々なフェーズの情報があります。例えば ReLU、それが活性化関数であることはわかっても、それがどこで何のために使われるのかわかりません。

私は書籍を買う前に AWS に課金してあれこれやってみましたが、結局ほとんど何も得られず請求書だけが残りました。私のように研究でニューラルネットワークに関わりのなかった方にはぜひ書籍による体系的な学習をお勧めします。