こんにちは､ ディープラーニングの講座にようこそ｡
わかりました｡
今日は活性化関数の話をします｡
さっそく本題に入りましょう｡
というわけで､ ここからが本題です｡
前回は､ 1つの神経細胞の構造についてお話しました｡
だから､ 真ん中にあるんです｡
入力があり､ 値が入り､ 重みがあり､ その重みを加算し､ 入力の重みを計算し､
活性化関数を適用することが分かっています｡
そしてステップ3では､ 次のニューロンへ信号を伝達する｡
それが､ 今日のお話です｡
通過していく価値の話です｡
つまり､ 適用される活性化関数の話です｡
では､ 活性化関数にはどのような選択肢があるのだろうか｡
さて､ 今回は4種類の活性化関数の中から､ どのようなものがあるのかをご紹介します｡
もちろん､ 活性化関数にはもっといろいろな種類がありますが､ このコースで使用するのは､
これらのものが主です｡
そこで､ 閾値関数を紹介します｡
このような感じです｡
つまり､ X軸には入力の加重和があるわけです｡
Y軸には､ 0から1までの値だけがあります｡
そして､ 基本的に閾値関数は､ 値がゼロより小さければゼロで通過する非常にシンプルなタイプの関数です｡
この値が0以上であれば､ 閾値関数は1で通過する｡
つまり､ 基本的にはイエスかノーかのタイプの関数で､ 非常にわかりやすく､ イエスかノーかの厳格なタイプの関数という感じです｡
他の選択肢はない｡
それでは､ どうぞ｡
そういうことなんです｡
非常にシンプルな機能です｡
もう少し複雑な話に移りましょう｡
さて､ シグモイド関数ですが､ これは非常に興味深い式です｡
先ほど､ 1÷1＋EのマイナスX乗とありましたが､ この場合､
もちろん､ Xは加重和の和の値です｡
そうそう､ S状結腸はこんな感じです｡
機械学習の講座で出てきた､ 思い起こせばロジスティック回帰で使われている関数です｡
では､ この関数の何が良いかというと､ 閾値関数と違って滑らかであることです｡
これは､ そのような曲線のねじれがないため､ ちょうどいい具合に滑らかに､ 徐々に進行していくのです｡
だから､ ゼロ以下はゼロ以上のドロップオフと同じなのです｡
1に向かって近似しているように見えます｡
そしてこのシグモイド関数は､ 最終層､ つまり出力層で､ 特に確率を予測しようとするときに非常に有効です｡
そして､ このコースを通して､ それを実感することができます｡
そして､ 整流器機能です｡
整流子関数は､ キンクがあるとはいえ､ 人工ニューラルネットワークの代表的な関数の一つである｡
だから､ ずっとゼロのままなんです｡
ゼロである｡
そして､ そこから入力値も増えていくと､ 徐々に進行していきます｡
そして､ それはコース全体を通して見ることができます｡
これは他の直感チュートリアルでも見ることができますし､ この関数を実践面でどう使うか､
これから数枚のスライドでもう少しコメントしたいと思います｡
だから､ 整流器関数は人工ニューラルネットワークで最もよく使われる関数の1つだと覚えておけばいい｡
そして最後に､ もうひとつ､ きっと耳にしたことがあるであろう機能をご紹介します｡
それは､ 双曲線上の接線関数です｡
シグモイド関数とよく似ていますが､ ここでは双曲線上の接線関数がゼロ以下になるので､
値は0から1､ あるいはおよそ1になり､ 反対側では0から-1になります｡
そしてそれは､ あるアプリケーションでは役に立つこともあります｡
ですから､ それぞれの機能についてはあまり深入りしないことにしています｡
ただ､ どのようなもので､ どのような名前で呼ばれているのかを知っていただきたかっただけなのです｡
もし､ 追加で読みたいのであれば､ あなたが書いた「A Deep Space Rectifier Neural Networks, 2011 paper」というXavier
Claretの論文を見てみてください｡
そして､ レクチファイヤー機能がなぜ貴重な機能なのか､ なぜこれほどまでに普及しているのか､ その理由を正確に知ることができます｡
しかし､ それにもかかわらず､ 今のところ､ それらのことをすべて知る必要はないのです｡
とりあえず､ 応用編に入ります｡
どんどん使っていくだけです｡
そして､ 実践的な面で安心したところで､ この論文を参照すれば､ その知識をより早く吸収することができ､
より納得のいくものになるはずです｡
しかし､ このことは心に留めておいてください｡ 準備ができたとき､ 準備ができたと感じたとき､
この論文を参照し､ そこから貴重な知識を得ることができるのです｡
簡単にまとめると､ 閾値活性化関数は以下のようなもので､ シグモイド活性化関数は以下のようなものです｡
整流関数と双曲線正接関数があります｡
そして､ このチュートリアルの最後に､ いくつかの演習を手早くやってみましょう｡
そこで､ その知識を定着させるために､ 簡単な練習を2つほどしてみましょう｡
まず､ 1つ目の例として､ 1つのニューロンからなるニューラルネットワークを紹介します｡
そして､ すぐに出力層です｡
問題は､ 従属変数がバイナリで､ 0か1のどちらかだと仮定して､ どの閾値関数を使うかということです｡
これまで取り上げた関数のうち､ 閾値関数､ シグモイド関数､ 整流関数､ 双曲線正接関数は､
それぞれ役割分担がなされていますね｡
バイナリ変数に使えるのはどれだろう？
つまり､ この問題には2つの選択肢があるのです｡
1番目の閾値活性化関数は､ 0と1の間の値で､ ある値の下では0を与え､
それ以外は1を与えるというものです｡
だから､ 2つの値しか出せない｡
この要件に完全に適合しているので､ Yは加重和の閾値関数に等しいと言えばいいのです｡
2つ目のケースとして､ シグモイド活性化関数がありますが､ これも0と1の間で､ ちょうど私たちが必要としているものです｡
でも同時に､ ゼロイチも欲しいですよね？
この場合､ YがYESかNOかの確率として使うことができるんだ｡
だから､ yはゼロイチであってほしい｡
しかし､ その代わりにシグモイド関数､ シグモイド活性化関数が､ Yが1になる確率を教えてくれるということにしましょう｡
つまり､ 基本的にトップに近づけば近づくほど､ これは確かに「ノー」ではなく「1」あるいは「イエス」である可能性が高くなるのです｡
そうそう､ これはロジスティック回帰のアプローチに非常に似ていますね｡
そして､ これらはほんの2つの例に過ぎません｡
バイナリ変数がある場合｡
そして､ もうひとつの実用例を見てみましょう｡
このようなニューラルネットワークがあったら､ どのような展開になるのかを見てみましょう｡
つまり､ 最初の入力層には､ いくつかの入力があります｡
そして､ 第1隠れ層に送られ､ 活性化関数が適用されます｡
そして通常､ ここで適用するのは､ そしてこのコース全体を通して見るのは､ 整流器活性化関数を適用することでしょう｡
だから､ そのような形になるのです｡
整流器活性化関数を適用し､ そこから出力層に信号を渡し､ シグモイド活性化関数を適用して最終出力とし､
例えば確率を予測することができます｡
ですから､ この組み合わせは､ 隠れ層で整流関数を適用し､ 出力層でシグモイド関数を適用する､
というのが一般的でしょう｡
そうそう､ そうなんです｡
今日のチュートリアルを楽しんでいただければ幸いです｡
これで､ 4種類の活性化関数についてかなり理解できたと思います｡ このコースを通して､
実際に活性化関数を体験してください｡
あちこちで使うので､ かなり親しみが湧くし､ 使い勝手がいいはずです｡
しかし今は､ このコースでさらに先に進むために必要な知識であり､ 理解するためのものなのです｡
というわけで､ 次回もよろしくお願いします｡
それまでは､ ディープラーニングを楽しんでください｡