啟用函式:增加非線性
如果不用啟用函式,每一層節點的輸入都是上層輸出的線性函式。無論神經網路有多少層,輸出都是輸入的線性組合,與沒有隱藏層效果相當,因此網路的逼近能力就相當有限。
將輸入的連續實值變換為0-1的輸出。反向傳播中易發生梯度消失,輸出不對稱(只輸出正值)
輸出為-1 - 1
計算速度快,只需判斷輸入是否大於0。某些神經元可能永遠不會被啟用,導致相應的引數永遠不能被更新
常用線性分類任務組合後可以解決非線性分類任務
前幾層感知器理解為空間的變換,將非線性問題變為線性問題
增加節點數:增加維度,即增加線性轉換能力
增加層數:增加啟用函式次數,即增加非線性轉換次數
殘差:損失函式在某個結點的偏導 \(da^=\frac}=\frac}\cdot w^\)
bp反向傳播
前饋 \(z^=w^\cdot a^\)
反饋 \(da^=w^\cdot dz^\rightarrow\frac}=dz^\cdot x\) 復合求導
(1)先計算每一層的狀態和啟用值,直到最後一層(前向傳播)
(2)計算每一層的誤差,誤差計算過程是從最後一層向前推進(反向傳播)
(3)更新引數
梯度消失
接近輸入層的引數更新緩慢或停滯,此時的神經網路學習就等價於只有後面幾層的隱藏層網路在學習。如sigmoid函式,求導結果是兩個0-1的數相乘
解決:使用深度信念網路(dbn),對每層神經元單獨進行訓練。
使用其他啟用函式,如relu
使用長短期記憶(lstm)單元和相關門型別的神經元結構
逐層預訓練:先用無監督學習對每一層進行預訓練,然後使用經過預訓練的權值引數作為初始引數進行訓練
解決區域性最小值,梯度消失
自編碼器:假設輸入輸出相同,先編碼再解碼
兩套編碼函式
受限玻爾茲曼機(兩層,可見層,隱藏層)
不同層全連線,層內無連線(二分圖)
共享權重矩陣w,兩個偏置向量
矩陣線性變換
\[ax=\lambda x
\]矩陣相乘對原始向量同時施加方向變化和尺度變化
對某些特殊向量(特徵向量),矩陣的作用只有尺度變化而沒有方向變化
任意向量v乘矩陣a次數足夠多,會落到最大特徵值的特徵向量上(矩陣a和向量v相乘時,會把向量v向最大特徵值對應的特徵向量上引導)
秩資料點分布角度:資料需要的最小的基的數量
資料分布模式越容易**捉,即需要的基越少,秩就越小
資料冗餘度越大,需要的基就越少,秩越小
若矩陣表達的是結構化資訊,如影象,使用者-物品表等,各行之間存在一定相關性,一般是低秩的
低秩近似
保留決定資料分布的最主要的模式/方向(丟棄的可能是雜訊或其他不關鍵資訊)
訓練誤差->泛化誤差(測量的誤差結果不一定真實反映真實情況)
泛化誤差(期望風險)
訓練誤差(經驗風險)
欠擬合:
提高模型複雜度
決策樹:拓展分支
神經網路:增加訓練輪數
過擬合:
降低模型複雜度
優化目標加正則項
決策樹:剪枝
神經網路:early stop,dropout
資料增廣
計算機視覺:影象旋轉,縮放,剪下
自然語言處理:同義詞替換
語音識別:新增隨機雜訊
交叉熵(對數損失函式)替代平方損失
資訊量:乙個事件發生的概率越大,則它所攜帶的資訊量就越小,而當p(x0)=1時,熵將等於0,也就是說該事件的發生不會導致任何資訊量的增加。
資訊熵:當一種資訊出現概率更高的時候,表明它被傳播得更廣泛,或者被引用的程度更高。從資訊傳播的角度來看,資訊熵可以表示資訊的價值。
交叉熵:心中的概率分布與實際的概率分布相差有多遠。用這樣的乙個量,來定義預估事情的錯誤程度(loss)。
深度學習基礎 batch size
batch size 批尺寸 是機器學習中乙個重要引數,涉及諸多矛盾,下面逐一展開。batch 的選擇,首先決定的是下降的方向。如果資料集比較小,完全可以採用全資料集 full batch learning 的形式,這樣做至少有 2 個好處 其一,由全資料集確定的方向能夠更好地代表樣本總體,從而更準...
深度學習 Pytorch基礎
import torch import numpy as np 建立tensor 1 傳入列表 2 傳入陣列 3 呼叫api torch.empty 會用無用資料填充 0 torch.ones torch.zeros torch.rand 3,4 取0 1 torch.randint low 0,h...
深度學習基礎(1) 機器學習與深度學習
機器學習 深度學習 通常,在我們接觸深度學習的過程中,經常可以看到機器學習,深度學習,監督學習,無監督學習,神經網路,隱藏層,函式等一系列概念。這些概念之間的相互關係是什麼,分別是什麼意思,有什麼作用,搞清楚這個是非常重要的。在此對其進行一次梳理。所有的概念都可以認為出自 人工智慧 artifici...