2016/03/09

[DL]活性化関数はどうやって選ぶのだろう? (2)

だらだらと、深層学習の活性化関数について調べるコーナー、2回目。

今日はこちら。
ニューラルネットワーク — opencv 2.2 (r4295) documentation

OpenCVに?
知らなかったけど、OpenCVにもMLというクラスなのかな、そこにニューラルネットワークが実装されているそうだ。
MLPで、多層パーセプトロンと書かれているので、MLクラスは「Machine Learning」かと思ったけど「Multi Layer」なのかもしれない。
いや、その上の章がMLLで「機械学習ライブラリ」になってるから、Machine Learningでよいのだろう。

CvANN_MLP::createに活性化関数を引数で選択できるようで、IDENTITY、SIGMOID_SYM、GAUSSIANのいずれかとのこと。

IDENTITYは「恒等関数」で、y=xみたいな式だ。これは『深層学習』では「線形写像」とか「恒等写像」などと呼ばれている。
もう記憶にはないけど、回帰問題のためのネットワークで使うらしい。

SIGMOID_SYMはおなじみのシグモイド関数だろう。
「_SYM」は、対称性を意味している。図を見ると、原点に対して点対称なのだな。
『深層学習』に出ているロジスティックシグモイド関数は0以上のグラフで、(0, 0.5)が点対称の中心になっている。
対称性が何か意味を持っているのだろうか?

GAUSSIANはガウス関数。
「完全にはサポートされていない」と一言書かれているだけだ。
計算を単純にするだけだと思ったのだけど「完全には」というのはなんだろう。

 

OpenCVで活性化関数?というので注目したのだけど、深層学習の1つ前の世代で行われていたニューラルネットワークのような感触だ。
もしかしたら、活性化関数の選び方も、以前と最近で変わってきている、ということがあるかもしれない。無いかもしれない。

ちょっと気にしておこう。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。