一文讀懂什么是機器學習--3. 機器學習的方法?

一文讀懂什么是機器學習--1. 機器學習是什么?

一文讀懂什么是機器學習--2. 機器學習的范圍?

一文讀懂什么是機器學習--3. 機器學習的方法?

一文讀懂什么是機器學習--4. 機器學習的應(yīng)用及其子類?


本系列轉(zhuǎn)自微信公眾賬號機器學習算法與Python學習

機器學習的方法

(1)回歸算法

在大部分機器學習課程中,回歸算法都是介紹的第一個算法。原因有兩個:一.回歸算法比較簡單,介紹它可以讓人平滑地從統(tǒng)計學遷移到機器學習中。二.回歸算法是后面若干強大算法的基石,如果不理解回歸算法,無法學習那些強大的算法。回歸算法有兩個重要的子類:即線性回歸和邏輯回歸。

線性回歸?,也就是“如何擬合出一條直線最佳匹配我所有的數(shù)據(jù)?”

一般使用“最小二乘法”來求解。“最小二乘法”的思想是這樣的,假設(shè)我們擬合出的直線代表數(shù)據(jù)的真實值,而觀測到的數(shù)據(jù)代表擁有誤差的值。為了盡可能減小誤差的影響,需要求解一條直線使所有誤差的平方和最小。最小二乘法將最優(yōu)問題轉(zhuǎn)化為求函數(shù)極值問題。函數(shù)極值在數(shù)學上我們一般會采用求導數(shù)為0的方法。但這種做法并不適合計算機,可能求解不出來,也可能計算量太大。

計算機科學界專門有一個學科叫“數(shù)值計算”,專門用來提升計算機進行各類計算時的準確性和效率問題。例如,著名的“梯度下降”以及“牛頓法”就是數(shù)值計算中的經(jīng)典算法,也非常適合來處理求解函數(shù)極值的問題。梯度下降法是解決回歸模型中最簡單且有效的方法之一。從嚴格意義上來說,由于后文中的神經(jīng)網(wǎng)絡(luò)和推薦算法中都有線性回歸的因子,因此梯度下降法在后面的算法實現(xiàn)中也有應(yīng)用。

邏輯回歸?是一種與線性回歸非常類似的算法,但是,從本質(zhì)上講,線型回歸處理的問題類型與邏輯回歸不一致。線性回歸處理的是數(shù)值問題,也就是最后預測出的結(jié)果是數(shù)字,例如房價。而邏輯回歸屬于分類算法,也就是說,邏輯回歸預測結(jié)果是離散的分類,例如判斷這封郵件是否是垃圾郵件,以及用戶是否會點擊此廣告等等。

(2)神經(jīng)網(wǎng)絡(luò)

神經(jīng)網(wǎng)絡(luò)(也稱之為人工神經(jīng)網(wǎng)絡(luò),ANN)算法是80年代機器學習界非常流行的算法,不過在90年代中途衰落?,F(xiàn)在,攜著“深度學習”之勢,神經(jīng)網(wǎng)絡(luò)重裝歸來,重新成為最強大的機器學習算法之一。

神經(jīng)網(wǎng)絡(luò)的誕生起源于對大腦工作機理的研究。早期生物界學者們使用神經(jīng)網(wǎng)絡(luò)來模擬大腦。機器學習的學者們使用神經(jīng)網(wǎng)絡(luò)進行機器學習的實驗,發(fā)現(xiàn)在視覺與語音的識別上效果都相當好。在BP算法(加速神經(jīng)網(wǎng)絡(luò)訓練過程的數(shù)值算法)誕生以后,神經(jīng)網(wǎng)絡(luò)的發(fā)展進入了一個熱潮。BP算法的發(fā)明人之一是前面介紹的機器學習大牛Geoffrey Hinton(圖1中的中間者)(近期將提出一種新的BP算法,或者說一種新的神經(jīng)網(wǎng)絡(luò)的傳到算法)。

具體說來,神經(jīng)網(wǎng)絡(luò)的學習機理是什么?簡單來說,就是分解與整合。在著名的Hubel-Wiesel試驗中,學者們研究貓的視覺分析機理是這樣的。


圖6 Hubel-Wiesel試驗與大腦視覺機理

比方說,一個正方形,分解為四個折線進入視覺處理的下一層中。四個神經(jīng)元分別處理一個折線。每個折線再繼續(xù)被分解為兩條直線,每條直線再被分解為黑白兩個面。于是,一個復雜的圖像變成了大量的細節(jié)進入神經(jīng)元,神經(jīng)元處理以后再進行整合,最后得出了看到的是正方形的結(jié)論。這就是大腦視覺識別的機理,也是神經(jīng)網(wǎng)絡(luò)工作的機理。

讓我們看一個簡單的神經(jīng)網(wǎng)絡(luò)的邏輯架構(gòu)。在這個網(wǎng)絡(luò)中,分成輸入層,隱藏層,和輸出層。輸入層負責接收信號,隱藏層負責對數(shù)據(jù)的分解與處理,最后的結(jié)果被整合到輸出層。每層中的一個圓代表一個處理單元,可以認為是模擬了一個神經(jīng)元,若干個處理單元組成了一個層,若干個層再組成了一個網(wǎng)絡(luò),也就是"神經(jīng)網(wǎng)絡(luò)"。


圖7 神經(jīng)網(wǎng)絡(luò)的邏輯架構(gòu)

在神經(jīng)網(wǎng)絡(luò)中,每個處理單元事實上就是一個邏輯回歸?模型,邏輯回歸模型接收上層的輸入,把模型的預測結(jié)果作為輸出傳輸?shù)较乱粋€層次。通過這樣的過程,神經(jīng)網(wǎng)絡(luò)可以完成非常復雜的非線性分類。

下圖會演示神經(jīng)網(wǎng)絡(luò)在圖像識別領(lǐng)域的一個著名應(yīng)用,這個程序叫做LeNet,是一個基于多個隱層構(gòu)建的神經(jīng)網(wǎng)絡(luò)。通過LeNet可以識別多種手寫數(shù)字,并且達到很高的識別精度與擁有較好的魯棒性。


圖8 LeeNet的效果展示

右下方的方形中顯示的是輸入計算機的圖像,方形上方的紅色字樣“answer”后面顯示的是計算機的輸出。左邊的三條豎直的圖像列顯示的是神經(jīng)網(wǎng)絡(luò)中三個隱藏層的輸出,可以看出,隨著層次的不斷深入,越深的層次處理的細節(jié)越低,例如層3基本處理的都已經(jīng)是線的細節(jié)了。LeNet的發(fā)明人就是前文介紹過的機器學習的大牛Yann LeCun(圖1右者)。

進入90年代,神經(jīng)網(wǎng)絡(luò)的發(fā)展進入了一個瓶頸期。其主要原因是盡管有BP算法的加速,神經(jīng)網(wǎng)絡(luò)的訓練過程仍然很困難。因此90年代后期支持向量機(SVM)算法取代了神經(jīng)網(wǎng)絡(luò)的地位。

(3)SVM(支持向量機)

支持向量機算法是誕生于統(tǒng)計學習界,同時在機器學習界大放光彩的經(jīng)典算法。

支持向量機算法從某種意義上來說是邏輯回歸算法的強化通過給予邏輯回歸算法更嚴格的優(yōu)化條件,支持向量機算法可以獲得比邏輯回歸更好的分類界線。但是如果沒有某類函數(shù)技術(shù),則支持向量機算法最多算是一種更好的線性分類技術(shù)。

但是,通過跟高斯“核”的結(jié)合,支持向量機可以表達出非常復雜的分類界線,從而達成很好的的分類效果?!昂恕笔聦嵣暇褪且环N特殊的函數(shù),最典型的特征就是可以將低維的空間映射到高維的空間。

例如下圖所示:


圖9 支持向量機圖例

我們?nèi)绾卧诙S平面劃分出一個圓形的分類界線?在二維平面可能會很困難,但是通過“核”可以將二維空間映射到三維空間,然后使用一個線性平面就可以達成類似效果。也就是說,二維平面劃分出的非線性分類界線可以等價于三維平面的線性分類界線。于是,我們可以通過在三維空間中進行簡單的線性劃分就可以達到在二維平面中的非線性劃分效果。


圖10 三維空間的切割

支持向量機是一種數(shù)學成分很濃的機器學習算法(相對的,神經(jīng)網(wǎng)絡(luò)則有生物科學成分)。在算法的核心步驟中,有一步證明,即將數(shù)據(jù)從低維映射到高維不會帶來最后計算復雜性的提升。于是,通過支持向量機算法,既可以保持計算效率,又可以獲得非常好的分類效果。因此支持向量機在90年代后期一直占據(jù)著機器學習中最核心的地位,基本取代了神經(jīng)網(wǎng)絡(luò)算法。直到現(xiàn)在神經(jīng)網(wǎng)絡(luò)借著深度學習重新興起,兩者之間才又發(fā)生了微妙的平衡轉(zhuǎn)變。

(4)聚類算法(無監(jiān)督)

前面的算法中的一個顯著特征就是我的訓練數(shù)據(jù)中包含了標簽,訓練出的模型可以對其他未知數(shù)據(jù)預測標簽。在下面的算法中,訓練數(shù)據(jù)都是不含標簽的,而算法的目的則是通過訓練,推測出這些數(shù)據(jù)的標簽。這類算法有一個統(tǒng)稱,即無監(jiān)督算法(前面有標簽的數(shù)據(jù)的算法則是有監(jiān)督算法)。無監(jiān)督算法中最典型的代表就是聚類算法。

讓我們還是拿一個二維的數(shù)據(jù)來說,某一個數(shù)據(jù)包含兩個特征。我希望通過聚類算法,給他們中不同的種類打上標簽,我該怎么做呢?簡單來說,聚類算法就是計算種群中的距離,根據(jù)距離的遠近將數(shù)據(jù)劃分為多個族群。

聚類算法中最典型的代表就是K-Means算法。

(5)降維算法

降維算法也是一種無監(jiān)督學習算法,其主要特征是將數(shù)據(jù)從高維降低到低維層次。在這里,維度其實表示的是數(shù)據(jù)的特征量的大小。

例如,房價包含房子的長、寬、面積與房間數(shù)量四個特征,也就是維度為4維的數(shù)據(jù)??梢钥闯鰜?,長與寬事實上與面積表示的信息重疊了,例如面積=長 × 寬。通過降維算法我們就可以去除冗余信息,將特征減少為面積與房間數(shù)量兩個特征,即從4維的數(shù)據(jù)壓縮到2維。于是我們將數(shù)據(jù)從高維降低到低維,不僅利于表示,同時在計算上也能帶來加速。

降維算法的主要作用是壓縮數(shù)據(jù)與提升機器學習其他算法的效率。通過降維算法,可以將具有幾千個特征的數(shù)據(jù)壓縮至若干個特征。另外,降維算法的另一個好處是數(shù)據(jù)的可視化,例如將5維的數(shù)據(jù)壓縮至2維,然后可以用二維平面來可視。降維算法的主要代表是PCA算法(即主成分分析算法)。

(6)推薦算法

推薦算法是目前業(yè)界非?;鸬囊环N算法,在電商界,如亞馬遜,天貓,京東等得到了廣泛的運用。推薦算法的主要特征就是可以自動向用戶推薦他們最感興趣的東西,從而增加購買率,提升效益。

推薦算法有兩個主要的類別:

一類是基于物品內(nèi)容的推薦,是將與用戶購買的內(nèi)容近似的物品推薦給用戶,這樣的前提是每個物品都得有若干個標簽,因此才可以找出與用戶購買物品類似的物品,這樣推薦的好處是關(guān)聯(lián)程度較大,但是由于每個物品都需要貼標簽,因此工作量較大。

另一類是基于用戶相似度的推薦,則是將與目標用戶興趣相同的其他用戶購買的東西推薦給目標用戶,例如小A歷史上買了物品B和C,經(jīng)過算法分析,發(fā)現(xiàn)另一個與小A近似的用戶小D購買了物品E,于是將物品E推薦給小A。

兩類推薦都有各自的優(yōu)缺點,在一般的電商應(yīng)用中,一般是兩類混合使用。推薦算法中最有名的算法就是協(xié)同過濾算法。

(7)其他

除了以上算法之外,機器學習界還有其他的如高斯判別,樸素貝葉斯,決策樹等等算法。但是上面列的六個算法是使用最多,影響最廣,種類最全的典型。機器學習界的一個特色就是算法眾多,發(fā)展百花齊放。

下面做一個總結(jié),按照訓練的數(shù)據(jù)有無標簽,可以將上面算法分為監(jiān)督學習算法和無監(jiān)督學習算法,但推薦算法較為特殊,既不屬于監(jiān)督學習,也不屬于非監(jiān)督學習,是單獨的一類。

監(jiān)督學習算法:線性回歸,邏輯回歸,神經(jīng)網(wǎng)絡(luò),SVM

無監(jiān)督學習算法:聚類算法,降維算法

特殊算法:推薦算法

除了這些算法以外,有一些算法的名字在機器學習領(lǐng)域中也經(jīng)常出現(xiàn)。但他們本身并不算是一個機器學習算法,而是為了解決某個子問題而誕生的。你可以理解他們?yōu)橐陨纤惴ǖ淖铀惴?,用于大幅度提高訓練過程。

其中的代表有:

梯度下降法,主要運用在線型回歸,

邏輯回歸,神經(jīng)網(wǎng)絡(luò),主要運用在推薦算法中;

牛頓法,主要運用在線型回歸中;

BP算法,主要運用在神經(jīng)網(wǎng)絡(luò)中;

SMO算法,主要運用在SVM中。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 0.前言## 機器學習[Machine Learning]在當今社會的火熱程度有目共睹,自己也一直想寫一下自己對M...
    流川楓AI閱讀 2,799評論 14 99
  • 又是深秋,與你與我 是個多情的日子 多情不寂寥 夜色闌珊,心沉如水 少了秋蟲的唧唧 遠處偶爾的狗吠聲把夜吵醒 此夜...
    與秋閱讀 396評論 2 3
  • 夢回樓蘭 一波駝鈴脆脆從悠遠的天際傳來,漫漫的黃沙,起起伏伏的丘陵,傾訴著千百年來不變的故事。斑斑駁駁不時露出地表...
    繁星如海閱讀 280評論 0 0
  • 我們都一樣,我也恨透了回憶這玩樣 應(yīng)該說每個在感情的世界里受傷害的人兒都一樣 我們總是在不經(jīng)意的想起過去 習慣性的...
    路g閱讀 301評論 0 0

友情鏈接更多精彩內(nèi)容