最近一直在研究機器學習,看過兩本機器學習的書,而後又看到深度學習,對深度學習產生了濃厚的興趣,但願短期內能夠作到深度學習的入門和實踐,所以寫一個深度學習系列吧,經過實踐來掌握《深度學習》和 TensorFlow,但願作成一個系列出來,加油!git
學習內容包括了:github
1. 小象學院的《深度學習》課程算法
2. TensorFlow的官方教程設計模式
3. 互聯網上跟深度學習相關的教程網絡
整個深度學習,學習的過程是經過一條主線串聯起來的,這個知識結構總結的仍是蠻好的。框架
1. 線性迴歸 - 線性迴歸是基礎。機器學習
2. 神經網絡 - 線性迴歸引入非線性激勵(保留線性函數的信息,可是又要轉化成爲非線性,爲啥呢?線性的描述能力太有限了,大部分複雜問題都是非線性的)就造成了神經元,神經元組合在一塊兒就構成了最基礎的神經網絡,神經元和神經網絡都是深度學習的基礎。函數
3. 卷積神經網絡(CNN)- 神經網絡,經過卷積核構建成爲CNN(卷積神經網絡),爲何引入卷積核?如何引入卷積核?須要好好再理解和分析一下。學習
4. 卷積神經網絡(CNN)- 目標分類,圖像識別,人臉識別,物品識別,場景識別,文字識別,把卷積神經網絡研究明白就能夠完成大量的目標分類的功能。大數據
5. 卷積神經網絡(CNN)- 目標監測, 安防,自動駕駛,卷積神經網絡的進一步應用場景。
6. 循環神經網絡(RNN)- CNN時域迭代造成循環神經網絡
7. LSTM - Word2vec - 語句生成,自動翻譯,智能對話
8. 加強學習 - 圍棋,德州撲克,自動遊戲
9. 生成網絡,判別網絡,對抗網絡 - 無限數據
計劃與指望效果:
1. 理論講解,模型分析
2. TensorFlow 實例運行,調試(源碼共享)
3. 思想總結,資源分享,論文推薦,方便課後研究
能力進階:
1. 入門:明白概念,練習和原理。
2. 實踐:可以運用模型展開具體應用開發。
3. 提高:根據具體問題設計新的模型。
總結:理論+實踐+總結 => 解決全新的問題
提綱:
1. 深度學習:傳統到如今
2. 深度學習應用特色
3. 深度學習框架比較
4. TensorFlow 介紹
5. 一些基本深度學習概念
期待目標:
1. 瞭解深度學習發展
2. 清楚深度學習能力範圍
3. 知道常見深度學習框架
4. 會 安裝、運行、簡單調試 TensorFlow,瞭解 TF運行方式
5. 瞭解:神經元,卷積核,分類,迴歸等基本概念
深度學習:傳統到如今
1. 傳統機器學習
數據預處理 -> 特徵提取 -> 選擇分類器
數據預處理:歸一化,降維,去噪
特徵提取:人工設計模式圖像:SIFT,LBP,Fisher,Gabor,Hog 語言:MFCC,小波,Word2vec
選擇分類器:SVM,決策樹,隨機森林,貝葉斯網絡,線性迴歸,聚類
2. 深度學習
數據準備:數據,標籤
設計模型:CNN,RNN,CNN+RNN
訓練:調結構,損失函數,訓練函數
2010年 NEC-UIUC Lin CVPR 2011
2012年 SuperVision
2014年 GoogLeNet VGG
2015年 MSRA
推進因素:
1. 理論:CNN,RNN,ReLU
2. 數據:ImageNet,LFW
3. 硬件:Nvidia CUDA + GPU
總結:深度學習 = 硬件(CPU+GPU+FPGA+TPU) + 算法(CNN,RNN,ReLU)+大數據(ImageNet)
將來可能進展 - 無人駕駛
將來可能進展 - 無人超市
將來可能進展 - 自動翻譯
將來可能進展 - 我的助手
深度學習應用特色:
優勢:
學習能力強
覆蓋範圍廣,適用性好
可移植性好
ImageNet -> ImageNet Model -> 物品分類,目標檢測,人臉計算,場景識別,生成圖片
總結:5種類型的應用:物品分類,目標檢測,人臉計算,場景識別,生成圖像
缺點:
計算量大,便攜性差
硬件要求高
模型設計複雜
有可能被「Hack」
長於計算,弱於算計
深度學習框架比較
TensorFlow Python,文檔 +++,CNN兼容 +++,RNN兼容 ++,上手難易 +++,速度 ++,並行支持 ++,Keras兼容+,支持 Google
深度學習框架比較:
本課程選擇:TensorFlow
1. 文檔豐富,適合初學者
2. 安裝很是方便
3. 谷歌支持,長期有效
4. 自動求導,只需關注模型設計
5. Keras支持,方便迅速開發
緣由:
1. 統一模型標準,方便交流
2. 維持地位:TPU, Google Cloud,Future Market
3. 影響力 TF2016
TensorFlow 介紹 - 實例程序運行
1. 簡單程序:直線方程擬合(見Code:course_1_tf_lr.py)
2. 基本迭代:迭代次數,Learning Rate,模型結構,偏差對比
深度學習基本概念 - 神經元
深度學習基本概念 - 卷積核 - 圖像處理基本算子(邊界算子)
卷積核 - CNN卷積核Plot
本節總結:
1. 瞭解深度學習發展
2. 清楚深度學習能力範圍
3. 知道常見的深度學習框架
4. 會安裝、運行、簡單更改 TensorFlow
5. 瞭解:神經元,卷積核,分類,迴歸等基本概念
總結:
課程代碼:https://github.com/wiibrew/DeepLearningCourseCodes
https://github.com/wiibrew/DeepLearningCourseCodes/blob/master/course_1_tf_basic_operation.py
https://github.com/wiibrew/DeepLearningCourseCodes/blob/master/course_1_tf_lr.ipynb
https://github.com/wiibrew/DeepLearningCourseCodes/blob/master/course_1_tf_lr.ipynb