感知機
感知機是一種最簡單形式的前饋神經網路,是二元線性分類模型,輸入為例項的特徵向量,輸出為他的類別(+1/-1),感知機的目的是訓練出將資料分隔開的分離超平面。
感知機能輕易完成與、或、非運算,感知機的權重w如此調整:每次改變δwi,δwi=η(y-y』)xi ,這裡,η是學習率,y-y』是**值y』和實際值y的差,xi是第i個神經元的輸入。因此可以看出如果**正確則權重不變,**錯誤則按照程度大小調整權重。y-y『一定是處於0-1之間因此每次修正的數值應該是輸入的一定比例。
逆誤差傳播演算法(bp演算法)
給定訓練集d(xi,yi),每乙個神經元節點的值是這個節點前面所有節點和它們對應的權重的共同影響的結果值。最後輸出(y1,y2…yl)的yk值為f(βj-θj),其中βj是計算出來的數值,θj是閾值,f(x)是啟用函式。啟用函式將較大範圍內的輸入擠壓到乙個較小的區間,非線性函式讓神經網路更複雜從而提公升其表達能力。
當輸出(y1,y2…yl)後,我們可以得到網格在(xk,yk)上的均方誤差ek,ek的值為所有節點的y-y』的平方和除以2。任意引數v的更新方式為+δv,bp演算法基於梯度下降演算法,以目標的負梯度對引數進行調整。
而其中ek對whj的偏導可以變成三項的點乘:ek對yk的偏導,yk對βj的偏導,βj對whj的偏導。而根據定義βj對whj的偏導是bh(上面圖中就有公式)。我們如果使用sigmoid函式,那麼它有個很好的性質就是它的導數是f(x)乘以1-f(x)。
類似方法更新這些引數
其中eh的表示式推導出來為
總得來說,就是先在01範圍內隨機初始化網格中的權值和閾值,然後根據輸入計算第一輪的輸出y』,然後計算出輸出層神經元梯度項gi和隱藏層神經元梯度項eh然後更新權重再做計算。直到最小化訓練累積誤差e等於所有次ek的平均值,當然是每輪更新一次。
衍生問題
強大的表達能力讓神經網路會產生過擬合現象。早停策略:當訓練集誤差降低且驗證集誤差增高的時候停止訓練,返回具有最小驗證集誤差的引數。正則化策略:在誤差目標函式中增加乙個描述網路複雜度的部分
引數λ可以用交叉驗證來估計,是個01區間的數。
機器學習之神經網路
機器學習是一門致力於研究如何通過計算的手段,利用經驗來改善系統自身的效能。經驗通常以資料的形式存在,因此機器學習所研究的主要內容是關於在計算機上從資料中產生 模型 的演算法,即 學習演算法 有了學習演算法,將經驗資料提供給它,它就能基於這些資料產生模型 當面對新情況時,模型會給我們提供相應的判斷。一...
PyTorch學習之神經網路
神經網路可以通過torch.nn包來構建,它是基於自動梯度來構建一些模型,乙個nn.module包括層和乙個方法forward input 同時也會返回乙個輸出 output 下圖是乙個簡單的前饋神經網路lenet,乙個簡單的神經網路包括一下幾點 super net,self 首先找到 net 的父...
深度學習之神經網路
神經網路由輸入層 隱藏層 輸出層組成 1 單層神經網路 感知機 類似邏輯回歸,線性分類,全連線 沒有啟用函式 2 兩層神經網路 多層感知機 帶乙個隱層,非線性分類,全連線 3 多層神經網路 深度學習 全連線 4 卷積神經網路 cnn 非全連線 5 迴圈神經網路 rnn 處理序列資料 作非線性變換 s...