softmax(ソフトマックス)関数
softmaxの数学的な意味合いは こちらの記事 に書きました。
TensorFlowのMNIST(チュートリアル)でよく出てくるsoftmax関数について調べたのでメモ。
softmax関数は、シグモイド関数の多変量版。正規化指数関数ともいう。
シグモイド関数と同様、アクティベーション関数の一種だが、多変量版なので、例えば、多クラスのフィードフォアワード型のニューラルネットの活性化関数として利用される。
参考: ソフトマックス関数 - 機械学習の「朱鷺の杜Wiki」
シグモイド関数は、教師あり学習で一般的に利用されるアルゴリズムであるバックプロゲーションを伴うニューラルネットワークでアクティベーション関数としてよく利用される。アクティベーション関数としてシグモイドが利用されるのは、比較的単純な非線形関数であり、微分も容易であるという数学的な理由による。
参考:活性化関数 - Wikipedia のシグモイド関数の項
フィードフォワードニューラルネットは、最初に考案された人口のニューラルネットで、ループを持たず、入力→中間→出力という単方向で信号が伝搬される。
単に入力と出力からなるものを単純パーセプトロン、入力・中間・出力のように複数の層からなるものを複層パーセプトロンという。
ニューラルネットワーク
ニューラルネットワークは脳機能の特性を計算機上のシミュレーションにより表現することを目指した数学モデル。
もともとは、脳をモデル化することから始まったが、次第に実際の脳のモデルから乖離していったため、人口ニューラルネットワークとも言われている。
ニューラルネットワークは、教師あり学習という教師信号の入力によって、問題に対して最適化されていくものと、教師信号を必要としない教師なし学習がある。明確な回答が用意される場合には、教師あり学習が用いられ、データのクラスタリングには、教師なし学習が用いられる。(アルファ碁のような勝ち負けのための人口知能については、教師あり学習が、複数の画像に対してパターン分析をかけるような場合は、教師なし学習が使われるようなイメージかな?)
教師あり学習のアルゴリズムはバックプロパゲーションが一般的。
(ニューラルネットワーク - Wikipedia の学習方法より)
ニューラルネットワークには、幾つかの種類がある。
*自己組織化写像
*畳み込みニューラルネットワーク
*リカレントニューラルネットワーク (再帰型ニューラルネットワーク)
*確率的ニューラルネット
*スパイキングニューラルネットワーク
ニューラルネットワークでは、線形変換を施した後、非線形関数を通す仕組みがあるが、この非線形関数をアクティベーション関数(あるいは活性化関数)という。
アクティベーション関数にも、幾つかの種類がある。以前から用いられていたのはステップ関数(場合分けによりより0、1に分かれる関数)だが、他にシグモイド関数、ソフトサイン関数、ソフトプラス、ReLU(ランプ関数)などがある。
TensorFlowにおいて、softmaxという関数が出てくるが、
Neural Networkをちょっとかじった人のための、はじめてのTensorFlow - Qiita
これも、アクティベーション関数の一つ。ただし、出力層のアクティベーション関数らしい。
次に調べるもの:
* オートエンコーダー