一、為什么研究深度學習
深度學習是有史以來發明的最為優美的編程范式之一。在傳統的方法中,我們告訴計算機做什么?把大問題分解成許多小的、精確定義的問題,通過計算機強大的計算能力,得出解析解或者近似解,從而輔助現實生活中很多問題的解決。而這個思路的瓶頸顯而易見就是我們的建模和編碼能力——如果計算機理解的問題是不正確的、不完善的,那么它肯定無法獲得准確的解釋。而深度學習則是提供了系統的方法,來提取系統中的最優特征,並且直接引導模型的建成。
1、今日深度學習的理論成熟、硬件支持已經比較完善




並且在傳統問題上獲得更好的成功率:圖像分割、圖像識別、圖像增強……
2、圖像處理和深度學習結合緊密,
深度學習已經成為CV研究的標配
第一,“一圖頂千言”,圖像、視頻數據本身就是天生的“大數據”,並且數據和數據之間“強相關”,適合深度學習算法進行研究;此外,傳統的圖像處理任務非常適合在深度學習領域遷移。
第二,深度學習算法的通用性很強,剛才提到的檢測,在傳統算法里面,針對不同的物體需要定制化不同的算法。相比來看,基於深度學習的算法更加通用,比如faster RCNN在人臉、行人、一般物體檢測任務上都可以取得非常好的效果。
第三,深度學習獲得的特征(feature)有很強的遷移能力。所謂特征遷移能力,指的是在A任務上學習到一些特征,在B任務上使用也可以獲得非常好的效果。例如在ImageNet(物體為主)上學習到的特征在場景分類任務上也能取得非常好的效果。
3、研究百花齊放,落地仍需時間
各行各業已經積累了豐富的數據,論文能夠實現得到非常好的效果,但是由於成本、功耗、理念
等問題,深度學習技術
落地應用需走向垂直化——有着豐富的市場前景,強烈的需求。
二、怎樣學習
學習是因人而異的,但是重點是有共性的,特別是深度學習的曲線肯定比較陡峭,並且受限於資源等多方面因素,一點要注重時刻總結反思,勤奮探索:
1、打好基礎。能夠理解神經網絡乃至深度學習的基本思路,比如SGD,不僅要能夠理解,而且要能夠編碼;
2、基本的Python編碼能力,因為這塊調試的時候系統影響比較大,很多變量是不可見的,所以必須要能夠有比較好的編碼能力;
3、運用先進工具,我們使用kares和colab解決相關問題;
4、不斷學習、反思、交流。兼容並包。
5、專注於實際運用、算法的落地。
分享我的學習研究圖譜
產出&創建解決實際問題的項目
|
|||
DeepFakes換臉
|
以圖搜圖CBIR系統
|
AutoML
|
視頻識別
|
LEW數據集人臉識別系統實驗
|
ImageNet圖像分類實驗
|
ImageNet圖像分割
|
紋理合成StyleTransform
|
Mnist系統實驗
|
RCNN
|
VGG
|
GoogleNN
|
Keras基本知識
|
|||
Network2可控可理解小型網絡
|
Kares+Colab(可運行GPU網絡)
|
||
Python、Numpy等語法和程序設計基本環境
|
三、現在開始,學習那些東西
首先要解決的是基礎問題;
1、
Python
、
Numpy
等語法和程序設計基本環境;
2、基本程序設計和訓練環境的搭建,包括單機和聯機的;
3、dl的基本原理,SGD為主;
4、kares解決基本訓練問題。
關鍵是提升思路,這樣我們心里有基礎,手里有工具,眼睛里能夠看到問題,才能腳踏實地地區解決現實的問題,提升自己的價值。