機器學習最近很火很厲害的樣子,是時候跟風了解一波了~
機器學習顧名思義是讓機器去進行學習,目前主要應用于自然語言處理(就是比如輸入法啊,語音輸入啊之類的)、模式識別、自動駕駛、各種數(shù)據(jù)的預測等等。
讓我們先對機器學習有一個寬廣的定義:
如果一個計算機程序?qū)δ愁惾蝿誘的用P衡量的性能根據(jù)經(jīng)驗E來自我完善,那么我們稱這個計算機程序在從經(jīng)驗E中學習,針對某類任務T,他的性能用P來衡量。
比如一個學習下西洋棋的程序,他的任務T就是下棋,他的性能標準P就是獲得勝利的百分比,訓練經(jīng)驗E就是不斷和自己下棋。
1.2.1選擇訓練經(jīng)驗
訓練經(jīng)驗有三個重要屬性:
- 訓練經(jīng)驗能否為系統(tǒng)的決策提供直接或間接的反饋。(也就是 說每一次的訓練能否讓程序?qū)W到東西)
- 學習器可以在多大程度上控制訓練樣例序列。(比如下棋程 序能否隨時擺出一個他想要的棋局進行學習,有點debug工具的 感覺,自如的控制函數(shù)的執(zhí)行過程)
- 訓練樣例的分布能多好的表示實例分布,通過樣例來衡量最終系統(tǒng)的性能P。(也就是說用來訓練的數(shù)據(jù)和真正用來測試的數(shù)據(jù)是不是盡可能的相似)
1.2.2選擇目標函數(shù)
之后我們要選擇目標函數(shù)。對于下棋程序來說,最終程序需要學會在合法的走子中選擇最佳走子,這代表了一類任務:合法走子定義了某個已知的巨大搜索空間,但是最佳的搜索策略未知。學習從合法走子中選出最好的走法,也就是表明要學習的信息類型是一個能對任何給定的棋局選出最好的走法的程序或函數(shù)。但是對于下棋程序,由于系統(tǒng)的訓練經(jīng)驗是間接地(也就是假定沒有人類高手去教給程序每一步應該怎么走,而是程序靠自己跟自己下棋去學習),所以很難去直接判斷在某個棋局里哪個走法是最好的,所以我們可以轉(zhuǎn)化一下,把目標函數(shù)改為一個評估函數(shù)V,它為任何給定棋局評一個分,好的棋局評分較高。那么系統(tǒng)如果學會了V,在下每一步棋時就可以先產(chǎn)生每一個走法的下一步棋局,然后用V選擇評分最高的棋局來確定最佳走子。通常要完美的學習這樣一個V的可操作形式(也就是在時間限制內(nèi)計算出結(jié)果)是很困難的,我們通常只希望學習算法得到近似的目標函數(shù),所以學習過程常被稱為函數(shù)逼近(function approximation)。
1.2.3選擇目標函數(shù)的表示
現(xiàn)在我們確定了理想的目標函數(shù)V,接下來要選擇一個被學習程序用來描述要學習的函數(shù)?的表示。一方面我們希望有一個最有表現(xiàn)力的描述來最大可能地逼近理想的目標函數(shù)V,另一方面?越有表現(xiàn)力的描述則需要越多的訓練數(shù)據(jù)。為了簡化討論,現(xiàn)在選擇一個簡單的表示法:對于任何給定的棋盤狀態(tài),函數(shù)?可以通過以下棋盤參數(shù)的線性組合來計算:


1.2.4選擇函數(shù)逼近算法
-
估計訓練值
我們使用一個簡單的方法,用后續(xù)棋局Successor(b)的估計值來估計棋局b的值。很明顯越接近游戲結(jié)束的棋局,?的估計越精確。
-
調(diào)整權(quán)值
要調(diào)整權(quán)值w,首先要定義最佳擬合(best fit)訓練數(shù)據(jù)的含義(也就是說什么樣的訓練結(jié)果是最好的)。一種常用的方法是把最佳的假設(shè)(或權(quán)值集合)定義為使訓練值和假設(shè)?預測出的值之間的誤差平方和E最小。
現(xiàn)在我們需要一個算法,在有新的訓練樣例時可以更新權(quán)值,并且對訓練數(shù)據(jù)中的差錯有較好的健壯性。其中一個這樣的算法叫做最小均方法(least mean squares)或叫LMS訓練法則。對于每個訓練樣例,它把權(quán)值向減小這個誤差的方向略微調(diào)整。
η是一個小的常數(shù)(如0.1),用來調(diào)整每次更新權(quán)值的幅度。
1.2.5最終設(shè)計

執(zhí)行系統(tǒng)(Performance System):用已學會的目標函數(shù)來解決給定的任務,把新問題(一個新棋局)作為輸入,產(chǎn)生一組解答路線作為輸出。
鑒定器(Critic):它以對弈的路線或歷史記錄作為輸入,輸出目標函數(shù)的一系列訓練樣例。也就是把棋局的實例轉(zhuǎn)化為訓練法則。
泛化器(Generalizer):它以訓練樣例作為輸入,產(chǎn)生一個輸出假設(shè)作為它對目標函數(shù)的估計。也就是將每個特定的訓練樣例中泛化出一個一般的特征,使這個一般函數(shù)能覆蓋這些樣例和其它的樣例。在這個例子中,泛化器對應LMS算法。
實驗生成器(Experiment Generator):它以當前的假設(shè)(學到的函數(shù))作為輸入,輸出一個新的問題(一個新棋局)讓系統(tǒng)去探索。它的作用是挑選新的實踐問題,以使整個系統(tǒng)的學習速率最大化。
以上只是一個機器學習的簡單模型,用來概述機器學習的基本方法。實際上在各個步驟中都有更多更好的選擇。



