天天看點

cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡

緒論:随着計算能力和資料量的提高,出現PASCAL和ImageNet高品質的資料集,使得神經網絡成為可能(訓練)

一,KNN圖像分類算法

  1. python+Numpy基礎

    可參看https://zhuanlan.zhihu.com/p/20878530?refer=intelligentunit

  2. 圖像分類任務是很困難的
  3. 運用資料集CIFAR10,實作最鄰近算法分類(缺點:訓練時間很短,但測試時間很長)
    cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡
  4. K最近鄰算法,找出K個最近點(曼哈頓距離或歐氏距離),選取投票最多的,K&Distance是超參數
cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡

如何選取K和距離名額

cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡
cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡
cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡

#在圖像上KNN不常用,測試時間長,向量化距離用于比較圖像不常用

二,線性分類器

單獨的線性邊界劃分

cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡
cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡

三,線性分類器損失

①優化,正則化R(W)【----選取合适的W函數—,-盡可能考慮每個一個元素,将W權重分布擴充開】,和Loss損失函數

②svm,softmax分類熟悉,選擇合适的線性分類器(svm具有額外的穩定型,分數變化影響不大,反之softmax就不一樣,所有樣量變化都要考慮)

③注意兩個超參數,步長(學習速率),權重正則化參數lambda

④優化方法,用SGD或momtain等方法找到使損失最小的W值(x給定,y為标簽)

四,反向傳播

  1. 倒推出每一個鍊路(如輸入x,y)對最終的結果(輸出z)影響有多大
  2. 正梯度,負梯度(損失随它的增大而減小),所有梯度相乘的過程叫反向傳播
  3. 鍊式法則:局部梯度和最後一層梯度相乘
  4. 正向傳播存儲大量資料,反向傳播用掉
  5. 深度學習架構(如Caffe,torch等)就是一個大的運算門的集合(層),并記錄所有層之間聯系的計算圖!!
  6. 采樣資料,通過前饋得到損失,回報得到梯度,通過對梯度的使用完成權值更新,這就是神經網絡的訓練過程
  7. 問題,雅克比矩陣中的特殊結構如何求得?

五,神經網絡

  • 執行個體:邏輯回歸二層神經網絡訓練函數
  • 使用權重w和偏內插補點biase計算出第一個隐含層h,然後計算損失,評分,進行反向傳播回去
  • 多種常用激活函數(一般預設max(0,x)),如sigmoid函數具有飽和區梯度0,非零點中心,計算x複雜等缺點,max(Relu)函數也有缺點(非中心對稱,初始化不佳(如-10)無法激活,注意學習速率不要太高),leaky Relu優化max(0.01x,x),其中0.01為α修正參數可調,maxout集合Lrelu,Relu的優點,隻是參數變多了。
  • 少量資料可用L-BFGS優化,資料量大的一般用不到
  • 神經網絡的深度(層數,資料越複雜越多越好,簡單則不需要太多)和寬度(各層神經元數)

part2

  1. 列**. 資料預處理**PCA,SVD等方法

    . 權重初始化,待深入,很重要,如Batch Nomalization

  2. 神經網絡隐藏層(hidden layer)
  3. 訓練資料要過飽和Overfit
  4. 超參數調整學習速率,正則化參數(以及差量),更新方式
  5. Track the ratio of weight updates / weight magnitudes:
cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡

訓練神經網絡的四個步驟(樣本(标準化,初始化權重等),向前傳播(得到損失),向後傳播(得到每個權重的梯度),用梯度更新【梯度下降】參數(w等))

cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡

– 激活函數提供了更多的非線性的資料存儲(處理)方式。

下面所講

cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡

– 1,其他參數更新方法,針對SGD更新較慢(y軸快水準慢,波動式前進),但一般還是預設用SGD

  • 1,moumentum更新,收斂更快(mu為超參數,v為速度(可初始化為0))好
    cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡
  • 2 nestero momentum (Nag)好好
    cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡
    cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡
    3,adaGrad update(一般在凸問題中用,回停止學習-0)
    cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡
    針對不同方向的梯度調整快慢(補償)–通過分母(梯度平方),大慢小快
    cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡
    3.2改進版(不會停止學習)
    cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡

    1e-7是平滑因子,隻是未來防止它變0

    4,另一種

    cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡
    5,Adam更新(結合MOMENTEUM和RMSprop-like)很好,可以經常采用
cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡

beta是超參數0.9,0.995

1.2,優化學習速率(超參數,可用衰減函數控制(一階函數))

cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡

其他優化方法

cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡

二階函數,求出梯度(碗的曲率),知道怎麼走就不需要學習速率更新就知道怎麼到達最低點了,收斂(但hessian矩陣太大求逆計算量巨大,而基本不采用)

再優化(資料集不大時可用)一般也不用

cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡

總結:一般都用Adam來優化

cs231n斯坦福基于卷積神經網絡的CV學習筆記(一)KNN和線性分類器/分類器損失/反向傳播一,KNN圖像分類算法二,線性分類器三,線性分類器損失四,反向傳播五,神經網絡
下一篇: Small tricks

繼續閱讀