
假定,你已經收集了一個資料集,建立了一個神經網路,并訓練了您的模型,
但是,盡管你投入了數小時(有時是數天)的作業來創建這個模型,它還是能得到50-70%的準確率,這肯定不是你所期望的,
下面是一些提高模型性能指標的策略或技巧,可以大大提升你的準確率,
得到更多的資料
這無疑是最簡單的解決辦法,深度學習模型的強大程度取決于你帶來的資料,增加驗證準確性的最簡單方法之一是添加更多資料,如果您沒有很多訓練實體,這將特別有用,
如果您正在處理影像識別模型,您可以考慮通過使用資料增強來增加可用資料集的多樣性,這些技術包括從將影像翻轉到軸上、添加噪聲到放大影像,如果您是一個強大的機器學習工程師,您還可以嘗試使用GANs進行資料擴充,

請注意,您使用的增強技識訓更改影像的整個類,例如,在y軸上翻轉的影像沒有意義!
添加更多的層
向模型中添加更多層可以增強它更深入地學習資料集特性的能力,因此它將能夠識別出作為人類可能沒有注意到的細微差異,
這個技巧圖解決的任務的性質,
對于復雜的任務,比如區分貓和狗的品種,添加更多的層次是有意義的,因為您的模型將能夠學習區分獅子狗和西施犬的微妙特征,
對于簡單的任務,比如對貓和狗進行分類,一個只有很少層的簡單模型就可以了,
更多的層->更微妙的模型

更改影像大小
當您對影像進行預處理以進行訓練和評估時,需要做很多關于影像大小的實驗,
如果您選擇的影像尺寸太小,您的模型將無法識別有助于影像識別的顯著特征,
相反,如果您的影像太大,則會增加計算機所需的計算資源,并且/或者您的模型可能不夠復雜,無法處理它們,
常見的影像大小包括64x64、128x128、28x28 (MNIST)和224x224 (vgg -16),
請記住,大多數預處理演算法不考慮影像的高寬比,因此較小尺寸的影像可能會在某個軸上收縮,

從一個大解析度的影像到一個小尺寸的影像,比如28x28,通常會導致大量的像素化,這往往會對你的模型的性能產生負面影響
增加訓練輪次
epoch基本上就是你將整個資料集通過神經網路傳遞的次數,以+25、+100的間隔逐步訓練您的模型,
只有當您的資料集中有很多資料時,才有必要增加epoch,然而,你的模型最終將到達一個點,即增加的epoch將不能提高精度,
此時,您應該考慮調整模型的學習速度,這個小超引數決定了你的模型是達到全域最小值(神經網路的最終目標)還是陷入區域最小值,

全域最小是神經網路的最終目標,
減少顏色通道
顏色通道反映影像陣列的維數,大多數彩色(RGB)影像由三個彩色通道組成,而灰度影像只有一個通道,
顏色通道越復雜,資料集就越復雜,訓練模型所需的時間也就越長,
如果顏色在你的模型中不是那么重要的因素,你可以繼續將你的彩色影像轉換為灰度,
你甚至可以考慮其他顏色空間,比如HSV和Lab,

RGB影像由三種顏色通道組成:紅、綠、藍
轉移學習
遷移學習包括使用預先訓練過的模型,如YOLO和ResNet,作為大多數計算機視覺和自然語言處理任務的起點,
預訓練的模型是最先進的深度學習模型,它們在數百萬個樣本上接受訓練,通常需要數月時間,這些模型在檢測不同影像的細微差別方面有著驚人的巨大能力,
這些模型可以用作您的模型的基礎,大多數模型都很好,所以您不需要添加卷積和池化

遷移學習可以大大提高你的模型的準確性~50%到90%!
https://www.nvidia.com/content/dam/en-zz/en_sg/ai-innovation-day-2019/assets/pdf/9_NVIDIA-Transfer-Learning-Toolkit-for-Intelligent-Video-Analytics.pdf
超引數
上面的技巧為你提供了一個優化模型的基礎,要真正地調整模型,您需要考慮調整模型中涉及的各種超引數和函式,如學習率(如上所述)、激活函式、損失函式、甚至批大小等都是非常重要的需要調整的引數,
總結
這些技巧是希望大家在不知道如何去做的時候可以快速的找到提高的思路,
還有無數其他方法可以進一步優化你的深度學習,但是上面描述的這些方法只是深度學習優化部分的基礎,
另外:每次改變深度學習模型時都要保存模型,這將幫助您重用先前的模型配置,如果它提供了更大的準確性,
作者:Jason Dsouza
deephub翻譯組
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/26474.html
標籤:其他
下一篇:專業音頻編碼器在網路電臺中的應用
