深度学习-神经网络原理-39
生活随笔
收集整理的這篇文章主要介紹了
深度学习-神经网络原理-39
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
進入新的內容,深度學習啦
萬事萬物的產生不是一下子就變出來的,學術上也是,一點點的進步才催生出一門新的學科或者技術,神經網絡用于機器學習也不例外,
前面的機器學習的內容,線性回歸,邏輯回歸,多分類,決策樹,以及各種集成學習,再到概率圖等等,其實隱約有了深度學習的影子,
只不過是只有一層輸入一層輸出的淺層神經網絡,下面正式進入神經網絡!
- 1. 神經網絡算法是有監督的學習算法,
- 2. 分類
- 3. 訓練
- 4. 代碼
進入新的內容,深度學習啦
萬事萬物的產生不是一下子就變出來的,學術上也是,一點點的進步才催生出一門新的學科或者技術,神經網絡用于機器學習也不例外,
前面的機器學習的內容,線性回歸,邏輯回歸,多分類,決策樹,以及各種集成學習,再到概率圖等等,其實隱約有了深度學習的影子,
只不過是只有一層輸入一層輸出的淺層神經網絡,下面正式進入神經網絡!
1. 神經網絡算法是有監督的學習算法,
一個神經元 有很多樹突dentrities(接收信號輸入) 細胞體body經過分析綜合匯總(激活函數) 通過軸突axon傳遞很長的距離,作為下一個神經元的輸入 輸出信號。
生物神經網絡與人工神經元
- 激活函數:將神經元的凈輸入信號轉換成單一的輸出信號,以便進一步在網絡中傳播。(隱藏層如果沒有進行非線性變換,那無非就是信號的放大與縮小,只是做“透傳”,不進行匯總 分析 綜合,神經元的意義何在) 隱藏層激活函數必須是非線性的
- 網絡拓撲:描述了模型中神經元的數量以及層數和它們連接的方式。
- 訓練算法:指定如何設置連接權重,以便抑制或增加神經元在輸入信號中的比重。
常見的激活函數: (本質上是為了進行非線性的變換 如果都是線性變換 那一層就能搞定 要其他的層干嘛, 這也就是與之前的線性回歸的本質區別)
-
sigmoid
輸出正例的概率 隱射到 0-1之間 -
tanh
hyperbolic tangent
隱射到 -1--1 之間 -
relu
只有信號強到一定的程度才會輸出
2. 分類
例如三分類 用ovr的方式訓練三個二分類 邏輯回歸
使用softmax變換
3. 訓練
一次迭代:
前向傳播計算一次輸出loss
根據loss 以及梯度 更新w
這樣來回一次 完成一次迭代
4. 代碼
from sklearn.neural_network import MLPRegressor
from sklearn.neural_network import MLPClassifier
X = [[0, 0],
[1, 2]]
y = [0,
1]
clf = MLPClassifier(solver="sgd", alpha=0.00001, activation="relu", hidden_layer_sizes=(5, 2), max_iter=2000,
tol=0.00001)
clf.fit(X, y)
predict_value = clf.predict([[2, 2], [-1, -2]])
print(predict_value)
predict_prob = clf.predict_proba([[2, 2], [-1, -2]])
print(predict_prob)
print([coef.shape for coef in clf.coefs_])
print([coef for coef in clf.coefs_])
總結
以上是生活随笔為你收集整理的深度学习-神经网络原理-39的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WIN32 动态 UAC 提权
- 下一篇: 使用 Docker Compose V2