神經網絡詳解:傳統機器學習在計算機視覺領域的局限性
從本篇開始我將會給大家詳細的講解神經網絡以及最經典的卷積神經網絡。
我們都知道神經網絡是機器學習的一個分支,而神經網絡的延伸和豐富又形成了一個新的學科:深度學習。深度學習目前主要應用在計算機視覺領域,也就是對圖片的識別檢測和分類。但是既然是圖像處理,處理結果就會受到一下幾個因素的影響:
1. 照射角度
改變拍照的角度,改變物體的位置,要求能夠識別????
2. 光照強度
上圖中亮度強的白貓可以一眼識別,而亮度低的黑貓識別起來則有一定的難度。
3. 形狀改變????
物體形狀的改變也會增加識別的難度,即使是同一個物體
4. 部分遮蔽
擋住部分物體,依舊能識別
5. 背景混入
圖片的背景可能對主物體形成一些干擾。?????
如果按照常規的機器學習方法進行圖片分類的話,就會受到以上集中因素的影響。比如我們看下k-近鄰??????????
k-近鄰的算法我們可以稍微回憶一下:
對于未知類別的屬性點:????
1.計算已知類別數據集中的點與當前點的距離
2.按照距離依次排序
3.選取與當前點距離最小的K個點
4.確定前K個點所在類別的出現概率
5.返回前K個點出現頻率最高的類別作為當前點預測分類。
比如說有這樣的一個樣本庫:
我們使用k近鄰的算法來計算,距離的計算我們先采用像素點像素值直接相減,最后加和所有像素點值的方式來計算測試樣本和每個訓練樣本的距離:???
但是直接相減的方式容易造成比較大的偏差,所以我們采用歐式距離,開根號可以中和一部分的誤差,并且可以應用于多維空間。????
這里我們介紹的L1和L2以及K值都是超參數,就是需要我們手動設置的參數。那么如何選擇超參數也顯得尤為關鍵。如何進行超參數的調優呢?這里我簡單介紹一下交叉驗證:??
在機器學習中,我們通常希望評估模型在未見過的數據上的表現,而不僅僅是在訓練數據上的表現。交叉驗證通過有效地利用有限的數據來進行模型評估,尤其適用于在數據量有限的情況下進行模型選擇和超參數調優。
如圖所示,fold12345,我們可以1234作為訓練集,5作為測試集,也可以1345作為訓練集,2作為測試集,以此類推。交叉驗證的基本思想是將原始數據分成若干份,其中一部分作為訓練集,另一部分作為測試集。在每一輪交叉驗證中,都會選擇不同的訓練集和測試集,以評估模型在不同數據子集上的表現。我們根據綜合結果來校準超參數。所以選取超參數的正確方法是:將原始訓練集分為訓練集和驗證集,我們在驗證集上嘗試不同的超參數,最后保留表現最好那個。使用交叉驗證方法,它能幫助我們在選取最優超參數的時候減少噪音。??????????????
k近鄰的測試結果如下所示:
我們可以看到測試結果并不理解,究其原因就是最先開始我們說到的因素,僅僅按照像素來進行比較是不夠的,圖像更多的是按照背景和顏色被分類,而不是語義主體分身。
假如我們對圖像進行移位 部分模糊和調暗處理,并且使之和原來的圖片距離都是100,我們可以看到這些圖片都是不同的圖片,但在k近鄰算法里他們是同一個,所以結果并不準確。????
本片主要講解了傳統機器學習算法在計算機視覺領域應用的局限性,下期我們接著介紹,神經網絡是如何準確進行圖片處理的,喜歡的點個關注和在看哦~精彩內容不容錯過本文轉載自????人工智能訓練營???,作者:小A學習
