WEBVTT

00:00.150 --> 00:02.580
こんにちは､ ディープラーニングの講座にようこそ｡ 

00:02.610 --> 00:03.040
わかりました｡ 

00:03.060 --> 00:05.050
今日は活性化関数の話をします｡ 

00:05.070 --> 00:06.600
さっそく本題に入りましょう｡ 

00:06.780 --> 00:08.130
というわけで､ ここからが本題です｡ 

00:08.130 --> 00:11.820
前回は､ 1つの神経細胞の構造についてお話しました｡ 

00:11.820 --> 00:13.200
だから､ 真ん中にあるんです｡ 

00:13.200 --> 00:19.500
入力があり､ 値が入り､ 重みがあり､ その重みを加算し､ 入力の重みを計算し､

00:19.800 --> 00:23.640
活性化関数を適用することが分かっています｡

00:23.640 --> 00:28.440
そしてステップ3では､ 次のニューロンへ信号を伝達する｡ 

00:28.440 --> 00:29.700
それが､ 今日のお話です｡ 

00:29.700 --> 00:32.790
通過していく価値の話です｡ 

00:32.790 --> 00:35.610
つまり､ 適用される活性化関数の話です｡ 

00:36.210 --> 00:39.180
では､ 活性化関数にはどのような選択肢があるのだろうか｡ 

00:39.180 --> 00:43.290
さて､ 今回は4種類の活性化関数の中から､ どのようなものがあるのかをご紹介します｡ 

00:43.320 --> 00:47.190
もちろん､ 活性化関数にはもっといろいろな種類がありますが､ このコースで使用するのは､

00:47.190 --> 00:50.040
これらのものが主です｡

00:50.130 --> 00:53.010
そこで､ 閾値関数を紹介します｡ 

00:53.010 --> 00:53.990
このような感じです｡ 

00:54.000 --> 00:58.710
つまり､ X軸には入力の加重和があるわけです｡ 

00:58.710 --> 01:03.690
Y軸には､ 0から1までの値だけがあります｡ 

01:03.690 --> 01:16.620
そして､ 基本的に閾値関数は､ 値がゼロより小さければゼロで通過する非常にシンプルなタイプの関数です｡

01:16.650 --> 01:22.860
この値が0以上であれば､ 閾値関数は1で通過する｡ 

01:22.860 --> 01:33.420
つまり､ 基本的にはイエスかノーかのタイプの関数で､ 非常にわかりやすく､ イエスかノーかの厳格なタイプの関数という感じです｡

01:33.420 --> 01:34.500
他の選択肢はない｡ 

01:34.800 --> 01:35.430
それでは､ どうぞ｡ 

01:35.460 --> 01:36.090
そういうことなんです｡ 

01:36.090 --> 01:37.230
非常にシンプルな機能です｡ 

01:37.230 --> 01:39.930
もう少し複雑な話に移りましょう｡ 

01:39.930 --> 01:45.930
さて､ シグモイド関数ですが､ これは非常に興味深い式です｡ 

01:45.930 --> 01:52.380
先ほど､ 1÷1＋EのマイナスX乗とありましたが､ この場合､

01:52.380 --> 01:58.200
もちろん､ Xは加重和の和の値です｡

01:58.380 --> 02:02.520
そうそう､ S状結腸はこんな感じです｡ 

02:02.520 --> 02:09.220
機械学習の講座で出てきた､ 思い起こせばロジスティック回帰で使われている関数です｡

02:09.240 --> 02:14.820
では､ この関数の何が良いかというと､ 閾値関数と違って滑らかであることです｡ 

02:14.820 --> 02:21.630
これは､ そのような曲線のねじれがないため､ ちょうどいい具合に滑らかに､ 徐々に進行していくのです｡ 

02:21.630 --> 02:26.280
だから､ ゼロ以下はゼロ以上のドロップオフと同じなのです｡ 

02:26.280 --> 02:29.850
1に向かって近似しているように見えます｡ 

02:29.850 --> 02:38.850
そしてこのシグモイド関数は､ 最終層､ つまり出力層で､ 特に確率を予測しようとするときに非常に有効です｡

02:38.850 --> 02:40.620
そして､ このコースを通して､ それを実感することができます｡ 

02:40.950 --> 02:43.050
そして､ 整流器機能です｡ 

02:43.050 --> 02:50.850
整流子関数は､ キンクがあるとはいえ､ 人工ニューラルネットワークの代表的な関数の一つである｡

02:50.850 --> 02:53.790
だから､ ずっとゼロのままなんです｡ 

02:53.790 --> 02:55.020
ゼロである｡ 

02:55.020 --> 03:01.560
そして､ そこから入力値も増えていくと､ 徐々に進行していきます｡ 

03:01.560 --> 03:03.300
そして､ それはコース全体を通して見ることができます｡ 

03:03.300 --> 03:07.830
これは他の直感チュートリアルでも見ることができますし､ この関数を実践面でどう使うか､

03:07.830 --> 03:13.320
これから数枚のスライドでもう少しコメントしたいと思います｡

03:13.320 --> 03:18.630
だから､ 整流器関数は人工ニューラルネットワークで最もよく使われる関数の1つだと覚えておけばいい｡ 

03:18.750 --> 03:22.680
そして最後に､ もうひとつ､ きっと耳にしたことがあるであろう機能をご紹介します｡ 

03:22.680 --> 03:24.990
それは､ 双曲線上の接線関数です｡ 

03:25.020 --> 03:32.340
シグモイド関数とよく似ていますが､ ここでは双曲線上の接線関数がゼロ以下になるので､

03:32.340 --> 03:39.450
値は0から1､ あるいはおよそ1になり､ 反対側では0から-1になります｡

03:39.450 --> 03:42.090
そしてそれは､ あるアプリケーションでは役に立つこともあります｡ 

03:42.090 --> 03:45.690
ですから､ それぞれの機能についてはあまり深入りしないことにしています｡ 

03:45.690 --> 03:51.270
ただ､ どのようなもので､ どのような名前で呼ばれているのかを知っていただきたかっただけなのです｡ 

03:51.600 --> 04:00.870
もし､ 追加で読みたいのであれば､ あなたが書いた「A Deep Space Rectifier Neural Networks, 2011 paper」というXavier

04:01.770 --> 04:05.520
Claretの論文を見てみてください｡

04:05.520 --> 04:16.140
そして､ レクチファイヤー機能がなぜ貴重な機能なのか､ なぜこれほどまでに普及しているのか､ その理由を正確に知ることができます｡

04:16.140 --> 04:20.580
しかし､ それにもかかわらず､ 今のところ､ それらのことをすべて知る必要はないのです｡ 

04:20.580 --> 04:22.350
とりあえず､ 応用編に入ります｡ 

04:22.350 --> 04:24.090
どんどん使っていくだけです｡ 

04:24.090 --> 04:31.230
そして､ 実践的な面で安心したところで､ この論文を参照すれば､ その知識をより早く吸収することができ､

04:31.230 --> 04:37.080
より納得のいくものになるはずです｡

04:37.320 --> 04:41.610
しかし､ このことは心に留めておいてください｡ 準備ができたとき､ 準備ができたと感じたとき､

04:41.610 --> 04:44.820
この論文を参照し､ そこから貴重な知識を得ることができるのです｡

04:45.360 --> 04:55.170
簡単にまとめると､ 閾値活性化関数は以下のようなもので､ シグモイド活性化関数は以下のようなものです｡

04:55.500 --> 04:59.880
整流関数と双曲線正接関数があります｡ 

05:00.320 --> 05:04.940
そして､ このチュートリアルの最後に､ いくつかの演習を手早くやってみましょう｡ 

05:04.940 --> 05:09.050
そこで､ その知識を定着させるために､ 簡単な練習を2つほどしてみましょう｡ 

05:09.050 --> 05:14.480
まず､ 1つ目の例として､ 1つのニューロンからなるニューラルネットワークを紹介します｡ 

05:14.480 --> 05:15.890
そして､ すぐに出力層です｡ 

05:15.890 --> 05:23.600
問題は､ 従属変数がバイナリで､ 0か1のどちらかだと仮定して､ どの閾値関数を使うかということです｡

05:23.600 --> 05:31.400
これまで取り上げた関数のうち､ 閾値関数､ シグモイド関数､ 整流関数､ 双曲線正接関数は､

05:31.400 --> 05:37.760
それぞれ役割分担がなされていますね｡

05:37.760 --> 05:43.070
バイナリ変数に使えるのはどれだろう？

05:44.300 --> 05:49.250
つまり､ この問題には2つの選択肢があるのです｡ 

05:49.250 --> 05:55.010
1番目の閾値活性化関数は､ 0と1の間の値で､ ある値の下では0を与え､

05:55.010 --> 05:58.640
それ以外は1を与えるというものです｡

05:58.640 --> 06:00.020
だから､ 2つの値しか出せない｡ 

06:00.020 --> 06:13.700
この要件に完全に適合しているので､ Yは加重和の閾値関数に等しいと言えばいいのです｡

06:13.700 --> 06:21.620
2つ目のケースとして､ シグモイド活性化関数がありますが､ これも0と1の間で､ ちょうど私たちが必要としているものです｡

06:21.620 --> 06:25.550
でも同時に､ ゼロイチも欲しいですよね？

06:25.550 --> 06:37.370
この場合､ YがYESかNOかの確率として使うことができるんだ｡

06:37.370 --> 06:40.010
だから､ yはゼロイチであってほしい｡ 

06:40.010 --> 06:51.770
しかし､ その代わりにシグモイド関数､ シグモイド活性化関数が､ Yが1になる確率を教えてくれるということにしましょう｡

06:51.770 --> 06:59.960
つまり､ 基本的にトップに近づけば近づくほど､ これは確かに「ノー」ではなく「1」あるいは「イエス」である可能性が高くなるのです｡

07:00.620 --> 07:04.610
そうそう､ これはロジスティック回帰のアプローチに非常に似ていますね｡ 

07:04.700 --> 07:07.430
そして､ これらはほんの2つの例に過ぎません｡ 

07:07.580 --> 07:09.170
バイナリ変数がある場合｡ 

07:09.860 --> 07:12.740
そして､ もうひとつの実用例を見てみましょう｡ 

07:12.740 --> 07:17.150
このようなニューラルネットワークがあったら､ どのような展開になるのかを見てみましょう｡ 

07:17.150 --> 07:20.360
つまり､ 最初の入力層には､ いくつかの入力があります｡ 

07:20.930 --> 07:26.000
そして､ 第1隠れ層に送られ､ 活性化関数が適用されます｡ 

07:26.000 --> 07:32.450
そして通常､ ここで適用するのは､ そしてこのコース全体を通して見るのは､ 整流器活性化関数を適用することでしょう｡

07:32.660 --> 07:34.430
だから､ そのような形になるのです｡ 

07:34.430 --> 07:40.940
整流器活性化関数を適用し､ そこから出力層に信号を渡し､ シグモイド活性化関数を適用して最終出力とし､

07:40.940 --> 07:48.950
例えば確率を予測することができます｡

07:48.950 --> 07:54.110
ですから､ この組み合わせは､ 隠れ層で整流関数を適用し､ 出力層でシグモイド関数を適用する､

07:54.290 --> 07:58.580
というのが一般的でしょう｡

07:58.580 --> 07:59.720
そうそう､ そうなんです｡ 

07:59.750 --> 08:01.340
今日のチュートリアルを楽しんでいただければ幸いです｡ 

08:01.340 --> 08:06.440
これで､ 4種類の活性化関数についてかなり理解できたと思います｡ このコースを通して､

08:06.440 --> 08:09.350
実際に活性化関数を体験してください｡

08:09.350 --> 08:16.280
あちこちで使うので､ かなり親しみが湧くし､ 使い勝手がいいはずです｡

08:16.280 --> 08:23.420
しかし今は､ このコースでさらに先に進むために必要な知識であり､ 理解するためのものなのです｡

08:23.690 --> 08:26.840
というわけで､ 次回もよろしくお願いします｡ 

08:26.840 --> 08:28.700
それまでは､ ディープラーニングを楽しんでください｡ 
