質問編集履歴
31
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
★★★★★★★★★★
|
12
12
|
「確率的勾配降下法SGD」は一つの訓練データ毎にパラメータを更新するので**『バッチ正規化』**がそもそも対象外。 これは「確率的勾配降下法SGD」にとって非常に不利。
|
13
13
|
**ミニバッチ学習法** と **バッチ学習法** なら、**batch normalization**を実施可能。
|
14
|
-
ただし、
|
14
|
+
ただし、(R.Shigemori氏より)
|
15
15
|
> オンライン学習の不安定性は欠点と捉えられていましたが、局所解回避しやすいという利点でもあります。さらにいうとこの不安定さはひとつひとつで見るとその通りなのですが、全体で見ると安定した分布を描くので、与えられたデータを頭から順番に計算するよりランダムに選択して計算する処理を繰り返したほうがうまくいくというアイデアがSDGとして結実していると考えるべきでしょう。
|
16
16
|
> ミニバッチ学習ですが、オンライン学習とバッチ学習の利点をうまく取り入れたものとして、メジャー化しています。
|
17
17
|
|
30
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,6 +11,10 @@
|
|
11
11
|
★★★★★★★★★★
|
12
12
|
「確率的勾配降下法SGD」は一つの訓練データ毎にパラメータを更新するので**『バッチ正規化』**がそもそも対象外。 これは「確率的勾配降下法SGD」にとって非常に不利。
|
13
13
|
**ミニバッチ学習法** と **バッチ学習法** なら、**batch normalization**を実施可能。
|
14
|
+
ただし、
|
15
|
+
> オンライン学習の不安定性は欠点と捉えられていましたが、局所解回避しやすいという利点でもあります。さらにいうとこの不安定さはひとつひとつで見るとその通りなのですが、全体で見ると安定した分布を描くので、与えられたデータを頭から順番に計算するよりランダムに選択して計算する処理を繰り返したほうがうまくいくというアイデアがSDGとして結実していると考えるべきでしょう。
|
16
|
+
> ミニバッチ学習ですが、オンライン学習とバッチ学習の利点をうまく取り入れたものとして、メジャー化しています。
|
17
|
+
|
14
18
|
★★★★★★★★★★
|
15
19
|
|
16
20
|
**ミニバッチ学習法** は **バッチ学習法** と **オンライン学習法**を折衷した方法である。
|
29
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
「**batch normalization**」は非常に重要なテクニック:
|
39
39
|
【働き原理】**内部の共変量シフトを減少させる(Reduce Internal Covariate Shift)**
|
40
40
|
『基本的には、**勾配消失・爆発を防ぐ**ための手法である』という説があるが、そのメカニズムを調べる分からず、想像に、layer間の入力データの期待値とスケールがまちまちなので、その微分値のサイズもまちまち、スケールの大きいデータに生成される微分値も大きくて、back-propgationプロセスにおいて大きな影響力を持つに対して、入力データのスケールが小さいlayerがback-propgationプロセスにほとんど影響なし(勾配消失)----不公平!
|
41
|
-
上記データの極端性について**activition関数によってある程度和らげるものの、layer間全連結(Full Connection FC)というAffine変換の結果がいつもReLU関数の平坦域に存在すれば、微分値・勾配が依然0になりがち**。 もっと
|
41
|
+
上記データの極端性について**activition関数によってある程度和らげるものの、layer間全連結(Full Connection FC)というAffine変換の結果がいつもReLU関数の平坦域に存在すれば、微分値・勾配が依然0になりがち**。 もっと効果的な是正方法として、**batch normalization**が提案された。**batch normalization**は各layer毎に入力データの正規化("白化"+rescaling)を行う。
|
42
42
|
具体的な効果として、
|
43
43
|
① 学習レートを大きくすることが可能にして、訓練速度アップ;
|
44
44
|
② ネットワークの学習プロセスを全体的に安定化させる;
|
28
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -44,4 +44,5 @@
|
|
44
44
|
② ネットワークの学習プロセスを全体的に安定化させる;
|
45
45
|
③ NNの初期値の影響を抑える;
|
46
46
|
④ **batch normalization**によって **~~L2正規化~~ L2正則化** や **dropout**が不要になるか必要性が下がるため、過学習を和らげる働きがあると推測。
|
47
|
+
**L2正則化**項をloss関数に加える事によってNNパラメータの大きさが制限され、小さければ一部のニューロが存在しないことに等価的で、**dropout**の効果と同じ-----これでNNの過学習を回避できる。
|
47
48
|
※ 『Batch Normalization と Dropout は併用しない方が良い』という話がある。
|
27
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
「**batch normalization**」は非常に重要なテクニック:
|
39
39
|
【働き原理】**内部の共変量シフトを減少させる(Reduce Internal Covariate Shift)**
|
40
40
|
『基本的には、**勾配消失・爆発を防ぐ**ための手法である』という説があるが、そのメカニズムを調べる分からず、想像に、layer間の入力データの期待値とスケールがまちまちなので、その微分値のサイズもまちまち、スケールの大きいデータに生成される微分値も大きくて、back-propgationプロセスにおいて大きな影響力を持つに対して、入力データのスケールが小さいlayerがback-propgationプロセスにほとんど影響なし(勾配消失)----不公平!
|
41
|
-
上記データの極端性についてactivition関数によってある程度和らげるものの、もっと有効的な是正方法として、**batch normalization**が提案された。**batch normalization**は各layer毎に入力データの正規化("白化"+rescaling)を行う。
|
41
|
+
上記データの極端性について**activition関数によってある程度和らげるものの、layer間全連結(Full Connection FC)というAffine変換の結果がいつもReLU関数の平坦域に存在すれば、微分値・勾配が依然0になりがち**。 もっと有効的な是正方法として、**batch normalization**が提案された。**batch normalization**は各layer毎に入力データの正規化("白化"+rescaling)を行う。
|
42
42
|
具体的な効果として、
|
43
43
|
① 学習レートを大きくすることが可能にして、訓練速度アップ;
|
44
44
|
② ネットワークの学習プロセスを全体的に安定化させる;
|
26
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -37,9 +37,11 @@
|
|
37
37
|
★★★★★★★★★★
|
38
38
|
「**batch normalization**」は非常に重要なテクニック:
|
39
39
|
【働き原理】**内部の共変量シフトを減少させる(Reduce Internal Covariate Shift)**
|
40
|
-
『基本的には、**勾配消失・爆発を防ぐ**ための手法である』という説があるが、そのメカニズムを調べる分からず、想像に、layer間の入力データの期待値とスケールがまちまちなので、その微分値のサイズもまちまち、スケールの大きいデータに生成される微分値も大きくて、back-propgationプロセスにおいて大きな影響力を持つに対して、入力データのスケールが小さいlayerがback-propgationプロセスにほとんど影響なし(勾配消失)----不公平
|
40
|
+
『基本的には、**勾配消失・爆発を防ぐ**ための手法である』という説があるが、そのメカニズムを調べる分からず、想像に、layer間の入力データの期待値とスケールがまちまちなので、その微分値のサイズもまちまち、スケールの大きいデータに生成される微分値も大きくて、back-propgationプロセスにおいて大きな影響力を持つに対して、入力データのスケールが小さいlayerがback-propgationプロセスにほとんど影響なし(勾配消失)----不公平!
|
41
|
+
上記データの極端性についてactivition関数によってある程度和らげるものの、もっと有効的な是正方法として、**batch normalization**が提案された。**batch normalization**は各layer毎に入力データの正規化("白化"+rescaling)を行う。
|
41
42
|
具体的な効果として、
|
42
43
|
① 学習レートを大きくすることが可能にして、訓練速度アップ;
|
43
44
|
② ネットワークの学習プロセスを全体的に安定化させる;
|
44
45
|
③ NNの初期値の影響を抑える;
|
45
|
-
④ **batch normalization**によって **~~L2正規化~~ L2正則化** や **dropout**が不要になるか必要性が下がるため、過学習を和らげる働きがあると推測。
|
46
|
+
④ **batch normalization**によって **~~L2正規化~~ L2正則化** や **dropout**が不要になるか必要性が下がるため、過学習を和らげる働きがあると推測。
|
47
|
+
※ 『Batch Normalization と Dropout は併用しない方が良い』という話がある。
|
25
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -37,8 +37,8 @@
|
|
37
37
|
★★★★★★★★★★
|
38
38
|
「**batch normalization**」は非常に重要なテクニック:
|
39
39
|
【働き原理】**内部の共変量シフトを減少させる(Reduce Internal Covariate Shift)**
|
40
|
-
『基本的には、**勾配消失・爆発を防ぐ**ための手法である』という説があるが。
|
41
|
-
具体
|
40
|
+
『基本的には、**勾配消失・爆発を防ぐ**ための手法である』という説があるが、そのメカニズムを調べる分からず、想像に、layer間の入力データの期待値とスケールがまちまちなので、その微分値のサイズもまちまち、スケールの大きいデータに生成される微分値も大きくて、back-propgationプロセスにおいて大きな影響力を持つに対して、入力データのスケールが小さいlayerがback-propgationプロセスにほとんど影響なし(勾配消失)----不公平。これを是正するために、**batch normalization**を利用するようになった? -----**batch normalization**は各layer毎に入力データの正規化("白化"+rescaling)を行うのだから。
|
41
|
+
具体的な効果として、
|
42
42
|
① 学習レートを大きくすることが可能にして、訓練速度アップ;
|
43
43
|
② ネットワークの学習プロセスを全体的に安定化させる;
|
44
44
|
③ NNの初期値の影響を抑える;
|
24
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
*************************************************
|
10
10
|
【結論】
|
11
11
|
★★★★★★★★★★
|
12
|
-
「確率的勾配降下法SGD」は一つの訓練データ毎にパラメータを更新するので**『バッチ正規化』
|
12
|
+
「確率的勾配降下法SGD」は一つの訓練データ毎にパラメータを更新するので**『バッチ正規化』**がそもそも対象外。 これは「確率的勾配降下法SGD」にとって非常に不利。
|
13
13
|
**ミニバッチ学習法** と **バッチ学習法** なら、**batch normalization**を実施可能。
|
14
14
|
★★★★★★★★★★
|
15
15
|
|
23
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
ことろが、どうしてその後、確率的勾配降下法(stochastic gradient descent, SGD)が有名になって、良く使われることになったのでしょうか。
|
3
3
|
Q1 : 「確率的勾配降下法SGD」って、一つの学習データを単位に学習するのですね。これは最初の学習法(安定性が悪い)に戻るのではと思いますが、誤解でしょうか。
|
4
4
|
|
5
|
-
Q2 :「確率的勾配降下法SGD」を使う場合、『バッチ正規化』という訓練精度を上げるのにとても重要な方法とされるテクニックが利用できなくなる(無意味になる)のではないでしょうか。
|
5
|
+
Q2 :「確率的勾配降下法SGD」を使う場合、**『バッチ正規化』(batch normalization)**という訓練精度を上げるのにとても重要な方法とされるテクニックが利用できなくなる(無意味になる)のではないでしょうか。
|
6
6
|
|
7
7
|
ご存知の方説明お願いします。
|
8
8
|
|
@@ -24,7 +24,7 @@
|
|
24
24
|
ただ、
|
25
25
|
> 1.勾配を利用する以上、loss関数が自動変数(NNのweight)に微分可能でなければならない;
|
26
26
|
> 2.共役勾配法の場合、loss関数(目標関数)は二次形である必要:
|
27
|
-
> f(X) = X'AX + bX A: matrix;
|
27
|
+
> f(X) = X'AX + bX A: matrix; X: 自動変数vector
|
28
28
|
|
29
29
|
日本語版のWikipedia:確率的勾配降下法は『バッチ学習である最急降下法をオンライン学習に改良した物。』
|
30
30
|
**__【注】最急降下法 = 勾配降下法( Gradient descent, Steepest descent)__**
|
22
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -20,11 +20,11 @@
|
|
20
20
|
**バッチ学習法**と**オンライン学習法**とはどっちが先に発明されたかについて、 算法自身からは分からない。
|
21
21
|
|
22
22
|
降下法系のoptimizer算法からすると、算法自身が**一回の自動変数の更新に利用するサンプル数と関係なく**、一回の更新に一つのサンプルを使うか、それとも複数のサンプルを使うかはloss関数の定義による。
|
23
|
-
一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、複数のサンプル(batch)に関する訓練lossの平均値をbatchのloss関数とする**。
|
23
|
+
一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、複数のサンプル(batch / mini batch)に関する訓練lossの平均値をbatch / mini batch のloss関数とする**。
|
24
24
|
ただ、
|
25
25
|
> 1.勾配を利用する以上、loss関数が自動変数(NNのweight)に微分可能でなければならない;
|
26
26
|
> 2.共役勾配法の場合、loss関数(目標関数)は二次形である必要:
|
27
|
-
> f(X) = X'AX + bX A: matrix;
|
27
|
+
> f(X) = X'AX + bX A: matrix; X:自動変数vector
|
28
28
|
|
29
29
|
日本語版のWikipedia:確率的勾配降下法は『バッチ学習である最急降下法をオンライン学習に改良した物。』
|
30
30
|
**__【注】最急降下法 = 勾配降下法( Gradient descent, Steepest descent)__**
|
21
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
元々は、一つの学習データ毎にNNに学習させるのだったのですが、学習の能率と安定性を考えると、バッチ単位で学習するほうが良いと思われました。
|
2
2
|
ことろが、どうしてその後、確率的勾配降下法(stochastic gradient descent, SGD)が有名になって、良く使われることになったのでしょうか。
|
3
|
-
Q1 : 「確率的勾配降下法SGD」って、一つの学習データを単位に学習するのですね。これは最初の学習法(
|
3
|
+
Q1 : 「確率的勾配降下法SGD」って、一つの学習データを単位に学習するのですね。これは最初の学習法(安定性が悪い)に戻るのではと思いますが、誤解でしょうか。
|
4
4
|
|
5
5
|
Q2 :「確率的勾配降下法SGD」を使う場合、『バッチ正規化』という訓練精度を上げるのにとても重要な方法とされるテクニックが利用できなくなる(無意味になる)のではないでしょうか。
|
6
6
|
|
20
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
**バッチ学習法**と**オンライン学習法**とはどっちが先に発明されたかについて、 算法自身からは分からない。
|
21
21
|
|
22
22
|
降下法系のoptimizer算法からすると、算法自身が**一回の自動変数の更新に利用するサンプル数と関係なく**、一回の更新に一つのサンプルを使うか、それとも複数のサンプルを使うかはloss関数の定義による。
|
23
|
-
一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、複数のサンプルに関する訓練lossの平均値
|
23
|
+
一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、複数のサンプル(batch)に関する訓練lossの平均値をbatchのloss関数とする**。
|
24
24
|
ただ、
|
25
25
|
> 1.勾配を利用する以上、loss関数が自動変数(NNのweight)に微分可能でなければならない;
|
26
26
|
> 2.共役勾配法の場合、loss関数(目標関数)は二次形である必要:
|
19
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
*************************************************
|
10
10
|
【結論】
|
11
11
|
★★★★★★★★★★
|
12
|
-
「確率的勾配降下法SGD」は一つの訓練データ毎にパラメータを更新するので**『バッチ正規化』(batch normalization)**が
|
12
|
+
「確率的勾配降下法SGD」は一つの訓練データ毎にパラメータを更新するので**『バッチ正規化』(batch normalization)**がそもそも対象外。 これは「確率的勾配降下法SGD」にとって非常に不利。
|
13
13
|
**ミニバッチ学習法** と **バッチ学習法** なら、**batch normalization**を実施可能。
|
14
14
|
★★★★★★★★★★
|
15
15
|
|
@@ -24,7 +24,7 @@
|
|
24
24
|
ただ、
|
25
25
|
> 1.勾配を利用する以上、loss関数が自動変数(NNのweight)に微分可能でなければならない;
|
26
26
|
> 2.共役勾配法の場合、loss関数(目標関数)は二次形である必要:
|
27
|
-
> f(X) =
|
27
|
+
> f(X) = X'AX + bX A: matrix; X:自動変数vector
|
28
28
|
|
29
29
|
日本語版のWikipedia:確率的勾配降下法は『バッチ学習である最急降下法をオンライン学習に改良した物。』
|
30
30
|
**__【注】最急降下法 = 勾配降下法( Gradient descent, Steepest descent)__**
|
18
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,18 +10,15 @@
|
|
10
10
|
【結論】
|
11
11
|
★★★★★★★★★★
|
12
12
|
「確率的勾配降下法SGD」は一つの訓練データ毎にパラメータを更新するので**『バッチ正規化』(batch normalization)**ができない。 これは「確率的勾配降下法SGD」にとって非常に不利。
|
13
|
-
**ミニバッチ学習法** と **バッチ学習法** なら、**batch normalization**を実施可能
|
13
|
+
**ミニバッチ学習法** と **バッチ学習法** なら、**batch normalization**を実施可能。
|
14
14
|
★★★★★★★★★★
|
15
15
|
|
16
16
|
**ミニバッチ学習法** は **バッチ学習法** と **オンライン学習法**を折衷した方法である。
|
17
17
|
3者の間に数学的な差はなく、loss関数(目標関数)の定義に加味したり、サンプリング順番を工夫したりする程度の差しなかい。
|
18
18
|
|
19
19
|
★★★★★★★★★★
|
20
|
-
**バッチ学習法**と**オンライン学習法**とはどっちが先に発明されたかについて、
|
20
|
+
**バッチ学習法**と**オンライン学習法**とはどっちが先に発明されたかについて、 算法自身からは分からない。
|
21
|
-
算法自身からは分からない。
|
22
21
|
|
23
|
-
|
24
|
-
|
25
22
|
降下法系のoptimizer算法からすると、算法自身が**一回の自動変数の更新に利用するサンプル数と関係なく**、一回の更新に一つのサンプルを使うか、それとも複数のサンプルを使うかはloss関数の定義による。
|
26
23
|
一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、複数のサンプルに関する訓練lossの平均値でloss関数を計算する**。
|
27
24
|
ただ、
|
@@ -33,11 +30,10 @@
|
|
33
30
|
**__【注】最急降下法 = 勾配降下法( Gradient descent, Steepest descent)__**
|
34
31
|
最急降下法をオンライン学習に改良した物を確率的勾配降下法と呼ぶ。
|
35
32
|
|
36
|
-
英語版のWikipedia: Stochastic gradient descent
|
33
|
+
英語版のWikipedia: **Stochastic gradient descent**
|
37
34
|
Stochastic gradient descent (often shortened to SGD), also known as **incremental gradient descent**, is an **iterative method **for optimizing a **differentiable objective function**, a stochastic **approximation of gradient **descent optimization. It is called **stochastic** because samples are **__selected randomly (or shuffled) instead of as a single group __**(as in standard gradient descent) or in the order they appear in the training set.
|
38
35
|
|
39
36
|
|
40
|
-
|
41
37
|
★★★★★★★★★★
|
42
38
|
「**batch normalization**」は非常に重要なテクニック:
|
43
39
|
【働き原理】**内部の共変量シフトを減少させる(Reduce Internal Covariate Shift)**
|
17
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,16 +9,20 @@
|
|
9
9
|
*************************************************
|
10
10
|
【結論】
|
11
11
|
★★★★★★★★★★
|
12
|
+
「確率的勾配降下法SGD」は一つの訓練データ毎にパラメータを更新するので**『バッチ正規化』(batch normalization)**ができない。 これは「確率的勾配降下法SGD」にとって非常に不利。
|
13
|
+
**ミニバッチ学習法** と **バッチ学習法** なら、**batch normalization**を実施可能
|
14
|
+
★★★★★★★★★★
|
15
|
+
|
12
16
|
**ミニバッチ学習法** は **バッチ学習法** と **オンライン学習法**を折衷した方法である。
|
13
17
|
3者の間に数学的な差はなく、loss関数(目標関数)の定義に加味したり、サンプリング順番を工夫したりする程度の差しなかい。
|
14
18
|
|
15
19
|
★★★★★★★★★★
|
16
20
|
**バッチ学習法**と**オンライン学習法**とはどっちが先に発明されたかについて、
|
17
|
-
算法自身からは分からない
|
21
|
+
算法自身からは分からない。
|
18
22
|
|
19
23
|
|
20
24
|
|
21
|
-
降下法系のoptimizer算法からすると、算法自身が**一回の自動変数の更新に利用するサンプル数と関係なく**、一回の更新に一つのサンプルを使うか、複数使うか
|
25
|
+
降下法系のoptimizer算法からすると、算法自身が**一回の自動変数の更新に利用するサンプル数と関係なく**、一回の更新に一つのサンプルを使うか、それとも複数のサンプルを使うかはloss関数の定義による。
|
22
26
|
一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、複数のサンプルに関する訓練lossの平均値でloss関数を計算する**。
|
23
27
|
ただ、
|
24
28
|
> 1.勾配を利用する以上、loss関数が自動変数(NNのweight)に微分可能でなければならない;
|
16
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -42,4 +42,4 @@
|
|
42
42
|
① 学習レートを大きくすることが可能にして、訓練速度アップ;
|
43
43
|
② ネットワークの学習プロセスを全体的に安定化させる;
|
44
44
|
③ NNの初期値の影響を抑える;
|
45
|
-
④ **batch normalization**によって **L2正規化** や **dropout**が不要になるため、過学習を和らげる働きがあると推測。
|
45
|
+
④ **batch normalization**によって **~~L2正規化~~ L2正則化** や **dropout**が不要になるか必要性が下がるため、過学習を和らげる働きがあると推測。
|
15
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -36,6 +36,10 @@
|
|
36
36
|
|
37
37
|
★★★★★★★★★★
|
38
38
|
「**batch normalization**」は非常に重要なテクニック:
|
39
|
+
【働き原理】**内部の共変量シフトを減少させる(Reduce Internal Covariate Shift)**
|
40
|
+
『基本的には、**勾配消失・爆発を防ぐ**ための手法である』という説があるが。
|
41
|
+
具体に
|
39
42
|
① 学習レートを大きくすることが可能にして、訓練速度アップ;
|
43
|
+
② ネットワークの学習プロセスを全体的に安定化させる;
|
40
|
-
|
44
|
+
③ NNの初期値の影響を抑える;
|
41
|
-
|
45
|
+
④ **batch normalization**によって **L2正規化** や **dropout**が不要になるため、過学習を和らげる働きがあると推測。
|
14
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -38,4 +38,4 @@
|
|
38
38
|
「**batch normalization**」は非常に重要なテクニック:
|
39
39
|
① 学習レートを大きくすることが可能にして、訓練速度アップ;
|
40
40
|
② NNの初期値の影響を抑える;
|
41
|
-
③
|
41
|
+
③ **batch normalization**によって **L2正規化** や **drop out**が不要になるため、過学習を和らげる働きがあると推測。
|
13
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -35,7 +35,7 @@
|
|
35
35
|
|
36
36
|
|
37
37
|
★★★★★★★★★★
|
38
|
-
「**batch normalization**」非常に重要なテクニック:
|
38
|
+
「**batch normalization**」は非常に重要なテクニック:
|
39
39
|
① 学習レートを大きくすることが可能にして、訓練速度アップ;
|
40
40
|
② NNの初期値の影響を抑える;
|
41
|
-
③ L2正規化やdrop outを不要にする可能だから、過学習を和らげる働きがあると推測。
|
41
|
+
③ 「**batch normalization**」でL2正規化やdrop outを不要にする可能だから、過学習を和らげる働きがあると推測。
|
12
訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
|
21
21
|
降下法系のoptimizer算法からすると、算法自身が**一回の自動変数の更新に利用するサンプル数と関係なく**、一回の更新に一つのサンプルを使うか、複数使うかに従うloss関数の定義による。
|
22
|
-
一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、複数のサンプルに関する訓練
|
22
|
+
一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、複数のサンプルに関する訓練lossの平均値でloss関数を計算する**。
|
23
23
|
ただ、
|
24
24
|
> 1.勾配を利用する以上、loss関数が自動変数(NNのweight)に微分可能でなければならない;
|
25
25
|
> 2.共役勾配法の場合、loss関数(目標関数)は二次形である必要:
|
11
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,17 +10,21 @@
|
|
10
10
|
【結論】
|
11
11
|
★★★★★★★★★★
|
12
12
|
**ミニバッチ学習法** は **バッチ学習法** と **オンライン学習法**を折衷した方法である。
|
13
|
-
3者の間に数学的な差はなく、loss関数の定義に加味したり、サンプリング順番を工夫したりする程度の差しなかい。
|
13
|
+
3者の間に数学的な差はなく、loss関数(目標関数)の定義に加味したり、サンプリング順番を工夫したりする程度の差しなかい。
|
14
14
|
|
15
15
|
★★★★★★★★★★
|
16
16
|
**バッチ学習法**と**オンライン学習法**とはどっちが先に発明されたかについて、
|
17
17
|
算法自身からは分からないと思う。
|
18
18
|
|
19
|
-
一回の更新に一つのサンプルを使うか、複数使うかに従うloss関数の定義による。
|
20
|
-
(ただ、loss関数がNNのweightに微分可能でなければならない)
|
21
19
|
|
22
|
-
降下法系のoptimizer算法からすると、算法自身が**一回の自動変数の更新に利用するサンプル数と関係なく**、寧ろ、一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、複数のサンプルに関する訓練誤差の平均値でloss関数を計算する**。
|
23
20
|
|
21
|
+
降下法系のoptimizer算法からすると、算法自身が**一回の自動変数の更新に利用するサンプル数と関係なく**、一回の更新に一つのサンプルを使うか、複数使うかに従うloss関数の定義による。
|
22
|
+
一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、複数のサンプルに関する訓練誤差の平均値でloss関数を計算する**。
|
23
|
+
ただ、
|
24
|
+
> 1.勾配を利用する以上、loss関数が自動変数(NNのweight)に微分可能でなければならない;
|
25
|
+
> 2.共役勾配法の場合、loss関数(目標関数)は二次形である必要:
|
26
|
+
> f(X) = A'XA + bX
|
27
|
+
|
24
28
|
日本語版のWikipedia:確率的勾配降下法は『バッチ学習である最急降下法をオンライン学習に改良した物。』
|
25
29
|
**__【注】最急降下法 = 勾配降下法( Gradient descent, Steepest descent)__**
|
26
30
|
最急降下法をオンライン学習に改良した物を確率的勾配降下法と呼ぶ。
|
10
訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
一回の更新に一つのサンプルを使うか、複数使うかに従うloss関数の定義による。
|
20
20
|
(ただ、loss関数がNNのweightに微分可能でなければならない)
|
21
21
|
|
22
|
-
降下法系のoptimizer算法からすると、算法自身が**一回の自動変数の更新に利用するサンプル数と関係なく**、寧ろ、一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、
|
22
|
+
降下法系のoptimizer算法からすると、算法自身が**一回の自動変数の更新に利用するサンプル数と関係なく**、寧ろ、一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、複数のサンプルに関する訓練誤差の平均値でloss関数を計算する**。
|
23
23
|
|
24
24
|
日本語版のWikipedia:確率的勾配降下法は『バッチ学習である最急降下法をオンライン学習に改良した物。』
|
25
25
|
**__【注】最急降下法 = 勾配降下法( Gradient descent, Steepest descent)__**
|
9
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,11 +15,15 @@
|
|
15
15
|
★★★★★★★★★★
|
16
16
|
**バッチ学習法**と**オンライン学習法**とはどっちが先に発明されたかについて、
|
17
17
|
算法自身からは分からないと思う。
|
18
|
-
|
18
|
+
|
19
19
|
一回の更新に一つのサンプルを使うか、複数使うかに従うloss関数の定義による。
|
20
20
|
(ただ、loss関数がNNのweightに微分可能でなければならない)
|
21
21
|
|
22
|
+
降下法系のoptimizer算法からすると、算法自身が**一回の自動変数の更新に利用するサンプル数と関係なく**、寧ろ、一回の更新に一つのサンプルを使うのは自然で、オリジナルだと思われる。これを基本にして、**パフォーマンス的な配慮を入れて、loss関数に複数のサンプルに関する訓練誤差の平均値でloss関数を計算する**。
|
23
|
+
|
22
24
|
日本語版のWikipedia:確率的勾配降下法は『バッチ学習である最急降下法をオンライン学習に改良した物。』
|
25
|
+
**__【注】最急降下法 = 勾配降下法( Gradient descent, Steepest descent)__**
|
26
|
+
最急降下法をオンライン学習に改良した物を確率的勾配降下法と呼ぶ。
|
23
27
|
|
24
28
|
英語版のWikipedia: Stochastic gradient descent
|
25
29
|
Stochastic gradient descent (often shortened to SGD), also known as **incremental gradient descent**, is an **iterative method **for optimizing a **differentiable objective function**, a stochastic **approximation of gradient **descent optimization. It is called **stochastic** because samples are **__selected randomly (or shuffled) instead of as a single group __**(as in standard gradient descent) or in the order they appear in the training set.
|
8
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -21,7 +21,11 @@
|
|
21
21
|
|
22
22
|
日本語版のWikipedia:確率的勾配降下法は『バッチ学習である最急降下法をオンライン学習に改良した物。』
|
23
23
|
|
24
|
+
英語版のWikipedia: Stochastic gradient descent
|
25
|
+
Stochastic gradient descent (often shortened to SGD), also known as **incremental gradient descent**, is an **iterative method **for optimizing a **differentiable objective function**, a stochastic **approximation of gradient **descent optimization. It is called **stochastic** because samples are **__selected randomly (or shuffled) instead of as a single group __**(as in standard gradient descent) or in the order they appear in the training set.
|
24
26
|
|
27
|
+
|
28
|
+
|
25
29
|
★★★★★★★★★★
|
26
30
|
「**batch normalization**」非常に重要なテクニック:
|
27
31
|
① 学習レートを大きくすることが可能にして、訓練速度アップ;
|
7
Zxczxc
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,8 +4,10 @@
|
|
4
4
|
|
5
5
|
Q2 :「確率的勾配降下法SGD」を使う場合、『バッチ正規化』という訓練精度を上げるのにとても重要な方法とされるテクニックが利用できなくなる(無意味になる)のではないでしょうか。
|
6
6
|
|
7
|
+
ご存知の方説明お願いします。
|
8
|
+
|
7
9
|
*************************************************
|
8
|
-
|
10
|
+
【結論】
|
9
11
|
★★★★★★★★★★
|
10
12
|
**ミニバッチ学習法** は **バッチ学習法** と **オンライン学習法**を折衷した方法である。
|
11
13
|
3者の間に数学的な差はなく、loss関数の定義に加味したり、サンプリング順番を工夫したりする程度の差しなかい。
|
6
xczx
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
*************************************************
|
8
8
|
ご存知の方説明お願いします。
|
9
9
|
★★★★★★★★★★
|
10
|
-
**ミニバッチ学習法**は**バッチ学習法**と**オンライン学習法**を折衷した方法である。
|
10
|
+
**ミニバッチ学習法** は **バッチ学習法** と **オンライン学習法**を折衷した方法である。
|
11
11
|
3者の間に数学的な差はなく、loss関数の定義に加味したり、サンプリング順番を工夫したりする程度の差しなかい。
|
12
12
|
|
13
13
|
★★★★★★★★★★
|
@@ -17,8 +17,9 @@
|
|
17
17
|
一回の更新に一つのサンプルを使うか、複数使うかに従うloss関数の定義による。
|
18
18
|
(ただ、loss関数がNNのweightに微分可能でなければならない)
|
19
19
|
|
20
|
-
日本語版のWikipedia
|
20
|
+
日本語版のWikipedia:確率的勾配降下法は『バッチ学習である最急降下法をオンライン学習に改良した物。』
|
21
21
|
|
22
|
+
|
22
23
|
★★★★★★★★★★
|
23
24
|
「**batch normalization**」非常に重要なテクニック:
|
24
25
|
① 学習レートを大きくすることが可能にして、訓練速度アップ;
|
5
asdasd
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
*************************************************
|
8
8
|
ご存知の方説明お願いします。
|
9
9
|
★★★★★★★★★★
|
10
|
-
**ミニバッチ学習法****
|
10
|
+
**ミニバッチ学習法**は**バッチ学習法**と**オンライン学習法**を折衷した方法である。
|
11
11
|
3者の間に数学的な差はなく、loss関数の定義に加味したり、サンプリング順番を工夫したりする程度の差しなかい。
|
12
12
|
|
13
13
|
★★★★★★★★★★
|
4
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,25 +4,23 @@
|
|
4
4
|
|
5
5
|
Q2 :「確率的勾配降下法SGD」を使う場合、『バッチ正規化』という訓練精度を上げるのにとても重要な方法とされるテクニックが利用できなくなる(無意味になる)のではないでしょうか。
|
6
6
|
|
7
|
-
|
7
|
+
*************************************************
|
8
8
|
ご存知の方説明お願いします。
|
9
|
-
********************************************
|
10
|
-
自分のこれまでの結論:
|
11
9
|
★★★★★★★★★★
|
12
|
-
ミニバッチ学習法は
|
10
|
+
**ミニバッチ学習法****はバッチ学習法**と**オンライン学習法**を折衷した方法である。
|
13
11
|
3者の間に数学的な差はなく、loss関数の定義に加味したり、サンプリング順番を工夫したりする程度の差しなかい。
|
14
12
|
|
15
13
|
★★★★★★★★★★
|
16
|
-
|
14
|
+
**バッチ学習法**と**オンライン学習法**とはどっちが先に発明されたかについて、
|
17
15
|
算法自身からは分からないと思う。
|
18
16
|
降下法系のoptimizer算法からすると、算法自身が本質的にサンプル数と関係ないですから。
|
19
17
|
一回の更新に一つのサンプルを使うか、複数使うかに従うloss関数の定義による。
|
20
18
|
(ただ、loss関数がNNのweightに微分可能でなければならない)
|
21
19
|
|
22
|
-
日本語版のWikipediaでは、「オンライン学習法」が「バッチ学習法」を改造して生まれたと書かれている。
|
20
|
+
日本語版のWikipediaでは、「**オンライン学習法**」が「**バッチ学習法**」を改造して生まれたと書かれている。
|
23
21
|
|
24
22
|
★★★★★★★★★★
|
25
|
-
「batch normalization」非常に重要なテクニック:
|
23
|
+
「**batch normalization**」非常に重要なテクニック:
|
26
24
|
① 学習レートを大きくすることが可能にして、訓練速度アップ;
|
27
25
|
② NNの初期値の影響を抑える;
|
28
26
|
③ L2正規化やdrop outを不要にする可能だから、過学習を和らげる働きがあると推測。
|
3
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,4 +5,24 @@
|
|
5
5
|
Q2 :「確率的勾配降下法SGD」を使う場合、『バッチ正規化』という訓練精度を上げるのにとても重要な方法とされるテクニックが利用できなくなる(無意味になる)のではないでしょうか。
|
6
6
|
|
7
7
|
|
8
|
-
ご存知の方説明お願いします。
|
8
|
+
ご存知の方説明お願いします。
|
9
|
+
********************************************
|
10
|
+
自分のこれまでの結論:
|
11
|
+
★★★★★★★★★★
|
12
|
+
ミニバッチ学習法はマッチ学習法とオンライン学習法を折衷した方法である。
|
13
|
+
3者の間に数学的な差はなく、loss関数の定義に加味したり、サンプリング順番を工夫したりする程度の差しなかい。
|
14
|
+
|
15
|
+
★★★★★★★★★★
|
16
|
+
マッチ学習法とオンライン学習法とはどっちが先に発明されたかについて、
|
17
|
+
算法自身からは分からないと思う。
|
18
|
+
降下法系のoptimizer算法からすると、算法自身が本質的にサンプル数と関係ないですから。
|
19
|
+
一回の更新に一つのサンプルを使うか、複数使うかに従うloss関数の定義による。
|
20
|
+
(ただ、loss関数がNNのweightに微分可能でなければならない)
|
21
|
+
|
22
|
+
日本語版のWikipediaでは、「オンライン学習法」が「バッチ学習法」を改造して生まれたと書かれている。
|
23
|
+
|
24
|
+
★★★★★★★★★★
|
25
|
+
「batch normalization」非常に重要なテクニック:
|
26
|
+
① 学習レートを大きくすることが可能にして、訓練速度アップ;
|
27
|
+
② NNの初期値の影響を抑える;
|
28
|
+
③ L2正規化やdrop outを不要にする可能だから、過学習を和らげる働きがあると推測。
|
2
カテゴリをさらに追加
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
1
補充
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
+
元々は、一つの学習データ毎にNNに学習させるのだったのですが、学習の能率と安定性を考えると、バッチ単位で学習するほうが良いと思われました。
|
1
|
-
|
2
|
+
ことろが、どうしてその後、確率的勾配降下法(stochastic gradient descent, SGD)が有名になって、良く使われることになったのでしょうか。
|
2
|
-
Q1 : 「確率的勾配降下法SGD」って、一つの学習データを単位に学習するのですね。これは最初学習法に戻るのではと思いますが、誤解でしょうか。
|
3
|
+
Q1 : 「確率的勾配降下法SGD」って、一つの学習データを単位に学習するのですね。これは最初の学習法(不安定性が悪いとか)に戻るのではと思いますが、誤解でしょうか。
|
3
4
|
|
4
5
|
Q2 :「確率的勾配降下法SGD」を使う場合、『バッチ正規化』という訓練精度を上げるのにとても重要な方法とされるテクニックが利用できなくなる(無意味になる)のではないでしょうか。
|
5
6
|
|