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