當訓練神經網路時, 加快您的訓練的技巧其中之一
是正規化您的輸入
讓我們來看看這是什麼意思
假設訓練集有兩個輸入特徵
所以輸入特徵 x 是二維
這個是您訓練集的散佈圖
正規化您的輸入相當於兩個步驟
第一步是減去 或者讓平均值為零
所以您設 mu = 1 除以 m 總和於 i of X(i)
所以這是一個向量, 然後 X 設為 X - mu 對於每一個訓練例子
這個意思是您移動 這個訓練集到 0 平均值
第二步驟是正規化它們的變異
請注意這裡的 x1 特徵 有比較大的變異
比起X2特徵來說
所以我們要做的是設 sigma = 1 除以 m
總和 X(i)**2
這個是逐元素的平方
現在 sigma 平方是一個向量 是每一個特徵的變異數
請注意我們已經減去平均值
所以 X(i) 平方 逐元素平方只是變異數
然後拿每一個例子 除以這個向量 sigma 平方
在圖形上, 您最終會變成這樣
現在 X1 跟 X2 的變異都會等於 1
一個提示, 如果您用這樣來 按比例增減您的訓練資料, 那使用相同的 mu 跟
sigma 平方來正規化您測試集, 是吧?
特別是, 您不希望 用不同的正規化在訓練集跟
在測試集中
不管這個值是什麼跟 不管這個值是什麼, 用這這兩個
公式, 所以您用一樣的方式來 按比例縮放您的測試集, 而不是
計算 mu 跟 sigma 平方 分別在訓練集跟測試集
因為您要您的資料 不管是訓練或是測試例子
經歷同樣的轉換 用相同的 mu 跟
sigma 平方從訓練集計算出來的
為什麼做這些事 ？
為什麼我們要對輸入特徵做正規化
記得成本函數是 像在右上角定義的
實際上如果您用非正規化 輸入特徵, 它會
您個成本函數會像這樣 像是被壓扁的碗,
拉得很長的成本函數 而您試著要找的做小值會在這裡
但如果您的特徵是很不同的比例 假設 x1 特徵
從1 到 1000, 而 x2特徵從 0 到 1
那會變成對於
參數 w1 跟 w2 的比例或是值的範圍 會非常不同
也許這兩個軸應該是 w1 跟 w2 但我畫成 w 跟 b
那您的成本函數會是 細長的碗狀像那樣
如果您畫這個函數的等高線圖
您會得到一個 細長的函數像那樣
但如果您正規化這些特徵
那您的成本函數 平均來說或比較對稱
如果您跑梯度下降 在左邊的成本函數
那您會使用很小的學習率 因為如果您
在這裡，梯度下降會 需要很多步來回擺動
在最後終於找到到最小值的路徑
而如果您的是球型的等高線圖 不管您從何開始
梯度下降都可以 直接到最小值
您可以用比較大的步伐在梯度下降 而不需要
來回擺動像在左邊一樣
當然, 實務上 w 是高維度的向量
試著畫成 2D 並不能正確表示所有直觀
但大約的直觀是 您的成本函數會比較圓
比較容易最佳化當您的特徵 都在類似的比例時
不是從 1 到 1000, 從 0 到 1, 但
大部分從 -1 到 1 或者彼此類似的變異
這樣會讓您的成本函數 J 比較容易跟快速來最佳化
實際上如果一個特徵假設 X1 範圍從0 到 1
X2範圍 從 -1 到 1 X3 範圍從 1 到 2
這些都是類似的範圍 這個會作用得很好
就是對於那些 很大不同的範圍像是
一個從 1 到 1000,
另一個從 0 到 1, 這個 真的會傷害您的最佳化演算法
但只要設定它們都是 平均值 0 跟變異數 1, 像是我們
上個投影片做的, 保證所有的特徵在類似的比例上
通常會幫助您的 學習演算法跑得更快速
如果您個輸入特徵 有不同的比例
也許一些特徵是從 0 到 1
有些從 1 到 1000, 那正規化您的特徵是很重要的
如果您的特徵來自於類似的比例 那這個步驟比較不重要
雖然執行這個 正規化的步驟幾乎不會有任何
傷害, 所以我總是會執行它 如果我不確定是否
會幫助我加快 訓練我的演算法
所以這是正規化您的輸入特徵
下一段，讓我們繼續談論一些方式 來加快訓鍊您的神經網路