(關(guān)注'AI新視野'公眾號(hào),發(fā)送‘資料’二字,免費(fèi)獲取50G人工智能視頻教程!)

圖解人工神經(jīng)網(wǎng)絡(luò),一文帶你明白神經(jīng)網(wǎng)絡(luò)背后的數(shù)學(xué)原理
從一個(gè)例子開(kāi)始
讓從生活中一個(gè)簡(jiǎn)單的例子開(kāi)始。假設(shè)您正在幫助想要買房子的朋友,看中一幢2000平方英尺的房子,售價(jià)400,000美元,這是一個(gè)好價(jià)錢嗎?
為了有個(gè)參考,所以你問(wèn)問(wèn)那些在同一個(gè)街區(qū)買房的朋友,最后得到三個(gè)真實(shí)的數(shù)據(jù):

就個(gè)人而言,第一直覺(jué)是獲得每平方英尺的平均價(jià)格,即每平方英尺180美元。
歡迎來(lái)到您的第一個(gè)神經(jīng)網(wǎng)絡(luò)!現(xiàn)在它還沒(méi)有達(dá)到Siri級(jí)別,但現(xiàn)在你知道了基本的構(gòu)建塊。它看起來(lái)像這樣:

這樣的圖表顯示了網(wǎng)絡(luò)的結(jié)構(gòu)以及它如何計(jì)算預(yù)測(cè)。計(jì)算從左側(cè)的輸入節(jié)點(diǎn)開(kāi)始。輸入值向右流動(dòng)。它乘以權(quán)重,結(jié)果成為的輸出。
將2,000平方英尺乘以180得到360,000美元。在這里,先從平均值開(kāi)始,稍后將研究先進(jìn)的算法,這些算法可以隨著更多的輸入和更復(fù)雜的模型而擴(kuò)展。找到權(quán)重是的“訓(xùn)練”階段。因此,每當(dāng)您聽(tīng)到某人“訓(xùn)練”神經(jīng)網(wǎng)絡(luò)時(shí),它只意味著找到用來(lái)計(jì)算預(yù)測(cè)的權(quán)重。

上圖是一個(gè)簡(jiǎn)單的預(yù)測(cè)模型,通過(guò)接受輸入,進(jìn)行計(jì)算并給出輸出(因?yàn)檩敵隹梢允沁B續(xù)值,因此上述模型就是“回歸模型”)
想象一下這個(gè)過(guò)程(為簡(jiǎn)單起見(jiàn),將價(jià)格單位從1美元換成1000美元。現(xiàn)在的權(quán)重是0.180而不是180):

更強(qiáng)的模型
能否根據(jù)數(shù)據(jù)點(diǎn)平均值估算總價(jià)格?如果模型應(yīng)用于擁有的三個(gè)數(shù)據(jù)點(diǎn),看它的效果怎樣?

上圖表示預(yù)測(cè)值與真實(shí)值的差別,黃色的線越長(zhǎng),差別越大。

在上面,可以看到實(shí)際價(jià)格值,預(yù)測(cè)價(jià)格值以及它們之間的差異。然后需要平均這些差異,因此需要有一個(gè)數(shù)字告訴這個(gè)預(yù)測(cè)模型的好壞。其中,第3行的值為-63。如果想要使用預(yù)測(cè)和價(jià)格之間的差異作為誤差測(cè)量值,因此必須處理這個(gè)負(fù)值。所以需要引入一個(gè)顯示誤差平方的附加列的原因之一,從而消除了負(fù)值。
好模型的定義 - 誤差更少的模型。誤差測(cè)量為數(shù)據(jù)集中每個(gè)點(diǎn)的誤差平均值。對(duì)于每個(gè)點(diǎn),誤差通過(guò)實(shí)際值和預(yù)測(cè)值之間的差值來(lái)測(cè)量,平方誤差就稱為均方誤差,使用其作為訓(xùn)練模型的目標(biāo)就是損失函數(shù)。
既然已經(jīng)為更好的模型定義了測(cè)量準(zhǔn)則,那么嘗試一些更多的權(quán)重值,并將它們與平均值進(jìn)行比較:

為了直線可以更好地逼近真值,因?yàn)橐褜⒋薭值添加到直線公式中。在這種情況下,稱之為“偏差值”。這使的神經(jīng)網(wǎng)絡(luò)看起來(lái)像這樣:

可以通過(guò)說(shuō)具有一個(gè)輸入和一個(gè)輸出的神經(jīng)網(wǎng)絡(luò)看起來(lái)像這樣來(lái)概括它:

在此圖中,W和b是在訓(xùn)練過(guò)程中找到的值。X是插入公式的輸入(在的示例中以sq ft為單位的區(qū)域)。Y是預(yù)測(cè)價(jià)格。
現(xiàn)在計(jì)算預(yù)測(cè)使用以下公式:

因此,當(dāng)前的模型通過(guò)在此公式中將房屋區(qū)域插入x來(lái)計(jì)算預(yù)測(cè):

訓(xùn)練你的模型
怎么樣才能訓(xùn)練神經(jīng)網(wǎng)絡(luò)?通過(guò)調(diào)整權(quán)重和偏置撥號(hào)最小化損失函數(shù)。你能得到低于799的誤差值嗎?

自動(dòng)化訓(xùn)練
來(lái)看看如何自動(dòng)化這個(gè)訓(xùn)練過(guò)程。下面是另一個(gè)具有類似自動(dòng)駕駛函數(shù)的示例。使用一種稱為“梯度下降”的算法來(lái)嘗試逐步實(shí)現(xiàn)正確的權(quán)重和偏差值,從而最大限度地減少損失函數(shù)。

這兩個(gè)新圖表可以幫助您在設(shè)置模型的參數(shù)(權(quán)重和偏差)時(shí)跟蹤誤差值。跟蹤誤差很重要,因?yàn)橛?xùn)練過(guò)程盡可能地減少了這個(gè)誤差。
梯度下降如何知道下一步應(yīng)該在哪里?最小化損失函數(shù),所有數(shù)據(jù)點(diǎn)的平均值(y_-y)2,并知道當(dāng)前的輸入(當(dāng)前的權(quán)重和偏差),損失函數(shù)微調(diào)W和b的方向,以便最小化誤差。
多個(gè)變量
上文中房子的大小是唯一的變量,房子的價(jià)格是多少顯然還有很多其他因素。我們?cè)偬砑恿硪粋€(gè)變量,看看神經(jīng)網(wǎng)絡(luò)如何預(yù)測(cè)房?jī)r(jià)。
假設(shè)你的朋友為了買房做了更多的工作,找到了更多的數(shù)據(jù)。她還發(fā)現(xiàn)了每套房子的浴室數(shù)量,數(shù)據(jù)如下所示:

帶有兩個(gè)變量的神經(jīng)網(wǎng)絡(luò)如下所示:

現(xiàn)在必須找到兩個(gè)權(quán)重(每個(gè)輸入一個(gè))和一個(gè)偏差來(lái)創(chuàng)建的新模型。
房?jī)r(jià)y的計(jì)算公式如下所示:

但如何求解w1和w2?預(yù)測(cè)房屋的價(jià)值時(shí),浴室對(duì)房?jī)r(jià)的影響又是多少?
閱讀原文,交互地找到合適的權(quán)重和偏差值。

梯度下降法在幫助找到合適的權(quán)重和偏差值方面仍然有效。
從上面例子可以看出,輸入越多,相應(yīng)的權(quán)重就越多,每個(gè)權(quán)重其實(shí)就是對(duì)應(yīng)每個(gè)輸入對(duì)結(jié)果的影響,然后再通過(guò)梯度下降法就可以求出每個(gè)權(quán)重值。
分類
上面的例子時(shí)預(yù)測(cè)房?jī)r(jià),房?jī)r(jià)是連續(xù)的。現(xiàn)在我們調(diào)整一下上面的例子。假設(shè)你的朋友給你一份房屋清單,清單里有房子的面積和浴室的數(shù)量,并給房子打上了好壞的標(biāo)簽:

她需要你用數(shù)據(jù)來(lái)創(chuàng)建一個(gè)模型,根據(jù)它的大小和浴室數(shù)量來(lái)預(yù)測(cè)她是否想要一所房子。您將使用上面的數(shù)據(jù)來(lái)構(gòu)建模型,然后她將使用該模型對(duì)其他房屋進(jìn)行分類。
到目前為止一直在玩的神經(jīng)網(wǎng)絡(luò)都在做“回歸” - 它們計(jì)算并輸出一個(gè)“連續(xù)”值(輸出可以是4,或100.6,或2143.342343)。然而,在實(shí)踐中,神經(jīng)網(wǎng)絡(luò)更常用于“分類”類型的問(wèn)題。在這些問(wèn)題中,神經(jīng)網(wǎng)絡(luò)的輸出來(lái)自一組離散值(或“類”),如“好”或“壞”。
將神經(jīng)網(wǎng)絡(luò)的輸出轉(zhuǎn)換為分類網(wǎng)絡(luò)的一種方法是讓它輸出兩個(gè)值 --(“好”和“壞”),softmax可以完成這個(gè)轉(zhuǎn)換。softmax函數(shù)的輸出是每個(gè)類的概率。例如,假設(shè)網(wǎng)絡(luò)層輸出2表示“好”,4表示“壞”,如果將[2,4]輸入softmax,它將返回[0.11,0.88]作為輸出。其中表示網(wǎng)絡(luò)是88%確定輸入值是“壞”。

Softmax輸入數(shù)組并輸出相同長(zhǎng)度的數(shù)組,它的輸出都是正數(shù),和為1。

總結(jié)
人工神經(jīng)包括輸入、輸出和權(quán)重,輸入越多,相應(yīng)的權(quán)重就越多,每個(gè)權(quán)重其實(shí)就是對(duì)應(yīng)每個(gè)輸入對(duì)結(jié)果的影響。訓(xùn)練過(guò)程就是通過(guò)輸入數(shù)據(jù),通過(guò)梯度下降法就可以求出每個(gè)權(quán)重值。權(quán)重求得后,就可以輸入數(shù)據(jù)預(yù)測(cè)輸出結(jié)果了,這就是測(cè)試過(guò)程。人工神經(jīng)網(wǎng)絡(luò)除了能預(yù)測(cè)房?jī)r(jià)這個(gè)“回歸”任務(wù),還能通過(guò)softmax函數(shù)把輸出轉(zhuǎn)換為離散值,變成分類任務(wù),也就是預(yù)測(cè)房子的好壞!
閱讀原文在線交互人工神經(jīng)網(wǎng)絡(luò):https://jalammar.github.io/visual-interactive-guide-basics-neural-networks/