寫在前面:[本篇博文參考吳恩達的《機器學習》課程——淺層神經網路、周志華《機器學習》。
牆裂建議大家先看一下知乎裡的乙個博主的回答,如何簡單形象又有趣的講解神經網路是什麼,非常適合入剛上路的小白。
同時推薦大家先學習機器學習之路——logistic回歸後再來看這篇部落格。]
今天來講一下神經網路,神經網路這個概念很早以前就已經有人提出,目前神經網路是乙個相當大的、多學科交叉的領域。許多複雜的應用(比如模式識別、自動控制)和高階模型(比如深度學習)都基於它。
神經網路中最基本的成分是神經元模型。在生物網路中,每個神經元與其他神經元互聯,當它」興奮」時,就會像其相連的神經元發生化學物質,從而改變這些神經元的電位;如果某個神經元的電位超過乙個」閾值」,那麼它就會被啟用,即」興奮」起來,向其他神經元傳送化學物質。
如圖中所示,乙個神經元經過其他多個神經元的輸入」刺激」,刺激達到閾值後,則該神經元則會通過傳送化學物質來」刺激」其他神經元。舉乙個簡單的例子來說明一下簡單的神經網路:
假如我想到游泳館游個泳,影響我去還是不去的有三個因素:
室外溫度是否合適;(x1x1
)**是否合適;(x2x2
)心情是否美滋滋;(x3x3
) 這就構成了乙個簡單的感知器,上面三個因素就是外部輸入,最後的決定就是感知器的輸出。如果三個因素都是 yes(使用1表示),輸出就是1(去游泳);如果都是 no(使用0表示),輸出就是0(不去游泳)。
如果某些因素成立,某些因素不成立,則需要通過計算權重相加,並判斷是否大於閾值來判斷去還是不去游泳。假設三個輸入的權重分別為w1
=4w 1=
4、w2
=2w 2=
2、w3
=4w 3=
4,閾值為5,只要大於閾值則最終決定去游泳,否則不去。 ou
tput
=這裡的α稱為學習率learning rate,利用梯度下降法不斷重複上述過程,直至收斂。
簡單的講乙個例子來推導一下這些函式,下圖為乙個最簡單的神經元,其中σ(
在logistic回歸中,在求解滿足最小誤差的係數時用的是最小二乘法,請參考
機器學習之路——logistic回歸,這裡不在贅述,直接將公式拿過來用: l(
a,y)
=−y⋅
log(
a)−(
1−y)
⋅log
(1−a
) l(a
,y)=
−y⋅l
og(a
)−(1
−y)⋅
log(
1−a)
得到: da
=∂l∂
a=−y
a+1−
y1−a
d a=
∂l∂a
=−ya
+1−y
1−adz
=∂l∂
a⋅∂a
∂z=d
a⋅σ′
(z)=
a−y dz=
∂l∂a
⋅∂a∂
z=da
⋅σ′(
z)=a
−ydw=∂l∂
a⋅∂a
∂z⋅∂
z∂w=
dz⋅∂
z∂w=
dz⋅x
=(a−
y)⋅x
d w=
∂l∂a
⋅∂a∂
z⋅∂z
∂w=d
z⋅∂z
∂w=d
z⋅x=
(a−y
)⋅xdb
=∂l∂
a⋅∂a
∂z⋅∂
z∂b=
dz⋅∂
z∂w=
dz⋅1
=dz=
a−y db=
∂l∂a
⋅∂a∂
z⋅∂z
∂b=d
z⋅∂z
∂w=d
z⋅1=
dz=a
−y同樣複雜一點的帶有一層隱藏層的神經網路的反向傳播的函式推導與上述方式一致,同學們可以自己動手推導一下。
本篇部落格介紹了神經網路的入門知識,公式的推導主要是我們高中學的微積分,忘記的同學可以複習一下。如果各位發現博文中有錯誤的地方,還請指出,謝謝!覺得好的話,請幫忙點讚!
機器學習 神經網路
神經網路中最基本的成分是 神經元 模型,在生物神經網路中,每個神經元與其他神經元相連,當他 興奮 時,就會向相連的神經元傳送化學物質,從而改變這些神經元類的電位 如果某神經元的電位超過乙個 閾值 那麼他就會被啟用。將上述描述當成乙個數學模型 m p神經元模型,神經元接收來自n個神經元傳遞過來的輸入訊...
機器學習 神經網路
序列模型屬於通用模型的一種,因為很常見,所以這裡單獨列出來進行介紹,這種模型各層之間是依次順序的線性關係,在第k層合第k 1層之間可以加上各種元素來構造神經網路這些元素可以通過乙個列表來制定,然後作為引數傳遞給序列模型來生成相應的模型。01 keras model sequential.py fro...
機器學習 神經網路
人工神經網路被用於處理大量輸入以及非線性問題。與回歸方法不同,回歸方法只能處理未知數組成的多項式構成的線性問題,即只能處理簡單的關於未知數多項式的非線性問題。而神經網路利用多層網路這一優勢,能夠處理複雜的非線性問題。theta 的維數為s times s j 1 如上圖所示,分類問題分為兩種 對於這...