圖片數據如何輸入到神經網絡
1張圖片:原本是 64 * 64 * 3的 rgb數據,拉成一個12288 * 1的列向量,每一個元素都是一個特徵。
m張圖片:矩陣就是 12288 * m,每一列都是一張圖片。
如何預測,圖片是貓嗎?(0/1 二分類問題)(用邏輯迴歸)
答:z = dot(w,x) + b
例子1:去外面玩嗎?
結果 = (天氣權重 * 天氣情況) + (身體狀態權重 * 身體狀態情況) + (心情權重 * 心情情況 ) + bias
若z > 0,去;若z < 0 不去;
z = ( w1 * x1 + w2 * x2 + w3 * x3) + b
= (2 * 0 + 2 * 1 + 7 * 1) + (-5)
= 2
例子2:圖片是貓嗎?
每個特徵,都配一個權重,如果結果 > 0 是貓,如果 < 0 不是貓。
sigmoid起了什麼作用?
把z映射到0~1區間,結果0.8 == 80% 有貓
這種方法的向量化表示(前向傳播得出預測結果)
註釋:向量默認都是列向量
對於單個結果
對於全部結果
怎麼看預測的準不準?
單個樣本 準確否?loss function
全部樣本 準確否?cost function
註釋:L 與 J 都在同一個數量級上, 只是J 更平均,是所有L的平均數。
如何根據數據學習,如何預測得更準?
J越小,越精準! J是全部樣本Loss的平均數, J是由 w 和 b 決定的!
J是一個凸函數,
訓練的目的,就是通過"梯度下降",調整到合適的w 和 b,使得J最小!==預測更準確!
r == 步長 , dw == 導數/偏導數/斜率
計算偏導數dw、db(鏈式求導)反向傳播to優化W B
前向傳播(計算出z,進而映射出概率a,比較答案,得出差值L)
反向傳播(其實就是鏈式求導)
目的:計算出 dw1 dw2 db,更新w1 w2 b,使得J下降
計算:
對於單個樣本:
對於矩陣(向量化):
對於dw:想想"廚師做菜,油鹽醋""油比:鹽比:醋比"的例子,這個列向量代表什麼?
更新迭代: