什麼是機器學習?
很難通過編寫程式解決像識別三維空間內的物件的問題。
我們不知道如何處理問題, 或難以用程式描述問題;
即使我們知道怎麼處理, 但程式可能會很複雜;
很難通過寫程式計算信用卡交易中出現欺詐的概率……
可能不存在既簡單又可靠的規則, 因此我們需要結合許多弱規則;
欺詐是一個動態的過程, 需要不斷改變程式;
機器學習方法不是通過手寫程式以執行某個特定任務, 而是通過收集大量的樣例來訓練模型, 模型對給定的輸入產生正確的結果。
機器學習演算法從樣例中學習並生成能執行該任務的程式。
通過學習演算法產生的程式與典型的手寫程式有很大不同, 前者可能包含數百萬的數位;
一旦模型訓練好, 程式就有預測的能力;
如果輸入資料改變, 由學習演算法產生的程式也可能會改變;
目前, 強大的計算力成本比雇傭程式師所需的成本低。
應用識別模式
識別現實世界中的物件;
面部識別或識別面部表情;
語音辨識……
識別異常
識別異常的信用卡交易序列;
識別核電廠感測器讀數不尋常的模式……
預測
股價, 匯率, 喜歡的電影……
機器學習的標準示例在果蠅上進行了大量的遺傳學研究。
方便, 因為它們繁殖快;
我們已經很瞭解它們;
手寫數位識別的MNIST資料集。
MNIST資料集是公開的,
MNIST是許多機器學習中首選的資料集;
我們將使用MNIST作為我們的標準任務。
從圖中可以看出很難識別數位“2”
ImageNet 是一個電腦視覺系統識別專案, 是目前世界上圖像識別最大的資料庫。
在130多萬張高解析度圖像中有1000個不同的物件類。
在2010年的比賽中, 即使是性能最好的系統首次預測錯誤率也高達47%, 在連續5次預測中, 錯誤率降低到25%;
Jitendra Malik(著名的神經網路懷疑論者)表示, 這場比賽是考驗深層神經網路是否適用於物件的識別。
在2012年, 神經網路給人們留下了深刻的印象, 首次預測錯誤率不到40%, 連續運行5次, 錯誤率最低可少於20%。
語音辨識任務語音辨識系統分幾個階段:預處理、聲學模型、解碼。
由George Dahl和Abdel-rahman Mohamed率先開創的深層神經網路正在取代以前的機器學習方法。
神經網路是什麼?研究神經計算的原因
為了瞭解大腦如何運行;
瞭解由神經元激勵的平行計算特性, 瞭解神經元的自我調整連接;
神經網路應該擅長大腦所擅長做的事情(如識別能力);
使用新穎的演算法解決實際問題;
即使它們並不是大腦實際的運行方式, 神經網路也很強大。
典型的皮質神經元物理結構
帶有分支的軸突(axons)、收集其它神經元的輸入的樹突(dendrite);
大腦如何工作每個神經元都接收來自其它神經元的輸入。
一些神經元也連接到受體;
皮質神經元使用尖峰進行交流資訊;
連接神經元的輸入受突觸權重控制, 權重值可正可負。
調節突觸權重, 可使網路執行強大的計算。
物件識別, 自然語言理解, 做決策, 控制身體行為;
模組化和大腦大腦皮層的不同部位負責不同功能。
大腦的局部損傷會造成特定的影響;
執行特定的任務血液流向特定的區域;
早期腦損傷能夠恢復;
大腦皮層由通用材料構成,
快速的平行計算以增加靈活性;
給傳統電腦賦予存儲順序的程式以增加靈活性, 但這需要非常快速的處理器來處理大規模的計算;
一些簡單的神經元模型理想化的神經元
建模通常會考慮到理想化(如原子)
忽略不重要的複雜細節;
利用數學知識, 與我們熟悉的系統類比;
一旦我們理解了基本原理, 再增加系統的複雜性, 使模型更可靠;
理解模型的錯誤或不足是很重要的(例如, 傳遞真實值得是神經元而不是離散的活動尖峰);
線性神經元很簡單, 是理解更複雜神經元的基石。
二元閾值神經網路
由McCulloch-Pitts (1943)提出: 受Von Neumann影響。
首先計算輸入的加權和;
如果加權總和超過閾值,則發送固定大小的活動峰值;
McCulloch和Pitts認為,每個尖峰都代表一個命題的真值並且用每個神經元組合真值計算另一個命題的真值!
有兩種等效的數學方法來表示二元閾值神經網路。
整流線性神經元(有時稱為線性閾值神經元)
他們計算其輸入的線性加權和,輸出是總輸入的非線性函數。
Sigmoid神經元
使用了logistic函數,平滑有界;有很好的微分形式,使學習變的容易。
隨機二元閾值神經網路它們使用與邏輯回歸單元相同的方程式,但是他們邏輯回歸的輸出視為在短時間內視窗產生尖峰的概率。
機器學習的類型監督學習
給定輸入向量(資料)預測輸出。
強化學習
學習選擇最大化收益的行動。
無監督學習
找到輸入資料良好的內在結構。
監督學習的兩大類型每個輸入樣例包括輸入向量x和對應的目標輸出t。
回歸:目標輸出是一個數值或向量。
如股票的價格;
明天中文的氣溫;
分類:目標輸出是一個類標籤。
比如識別物件是“貓”,還是“狗”……
監督學習工作的典型方式選擇模型y=f(x; W),數值參數W(可能為向量或更複雜的矩陣),將輸入向量x映射到預測結果y。
學習過程意味著調參W,以縮小每次預測與實際結果的差異;
對於回歸,通常以預測結果t與實際結果y的差異(1/2*(t-y)^2)來衡量模型準確性;對於分類,有更明智的選擇。
強化學習在強化學習中,輸出是動作或動作序列,唯一的監督信號是“數值獎勵”。
強化學習
選擇採取什麼行動的前提的最大化未來的獎勵的預期總和;
我們通常使用折扣因素來延遲獎勵,以便於對於未來我們不需要考慮太遠;
強化學習很困難。
獎勵通常會被延遲,所以很難知道我們出錯了;
數值獎勵不提供太多的詳細資訊。
無監督學習大約40年來,機器學習社區基本上忽視了無監督的學習。
一些廣泛使用的機器學習定義實際上不包括它;
許多研究人員認為聚類是無監督學習的唯一形式;
很難說無監督學習的目的是什麼。
一個主要目標是找出輸入的內在表示(結構),這些結構可能對於後續的強化學習和監督學習是有用的;
降維:方便視覺化資料,方便儲存資料;加速機器學習過程;
二元閾值神經網路由McCulloch-Pitts (1943)提出: 受Von Neumann影響。
首先計算輸入的加權和;
如果加權總和超過閾值,則發送固定大小的活動峰值;
McCulloch和Pitts認為,每個尖峰都代表一個命題的真值並且用每個神經元組合真值計算另一個命題的真值!
有兩種等效的數學方法來表示二元閾值神經網路。
整流線性神經元(有時稱為線性閾值神經元)
他們計算其輸入的線性加權和,輸出是總輸入的非線性函數。
Sigmoid神經元
使用了logistic函數,平滑有界;有很好的微分形式,使學習變的容易。
隨機二元閾值神經網路它們使用與邏輯回歸單元相同的方程式,但是他們邏輯回歸的輸出視為在短時間內視窗產生尖峰的概率。
機器學習的類型監督學習
給定輸入向量(資料)預測輸出。
強化學習
學習選擇最大化收益的行動。
無監督學習
找到輸入資料良好的內在結構。
監督學習的兩大類型每個輸入樣例包括輸入向量x和對應的目標輸出t。
回歸:目標輸出是一個數值或向量。
如股票的價格;
明天中文的氣溫;
分類:目標輸出是一個類標籤。
比如識別物件是“貓”,還是“狗”……
監督學習工作的典型方式選擇模型y=f(x; W),數值參數W(可能為向量或更複雜的矩陣),將輸入向量x映射到預測結果y。
學習過程意味著調參W,以縮小每次預測與實際結果的差異;
對於回歸,通常以預測結果t與實際結果y的差異(1/2*(t-y)^2)來衡量模型準確性;對於分類,有更明智的選擇。
強化學習在強化學習中,輸出是動作或動作序列,唯一的監督信號是“數值獎勵”。
強化學習
選擇採取什麼行動的前提的最大化未來的獎勵的預期總和;
我們通常使用折扣因素來延遲獎勵,以便於對於未來我們不需要考慮太遠;
強化學習很困難。
獎勵通常會被延遲,所以很難知道我們出錯了;
數值獎勵不提供太多的詳細資訊。
無監督學習大約40年來,機器學習社區基本上忽視了無監督的學習。
一些廣泛使用的機器學習定義實際上不包括它;
許多研究人員認為聚類是無監督學習的唯一形式;
很難說無監督學習的目的是什麼。
一個主要目標是找出輸入的內在表示(結構),這些結構可能對於後續的強化學習和監督學習是有用的;
降維:方便視覺化資料,方便儲存資料;加速機器學習過程;