簡明機器學習教程——實踐篇(一):從感知機入手_簡明

來源:互聯網
上載者:User

有那麼一段時間不出乾貨了,首頁都要被每周歌詞霸佔了,再不寫一點東西都要變成鹹魚了。進入正題。本篇教程的目標很明顯,就是實踐。進一步的來說,就是,當你學到了一些關於機器學習的知識後,怎樣通過實踐以加深對內容的理解。這裡,我們從李航博士的《統計學習方法》的第2章感知機來做例子,由此引出大致的學習方法。需要注意的是,這篇教程並不是來介紹感知機模型的,而是用來說明如何學習並實踐一個模型的,所以對感知機的解釋不會很詳細。本篇教程的內容較基礎,內容主要面向對機器學習有興趣且有初步瞭解的人。由於本文目標人群特殊,加之作者水平實在有限,有表述不嚴謹或錯誤之處,還請各路大神多多指出。本篇需要讀者的準備:matlab(測試模型用)、熱愛機器學習的大腦 (啊喂我的嚴肅氣氛。) 。 首先:瞭解模型 模型類型

當我們在學習一個模型時,很重要的一點就是我們要瞭解這個模型的作用,以及其適用的情況。下面我們就來分析感知機:
感知機(perceptron)是二類分類的線性分類模型,其輸入為執行個體的特徵向量,輸出為執行個體的類別,取+1和-1二值。開篇第一句,我們就能對這個模型建立起一個大概的架構了。首先,感知機是一個二類分類模型,也就是說感知機只能分類出兩個類別。其次,感知機是線性分類模型,也就是說感知機這個模型所適用的資料必須是線性可分的。到此為止,對於感知機的適用範圍,我們已經知道了不少:首先,感知機是判別模型,適用於分類問題,且可以區分的類別數為2類;其次,感知機是線性分類模型。如果你還是不理解感知機適用的問題類型,那我在這裡舉個例子:在二維的情況下,感知機相當於在平面上劃一根線,從而把平面分成兩半;在三維的情況下,感知機相當於拿一把菜刀在空間裡切一刀,從而把空間分為兩類。這兩句話在其適用範圍內,等價於下面這句話:感知機對應於輸入空間(特徵空間)中將執行個體劃分為正負兩類的分離超平面(三維下是“菜刀”),屬於判別模型。 模型

下式即感知機模型中,將輸入空間映射到輸出空間的函數:

w就是模型的權值(weight),又稱權重;b即偏置(bias)。其中的sign函數定義如下(有些地方作:sgn):

需要注意的是,一般情況下,sign(0)的值是0。這裡為了保證模型輸出為+1或-1,故規定sign(0)=+1。根據模型,我們不難看出感知機的幾何意義。線性方程  就是分開空間的超平面。其中,w是平面的一個法向量(幾何上),b就是其截距。 訓練 損失函數

簡而言之,最小化損失函數。首先,定義(經驗)損失函數(詳細過程請見原書2.2.2 P27):

損失函數,可以理解為是對感知機模型錯誤分類程度的評估函數。有了損失函數,我們就可以將訓練感知機問題轉化為極小化損失函數問題。
普通形式——梯度下降

這裡,我們採用梯度下降法(gradient descent)的變式隨機梯度下降法(Stochastic Gradient Descent)進行極小化。關於兩種演算法的關係、優劣均不在本文討論範圍內,故省略。偏導求解梯度:


演算法步驟如下: 選擇初始超平面S,即選擇 。 隨機播放一個誤分類點 ,更新w、b。其中,α 是每次迭代的步長,又稱為學習率。 重複2,直到無分類點為止。

不難發現,若資料集是線性可分的,那麼損失函數最終將會等於0。 實踐

下面,我們就來用matlab來實現感知機。首先是模型預測函數predict.m(防止重複內建函數sign,作sgn): MATLAB 1 2 3 4 5 function [ y ] = predict ( x , w , b ) y = sgn ( x * w + b ) ;   end

之後是損失函數costFunc.m。這裡採用了向量化的方式以避免迴圈: MATLAB 1 2 3 4 5 6 7 function [ J ] = costFunc ( w , b , X , y ) % the cost function of perceptron model .     J = sum ( ( X * w + b ) . * y ) ;   end

接下來就是關鍵區段——SGD演算法訓練模型了(train_SDG.m),首先初始化: MATLAB 1 2 3 4

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.