深度學習學習記錄一
我這裡的規劃是,李宏毅的深度學習課程,然後林軒田的機器學習基石,機器學習技法,最後我們蘇老師的計算機視覺。後面就讀論文,複現程式了。
競賽,作業平台
讓機器自己學習來生産複雜的程式。如語音識别,圖像分類等。
Regression: 輸出一個數值的程式
Classification : 從設定好的資訊中,選擇一個輸出,例子alaf go,從19*19的棋盤中選擇一個最好的位置。
Structured Learning:讓機器學會創作。(黑暗大陸)
1.Function with unknown Parameters
<code>y = b + wx</code>
b: bias
w: weight
2.Define Loss from Training Data
<code>L(b,W)</code>
3.Optimization
Gradient Descent :have local minima 局部最優解
η:learning rate
<code>w = η * dL/dw</code>
李宏毅老師,這裡使用自己的2017-2020的youtube資料來預測第二天的觀看人數。用一個w來預測,等于用前一天預測,效果不好。發現曲線是七天一個循環,是以使用7個w預測。然後效果優化到極限,還是有誤差。是以線性函數(linear models)不夠用來預測。piecewise linear curves(分段線性函數),曲線也可以用piecewise linear curves來逼近。
y = c * (1 / 1 + e ^ -(b + wx1))
w:改變斜率
b:左右移動
c:改變高度
神經網絡原理
y = b + ∑c * (1 / 1 + e ^ -(b + wx1)) ci,bi,wi (通過多個sigmoid函數來相加生成piecewise linear curves )
y = b + ∑c * (1 / 1 + e ^ -(b + ∑wx)) ci,bi,wij,xj (通過多個sigmoid函數來相加生成piecewise linear curves ) 這個式子可以推出神經網絡
根據式子推到神經網絡
将式子矩陣化1
将式子矩陣化2
上圖的矩陣式子
L(θ) θ 是所有的 Unknown parameters
g :gradient : 梯度
batch 把資料分為多個batch,用小batch 來更新參數。一個epoch是把所有的batch過一遍的結果。
這個是hard sigmoid。
y = b + ∑c * max(0,b + ∑wx) ci,bi,wij,xj
效果比兩層多神經元好很多。是以叫深度學習。括弧笑
論文收集 alexnet vgg googlenet residualnet