6 基於簡單邏輯回歸模型的nn實現
神經元的網路結構
什麼是啟用函式?為什麼需要?
什麼是損失函式?為什麼需要?
什麼是梯度下降?為什麼需要?
什麼是感知機與邏輯斯蒂回歸?兩者有什麼區別?
nn實際上是乙個仿生學的產物,它模仿了生物學神經網路的結構功能,從而抽象成了最經典的最簡單的m-p神經元模型。
它收到來自n個其他神經元傳遞過來的輸入訊號,通過帶權重的連線進行傳遞。
然後,神經元接收到的總輸入值(求和)與其閾值進行比較,最後通過乙個函式(圖中為f)處理來產生神經元的輸出。
說到這裡,就順便結合**釋一下名詞變數:
這裡,為什麼需要啟用函式呢?
=》啟用函式是用來處理產生神經元的輸出的,提供規模化的非線性化能力,即將線性組合變成非線性的結果。
因此,感知機模型與邏輯斯蒂回歸模型本質上是對使用的啟用函式的區分。
這裡補上邏輯斯蒂回歸模型使用的函式:
s ig
moid
(x)=
11+e
−x}}si
gmoi
d(x)
=1+e
−x1
感知機的階躍函式顯然具有不連續、不光滑的特點,所以通常用sigmoid函式作為啟用函式。
而sigmoid函式可以把江大範圍內變化的輸入值擠壓到0-1區間的輸出值範圍。
同時,sigmoid函式還有乙個很好的性質:
f ′(
x)=f
(x)(
1−f(
x))(x)=f(x)(1-f(x))}
f′(x)=
f(x)
(1−f
(x))
這個性質在後續的bp演算法推導中佔據很重要的地位。
無論是感知機模型還是邏輯斯蒂回歸模型,都能使用兩層的神經元模型(一層為輸入層,一層為輸出層,且僅有輸出層的神經元進行啟用函式處理,即只擁有一層功能神經元)來進行描述:(以二輸入的為例)
再觀察,原始的啟用函式處理公式:
y =f
(∑i=
1nwi
xi−θ
)^nw_ix_i-\theta)}
y=f(i=
1∑n
wix
i−θ
)這裡的閾值θ
θ其實可以進一步處理,從而提高模型的泛化能力,即看成−1∗
θ−1∗θ,這樣θ
θ可以作為乙個新的輸入,而其連線權重則固定為-1.如此,權重和閾值的學習可以統一為權重的學習。
最終目的是得到乙個好的泛化模型,即得到一組合適的權重引數,因此就需要根據每次的結果對當前的引數進行調整,從而得到最優。
那,如何評價最優呢?=》損失函式
如何求解損失函式的最優解?=》梯度下降
根據南瓜書的相關推導並基於我們之前說的泛化模型,最終構造下面乙個損失函式並簡化為僅有權重引數:
min w
l(w)
=minw
∑xi∈
m(y^
i−yi
)wtx
i(\hat_i -y_i )w^t x_i}
wminl
(w)=
wminx
i∈m
∑(y
^i
−yi
)wtx
i補:這裡西瓜書和南瓜書中引入了乙個「**線性超平面」**的概念。因此,可以知道後續為什麼要引入多層網路(含隱層)了。
梯度下降通過調整引數來使得目標函式(損失函式)最小。
而普通的想法會有幾個:
設定固定step模擬
模擬「下山演算法」
這裡的梯度下降就是模擬「下山演算法」。
當然,從這個名字就可以看出,通過求梯度,以目標的負梯度方向對引數進行調整:(以感知機為例)
∇ wl
(w)=
∑xi∈
m(y^
i−yi
)xi(\hat_i-y_i)x_i}
∇wl(w
)=xi
∈m∑
(y^
i−
yi)
xiw←w
+δww←
w+δw
δ w=
−η(y
^i−y
i)xi
_i-y_i)x_i}
δw=−η(
y^i
−yi
)xi
這裡是採用隨機梯度下降演算法,極小化過程中不是一次使 m 中所有誤分類點的
梯度下降,而是一次隨機選取乙個誤分類點使其梯度下降。
其中,這裡的′et
a′eta是學習率,是可以人為設定的(當然這個設定肯定也有一定技巧,等後續自己熟練了再講一講):
這個是根據 深度學習之神經網路入門最佳路徑 這門課程來進行學習的,跑了跑**,理解了一下流程等。因為這個課程是免費,且可以跟著碼**,所以具體**這裡就不放了。
從二分類到多分類的簡單實現,僅需要對網路結構的輸出層的神經元個數進行相應的新增即可。同時,權重w從向量變成矩陣,同時輸出的結果也從單個值變為向量格式。
神經網路中的一些常見概念
損失函式 學習率過擬合 為啥需要啟用函式?在神經網路中,我們的輸入層通過各個連線上的權值,進行加權求和後傳遞到下一層,這種處理方式往往是呈線性組合的狀態,而我們知道一般線性函式的值域是負無窮到正無窮,也是就是說線性組合的模型缺乏逼近能力,而我們的神經網路的訓練大多需要乙個梯度下降即尋找最小誤差的過程...
神經網路學習中的一些記錄
在執行resnet 時,報了乙個錯 忘了具體是什麼 在網上查到的解決方法是安裝mkdocs,然而安裝之後,spyder一開啟就閃退,還出現如下視窗 經過搜尋,發現是tornado6.0的版本棄用了tornado.web.asynchronous這種寫法,降級到5.1.1就沒問題了。於是python ...
神經網路基本概念
mcculloch 精神病學家和解剖學家 和pitts 數學家 在1943年,發表第乙個系統的ann研究 閾值加權和 m p 數學模型。bp back propagation 神經網路,是指誤差的後向傳播,修正權值矩陣,達到訓練模型。1 弱點 訓練速度非常慢 區域性極小點的逃離問題 演算法不一定收斂...