【学员分享】深度学习计算机视觉,两个星期从入门到上线
Hello,everyone!今天給大家講述一個深度學習項目。
在講這個項目之前,很多業(yè)外人士可能不明白人工智能(AI),機器學習(ML),深度學習(DL),這三者是什么關系。先科普一下小常識,它們?nèi)呤前蛹P系。即人工智能是最大范疇,包含機器學習,機器學習包含深度學習。
好了,進入正題。本人所解決的是人臉識別登錄的業(yè)務,最后抽象為一個深度學習的三分類問題。接下來會以解決問題的順序進行展開描述。用的深度學習框架是caffe,網(wǎng)絡結構是mobilenet。
01
數(shù)據(jù)的獲取
首先深度學習的數(shù)據(jù)很重要。而數(shù)據(jù)集的獲取則應該根據(jù)業(yè)務需求去尋找。本項目是圖片數(shù)據(jù)集的獲取,可以從各大開源數(shù)據(jù)集尋找,之后發(fā)現(xiàn)有些類別的數(shù)據(jù)集量還是不夠大,又去各大影視中尋找錄屏,然后按幀數(shù)切分成圖片。
02
數(shù)據(jù)的清洗
該部分將消耗大概百分之七十的時間。數(shù)據(jù)清洗包括對圖片數(shù)據(jù)集的篩選,分類,又稱標注數(shù)據(jù)。尤其是數(shù)據(jù)的分類很重要。數(shù)據(jù)分類的準確性可能就決定了你訓練模型能否收斂。該部分是個細活,過程比較瑣碎,暫時先不說。數(shù)據(jù)集分為9類,為啥是9類,解決的不是3分類問題嗎?因為前期3分類訓練模型的準確率不是很高,考慮到3個大類內(nèi)部的數(shù)據(jù)方差過大,于是調(diào)整策略為訓練為9分類問題,最后測試為3分類,因為最后業(yè)務解決的還是3分類問題。
以下是9類圖片標注標準:
03
訓練模型
? ? ? 接下來就是訓練模型了,模型的訓練由于是在服務器上訓練,加上模型不是很大,訓練很快,正常跑個4個小時左右就可以迭代出一個模型。模型的acc,loss,隨迭代次數(shù)的關系可以通過繪制圖表觀看,很直觀。訓練集上的acc只能做個參考,主要還是最后測試的表現(xiàn),因為你模型可能參數(shù)很多,最后導致模型過擬合。
? ? ? 該部分還包含模型的調(diào)優(yōu),也就是調(diào)參,這是個學問,值得好好繼續(xù)學習。
04
測試模型
該部分是拿一批最接近業(yè)務的數(shù)據(jù)去測試,看每一類準確率。3分類是標注為0,1,2三個大類。由于業(yè)務追求0,1,2的準確率很高,允許2的召回率可以低一些,所以測試時要關注這些。
下面是訓練模型在驗證集上的表現(xiàn):
acc | 0.9183 |
acc0 | 0.9676 |
acc1 | 0.8 |
acc2 | 0.9723 |
準確率已經(jīng)達到業(yè)務需求了,然后就結束了嗎?當然沒有。作為一個專業(yè)人士,我們要追求細節(jié),哈哈。因為訓練的是9分類,我們要看9分類的具體情況,以及那些錯分的樣本是哪些。
下面是9類的結果:
acc | 0.9183 |
acc0 | 0.9676 |
acc1 | 0.8748 |
acc2 | 7665 |
acc3 | 0.5178 |
acc4 | 0.8152 |
acc5 | 0.9125 |
acc6 | 0.9837 |
acc7 | 0.5072 |
acc8 | 0.6136 |
怎么3,7的準確率那么低,怎么解決了?此處先埋下伏筆。
祭出大殺器,矩陣統(tǒng)計。
下圖是在服務器上運行結果的矩陣部分截圖:
看著很不舒服,于是把它調(diào)整到文本中,方便觀看。
以上矩陣共有arrays1,arrays2,arrays3三個矩陣,每個矩陣的每一行代表真實標簽label,共有9行,依次表示label從0到8,每一列代表預測標簽predict,共有9列,依次表示predict從0到8,所以每個矩陣都是一個9*9的矩陣。arrays1表示共有81種可能組合,每一個元素表示模型把樣本的label預測為predict的可能的個數(shù)。例如arrays1[0][0]表示模型把0預測為0的樣本共有5975張。arrays2表示模型把樣本的label預測為predict的概率總和,例如arrays2[0][0]表示模型把0預測為0的樣本概率總和為5.53879372e+03。arrays3表示模型把樣本的label預測為predict的概率平均值,arrays3=arrays2/arrays1。例如arrays3[0][0]表示模型把0預測為0的樣本概率均值為0.92699476。從arrays3可以看出,主對角線的值(表示模型預測正確的概率均值)還是蠻大的,其它值不是很大,說明模型的整體性能還是挺優(yōu)的。
好,下面解決上面埋下的伏筆: 3,7的準確率怎么那么低,答案得在arrays3中尋找,我們得看label為3時,分為predict的情況,從arrays3可以看出,arrays3[3][0]較大,表示模型把3錯分為0的概率,再去看對應的arrays1[3][0]=9, 表示模型把3錯分為0的樣本數(shù)為9,數(shù)據(jù)量不是很大啊,然后我們再去查看這9個樣本的情況,發(fā)現(xiàn)是自己標注錯了,好了,這不是模型的鍋,模型是還是不錯的。同理,分析7的準確率情況。
經(jīng)過以上的環(huán)節(jié),基本深度學習的模型可以出第一版本了,之后再根據(jù)業(yè)務需求看模型是否需要迭代。
感謝鵬哥帶我。
注:圖片全部為實驗數(shù)據(jù)圖片
—END—
如果想加入我們,后臺留言吧
微信
Longlongtogo
公眾號內(nèi)容
1 圖像基礎|2 深度學習|3 行業(yè)信息
往期精彩
?
【深度學習圖像項目實戰(zhàn)-從入門到上線1】怎樣學會科學的調(diào)研并啟動一個項目。
?
【技術綜述】一文道盡softmax loss及其變種。
總結
以上是生活随笔為你收集整理的【学员分享】深度学习计算机视觉,两个星期从入门到上线的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【深度学习图像项目实战-从入门到上线1】
- 下一篇: 【干货·课程】言有三的深度学习从入门到上