機器學習 神經網路 (6)

用一個例子來說明,當我們輸入手寫的 3 的圖的時候,輸出層的值可能並不是我們預期,因為權重和偏移量都是我們隨機選取的。
所以需要一個成本函式來告訴電腦使用該資料模型是否正確。

我們通過計算輸出值與正確值對比來判斷資料模型的好壞,衡量的標準就是輸出值和正確值得差平方的和。我們可以理解為他們間的距離的總和。

我們可以通過給定集合,也就是一大堆已經知道答案的資料,這裡是圖。計算出的輸出值的平均值作為考察這套神經網路的依據。

我們的神經網路,輸入為 784畫素對應的灰度值。輸出是 10 個數值而引數為 13002個權重值和偏移量。

如果要是漫無目的去找權重和偏差值,是海量的計算。正本函式的複雜性是他的輸入為1300權重和偏移量作為輸入,輸出是一個能夠表示系統好壞的值,引數就是已知的資料,越多越好。

我們一切都是由簡入難,暫時不考慮那麼多輸入,我們只考慮一個輸入和一個輸出情況。這個函式對應一條曲線,我們用微積分很容易找到函式的最小值。

但是世界沒有那麼簡單,對一些複雜函式就不一定了。

好的辦法是我們隨機輸入一個值,然後根據此值來找出讓函式值變小的方向。我們可以計算出函式在該點的斜率來作為左右移動輸入點的依據



圖
值得注意的是,即使在這樣簡單的單一輸入的方程中,依然可能出現很多可以滾入的低谷。

從你隨機選取的輸入值開始,找到的區域性最小值,卻不能保證是函式的最小值。

圖
擴充套件一下想象力,擴充套件到二維變數和一個因變數。輸入變數空間是一個 x y 的二維平面形。成本函式則是浮在上面的曲面。

圖
現在需要考慮不僅是斜率,而是輸入空間的步進方向。減少 方向。熟悉多變數微積分的人都知道 函式梯度會給你最陡峭的上升方向。也就等於哪個方向是函式下降最快的方向。所以用負的梯度就能找到函式下降快的方向。這個梯度向量的長度例項上是這個最陡斜坡有的多個陡的指標。

圖

圖
因為如果你知道可以通過計算梯度方向來找到函式值最小的方向,並向山下走出第一步。

圖
這個原理也適用擁有 13000 個自變數的方程。

圖
成本函式的負梯度只是一個簡單的向量。是一個超級大的輸入變數空間中的一個方向。告訴哪個方向會讓成本函式最快變小。