iT邦幫忙

2021 iThome 鐵人賽

DAY 24
0

昨天介紹完單層感知機模型程式,今天要來研究淺層神經網路:
單層感知機模型是只有一個輸入層和輸出層,如果用來做簡單多元線性回歸效果還可以,但是一旦今天是複雜的非線性預測,或是多元分類問題,
單層感知機模型可能就無法解決-->所以我們可能要增加神經網路的層數,今天要來實做就是BP(反向傳播)神經網路,他是由一個輸入層,一個輸出層和多個隱藏層所組成,結構如下:
https://ithelp.ithome.com.tw/upload/images/20211008/20141654l3uquf3xjU.png

今天用的BF,我打算使用三層網路(一層輸入層,一層輸出層,一層隱藏層)
-->先不要用太多隱藏層(除非可能結果很差)

而BF神經網路概念是:資料先經過輸入-->隱藏-->輸出(正向傳播),在經由估計值和實際值誤差-->回傳給隱藏層並將誤差分散給各層神經元,這樣就可以獲得各個神經元誤差-->就可以修正神經元權重,持續不斷調整,直到估計值和實際值誤差小於一個值或達到最大迭帶上限

所以演算法如下:
https://ithelp.ithome.com.tw/upload/images/20211008/20141654zUxh5W1DJk.png
(資料來源:維基百科)

基本上,和這個一樣:
https://ithelp.ithome.com.tw/upload/images/20211008/20141654Yxy9qdN7xj.png
只是多了一個f作為隱藏層的輸出,接下來依照誤差公式:
https://ithelp.ithome.com.tw/upload/images/20211008/20141654rBweDYVN7I.png
我們可以對權重去做偏微:
https://ithelp.ithome.com.tw/upload/images/20211008/201416545MhNlnZQic.png
所以到最後權重變化會變成:
https://ithelp.ithome.com.tw/upload/images/20211008/20141654gYQs31sQh1.jpg
(詳細過程可以參考這篇:https://zh.wikipedia.org/wiki/反向传播算法)
至於關於神經元個數,這邊採用這個經驗公式:
https://ithelp.ithome.com.tw/upload/images/20211008/20141654wT6ed0wYfz.jpg
所以知道這個後,明天開始實際來操作時,會找實際的啟動函數來作為例子
依樣先匯入資料,就用昨天的資料並做分割,程式如下:

data=pd.DataFrame([[7,560,5.1,16.68],
				   [3,220,4.9,11.50],
				   	[4,80,4.6,14.88],
				   	[7,330,6.7,18.11],
				   	[16,688,5.2,40.33],
				   	[4,225,5.5,13.50],
				   	[3,340,4.7,12.03],
				   	[10,776,5.1,29.00],
				   	[5,605,6.3,21.50],
				   	[6,150,5,13.75]
				   	],columns=['x1','x2','x3','y'])
print(data)
x=data.loc[:,['x1','x2','x3']]
y=data['y']

#個別標準化處理
x['x1']=(x['x1']-np.mean(x['x1']))/np.std(x['x1'])
x['x2']=(x['x2']-np.mean(x['x2']))/np.std(x['x2'])
x['x3']=(x['x3']-np.mean(x['x3']))/np.std(x['x3'])

print(x)


#新增截距項系數1
x['b0']=1
print(x)

#取前6筆當train
x_train=x.loc[:5]
#取後4筆當test
x_test=x.loc[6:]
print(x_train)
print(x_test)

y_train=y.loc[:5]
y_test=y.loc[6:]

print(y_train)
print(y_test)

好,今天淺層網路神經演算法算是完成,明天就來研究淺層網路神經程式

三個人看著牆上文字,瞬間沉思了起來,之後又互相看來看去,卻像是誰都不知道這是甚麼意思,這時眾人突然感覺空氣開始變冷,牆壁角落開始有冰出現而且慢慢的往三人方向延伸,形成包圍之勢,眼看情勢不對,男子立刻從手中伸出團火焰想阻止冰擴散,而這時娃娃像是領悟到甚麼,突然升起雙手把兩人彈飛到冰上,狐狸一臉驚訝看著娃娃,而男子一臉憤怒看著娃娃,而下一瞬間兩人都被冰凍了起來,一動也不動,同時冰停止蔓延,並且牆壁開始碎裂,最終冰和牆壁還有木棉花都消散在空氣中,只留下娃娃和被凍住狐狸和男子
           --|未來是孤獨,只留我一人追尋|--  MC.SM

上一篇
DAY23神經網路(續一)
下一篇
DAY25神經網路(續三)
系列文
數據分析方法研究和理解演算法30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言