1.1 前言
《模式識別和機器學習》和《統計學習基礎》
計算機學科是動手的學科,沒有足夠的動手能力難以取得很好的成果。
1.2 深度學習簡介
與其設計一個解決問題的程序,不如從最終需求入手來尋找一個解決方案。
機器學習和深度學習:用數據編程。
機器學習是一門討論各式各樣適用於不同問題的函數形式,以及如何使用數據來有效的獲取函數參數具體值的學科。
深度學習是機器學習中的一類函數,他們的形式通常爲多層神經網絡。
1.2.1 起源
數據分析是大部分自然學科的本質,我們希望從日常觀測中提取規則,並找尋不確定性。
圖靈《計算機器與智能》-圖靈測試:如果一個人在使用文本交互時不能區分他的對話對象到底是人類還是機器,那麼可人爲這臺機器是有智能的。
唐納德.赫布《行爲的組織》-赫布理論:強化合意的行爲、懲罰不合意的行爲、最終獲得優良的神經網絡參數。
神經網絡:
-交替使用線性與非線性處理單元,“層”。
-使用鏈式法則(即反向傳播)來更新網絡參數。
1.2.2 發展
機器學習和統計學習的最優選擇從廣義線性模型及核方法變化爲深度多層神經網絡。
深度學習發展的原因:
-優秀的容器控制方法,如丟棄法,大型網絡訓練不在受制於過擬合(大型神經網絡學會記憶大部分訓練數據的行爲)。這是靠在整個網絡中注入噪聲,例如訓練時隨機將權重替換爲隨機數字。
-注意力機制:如何在不增加參數的情況下擴展一個系統的記憶容量和複雜度。注意力機制使用了一個科學系的指針結構來構建出一個精妙的解決方案,。也就是說,與其在像機器需翻譯這樣的任務中記憶整個句子,不如記憶指向翻譯的中間狀態的指針。由於生成譯文不需要存儲整句原文的信息,這樣的結構使準確翻譯長句變成可能。
-記憶網絡和神經編碼器-解釋器這樣的多階設計使得針對推理過程的迭代建模方法變得可能。這些模型允許重複修改深度網絡的內部狀態,這樣就能模擬出推理鏈條上的各個步驟,就好像處理器在計算過程中修改內存一樣。
-對抗生成網絡的發明個。將採樣部分替換成任意的含有可微分參數的算法,這些參數被訓練到使得辨別器不能再分辨真實和生成的樣本。
-分佈式並行訓練算法。深度學習優化算法的很新:隨機梯度下降需要相對更小的批量,更小的批量降低GPU效率。
-並行計算的能力。
-深度學習框架。
1.2.3 成功案例
-智能助手。
-語音識別。
-物體識別
-遊戲
-自動駕駛。
1.2.4 特點
機器學習研究如何使計算機系統利用經驗改善性能。
表徵學習關注如何自動找出表示數據的合適方式,以便更好地將輸入變換爲正確的輸出。
深度學習是具有多級表示的表徵學習方法。在每一級,深度學習通過簡單的函數將該級的表示變換爲更高級的表示,因此深度學習模型也可以看做是由許多簡單函數複合而成的函數。當這些複合函數足夠多時,深度學習模型可以表達非常複雜的變換。
深度學習可以逐級表示越來越抽象的概念或者模式。深度學習將自動找出每一級表示數據的合適方式。
深度學習是端到端的訓練。並不是將單獨調試的部分拼湊起來組成一個系統,而是將整個系統組建好之後一起訓練。
從含參數統計描述轉向完全無參數的模型。當數據非常稀缺時,需要通過簡化對現實的假設來得到實用模型,當數據充足時,更好地擬合現實的無參數模型來替代這些含參數模型。
非最優解的包容、非凸非線性優化的使用以及用於嘗試沒有證明的方法。
1.2.5 小結
- 機器學習:如何使計算機系統利用經驗改善性能。
- 表徵學習關注如何自動找出表示數據的合適方式。
- 深度學習是具有多級表示的表徵學習方法。他可以逐級表示越來越多抽象的概念或模式。
- 深度學習所基於的用數據編程和神經網絡的核心思想已經研究數百年。
- 深度學習是工程師和科學家普適工具。
1.2.6 練習
1.3 如何使用本書
1.3.1 面向的讀者
中文教程:http://www.runoob.com/python3/python3-tutorial.html
1.3.2 內容和結構
1.3.3 代碼
Apache MXNet