什麼是神經網路(Neural Networks)呢?最開始科學家想用演算法去模擬大腦達到人工智慧。通過一系列的實驗發現,大腦是通過神經元進行工作的,神經元之間通過電訊號傳遞資訊。於是他們就開始模擬神經元的工作過程,用演算法去模擬神經元,這就形成了神經網路。神經網路可以用來學習複雜的非線性假設模型。
如下圖,藍色圈模擬輸入資訊,黃色圈模擬神經元,假設函式 h_θ(x) 模擬輸出資訊,該函式就是我們之前學過的邏輯函式(Logistic Function),又稱為 Sigmoid Function。
那麼現在一個神經元模擬好了,但是大腦肯定不是靠一個神經元工作的,現在開始模擬多個神經元的工作過程,如下圖:
其中 Layer 1 層模擬輸入訊號,連線代表訊號傳遞的方向。Layer 2 層表示隱藏層,這一層的輸入輸出都是不可見的,因此叫隱藏層,這一層通常會有很多層。 Layer 3 層為輸出層,這一層會輸出結果。按照從 Layer 1 層到 Layer 3 層這個方向傳播叫做前向傳播。
通常會在每一層都加上一個偏置單元,如下圖:
每一個神經元也就是假設函式 h_θ(x) 的構造如下:
表示第 j 層第 i 個神經元。
表示第 j 層神經元的引數矩陣。
在邏輯迴歸中,求最佳的引數可以用最小化代價函式來求,那麼神經網路中也有引數,這些引數我們可以用同樣的辦法進行求解。先用我們最熟悉的邏輯迴歸代價函式來進行類比,邏輯迴歸的代價函式如下(其中紅線部分為對引數進行正則化,θ_0 不需要正則化):
類似地,神經網路的代價函式如下:
其中:
L = 神經網路的層數;
S_l= l 層有多少個單元;
K = 輸出單元的數目。
乍一眼看上去挺複雜,其實類比邏輯迴歸的代價函式來看,思想都是一樣的。
ps. 本篇文章是根據吳恩達機器學習課程整理的學習筆記。如果想要一起學習機器學習,可以關注微信公眾號「SuperFeng」,期待與你的相遇。