漸進學習前饋神經網絡

從人工智能這個詞流行起來之後,神經網絡這個詞也變得家喻戶曉了,不少人想要去學習一下神經網絡方面的知識,但看到神經網絡深奧的概念以及複雜的公式時,也只能放棄。不要驚慌,這篇文章會由淺入深再加例子的形式幫助你理解前饋神經網絡,但願對你有幫助。前端

爲了幫助你更好的理解前饋神經網絡,我會分三部分進行講解:微信

  • 第一部分使用例子幫你創建基礎概念
  • 第二部分在概念的基礎上融合數學
  • 第三部分使用數學說明前饋神經網絡

一 先從小明提及

小明的面前有五堆文檔,每一堆都有1000份,其中的四堆已經按照,英語、法語、德語、意大利語分類好,小明如今要作的事情就是將第五堆未分類的文檔進行分類。網絡

小明並無學習過那麼多的語言,因此他如今看到第五堆文檔就頭大。函數

小明如今已經沒有時間去學習這四種語言了,可是小明想到了一個辦法,他先看了一遍已經分好類的四種語言都有哪些特徵,例如英語中的哪些字符是其餘語言中沒有的,意大利語的字母通常都是什麼樣子的。學習

當小明學習完了這些語言的特徵之後,小明就將左側未分類的文檔一個個的看一遍,當他讀取第一篇文檔的時候發現了Ä字符時,就會將這篇文檔放在德語類別中,當看到文檔中有不少的「th」二元字符對的時候,就會將此篇文檔放在英語類別中。人工智能

就這樣小明通過不斷的讀文檔->看特徵->按照特徵分類,最後他將全部的文檔都進行了正確的分類。3d

可是有意思的是小明仍是不懂這幾種語言,可是他仍是可以正確的進行分類。cdn

二 使用數學解析小明

上面的小明並不懂語言,可是卻作到了正確的分類,接下來咱們使用數學解析一下這個事情。blog

小明找到特徵

上面的小明並非直接將未分類的1000分文檔進行分類的,他是先學習了一遍已分好類的文檔中都有哪些特徵,若是使用X表明每個文檔中的二元字符對出現的頻率,使用Y表明最終的分類,那麼數學公式能夠這樣表示:文檔

Y英語 = Xaa * Waa英語 + Xab * Wab英語 + Xac * Wac英語 + ...... + Xzz * Wzz英語

Y法語 = Xaa * Waa法語 + Xab * Wab法語 + Xac * Wac法語 + ...... + Xzz * Wzz法語

Y德語 = Xaa * Waa德語 + Xab * Wab德語 + Xac * Wac德語 + ...... + Xzz * Wzz德語

Y意大利語 = Xaa * Waa意大利語 + Xab * Wab意大利語 + Xac * Wac意大利語 + ...... + Xzz * Wzz意大利語

注:W表明權重

對於上面的公式,小明已經知道了X與Y,他學習特徵的目的就是獲取每種語言最優的權重,也就是學習W。

小明進行分類

當小明在本身的腦子裏面學習到了W這個體系之後,他就開始對未分類的文檔進行分類了,也就是不斷的輸入X,最後小明使用上面的公式,輸入X和W獲得了文檔的最終分類。

其中W指的就是咱們通俗理解上的模型。小明整個分類的過程就是先使用已知的X與Y求出W,而後再使用已知的X與W求出Y。

對於上面的這種訓練模式咱們叫作有監督學習。

三 公式下的前饋神經網絡

針對於上面文檔分類來講,輸入就是一些待分類的文檔,輸出就是文檔最終所屬的類別,而小明就是做爲黑盒存在,如今讓咱們將這個黑盒打開。

圖中就是前饋神經網絡的一個示意了,爲何叫前饋呢?這是由於每個神經元都只與前一層的神經元相鏈接。

上面的輸入層就是咱們待分類的文檔,輸出層就是文檔的類別,中間的三個隱藏層就是各類特徵的計算。

讓咱們先拿一個輸入神經元與第一層隱藏層中的一個神經元出來:

輸入層的每個神經元都是一個二元字符對的頻率,在獲得第一個隱藏層時將二元字符對頻率乘了一個權重,而且添加了一個偏置項b,公式表示:

NNMLP1(x) = x*W1 + b1

爲了咱們計算的便捷性,須要在神經網絡中使用一些非線性函數處理隱藏層數據,以往常用的非線性函數是sigmoid函數,可是研究人員發如今最後結果的表現上,ReLU(修正線性單元)函數是優於sigmoid函數的。

上圖就是ReLU函數的圖像。

那麼上面的公式就會是:

NNMLP1(x) = Re1(x*W1 + b1)

那麼最後咱們將一層推廣到最終結果時:

NNMLP3(x) = P

h1 = Re1(x*W1 + b1)

h2 = Re2(h1*W2 + b2)

h3 = Re3(h2*W3 + b3)

P = h3 * W3

爲了方便查看上面的公式我將每一層就單獨例舉了出來。

在上面的公式中咱們能夠看到最後的P只是使用h3 * W3,咱們將偏置向量強制爲0.

最終咱們獲得的就是一個關於文檔分類的機率。

值得注意的是,X輸入是一個向量,W是一個向量矩陣,最後獲得的P也是一個向量。

總結

上面咱們經過小明的例子,解釋了一下什麼是前饋神經網絡,以及其公式的表示,對於神經網絡咱們可使用一些已經標記好的數據,訓練獲得一個合適的模型也就是W,而後咱們就能夠將這個模型應用在未知的數據中去。

實際上在應用前饋神經網絡的時候,咱們須要結合本身的訴求來界定隱藏層的層數以及偏置項,而爲了防止過擬合狀況的發生,咱們在訓練的時候也會使用正則化或者丟棄法的方式。

歡迎關注"騰訊DeepOcean"微信公衆號,每週爲你推送前端、人工智能、SEO/ASO等領域相關的原創優質技術文章:

看小編這麼辛苦,關注一個唄:)

相關文章
相關標籤/搜索