如下有部分公式,若是沒法顯示,請訪問 原文連接
書接上文,繼續說說神經網絡的結構。首先咱們要回顧上一篇文章深度學習數學基礎(一)之神經元構造中講到的兩個公式。算法
$$z=w_1x_1+w_2x_2+w_3x_3+...+b $$segmentfault
$$y=a(z)$$網絡
還有神經元構造圖:函數
咱們只要將這樣的神經元鏈接成網絡狀,那麼就造成了神經網絡
。這裏咱們主要說最基礎的階層型神經網絡
,像卷積神經網絡
,循環神經網絡
等須要學習完本系列後再進行學習。post
那麼咱們先來通俗的比喻下神經網絡用來幹什麼的,咱們以往在寫程序的時候都是求結果,而神經網絡求得卻不是結果,而是公式或規則(比喻),其實神經網絡就是經過大量的計算來不斷的減少偏差來求距離正解最類似的公式的權重和偏置等(統稱參數)。因此感受神經網絡高大上的朋友們不要有感受本身學不會的想法,其實神經網絡並不難,就是一個又一個的公式組合起來而已,不一樣的算法其實就是各個大佬用數學建模,咱們不看那麼遠,先跟我一塊兒把神經網絡的基礎入門一下吧。學習
下面就是一個階層型的神經網絡的圖片,按照層對該神經網絡劃分,可分爲輸入層
,隱藏層
(也稱爲中間層),輸出層
。優化
下面咱們說說神經網絡中各層的職責:spa
輸入層
:該層負責讀取神經網絡須要的數據,這個層的神經元沒有輸入監聽,他們的輸出是將讀取的數據原樣輸出。輸入==輸出 隱藏層
:該層神經元則負責上面咱們所回顧的兩個公式的計算操做,在神經網絡中,這層是實際處理信息的部分。計算z和y 輸出層
:該層與隱藏層同樣,執行兩個公式的計算,而且顯示神經網絡的計算結果,也就是最終輸出。計算z和y並顯示結果 下圖是一個最簡單的神經網絡示例,用於咱們來理解神經網絡的本質。這個簡單的神經網絡的特徵是,前一層的神經單與下一層的全部神經元都有箭頭鏈接,這樣的層構造稱爲全鏈接層(fully connected layer)
翻譯
輸入層:輸入與輸出是相同的,若是必定要引入激活函數,那激活函數就是恆等函數$a(z)=z$,該示例中輸入層有12個神經元,對應圖片的12個像素數據3d
隱藏層:輸入是變量,根據對應的權重和偏置來計算z,再經由激活函數計算,輸出值傳遞到下一層
輸出層:該層有兩個神經元,分別對應着要識別的數字0和1,兩個神經元分別是對兩個輸出值較爲興奮的神經元,經過sigmoid咱們能夠拿到兩個神經元對數據的興奮度,經過對連個興奮度作比較,咱們就能夠來猜這個數據究竟是什麼了!
咱們還使用上方的示例來進行說明
創建一個神經網絡,用來識別經過 4×3 像素的圖像讀取的手寫數字 0 和 1。學習數據是 64 張圖像,其中像素是單色二值。
模式識別的難點在於答案不標準,這個例題也體現了這樣的特性。即便是區區一個 4×3 像素的二值圖像,所讀入的手寫數字0 和 1 的像素模式也是多種多樣的。例如,上方圖像能夠認爲是讀入了手寫數字 0。對於這樣的數字 0,即便人能設法識別出來,讓計算機來判斷也十分困難。下面讓咱們使用一個小故事來了解下如何使用神經網絡來解決這個問題。
假設有個神經網絡,輸入層12個神經元小弟,隱藏層住着3個神經元中層幹部,頂層住着2個神經元大哥,
底層輸入層的12個小弟接到任務要監控圖片的動靜,因此12個輸入層小弟分別住在4x3像素的圖像的各個像素上對圖片進行監控,若是像素信號是白色0,小弟就睡覺無論,若是像素是黑色1,小弟就興奮向上層通風報信,將他們的信息傳遞個他們的領導A、B、C
住在隱藏層的3箇中層幹部ABC分別重視下面三個地方,從下面的小弟那裏拿到信息,而後自身對信息的思考(計算z和y),看看有沒有須要本身注意的地方,把本身的想法跟頂層的兩個大哥彙報
住在最頂層輸出層的大哥拿到下面三個幹部遞交的信息,與三個幹部同樣,也進行了思考做出了對應的策略,而後兩個大哥看了下各自的策略,選出更好的那一個(興奮度高的)做爲了此次行動的策略。
讓咱們再來回顧下上面說到的隱藏層,3箇中層幹部分別重視三個模式,因此3箇中層幹部對12個手下各有偏心,好比A幹部就看重小弟4和7,B幹部看重小弟5和8,C幹部看中小弟6和9。
因此這幾個幹部有點偏愛,着重看了直接小弟給的情報,因此他們之間傳遞的興奮度的管道也變粗了。
而住在頂層的大哥對中層的幹部也各有偏心,好比大哥0喜歡幹部A和C,大哥1喜歡幹部B
那麼,咱們讀入手寫數字0,下面的小弟四、七、六、9看到這個圖就特別興奮了
興奮的小弟4和7向幹部A傳遞消息,興奮的小弟6和9向幹部C傳遞了消息,沒人向幹部B傳遞消息。
幹部A和C也接到了小弟傳來的信息也興奮了起來,因而幹部A和C也向上層向大哥0發送信息,而幹部B因爲沒有掌握到信息,就沒有向大哥1發送消息。
因爲大哥0是興奮地,而大哥1是冷靜的,根據以前說的大哥0的興奮度比大哥1高,因此就判斷這個圖片是0
在上面的示例中,下層的興奮度會或多或少的向上層傳遞,可是除了幹部看中小弟和大哥看中幹部的關係而傳送的興奮度外,還遺漏了一些信息,這個信息就是」噪音「,若是這些噪聲迷住了每一個人的腦子,就會致使沒法正確的傳遞興奮度信息,隱藏咱們須要減小噪音的功能,也就是咱們所說的偏置
,將偏置放在每一個人(神經元)的心中,用來忽略少許的噪音,這個心中的偏置,就是各我的固有的個性。
在上面的示例中,咱們理解了神經網絡識別數字的的模式識別,而咱們應該看到了每一個人之間的關係(就是權重)和每一個人的個性(偏置)合做推導出了答案,也就是神經網絡總體的判斷。因此咱們應該明白,咱們最終從神經網絡中獲取的應該是關係和個性,也就是權重
和偏置
,也就是咱們所說的模型的參數。
上面咱們經過實例考察了大哥帶着小弟來識別數字0、1的結構,只要將這個組織替換爲神經網絡,咱們就能夠理解神經元進模式識別的結構。
觀看下面的兩張圖,咱們就會發現,輸入層的12個小弟其實就是輸入層的12個神經元,隱藏層的3個幹部其實就是隱藏層的3個神經元,而頂層的兩個大哥就是輸出層的兩個神經元。、
接下來,咱們將層級中領導對下級的看重的關係看作神經元的權重
,幹部A看重小弟4和7,這種關係能夠看作是輸入層的神經元4和7指向隱藏層的神經元A的箭頭的權重較大,隱藏層與輸出層的關係相似,下面咱們將這種權重關係經過圖片標記出來。經過這樣的權重關係,最後輸出層神經元0的輸出值較大,因此最終輸出0
在像上圖這種前一層與後一層全鏈接的狀況下,輸入圖像0時,本來不但願隱藏層B神經元以及輸出層1神經元也有信號傳遞,因此咱們須要禁止掉這種信號,使信號更清晰,這種功能就是咱們說的偏置
。
上面咱們將小故事翻譯成了神經網絡,可是也不能保證必定能求出權重和偏置。若是想實際創建基於上面這個想法的神經網絡,能充分解釋所給的數據就能驗證它的合理性,這點須要必定的數學計算,須要將咱們的語言描述轉化爲數據的式子,咱們會在下篇文章開始講一些會用到的數學。
本文開篇咱們說神經網絡是經過大量計算來算出權重和偏置等參數,而在上一個示例中,咱們事先假定了權重的大小(假定中層對小弟的看看着關係),那麼這個權重的大小應該如何肯定呢?神經網絡中比較重要的一點就是利用網絡自學習
算法來肯定權重大小
神經網絡的參數肯定方法分爲有監督學習
和無監督學習
,在這個系列裏咱們只介紹有監督學習。
有監督學習:爲了肯定神經網絡的權重和偏置,事先給予數據,這些數據成爲學習數據
、訓練數據
。根據給定的數據肯定權重和偏置,稱爲學習
、訓練
。
神經網絡是如何學習的呢?
神經網絡學習的思路:計算神經網絡得出的預測值與正解的偏差,肯定使偏差總和達到最小的權重和偏置,這在數學上成爲模型的
最優化
關於預測值和正解的偏差總和,有各類各樣的定義。這個偏差的總和稱爲代價函數
,符號表示是${C}_{T}$(T是Total的首字母)
咱們這個系列中使用最經典的方式平方偏差和
,利用平方偏差肯定參數的方法在數學上成爲最小二乘法,它在統計學中是迴歸分析的常規手段。
平方偏差和:經過計算預測值與正解的偏差的平方再求和
下一篇開始,咱們就要正式的進入數學的領域,興奮不興奮!
評論請轉至原文連接
本文來自 納蘭小築,本文不予回覆,評論請追溯原文