人工神經網路基本原理
轉載請註明出處:http://blog.csdn.net/tyhj_sf/article/details/54134210
宣告:
(1)該博文為個人學習總結,部分內容(包括數學公式)是來自書籍及網上的資料。具體引用的資料請看參考文獻。具體的版本宣告也參考原文獻。
(2)本文僅供學術交流,非商用。所以每一部分具體的參考資料並沒有詳細對應,更有些部分本來就是直接從其他部落格複製過來的。如果某部分不小心侵犯了大家的版權,還望海涵,並聯系本人刪除或修改。
引言
最近谷歌升級版AlphaGo打敗眾多國內外圍棋高手,那狗又火了一把,再次引起大家的關注。作為一個對技術有追求的人,嗯,是時候好好學習當前最火的人工智慧與機器學習的相關技術了。學習一項技術,僅僅瞭解其技術原理是遠遠不夠的,從技術實踐中建立感性認識,才能對技術原理有深入的理解。因此,本文先介紹神經網路基本原理,後面系列文章將詳細介紹神經網路的成熟演算法及網路結構(比如:BP神經網路、RBF、CNN等)並程式設計實現之。
神經元模型
以監督學習為例,假設我們有訓練樣本集
為了描述神經網路,我們先從最簡單的神經網路講起,這個神經網路僅由一個“神經元”構成,以下即是這個“神經元”的圖示
後文我們會介紹有多個神經元的神經網路,因此單個神經元模型我們後面會簡化成如下圖:
這個“神經元”是一個以
sigmoid函式:
sigmoid函式影象如下:
可以看出,這個單一“神經元”的輸入-輸出對映關係其實就是一個邏輯迴歸(logistic regression)。
雖然本系列教程採用sigmoid函式,但你也可以選擇雙曲正切函式(tanh).
tanh函式:
tanh函式的影象如下:
注意,這裡我們不再令
最後要說明的是,有一個等式我們以後會經常用到:如果選擇
神經網路模型
所謂神經網路就是將許多個單一“神經元”聯結在一起,這樣,一個“神經元”的輸出就可以是另一個“神經元”的輸入。例如,下圖就是一個簡單的神經網路:
我們使用藍色圓圈來表示神經網路的輸入,標上“
本例約定:
(1)我們用
(2)我們將第
(3)本例神經網路有引數