從程序員的角度說統(tǒng)計(jì)學(xué)習(xí)方法概論

應(yīng)該說這是在看完《統(tǒng)計(jì)學(xué)習(xí)方法》這本書后有的想法豆励,也算是讀書筆記烟央⊥撑担《統(tǒng)計(jì)學(xué)習(xí)方法》是李航寫的,重點(diǎn)偏向于基于統(tǒng)計(jì)的監(jiān)督學(xué)習(xí)疑俭,個(gè)人覺得這本書好的地方是在敘述完理論之后粮呢,通常會(huì)有一個(gè)比較形象的小例子,在紙上演算一下具體的過程。這就讓本來很抽象的數(shù)學(xué)公式變得相當(dāng)直觀啄寡,而且對(duì)于用代碼實(shí)現(xiàn)也會(huì)有比較大的幫助豪硅。


對(duì)于程序員來說,特別是很少見數(shù)學(xué)公式的來說挺物,要讀一本這樣滿是公式的書其實(shí)是比較有挑戰(zhàn)的懒浮。我試著從程序員能理解的角度去闡述這些概念。嚴(yán)格意義上來說我只是寫了一年多程序的不合格程序員识藤,所以很多時(shí)候還是得上公式嵌溢,因?yàn)楣皆诤芏鄷r(shí)候是最精簡(jiǎn)的,就像很多優(yōu)美的代碼一樣蹋岩,他是無可替代的赖草。

簡(jiǎn)單的例子

假如有下面這個(gè)問題:

一小面店在過去半年的盈利分別為:10, 12, 9, 13, 11, 12.3 單位為千。然后問題是預(yù)測(cè)下個(gè)月的收入是多少剪个?

我估計(jì)絕大部分做過機(jī)器學(xué)習(xí)的人都會(huì)跟你說秧骑,這是最簡(jiǎn)單的一元線性回歸就能解決的。然后不求甚解的家伙可能會(huì)給你一段代碼扣囊,畢竟在Python 里做機(jī)器學(xué)習(xí)scikit-learn 就像是個(gè)大寶箱乎折,基本上所有人都能用。

from sklearn import linear_model

clf = linear_model.LinearRegression()
X = [[1], [2], [3], [4], [5], [6]]
Y = [10.0, 12.0, 9.0, 13.0, 11.0, 12.3]
clf.fit(X, Y)
print clf.predict(7)

然后看到預(yù)測(cè)的結(jié)果是: 12.46666667
好像還不是很離譜的樣子侵歇。為什么為第一時(shí)間選擇這樣的方法骂澄,這個(gè)過程到底涉及到哪些知識(shí)。所有基于統(tǒng)計(jì)的方法惕虑,甚至是大部分機(jī)器學(xué)習(xí)方法都是基于一個(gè)框架坟冲。下面我 們用這個(gè)例子來拆解它。

統(tǒng)計(jì)學(xué)習(xí)三要素

統(tǒng)計(jì)學(xué)習(xí)溃蔫,甚至我覺得所有機(jī)器學(xué)習(xí)都是建立在歷史數(shù)據(jù)之上健提,學(xué)習(xí)的目標(biāo)是讓計(jì)算機(jī)能預(yù)測(cè)。要抄書的話伟叛,你會(huì)看到這里面有很多分類私痹,比如監(jiān)督學(xué)習(xí),非監(jiān)督统刮,半監(jiān)督紊遵,強(qiáng)化學(xué)習(xí)之類的東西。其實(shí)我想真正可以好好理解下的是統(tǒng)計(jì)學(xué)習(xí)三要素:模型(model)侥蒙、策略(strategy)暗膜、算法(algorithm)。理解這個(gè)過程辉哥,基本能了解機(jī)器學(xué)習(xí)的大部分真相桦山。

model

模型是對(duì)現(xiàn)實(shí)世界的抽象,這些抽象為了能夠比較簡(jiǎn)單都有一些假設(shè)作為前提醋旦。對(duì)上面那個(gè)例子來說模型就是:每月的收入是時(shí)間的線性函數(shù)恒水。這樣一來所有的一元線性函數(shù)都有可能,這些所有可能的一元線性函數(shù)的集合被稱作模型的假設(shè)空間(hypothesis space). 統(tǒng)計(jì)學(xué)習(xí)就是要根據(jù)歷史數(shù)據(jù)饲齐,從模型的假設(shè)空間中找到一個(gè)確定钉凌,也就是上面那段代碼干的事情。

還有另外一種類型的假設(shè)空間捂人,不是函數(shù)組成御雕,是條件概率集合,比如說貝葉斯分類器的假設(shè)空間滥搭。具體什么是貝葉斯分類器酸纲,如果你不懂,后面的文章會(huì)有介紹瑟匆。

strategy

strategy 可以說是學(xué)習(xí)的標(biāo)準(zhǔn)闽坡,有了這個(gè)才會(huì)有后面的算法。還是上面那個(gè)例子愁溜,模型的假設(shè)空間是所有一元線性函數(shù)疾嗅,但是如何從這無數(shù)的函數(shù)中選擇一個(gè)最好的呢?問題如果用數(shù)學(xué)的方式來說就是求一元線性函數(shù)的兩個(gè)參數(shù)冕象,一個(gè)是x的系數(shù)代承,一個(gè)是常數(shù)項(xiàng)。然后就有人提出了幾種方法渐扮。我知道的就有兩種:

  1. 最小二乘法
  1. 極大似然估計(jì)

看著這些名詞很嚇人的樣子论悴,其實(shí)他們的直觀邏輯都是及其簡(jiǎn)單的,雖然背后確實(shí)有復(fù)雜的假設(shè)墓律,和數(shù)學(xué)證明意荤。

最小二乘法的思路是:找到一個(gè)函數(shù)使得其在樣本上預(yù)測(cè)值和真實(shí)值之間的誤差平方和最小。

極大似然的想法也是相當(dāng)?shù)闹庇^只锻,我們都在不知不覺的使用這種思想:舉個(gè)例子, 假如你是女生玖像,你讀書時(shí)候,后面坐著兩個(gè)男生A,B.每天男生A,都在后面動(dòng)你頭發(fā)齐饮。突然有天B動(dòng)了下你的頭發(fā)捐寥,我想你轉(zhuǎn)過頭肯定還是會(huì)罵A. 極大似然估計(jì)還是大名頂頂?shù)母咚固岢龅摹?shù)學(xué)點(diǎn)兒的描述就是樣本出現(xiàn)的概率最大化祖驱。

最終的目標(biāo)是要預(yù)測(cè)握恳,所以策略在做的事情就是讓風(fēng)險(xiǎn)最小,然后將問題轉(zhuǎn)化成可求解的函數(shù)極值的問題捺僻。極大似然思想就是一種經(jīng)驗(yàn)風(fēng)險(xiǎn)最小的例子:上面那女生罵A正確的概率肯定要比罵B正確的概率大乡洼。

上面兩種strategy 的最終結(jié)果是把一個(gè)模型求解的過程轉(zhuǎn)化為函數(shù)極值崇裁。如果這個(gè)函數(shù)極值有解析解,那后面的算法基本就沒有必要了束昵。通常是這個(gè)函數(shù)的極值比較復(fù)雜拔稳,很難求解或者根本就不存在解析解,那后面的算法就要派上用處了锹雏。

algorithm

這個(gè)算法和計(jì)算機(jī)里那個(gè)排序之類的還是有些區(qū)別巴比,這個(gè)主要是說的數(shù)值計(jì)算。常見的梯度下降礁遵,牛頓法轻绞,EM ...... 他們通常都是通過迭代擬合來實(shí)現(xiàn)對(duì)一個(gè)函數(shù)求極值。EM 算法的原理也是求函數(shù)下界函數(shù)的極值來逼近真實(shí)函數(shù)的極值佣耐,我見過的都是在求極值政勃。

上面講了這么多機(jī)器學(xué)習(xí),機(jī)器在這個(gè)過程中干什么呢兼砖?我們都沒見機(jī)器出場(chǎng)稼病。其實(shí)機(jī)器的核心任務(wù)就是實(shí)現(xiàn)algorithm 的工具,因?yàn)樗惴ㄍǔP枰芏嗟蛧L試掖鱼,靠人來做肯定是不行的然走,但是機(jī)器很在行這個(gè)。所以到這里我想應(yīng)該理解寫程序和機(jī)器學(xué)習(xí)到底是個(gè)什么關(guān)系戏挡。如果你不是為了創(chuàng)建一個(gè)新的算法芍瑞,只是想解決一個(gè)數(shù)據(jù)上的問題,其實(shí)你能寫程序就夠了褐墅,前提是能看懂?dāng)?shù)學(xué)上的邏輯拆檬。如果看不懂,就像寫程序的時(shí)候不知道產(chǎn)品需求一樣妥凳,后果如何寫 程序的都知道竟贯。

總結(jié)

當(dāng)然機(jī)器學(xué)習(xí)比我說的要復(fù)雜的多,這里面也還會(huì)有其他問題逝钥。比如數(shù)據(jù)預(yù)處理屑那、特征工程、模型評(píng)估艘款、選擇持际,而且這個(gè)過程中有很多細(xì)節(jié)的問題。但是從上面的描述你應(yīng)該能看到寫程序和數(shù)學(xué)是如何結(jié)合的哗咆,機(jī)器學(xué)習(xí)到底是個(gè)什么東西蜘欲,至少在傳統(tǒng)的基于統(tǒng)計(jì)的方法上是這樣,其實(shí)我想深度學(xué)習(xí)也是在求函數(shù)極值晌柬。大部分的數(shù)據(jù)科學(xué)家姥份,都是在利用少部分人發(fā)明出來的東西郭脂,來解決他們自己的問題,在這個(gè)過程中我認(rèn)為真正重要的還是想象力澈歉,和動(dòng)手能力展鸡,當(dāng)然你得看得懂?dāng)?shù)學(xué)公式,至少能理解其中的邏輯闷祥,還是那句話寫程序之前好好理解需求這是每個(gè)程序員圈子里廣泛傳播的經(jīng)驗(yàn),做機(jī)器學(xué)習(xí)你可能還要看懂公式傲诵,這就像是需求的一部分凯砍。

你可以在我的博客查看原文 或者搜索微信公眾號(hào):正午不早了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拴竹,隨后出現(xiàn)的幾起案子悟衩,更是在濱河造成了極大的恐慌,老刑警劉巖栓拜,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件座泳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡幕与,警方通過查閱死者的電腦和手機(jī)挑势,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來啦鸣,“玉大人潮饱,你說我怎么就攤上這事〗敫” “怎么了香拉?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)中狂。 經(jīng)常有香客問我凫碌,道長(zhǎng),這世上最難降的妖魔是什么胃榕? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任盛险,我火速辦了婚禮,結(jié)果婚禮上勋又,老公的妹妹穿的比我還像新娘枉层。我一直安慰自己,他們只是感情好赐写,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布鸟蜡。 她就那樣靜靜地躺著,像睡著了一般挺邀。 火紅的嫁衣襯著肌膚如雪揉忘。 梳的紋絲不亂的頭發(fā)上跳座,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音泣矛,去河邊找鬼疲眷。 笑死,一個(gè)胖子當(dāng)著我的面吹牛您朽,可吹牛的內(nèi)容都是我干的狂丝。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼哗总,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼几颜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起讯屈,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤蛋哭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后涮母,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谆趾,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年叛本,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沪蓬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡来候,死狀恐怖怜跑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吠勘,我是刑警寧澤性芬,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站剧防,受9級(jí)特大地震影響植锉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜峭拘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一俊庇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸡挠,春花似錦辉饱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至备埃,卻和暖如春姓惑,著一層夾襖步出監(jiān)牢的瞬間褐奴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工于毙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留敦冬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓唯沮,卻偏偏與公主長(zhǎng)得像脖旱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子介蛉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 機(jī)器學(xué)習(xí)(Machine Learning)&深度學(xué)習(xí)(Deep Learning)資料(Chapter 1) 注...
    Albert陳凱閱讀 22,215評(píng)論 9 476
  • 注:用鍵盤抄寫王爍此長(zhǎng)文(含后續(xù)內(nèi)容)踊兜,是為了學(xué)習(xí)寫作佳恬,及練習(xí)Markdown語法毁葱,內(nèi)容來自于從 Kindle 上...
    Norman_Plus閱讀 199評(píng)論 0 0
  • 你若盛開,蒼蠅自來担忧。 努力不一定成功瓶盛,但是不努力真的好舒服啊 喜歡一個(gè)人就去表白,萬一成了備胎了呢惩猫? 你努力過后才...
    MiBoy閱讀 294評(píng)論 0 0
  • 1,動(dòng)態(tài)創(chuàng)建元素和元素屬性的方法,有兩種,一種是serAttribute轧房,一種是直接賦值,其中直接賦值class的...
    我愛吃肥腸閱讀 192評(píng)論 0 0
  • 有這么一個(gè)寓言故事皮官。有個(gè)人想要步行穿過大陸捺氢,但是當(dāng)時(shí)的大陸上布滿了荊棘,而他卻光著腳摄乒。 他面臨著兩個(gè)選擇馍佑。第一個(gè)選...
    草根_cae9閱讀 885評(píng)論 0 0