学习模型
1.前言
本欄目所涉及的各種機器學習算法大多著重于如何使特定函數(shù)與數(shù)據(jù)集相似。所以在最開始的時候,我先對各種近似模型進行介紹。
2.線性模型
最簡單的線性模型是Θ*x。Θ表示模型的參數(shù),標量,通過對這個參數(shù)進行學習,完成函數(shù)的近似計算。這個模型對于參數(shù)Θ而言是線性的,過于簡單,實際中沒有太大應用價值。
實際應用中,經(jīng)常會對上面的線性模型進行相應的拓展,使其變成基于參數(shù)的線性模型,這樣就可以使線性模型也能用于表示非線性的輸入輸出了。
在上式中,(xj)是基函數(shù)向量(X)=((x1),(x2),(x3),...,(xb))T的第j個因子,Θj是參數(shù)向量Θ?=(Θ1,Θ2,Θ3,...,Θb)的第j個因子。b是指基函數(shù)的個數(shù)。
我們可以發(fā)現(xiàn),雖然上式依然是基于參數(shù)向量Θ的線性模式,但是,如果把基函數(shù)變成多項式的形式
(X)= (1,(x),(x^2),(x^3),...,(x^b-1))或者變成2m+1的三角多項式形式(X)=(1,sinx,cosx,sin2x,cos2x,...,sinmx,cosmx)。這種線性模型就可以表示非常復雜的非線性模型了。
3.核模型
在線性模型中,無論是多項式還是三角多項式,基函數(shù)與訓練樣本{(xi,yi)}i=1->n是毫不相關的。而核模型則會在基函數(shù)的設計時使用到輸入樣本{xi}i=1->n。
核模型,是以使用被稱為核函數(shù)的二元函數(shù)K(·),以K(x,xj)j=1->n的線性結合方式家已定義的:
在眾多核函數(shù)中,以高斯核函數(shù)的使用最為廣泛:
在高斯核函數(shù)中,對各個輸入樣本{xi}i=1->n進行高斯核配置,并把其高度{Θi}i=1->n作為參數(shù)進行學習,具體如下圖所示:
一維的高斯核模型
二維的高斯核模型
因此,在高斯模型中,一般只能在訓練集的輸入樣本附近對函數(shù)進行近似。與對輸入空間的全體函數(shù)進行近似的乘法模型不同,在高斯模型中,因為只能在訓練集的輸入樣本附近進行近似,所以從某種程度上來說也減輕了維數(shù)災難的影響。實際上,在和模型里,參數(shù)的個數(shù)不依賴于輸入變量x得維數(shù)d,只有訓練樣本n決定。因此,及時輸入維數(shù)d相當大,只要訓練樣本數(shù)n不是太大,也會在普通計算機的處理范圍之內(nèi)。而即使訓練樣本數(shù)n也很大,我們可以采用“批平均”作為核均值來進行計算。
核模型的另一個特征是,當輸入樣本x不滿足向量的時候,也能夠很容易地實現(xiàn)拓展。目前已經(jīng)有人提出輸入樣本x是字符串、決策樹或圖表等的函數(shù)。使用這種核函數(shù)進行機器學習算法,稱為核映射方法。
4.層級模型
與參數(shù)相關的非線性模型稱為非線性模型。如下所示:
上式中,(x;β)是含有參數(shù)向量β得基函數(shù)。與前面的基于參數(shù)的線性模型相似,層級模型是基于參數(shù)向量α=(α1,,2,,3,...,αb)的線性形式。但是因為層級模型的基函數(shù)里也包含參數(shù)向量β,所以層級模型又是基于參數(shù)向量Θ=(α,β)的線性形式。
基函數(shù)通常使用S型函數(shù):
或者高斯函數(shù):
S型函數(shù)模仿的是人類腦細胞的輸入輸出函數(shù),因此使用S型函數(shù)的層級模型也成為人工神經(jīng)網(wǎng)絡模型。需要注意的是這里用到的高斯函數(shù)!在核函數(shù)中帶寬和均值都是固定的,而在層級模型中,會對帶寬和均值進行學習。因此,我們一般認為層級模型能夠比核模型更加靈活的對函數(shù)進行近似。
S型函數(shù)
最簡單的層級模型就是三層神經(jīng)網(wǎng)絡的形式:
然而,在層級模型中,參數(shù)Θ與函數(shù)fΘ并不是一一對應的。例如,在b=2的人工神經(jīng)網(wǎng)絡模型中:
當上式的w1=w2=w,且r1=r2=r時,如果α1+α2是定值的話,就都會變成同一個函數(shù):
正是因為有這樣的特性,人工神經(jīng)網(wǎng)絡模型也以學習過程異常艱難而著稱。
總結
- 上一篇: 对抗样本与生成式对抗网络
- 下一篇: 『飞秋』测试驱动开发TDD系列(二)