*05 ***** 例子:前饋
我們繼續(xù)用前面圖中的網(wǎng)絡(luò),假設(shè)每個神經(jīng)元的權(quán)重都是 ,截距項也相同
,激活函數(shù)也都是S型函數(shù)。分別用
,
表示相應(yīng)的神經(jīng)元的輸出。
當(dāng)輸入時,會得到什么結(jié)果?
這個神經(jīng)網(wǎng)絡(luò)對輸入的輸出是0.7216,很簡單。
一個神經(jīng)網(wǎng)絡(luò)的層數(shù)以及每一層中的神經(jīng)元數(shù)量都是任意的?;具壿嫸家粯樱狠斎朐谏窠?jīng)網(wǎng)絡(luò)中向前傳輸,最終得到輸出。接下來,我們會繼續(xù)使用前面的這個網(wǎng)絡(luò)。
***06 ***編碼神經(jīng)網(wǎng)絡(luò):前饋
接下來我們實現(xiàn)這個神經(jīng)網(wǎng)絡(luò)的前饋機(jī)制,還是這個圖:
import numpy as np
# ... code from previous section here
classOurNeuralNetwork:
'''
A neural network with:
- 2 inputs
- a hidden layer with 2 neurons (h1, h2)
- an output layer with 1 neuron (o1)
Each neuron has the same weights and bias:
- w = [0, 1]
- b = 0
'''
def__init__(self):
weights = np.array([0, 1])
bias = 0
# 這里是來自前一節(jié)的神經(jīng)元類
self.h1 = Neuron(weights, bias)
self.h2 = Neuron(weights, bias)
self.o1 = Neuron(weights, bias)
deffeedforward(self, x):
out_h1 = self.h1.feedforward(x)
out_h2 = self.h2.feedforward(x)
# o1的輸入是h1和h2的輸出
out_o1 = self.o1.feedforward(np.array([out_h1, out_h2]))
return out_o1
network = OurNeuralNetwork()
x = np.array([2, 3])
print(network.feedforward(x)) # 0.7216325609518421
結(jié)果正確,看上去沒問題。
***07 ***訓(xùn)練神經(jīng)網(wǎng)絡(luò) 第一部分
現(xiàn)在有這樣的數(shù)據(jù):
接下來我們用這個數(shù)據(jù)來訓(xùn)練神經(jīng)網(wǎng)絡(luò)的權(quán)重和截距項,從而可以根據(jù)身高體重預(yù)測性別:
我們用0和1分別表示男性(M)和女性(F),并對數(shù)值做了轉(zhuǎn)化:
我這里是隨意選取了135和66來標(biāo)準(zhǔn)化數(shù)據(jù),通常會使用平均值。
***08 ***損失
在訓(xùn)練網(wǎng)絡(luò)之前,我們需要量化當(dāng)前的網(wǎng)絡(luò)是『好』還是『壞』,從而可以尋找更好的網(wǎng)絡(luò)。這就是定義損失的目的。
我們在這里用平均方差(MSE)損失: ,讓我們仔細(xì)看看:
是樣品數(shù),這里等于4(Alice、Bob、Charlie和Diana)。
表示要預(yù)測的變量,這里是性別。
是變量的真實值(『正確答案』)。例如,Alice的
就是1(男性)。
變量的預(yù)測值。這就是我們網(wǎng)絡(luò)的輸出。
被稱為方差(squared error)。我們的損失函數(shù)就是所有方差的平均值。預(yù)測效果越好,損失就越少。
更好的預(yù)測 = 更少的損失!
訓(xùn)練網(wǎng)絡(luò) = 最小化它的損失。
*09 ***** 損失計算例子
假設(shè)我們的網(wǎng)絡(luò)總是輸出0,換言之就是認(rèn)為所有人都是男性。損失如何?
***10 ***代碼:MSE損失
下面是計算MSE損失的代碼:
import numpy as np
defmse_loss(y_true, y_pred):
# y_true and y_pred are numpy arrays of the same length.
return ((y_true - y_pred) ** 2).mean()
y_true = np.array([1, 0, 0, 1])
y_pred = np.array([0, 0, 0, 0])
print(mse_loss(y_true, y_pred)) # 0.5
如果你不理解這段代碼,可以看看NumPy的快速入門中關(guān)于數(shù)組的操作。
好的,繼續(xù)。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4781瀏覽量
101205 -
神經(jīng)元
+關(guān)注
關(guān)注
1文章
363瀏覽量
18514 -
python
+關(guān)注
關(guān)注
56文章
4809瀏覽量
85054
發(fā)布評論請先 登錄
相關(guān)推薦
人工神經(jīng)網(wǎng)絡(luò)原理及下載
labview BP神經(jīng)網(wǎng)絡(luò)的實現(xiàn)
【PYNQ-Z2申請】基于PYNQ-Z2的神經(jīng)網(wǎng)絡(luò)圖形識別
【PYNQ-Z2試用體驗】神經(jīng)網(wǎng)絡(luò)基礎(chǔ)知識
卷積神經(jīng)網(wǎng)絡(luò)如何使用
【案例分享】ART神經(jīng)網(wǎng)絡(luò)與SOM神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)實現(xiàn)方法有哪些?
如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?
matlab實現(xiàn)神經(jīng)網(wǎng)絡(luò) 精選資料分享
基于BP神經(jīng)網(wǎng)絡(luò)的PID控制
卷積神經(jīng)網(wǎng)絡(luò)一維卷積的處理過程
用Python從頭實現(xiàn)一個神經(jīng)網(wǎng)絡(luò)來理解神經(jīng)網(wǎng)絡(luò)的原理1
![<b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>從頭</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b><b class='flag-5'>來</b><b class='flag-5'>理解</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的原理1](https://file.elecfans.com/web2/M00/94/19/poYBAGP8U3-AVvxXAABenxhBbGM619.jpg)
用Python從頭實現(xiàn)一個神經(jīng)網(wǎng)絡(luò)來理解神經(jīng)網(wǎng)絡(luò)的原理3
![<b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>從頭</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b><b class='flag-5'>來</b><b class='flag-5'>理解</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的原理3](https://file.elecfans.com/web2/M00/94/1A/poYBAGP8U3-AZU0mAAAIVtrMUhQ981.jpg)
用Python從頭實現(xiàn)一個神經(jīng)網(wǎng)絡(luò)來理解神經(jīng)網(wǎng)絡(luò)的原理4
![<b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>從頭</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b><b class='flag-5'>來</b><b class='flag-5'>理解</b><b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的原理4](https://file.elecfans.com/web2/M00/94/9C/pYYBAGP8U3-AQE5dAAAM2u2p9qs820.jpg)
評論