只有一組變數,便是權重係數wi,我們所做的一切都是在尋找使誤差error最小的一組權重係數wi,各種演算法(例如梯度下降)都是用於尋優的工具,這些工具快與慢,適用於處理的資料型別都需要具體問題具體分析,但是這所有的最後都應回歸到「最適合」的一組權重係數wi中去,只有這樣,構建的神經網路才能被認為優越,因為它從樣本中學習到了它的最佳水平。
以下是利用梯度下降做的一次對於權重係數wi的迭代,目的是為了展示一次迭代的流程,通過多次的迭代之後,想必會有好的結果。
import numpy as np
defsigmoid
(x):
""" calculate sigmoid
"""return1/
(1+np.exp(
-x))
learnrate =
0.5x = np.array([1
,2])
y = np.array(
0.5)
# initial weights
w = np.array(
[0.5,-
0.5]
)# calculate one gradient descent step for each weight
# todo: calculate output of neural network
nn_output = sigmoid(np.dot(x, w)
)# todo: calculate error of neural network
error = y - nn_output
# todo: calculate change in weights
del_w = learnrate * error * nn_output *(1
- nn_output)
* xprint
('neural network output:'
)print
(nn_output)
print
('amount of error:'
)print
(error)
print
('change in weights:'
)print
(del_w)
以下是結果:
neural network output:
0.3775406687981454
amount of error:
0.1224593312018546
change in weights:
[0.0143892
0.0287784
]
好意希望與你一起共同成長~ 神經網路的核心元件
前言 神經網路主要圍繞以下四個方面 1 層,多個層組合成網路 或模型 2 輸入資料和相應的目標 3 損失函式,即用於學習的反饋訊號 4 優化器,決定學習過程如何進行 1.層 神經網路的基本資料結構是層。層是乙個資料處理模組,將乙個或多個輸入張量轉換為乙個或多個輸出張量。有些層是無狀態的,但大多數的層...
1 11 神經網路的權重初始化
理想的權重矩陣既不會增長過快,也不會太快下降到 0,從而訓練出乙個權重或梯度不會增長或消失過快的深度網路。有乙個神經元的情況 暫時忽略b z 為了預防 z值過大或過小,你可以看到 n越大,你希望 越小,因為 z是 的和如果你把很多此類項相加,希望每項值更小,最合理的方法就是設定 frac n表示神經...
Tensoflow 學習筆記二 神經網路的優化
神經元模型 用數學公式表示為 為啟用函式。神經網路是以神經元為基本單 元構成的。啟用函式 引入非線性啟用因素,提高模型的表達力。常用的啟用函式有 relu sigmoid tanh 等。relutf.nn.relu sigmoidtf.nn.sigmoid tanhtf.nn.tanh 神經網路的層...