bp神经网络代码_精通数据科学笔记 神经网络
本章討論一種全新的建模理念,它不關心模型的假設以及相應的數學推導,也就是說不關心模型的可解釋性,其核心內容是模型實現,雖然到目前為止,人們還無法理解,但在某些特定場景里預測效果卻非常好。我們把這種模型稱為神經網絡,深度學習,人工智能等。
神經元
?
模型的輸入是數據里的自變量
接收輸入變量的是一個線性模型
接下來是一個非線性激活函數
,這是神經元模型的核心,常用的激活函數有很多,如sigmoid,ReLU,tanh,maxout等
模型各部分聯結起來得到輸出
,傳遞給下一個神經元
sigmoid 神經元與二元邏輯回歸
sigmoid 函數作為神經元激活函數的兩個好處:
實用:能將任意實數映射到(0,1)區間
理論:模擬了兩種效應的競爭關系,可近似表達正效應大于負效應的概率
當模型被用于二元分類時,sigmoid神經元模型就是邏輯回歸
softmax 函數與多元邏輯回歸
獨熱編碼:對于k元分類問題,用一個k維行向量來表示它的類別
Softmax 函數:給定輸入數據,輸出這個數據的類別概率
(softmax 函數)
對于k元邏輯回歸,某個數據點的損失可以寫成softmax函數與行向量的乘積形式
其中
是獨熱編碼向量,
,
是Softmax函數
神經網絡
?
神經元按層組織,每一層包含若干神經元,層內神經元相互獨立,但相鄰兩層之間是全連接的
神經網絡不同層按功能分為3類,分別是輸入層,隱藏層,和輸出層。
隱藏層里每一個圓圈包含線性模型和激活函數,統稱神經元
輸入層不對數據做處理
輸出層只包含線性模型,沒有激活函數
代碼實現
借助第三方庫tensorflow實現
?
反向傳播算法(BP)
反向傳播算法是神經網絡的基石,但其本身卻飽受質疑,因為沒有生物學的支持,違背神經網絡的建模理念,BP算法的核心是利用鏈式法則計算多元函數偏導數
計算的起點:
反向傳播:
模型訓練梯度:
BP算法和最大期望EM算法類似,可分為向前計算和向后計算
- 首先隨機生成模型參數
和
- 根據現有的模型參數和訓練數據,計算每個神經元的
和
- 根據隨機梯度下降法更新參數
提高神經網絡的學習效率
改進激活函數
學習效率正比于激活函數的導數
sigmoid函數:非0中心;自變量遠離0時導數接近0
tanh函數:以0為中心但是自變量遠離0時導數接近0
ReLU函數:自變量小于0時,導數恒小于0,自變量大于0時,導數恒大于0
參數初始化:令
,其中m是上一層神經元個數,可以提高學習效率
梯度消失和梯度爆炸是同一個問題的兩個極端,是神經網絡的權重項疊加效應導致。
總結
以上是生活随笔為你收集整理的bp神经网络代码_精通数据科学笔记 神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot starter工作
- 下一篇: 树莓派 docker homeassis