本章給大家介紹一種用于預測的算法——邏輯回歸(logistic regression)
給定一個輸入特征向量x(例如你想要識別的圖像——是否有貓),你需要一個算法進行計算之后進行結果輸出(在這里我們用的是邏輯回歸算法)。這個被輸出的預測結果我們稱為y^y^,假設y是1,如果預測得很準的話y^y^可能會是0.99)。
上圖第一個公式中的x是個(n,1)維的矩陣,表示一個訓練樣本,里面的n表示一個訓練樣本中的特征數量,例如一張圖片就是一個訓練樣本,圖片中每個顏色強度值就是一個特征;w也是一個(n,1)維的矩陣,它表示權重(weight),它一一對應于每個輸入的特征,也可以說它指示了某個特征的重要程度;b是一個實數,在這里可以將其看作為一個閥值。
如何理解w和b呢?
我舉個例子來幫助大家理解。可以把上面的算法過程看作是一種通過權衡輸入然后再做出決定的一個過程。假設周末即將到來,你聽說在你的城市將會有一個音樂節。你要決定是否去參加這個節日。你需要通過權衡3個因素(3個特征)來做出決定:1、天氣好嗎 2、你的女友是否愿意陪你去 3、舉辦地點離地鐵近嗎 這3個因素就對應著上圖中的x1、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和b值(后面會教大家如何來訓練得到它們)。這些w和b值可以讓神經網絡得到一項判斷能力,一項預測能力——輸入一張圖片,神經網絡根據訓練好的w和b,通過上面的公式根據每個像素的值以及與其對應的權重值以及閾值來判定這張圖里是否有貓。神經網絡就是這樣來進行預測的。它和我們人類的思考方式是一樣的。雖然我們人可以做出非常復雜的判斷,但是基本原理是很簡單的。
人為什么能輕松分辨出一個圖片中是否有貓?因為我們人就是一個巨型的神經網絡,這個神經網絡里面包含了數億甚至更多的神經元(上圖藍色的圓圈就表示一個神經元),每個神經元都可以接受多個輸入,在日常生活中,小孩子通過大人的教導,不斷的看見貓,我們的神經元對于這個輸入就形成了很多特定的w(權重),所以當再次看見一個貓時,這個輸入(這個貓)與相應的w聯合起來進行運算后,其結果就指示了這個輸入是一個貓。
下面再來說一下σ,它代表了sigmoid函數,上面是它的定義公式以及圖形。我們為什么需要它?在上面我們舉的去參加節日的例子中,我們得出的結果為2,其實對于不同的x和w值,結果可能會更大。所以這并不適用于二元分類問題,因為在二元分類問題中你想要得到的y^y^應該表示一個概率,一個輸入是否等于它真實標簽的概率(例如輸入的圖像里面是否有貓)。所以y^y^的值應該在0和1之間。sigmoid函數的作用就是把計算結果轉換為0和1之間的值。通過看它的圖形就可以明白,往sigmoid函數里輸入的值z越大,那么y^y^就越靠近1,也就是里面有貓的概率就越大。
以上就是神經網絡為什么能夠給出預測結果的大致原理。其實就像jack床長所說,“每個人都是一個巨型的神經網絡”,只要我們善于反思、善于總結、善于學習,每個人都會變得越來越強大,都能成就更好的自己。
-
神經網絡
+關注
關注
42文章
4789瀏覽量
101647 -
算法
+關注
關注
23文章
4650瀏覽量
93790
原文標題:神經網絡是如何給出預測結果的?
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論