學習筆記TF011 多層神經網路

2021-08-01 10:01:58 字數 1225 閱讀 2678

線性回歸、對數機率回歸模型,本質上是單個神經元。計算輸入特徵加權和。偏置視為每個樣本輸入特徵為1權重,計算特徵線性組合。啟用(傳遞)函式 計算輸出。線性回歸,恒等式(值不變)。對數機率回歸,sigmoid。輸入->權重->求和->傳遞->輸出。softmax分類含c個神經元,每個神經元對應乙個輸出類別。

xor異或運算,無法通過線性模型解決。sigmoido型別神經元要求資料線性可分。2d資料存在直線,高維資料存在超平面,把不同類別樣本分隔。

在神經網路輸入和輸出之間插入更多神經元,解決非線性可分問題。輸入層->隱含層(hidden layer)->輸出層->輸出。隱含層使網路可以對輸入資料提出更多問題。隱含層每個神經元對應乙個問題,依據問題回答最終決定輸出結果。隱含層在資料分布圖允許神經網路繪製以一條以上分隔線。每條分隔線向輸入資料劃分提出問題,所有相等輸出劃分到單個區域。深度學習,新增更多隱含層,可採用不同型別連線,使用不同啟用函式。

梯度下降法,找到函式極值點。學習,改進模型引數,大量訓練,損失最小化。梯度下降法尋找損失函式極值點。梯度輸出偏導數向量,每個分量對應函式對輸入向量相應分量偏導。求偏導,當前變數外所有變數視為常數,用單變數求導法則。偏導數度量函式輸出相對特定輸入變數的變化率,當輸入變數值變化,輸出值的變化。損失函式輸入變數指模型權值,不是實際資料集輸入特徵。相對於推斷模型每個權值。

梯度輸出向量表明每個位置損失函式增長最快方向,在函式每個位置向哪個方向移動函式值可增長。點表示權值當前值。梯度向右箭頭表示為增加損失需向右移動,簡頭長度表示向右移動函式值增長量。反方向移動,損失函式值減少。直到梯度模為0,達到損失函式極小值點。

學習速率(learning rate)縮放梯度。梯度向量長度在損失函式單元中,縮放與權值相加。學習速率是超引數(hyperparameter),模型手工可配置設定,需指定正確值。太小,需要多輪迭代。太大,超調(overshooting),永遠找不到極小值點。用tf.summary.scalar函式在tensorboard檢視損失函式值變化曲線。

區域性極值點問題,通過權值隨機初始化,增加靠近全域性最優點附近開始下降機會。損失函式所有極值點接近等價。

tf.gradients方法,符號計算推導指定流圖步驟梯度以張量輸出。梯度下降法取決輸入資料形狀及問題特點。

誤差反向傳播演算法,計算損失函式相對網路權值偏導,每層導數都是後一層導數與前一層導輸出積。前饋,從輸入開始,逐一計算隱含層輸出,直到輸出層。計算導數,從輸出層逐一反向傳播。復用所有已完成計算元素。

sigmoid隱含層,softmax輸出層以及帶反向傳播梯度下降,是最基礎構件。

神經網路簡介 多層神經網路

如上圖所示,該神經網路有三層。我們標記第一層 也就是輸入層 為a 1 第一層與第二層連線權重為w 1 然後第一層輸入與第一層權重的線性和為z 1 第一層神經元個數為n 1 並依次標記剩餘網路層。可以看出,存在 z l j i 1 n l a l i w l i,j a l w l j a l 1 f...

人工神經網路 多層神經網路

模型原型 sklearn.neural network.mlpclassifier hidden layer sizes 100,activation relu algorithm adam alpha 0.0001,batch size auto learning rate constant le...

Pytorch學習筆記 五 多層神經網路

本次設計乙個簡單的三層神經網路模型。上一章學習了乙個線性的分類模型。但如果資料集無法用一條線 乙個面進行分類呢?此時神經網路就有用武之地了。但是本次實驗還是用的上次的資料集,有效果就行 import torch import numpy as np o data 讀取資料 with open dat...