【機器學(xué)習(xí)】一篇白話機器學(xué)習(xí)概念
前言: 應(yīng)出版社約稿,計劃出個機器學(xué)習(xí)及深度學(xué)習(xí)通俗序列文章,不足之處還請多提建議。
4.1 機器學(xué)習(xí)簡介
機器學(xué)習(xí)看似高深的術(shù)語,其實就在生活中,古語有云:“一葉落而知天下秋”,意思是從一片樹葉的凋落,就可以知道秋天將要到來。這其中蘊含了樸素的機器學(xué)習(xí)的思想,揭示了可以通過學(xué)習(xí)對“落葉”特征的經(jīng)驗,預(yù)判秋天的到來。
機器學(xué)習(xí)作為人工智能領(lǐng)域的核心組成,是非顯式的計算機程序?qū)W習(xí)數(shù)據(jù)經(jīng)驗以優(yōu)化自身算法,以學(xué)習(xí)處理任務(wù)的過程。一個經(jīng)典的機器學(xué)習(xí)的定義是:A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.(一個計算機程序在處理任務(wù)T上的指標(biāo)表現(xiàn)P可以隨著學(xué)習(xí)經(jīng)驗E積累而提高。)
如圖4.1 ,任務(wù)T即是機器學(xué)習(xí)系統(tǒng)如何正確處理數(shù)據(jù)樣本。指標(biāo)表現(xiàn)P即是衡量任務(wù)正確處理的情況。經(jīng)驗E可以體現(xiàn)在模型學(xué)習(xí)處理任務(wù)后的自身的參數(shù)值。模型參數(shù)意義即如何對各特征的有效表達(dá)以處理任務(wù)。
進一步的,機器學(xué)習(xí)的過程一般可以概括為:計算機程序基于給定的、有限的學(xué)習(xí)數(shù)據(jù)出發(fā)(常基于每條數(shù)據(jù)樣本是獨立同分布的假設(shè)),選擇某個的模型方法(即假設(shè)要學(xué)習(xí)的模型屬于某個函數(shù)的集合,也稱為假設(shè)空間),通過算法更新模型的參數(shù)值(經(jīng)驗),以優(yōu)化處理任務(wù)的指標(biāo)表現(xiàn),最終學(xué)習(xí)出較優(yōu)的模型,并運用模型對數(shù)據(jù)進行分析與預(yù)測以完成任務(wù)。由此可見,機器學(xué)習(xí)方法有四個要素:
數(shù)據(jù) 模型 學(xué)習(xí)目標(biāo) 優(yōu)化算法
我們通過將機器學(xué)習(xí)方法歸納為四個要素及其相應(yīng)地介紹,便于更好地理解各種算法原理的共性所在,而不是獨立去理解各式各樣的機器學(xué)習(xí)方法。
4.1.1 數(shù)據(jù)
數(shù)據(jù)是機器學(xué)習(xí)方法的基礎(chǔ)的原料,它通常由一條條數(shù)據(jù)(每一行)樣本組成,樣本由描述其各個維度信息的特征及目標(biāo)值標(biāo)簽(或無)組成。如圖4.2所示癌細(xì)胞分類任務(wù)的數(shù)據(jù)集:
4.1.2 模型
學(xué)習(xí)到“好”的模型是機器學(xué)習(xí)的直接目的。機器學(xué)習(xí)模型簡單來說,即是學(xué)習(xí)數(shù)據(jù)特征與標(biāo)簽的關(guān)系或者學(xué)習(xí)數(shù)據(jù)特征內(nèi)部的規(guī)律的一個函數(shù)。
機器學(xué)習(xí)模型可以看作是(如圖4.3):首先選擇某個的模型方法,再從數(shù)據(jù)樣本(x,(y))中學(xué)習(xí),優(yōu)化模型參數(shù)w以調(diào)整各特征的有效表達(dá),最終獲得對應(yīng)的決策函數(shù)f( x; w )。該函數(shù)將輸入變量 x 在參數(shù)w作用下映射到輸出預(yù)測Y,即Y= f(x; w)。
4.1.3 學(xué)習(xí)目標(biāo)
學(xué)習(xí)到“好”的模型,“好”即是模型的學(xué)習(xí)目標(biāo)。“好”對于模型也就是預(yù)測值與實際值之間的誤差盡可能的低。具體衡量這種誤差的函數(shù)稱為代價函數(shù) (Cost Function)或者損失函數(shù)(Loss Function),我們即通過以極大化降低損失函數(shù)為目標(biāo)去學(xué)習(xí)模型。
對于不同的任務(wù)目標(biāo),往往也需要用不同損失函數(shù)衡量,經(jīng)典的損失函數(shù)如:回歸任務(wù)的均方誤差損失函數(shù)及分類任務(wù)的交叉熵?fù)p失函數(shù)等。
均方誤差損失函數(shù)
衡量模型回歸預(yù)測的誤差情況,我們可以簡單地用所有樣本的預(yù)測值減去實際值求平方后的平均值,這也就是均方誤差(Mean Squared Error)損失函數(shù)。
交叉熵?fù)p失函數(shù)

4.1.4 優(yōu)化算法
有了極大化降低損失函數(shù)為目標(biāo)去學(xué)習(xí)“好”模型,而如何達(dá)到這目標(biāo)?我們第一反應(yīng)可能是直接求解損失函數(shù)最小值的解析解,獲得最優(yōu)的模型參數(shù)。遺憾的是,機器學(xué)習(xí)模型的損失函數(shù)通常較復(fù)雜,很難直接求最優(yōu)解。幸運的是,我們可以通過優(yōu)化算法(如梯度下降算法、牛頓法等)有限次迭代優(yōu)化模型參數(shù),以盡可能降低損失函數(shù)的值,得到較優(yōu)的參數(shù)值(數(shù)值解)。
梯度下降算法如圖4.4,可以直觀理解成一個下山的過程,將損失函數(shù)J(w)比喻成一座山,我們的目標(biāo)是到達(dá)這座山的山腳(即求解最優(yōu)模型參數(shù)w使得損失函數(shù)為最小值)。
要做的無非就是“往下坡的方向走,走一步算一步”,而下坡的方向也就是J(w)負(fù)梯度的方向,在每往下走到一個位置的時候,求解當(dāng)前位置的梯度,向這一步所在位置沿著最陡峭最易下山的位置再走一步。這樣一步步的走下去,一直走到覺得我們已經(jīng)到了山腳。
當(dāng)然這樣走下去,有可能我們不是走到山腳(全局最優(yōu)),而是到了某一個的小山谷(局部最優(yōu)),這也后面梯度下降算法的調(diào)優(yōu)的地方。
對應(yīng)到算法步驟:
小結(jié)
本文我們首先介紹了機器學(xué)習(xí)的基本概念,并概括機器學(xué)習(xí)的一般過程:從數(shù)據(jù)出發(fā),通過設(shè)定了任務(wù)的學(xué)習(xí)目標(biāo),使用算法優(yōu)化模型參數(shù)去達(dá)到目標(biāo)。由此,重點引出了機器學(xué)習(xí)的四個組成要素(數(shù)據(jù)、模型、學(xué)習(xí)目標(biāo)及優(yōu)化算法),接下來我們會進一步了解機器學(xué)習(xí)算法的類別。
文章首發(fā)于算法進階,公眾號閱讀原文可訪問[GitHub項目源碼]
往期精彩回顧 本站qq群851320808,加入微信群請掃碼:
