神經網絡是如何進行預測的?

朋友們,如需轉載請標明出處:http://blog.csdn.net/jiangjunshow算法

總目錄(新手請點擊總目錄從序言看起,不然你可能看不懂本篇文章)網絡

上一篇文章介紹瞭如何將待預測數據輸入到神經網絡中。那麼,神經網絡是如何給出預測結果的呢?咱們輸入一個圖片,神經網絡是如何預測這是個有貓的圖片仍是沒有貓的圖片呢?函數

本篇文章給你們介紹一種用於預測的算法——邏輯迴歸(logistic regression)。 
這裏寫圖片描述 
這裏寫圖片描述 
看到上面的公式,很多同窗可能被嚇得小雞雞都萎縮了一截。不用怕,看完我下面的解說後,你就會以爲其實它們的原理很簡單。就像玻璃棧道同樣,只是看起來可怕而已。 
這裏寫圖片描述 
給定一個輸入特徵向量x(例如你想要識別的圖像——是否有貓),你須要一個能輸出預測結果的算法(在這裏咱們用的是邏輯迴歸算法)。這個被輸出的預測結果咱們稱爲ŷ y^,假設y是1,若是預測得很準的話ŷ y^可能會是0.99)。.net

上面第一個公式中的x是個(n,1)維的矩陣,表示一個訓練樣本,裏面的n表示一個訓練樣本中的特徵數量,例如一張圖片就是一個訓練樣本,圖片中每一個顏色強度值就是一個特徵;w也是一個(n,1)維的矩陣,它表示權重(weight),它一一對應於每一個輸入的特徵,也能夠說它指示了某個特徵的重要程度;b是一個實數,在這裏能夠將其看做爲一個閥值。blog

如何理解w和b呢?我舉個例子來幫助你們理解。能夠把上面的算法過程看做是一種經過權衡輸入而後再作出決定的一個過程。假設週末即將到來,你據說在你的城市將會有一個音樂節。你要決定是否去參加這個節日。你須要經過權衡3個因素(3個特徵)來作出決定:1,天氣好嗎? 2,你的女朋友是否願意陪你去?3,舉辦地點離地鐵近嗎?這3個因素就對應着上圖中的x一、x2,x3(它們是x這個訓練樣本中的3個特徵)。咱們能夠給它們賦個值,若是天氣好,那麼x1爲1,不然爲0,x2和x3雷同。假設你很討厭壞天氣,若是天氣很差,你就不會去參加這個節日。對其它兩個因素要求不高(這裏假設你是個老司機,女人多得是,不怕冷落了女朋友)。那麼咱們分別給3個權重賦值爲7,2,2。w1的值大不少,這代表天氣對你來講很重要,比你的女朋友是否願意去,以及交通的便利性更重要。而b咱們能夠看做一個閥值,假設咱們給b賦值爲-5,那麼也就是說,只要天氣好,即便女朋友不陪你去、交通也不方便,你也會去參加這個節日——x1 * w1 + x2 * w2 + x3 * w3 = 1 * 7 + 0 * 2 + 0 * 2 = 7(這裏的*表明乘法)(咱們這裏先不考慮σ函數),而7 +(-5)> 0,結果是你會去那個音樂節。若是咱們選擇不一樣的w和b值,那麼對於同一個輸入x,會有不一樣的結果輸出。例若有些苦逼,很是在乎女朋友的感覺,女朋友不去,他不敢去,那麼w可能就變成了2,7,2。訓練神經網絡的目的就是經過訓練過程來獲得這些w和b值(後面會教你們如何來訓練獲得它們)。這些w和b值可讓神經網絡獲得一項判斷能力,一項預測能力——輸入一張圖片,神經網絡根據訓練好的w和b,經過上面的公式根據每一個像素的值以及與其對應的權重值以及閾值來斷定這張圖裏是否有貓。神經網絡就是這樣來進行預測的。它和咱們人類的思考方式是同樣的。雖然咱們人能夠作出很是複雜的判斷,可是基本原理是很簡單的。人爲何能輕鬆分辨出一個圖片中是否有貓?由於咱們人就是一個巨型的神經網絡,這個神經網絡裏面包含了數億甚至更多的神經元(上圖藍色的圓圈就表示一個神經元),每一個神經元均可以接受多個輸入,在平常生活中,小孩子經過大人的教導,不斷的看見貓,咱們的神經元對於這個輸入就造成了不少特定的w(權重),因此當再次看見一個貓時,這個輸入(這個貓)與相應的w聯合起來進行運算後,其結果就指示了這個輸入是一個貓。 
這裏寫圖片描述 
這裏寫圖片描述圖片

下面再來講一下σ,它表明了sigmoid函數,上面是它的定義公式以及圖形。咱們爲何須要它?在上面咱們舉的去參加節日的例子中,咱們得出的結果爲2,其實對於不一樣的x和w值,結果可能會更大。因此這並不適用於二元分類問題,由於在二元分類問題中你想要獲得的ŷ y^應該表示一個機率,一個輸入是否等於它真實標籤的機率(例如輸入的圖像裏面是否有貓)。因此ŷ y^的值應該在0和1之間。sigmoid函數的做用就是把計算結果轉換爲0和1之間的值。經過看它的圖形就能夠明白,往sigmoid函數裏輸入的值z越大,那麼ŷ y^就越靠近1,也就是裏面有貓的機率就越大。get

爲了找到那些適合的w和b值,咱們還須要一個損失函數。下一篇文章我將給你們介紹它。io

相關文章
相關標籤/搜索