人工智能教程 - 1.2.2 神經網絡是如何進行預測的?

總目錄(請務必點擊總目錄從前言看起,這樣你才能充分理解本篇文章)

上一篇文章中我們已經知道了如何將數據輸入到神經網絡中。那麼神經網絡是如何根據這些數據進行預測的呢?我們將一張圖片輸入到神經網絡中,神經網絡是如何預測這張圖中是否有貓的呢??

這個預測的過程其實只是基於一個簡單的公式:z = dot(w,x) + b。看到這個公式,完全不懂~不少同學可能被嚇得小雞雞都萎縮了一截。不用怕,看完我下面的解說後,你就會覺得其實它的原理很簡單。就像玻璃棧道一樣,只是看起來可怕而已。
在這裏插入圖片描述
上面公式中的x代表着輸入特徵向量,假設只有3個特徵,那麼x就可以用(x1,x2,x3)來表示。如下圖所示。w表示權重,它對應於每個輸入特徵,代表了每個特徵的重要程度。b表示閾值[yù zhí],用來影響預測結果。z就是預測結果。公式中的dot()函數表示將w和x進行向量相乘。(不用怕,在後面的文章《向量化》中我會用很通俗易懂的語言來給大家介紹向量相乘有關的高等數學知識)。我們現在只需要知道上面的公式展開後就變成了z = (x1 * w1 + x2 * w2 + x3 * w3) + b。
在這裏插入圖片描述
那麼神經網絡到底是如何利用這個公式來進行預測的呢?下面我通過一個實例來幫助大家理解。

假設週末即將到來,你聽說在你的城市將會有一個音樂節。我們要預測你是否會決定去參加。音樂節離地鐵挺遠,而且你女朋友想讓你陪她宅在家裏搞事情,但是天氣預報說音樂節那天天氣特別好。也就是說有3個因素會影響你的決定,這3個因素就可以看作是3個輸入特徵。那你到底會不會去呢?你的個人喜好——你對上面3個因素的重視程度——會影響你的決定。這3個重視程度就是3個權重。

如果你覺得地鐵遠近無所謂,並且已經精力衰竭不太想搞事情了,而且你很喜歡藍天白雲,那麼我們將預測你會去音樂節。這個預測過程可以用我們的公式來表示。我們假設結果z大於0的話就表示會去,小於0表示不去。又設閾值b是-5。又設3個特徵(x1,x2,x3)爲(0,0,1),最後一個是1,它代表了好天氣。又設三個權重(w1,w2,w3)是(2,2,7),最後一個是7表示你很喜歡好天氣。那麼就有z = (x1 * w1 + x2 * w2 + x3 * w3) + b = (0 * 2 + 0 * 2 + 1 * 7) + (-5) = 2。預測結果z是2,2大於0,所以預測你會去音樂節。

如果你最近慾火焚身,並且對其它兩個因素並不在意,那麼我們預測你將不會去音樂節。這同樣可以用我們的公式來表示。設三個權重(w1,w2,w3)是(2,7,2),w2是7表示你有頂穿鋼板的慾火。那麼就有z = (x1 * w1 + x2 * w2 + x3 * w3) + b = (0 * 2 + 0 * 7 + 1 * 2) + (-5) = -3。預測結果z是-3,-3小於0,所以預測你不會去,會呆在家裏搞事情。
在這裏插入圖片描述
(CSDN會定期掃黃,如果看不到圖片,請在評論中留言)

預測圖片裏有沒有貓也是通過上面的公式。經過訓練的神經網絡會得到一組與貓相關的權重。當我們把一張圖片輸入到神經網絡中,圖片數據會與這組權重以及閾值進行運算,結果大於0就是有貓,小於0就是沒有貓。

你平時上網時有沒有發現網頁上的廣告都與你之前瀏覽過的東西是有關聯的?那是因爲很多網站都會記錄下你平時的瀏覽喜好,然後把它們作爲權重套入到上面的公式來預測你會購買什麼。如果你發現你朋友電腦手機上的網頁裏面老是出現一些情趣用品或SM道具的廣告,那你朋友肯定是個性情中人。

上面那個用於預測的公式我們業界稱之爲邏輯迴歸,這個名字有點奇怪,大家記住就行了,只是個名字而已。

最後再稍微提一下激活函數。在實際的神經網絡中,我們不能直接用邏輯迴歸。必須要在邏輯迴歸外面再套上一個函數。這個函數我們就稱它爲激活函數。激活函數非常非常重要,如果沒有它,那麼神經網絡的智商永遠高不起來。而且激活函數又分好多種。後面我會花好幾篇文章來給大家介紹激活函數。在本篇文章的末尾,我只給大家簡單介紹一種叫做sigmoid的激活函數。它的公式和圖像如下。

在這裏插入圖片描述
我們在這裏先只介紹它的一個用途——把z映射到[0,1]之間。上圖中的橫座標是z,縱座標我們用y’來表示,y’就代表了我們最終的預測結果。從圖像可以看出,z越大那麼y’就越靠近1,z越小那麼y’就越靠近0。那爲什麼要把預測結果映射到[0,1]之間呢?因爲這樣不僅便於神經網絡進行計算,也便於我們人類進行理解。例如在預測是否有貓的例子中,如果y’是0.8,就說明有80%的概率是有貓的。

激活函數就只介紹這些,後面的文章再詳細介紹它。有些同學可能會不樂意,要求我多說一些,其實我也想口若懸河地扒拉扒拉說一大堆,因爲把一件簡單的事給說複雜了是很容易的,而要把一件複雜的事給說簡單了是非常非常難的。每篇文章我都是改了又改,刪了又刪,目的就是讓它儘可能的通俗易懂。說多了反而讓你們變得暈頭轉向。例如其實在邏輯迴歸公式中,w其實應該寫成w.T,因爲實際運算中我們需要w的轉置矩陣。你是不是有點暈頭轉向了~~我在教程前面的文章裏通常會省略掉一些細節,因爲那些細節較難,而且他們對於大家理解最重要的理論部分又沒有幫助;在後面的文章,我會慢慢地把他們給介紹出來,讓你們循序漸進,快樂地在不知不覺中學會人工智能這一尖端的高科技。

在本篇文章中,我們知道了神經網絡是如何進行預測的。那麼它又是如何判斷自己是否預測正確了的呢?如果發現自己預測錯誤了,他又是如何從錯誤中進行學習,使自己越來越聰明的呢?後面的文章我將給大家揭曉!

轉載自:http://blog.csdn.net/jiangjunshow
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章