當前位置:
首頁 > 最新 > 大數據科普:神經網路入門-監督學習 Supervised Learning

大數據科普:神經網路入門-監督學習 Supervised Learning

大數據科普:神經網路入門-監督學習 Supervised Learning

為了讓大家更容易理解監督學習(supervised learning) ,我們來從一個例子講起:

假設我們現在調查了某地區的一些房屋及其房價。

我們將其整理為圖表後,可以得到下圖(房屋面積-房屋價格圖)

我們能否根據這些已有數據,來推斷出在這個地區的其他房屋價格?(根據房屋面積來預測房價)

來試試看。

我們用作為我們的特徵(feature)、作輸入變數(房屋面積);我們用為目標(target),做輸出變數(預測的房屋價格)。 那麼每一對就是一個訓練樣本(training example),那麼m個的{;i=1,2,3.......m}就是我們的訓練樣本集(training set)

對於編程不熟悉的同學,這裡的i並沒有實際意義,僅僅代表了x1、x2、x3……

我們用代表輸入值,用代表輸出值。 在這個例子中,

如果我們建立了與的對應關係,那麼函數就是一個X與Y的預測關係方式。

當目標變數為連續時(比如我們的房屋例子),我們就將其稱之為「回歸類問題」(regression problem)。

當y變數為離散時(比如,我們知道房屋的面積,通過XY的關係來推斷這個房子是高檔住房還是低檔住房),我們將其稱之為「歸類問題」(classification problem)


實際情況中,問題往往要複雜一些。那麼我們也來試試看把我們的例子更加貼合實際:

我們把「卧室「也納入統計:

這樣來看的話,在變成了二維向量,例如表了訓練樣本集中的第i個房屋的面積,代表了訓練樣本集中第i個房子的卧室數量(實際環境中,所統計的內容可能更多,例如「廁所的數量」「是否包含停車位」等等問題,這裡為了舉例方便,例子中用了「房屋面積」與「卧室數量」這個兩個作為x變數)。

那麼,在計算機系統中,我們如何表達呢?

在以上的表達式中,作為參數(parameter),大數據處理中我們將其稱之為(weight),作為這個X到Y的線性映射的參數。

這裡照顧大家初學,將角標去掉,就可以簡寫為;同時為了簡化,我們讓(截距項),

那麼此時我們可以得到:

上述式子中,我們將和都看做了向量,其中n是輸入變數的數量(不算)

那麼新的問題又來了:當給了訓練樣本集之後,我們又是如何來篩選或者說讓機器學習參數呢?

思路其實就是讓我們的儘可能的貼近實際的(至少要滿足我們的樣本集)

我們這裡來用代價函數(cost function):

對於每一個值,此時的有多接近此時的

如果你數學比較好,能很明顯的看出來其實上面的式子就是最小均方法。當然看不懂也沒關係,我們繼續往下講。


我們之前也說了,我們希望通過不斷的嘗試值,來得到最小的

我們可以通過演算法,猜測一個初始值,不斷的嘗試來得到不同的最終得到一個最小的值。

這裡我們用「梯度下降法」來解決這個問題:

其中,稱之為學習率(learning rate)

為了使用這種演算法,我們得弄清楚右邊的倒數:

那我們就先拿一個樣例來進行學習,這樣我們就可以忽視J定義中的和

於是我們有:

那麼對於一個單一樣例,我們就得到了:

這個規則就是最小均方法(LMS),當然在神經網路學習中,它也經常被稱之為Widrow-Hoff學習法,這種方式其實很符合自然規律:數據樣本的量級越大、就越容易減小誤差

好了,上面就是我們如何一步步推導出LMS演算法的過程(單訓練樣本),若要推導至大量的訓練樣本數據,我們有兩種方式:

第一種方式:

在發現收斂之前一直重複:

(對應每一個j)

眼尖的朋友們應該已經發現了,上述式子合起來其實就是(我們對J最初始的定義),等於遍歷了所有的訓練樣本,因此也叫作「批量梯度下降法」(batch gradient descent)。

結果很棒,可是我們是否可以再優化下演算法呢?

我們假設此處的線性回歸只有一個全局最優解(沒有其他的局部最優解),那麼我們的梯度下降法一定是收斂在了全局最小值。

確實,我們的J是一個凸面二次方程

下面就是一個二次方程的例子:

上面的圖就是一個二次方程的曲線輪廓,同時還有我們梯度下降的軌跡(從(48.30)這個點出發),其中x記錄了通過梯度下降的連續值(橫線連起來的)

當我們使用了批量梯度下降法(我們之前用機器跑過的那些數據),我們得到了

通過作圖,我們可以得到:

如果將「卧室數量」因素計算其中,我們得到:

我們再來看看第二種方式:

loop }

按照這種演算法,我們其實是遍歷了每一個「訓練樣本」,我們每一次運算,都會通過樣本的實際情況來不斷更新我們的學習情況(不斷尋找誤差最小的值)。

這種演算法,叫做隨機梯度下降法(stochastic gradient descent),也可以叫做增量梯度下降法(incremental gradient descent)

和批量梯度下降法相比,隨機梯度下降法能以一個相對來說「更高效」的方式來尋找答案(每次都能不斷自我修鍊)。雖說在實際應用中,往往不能立即得到最精確的,但是因為樣本數量足夠大,我們的般來說已經足夠接近。

因此,當樣本量足夠大的時候,往往採用隨機梯度下降法。


下期預告:

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

你的紫砂壺為什麼養不好?
理財中的福報情緣

TAG:全球大搜羅 |