新智元報(bào)道 【新智元導(dǎo)讀】雖然在Coursera、MIT、UC伯克利上有很多機(jī)器學(xué)習(xí)的課程,包括吳恩達(dá)等專家課程已非常經(jīng)典,但都是面向有一定理科背景的專業(yè)人士。本文試圖將機(jī)器學(xué)習(xí)這本深?yuàn)W的課程,以更加淺顯易懂的方式講出來,讓沒有理科背景的讀者都能看懂。把復(fù)雜的東西簡(jiǎn)單化,讓非專業(yè)人士也能短時(shí)間內(nèi)理解,并露出恍然大悟的表情,是一項(xiàng)非常厲害的技能。 舉個(gè)例子。你正在應(yīng)聘機(jī)器學(xué)習(xí)工程師,面對(duì)的是文科出身的HR,如果能在最短時(shí)間內(nèi)讓她了解你的專業(yè)能力,就能極大地提升面試成功率。 現(xiàn)在,機(jī)器學(xué)習(xí)這么火,想入行的人越來越多,然而被搞糊涂的人也越來越多。因?yàn)榇蟊姾茈y理解機(jī)器學(xué)習(xí)是干嗎的?那些神秘拗口的概念,比如邏輯回歸、梯度下降到底是什么?j 一個(gè)23歲的藥物學(xué)專業(yè)的學(xué)生說,當(dāng)他去參加機(jī)器學(xué)習(xí)培訓(xùn)課程的時(shí)候,感覺自己就家里那位不懂現(xiàn)代科技的奶奶。 于是一名叫Audrey Lorberfeld的畢業(yè)生,試圖將大眾與機(jī)器學(xué)習(xí)之間的鴻溝,親手填補(bǔ)上。于是有了這個(gè)系列文章。 本系列第一講:梯度下降、線性回歸和邏輯回歸。 算法 vs 模型 在理解開始了解機(jī)器學(xué)習(xí)之前,我們需要先搞懂兩個(gè)基礎(chǔ)概念:算法和模型。 我們可以把模型看做是一個(gè)自動(dòng)售貨機(jī),輸入(錢),輸出(可樂)。算法是用來訓(xùn)練這個(gè)模型的, 模型根據(jù)給定的輸入,做出對(duì)應(yīng)的決策獲得預(yù)期輸出。例如,一個(gè)算法根據(jù)投入的金額,可樂的單價(jià),判斷錢夠不夠,如果多了該找多少錢。 總而言之,算法是模型背后的數(shù)學(xué)生命力。沒有模型,算法只是一個(gè)數(shù)學(xué)方程式。模型的不同,取決于用的算法的不同。 梯度下降/最佳擬合線 (雖然這個(gè)傳統(tǒng)上并不被認(rèn)為是一種機(jī)器學(xué)習(xí)算法,但理解梯度對(duì)于了解有多少機(jī)器學(xué)習(xí)算法可用,及如何優(yōu)化至關(guān)重要。)梯度下降幫助我們根據(jù)一些數(shù)據(jù),獲得最準(zhǔn)確的預(yù)測(cè)。 舉個(gè)例子。你有一個(gè)大的清單,列出每個(gè)你認(rèn)識(shí)的人身高體重。然后做成下面這種分布圖: 圖上面的數(shù)字比較奇怪?不用在意這些細(xì)節(jié)。 現(xiàn)在,小區(qū)居委會(huì)要舉辦一個(gè)根據(jù)身高猜體重的比賽,贏的人發(fā)紅包。就用這張圖。你怎么辦? 你可能會(huì)想在圖上畫一根線,這個(gè)線非常完美的給出了身高和體重的對(duì)應(yīng)關(guān)系。 比如,根據(jù)這條完美線,身高1.5米的人體重基本在60斤左右。啊那么,這根完美線是怎么找出來呢?答:梯度下降。 我們先提一個(gè)概念叫RSS(the residual sum of squares)。RSS是點(diǎn)和線之間差異的平方和,這個(gè)值代表了點(diǎn)和線的距離有多遠(yuǎn)。梯度下降就是找出RSS的最小值。 我們把每次為這根線找的不同參數(shù)進(jìn)行可視化,就得到了一個(gè)叫做成本曲線的東西。這個(gè)曲線的地步,就是我們的RSS最小值。 Gradient Descent可視化(使用MatplotLib) 來自不可思議的數(shù)據(jù)科學(xué)家Bhavesh Bhatt 梯度下降還有其他的一些細(xì)分領(lǐng)域,比如“步長(zhǎng)”和“學(xué)習(xí)率”(即我們想要采取什么方向到底部的底部)。 總之,:我們通過梯度下降找到數(shù)據(jù)點(diǎn)和最佳擬合線之間最小的空間;而最佳你和線是我們做預(yù)測(cè)的直接依據(jù)。 線性回歸 線性回歸是分析一個(gè)變量與另外一個(gè)或多個(gè)變量(自變量)之間,關(guān)系強(qiáng)度的方法。 線性回歸的標(biāo)志,如名稱所暗示的那樣,即自變量與結(jié)果變量之間的關(guān)系是線性的,也就是說變量關(guān)系可以連城一條直線。 這看起來像我們上面做的!這是因?yàn)榫€性回歸中我們的“回歸線”之前的最佳實(shí)踐線。最佳擬合線顯示了我們的點(diǎn)之間最佳的線性關(guān)系。反過來,這使我們能夠做出預(yù)測(cè)。 關(guān)于線性回歸的另一個(gè)重點(diǎn)是,結(jié)果變量或“根據(jù)其他變量而變化的”變量(有點(diǎn)繞哈)總是連續(xù)的。但這意味著什么? 假設(shè)我們想測(cè)量一下紐約州影響降雨的因素:結(jié)果變量就是降雨量,就是我們最關(guān)系的東西,而影響降水的自變量是海拔。 如果結(jié)果變量不是連續(xù)的,就可能出現(xiàn)在某個(gè)海拔,沒有結(jié)果變量,導(dǎo)致我們沒辦法做出預(yù)測(cè)。 反之,任意給定的海拔,我們都可以做出預(yù)測(cè)。這就是線性回歸最酷的地方! 嶺回歸與LASSO回歸 現(xiàn)在我們知道什么是線性回歸,接下來還有更酷的,比如嶺回歸。在開始理解嶺回歸之前,我們先來了解正則化。 簡(jiǎn)單地說,數(shù)據(jù)科學(xué)家使用正則化,確保模型只關(guān)注能夠?qū)Y(jié)果變量產(chǎn)生顯著影響的自變量。 但是那些對(duì)結(jié)果影響不顯著的自變量會(huì)被正則忽略嗎?當(dāng)然不會(huì)!原因我們后面再展開細(xì)講。 原則上,我們創(chuàng)建這些模型,投喂數(shù)據(jù),然后測(cè)試我們的模型是否足夠好。 如果不管自變量相關(guān)也好不相關(guān)都投喂進(jìn)去,最后我們會(huì)發(fā)現(xiàn)模型在處理訓(xùn)練數(shù)據(jù)的時(shí)候超棒;但是處理我們的測(cè)試數(shù)據(jù)就超爛。 這是因?yàn)槲覀兊哪P筒粔蜢`活,面對(duì)新數(shù)據(jù)的時(shí)候就顯得有點(diǎn)不知所措了。這個(gè)時(shí)候我們稱之為“Overfit”過擬合。 接下來我們通過一個(gè)過長(zhǎng)的例子,來體會(huì)一下過擬合。 比方說,你是一個(gè)新媽媽,你的寶寶喜歡吃面條。幾個(gè)月來,你養(yǎng)成了一個(gè)在廚房喂食并開窗的習(xí)慣,因?yàn)槟阆矚g新鮮空氣。 接著你的侄子給寶寶一個(gè)圍裙,這樣他吃東西就不會(huì)弄得滿身都是,然后你又養(yǎng)成了一個(gè)新的習(xí)慣:喂寶寶吃面條的時(shí)候,必須穿上圍裙。 隨后你又收養(yǎng)了一只流浪狗,每次寶寶吃飯的時(shí)候狗就蹲在嬰兒椅旁邊,等著吃寶寶掉下來的面條。 作為一個(gè)新媽媽,你很自然的會(huì)認(rèn)為,開著的窗戶+圍裙+嬰兒椅下面的狗,是讓你的寶寶能夠開心吃面條的必備條件。 直到有一天你回娘家過周末。當(dāng)你發(fā)現(xiàn)廚房里沒有窗戶你有點(diǎn)慌;然后你突然想起來走的匆忙圍裙也沒帶;最要命的是狗也交給鄰居照看了,天哪! 你驚慌到手足無措以至于忘記給寶寶喂食,就直接把他放床上了。看,當(dāng)你面對(duì)一個(gè)完全新的場(chǎng)景時(shí)你表現(xiàn)的很糟糕。而在家則完全是另外一種畫風(fēng)了。 經(jīng)過重新設(shè)計(jì)模型,過濾掉所有的噪音(不相關(guān)的數(shù)據(jù))后你發(fā)現(xiàn),其實(shí)寶寶僅僅是喜歡你親手做的面條。 第二天,你就能坦然的在一個(gè)沒有窗戶的廚房里,沒給寶寶穿圍裙,也沒有狗旁邊,開開心心的喂寶寶吃面條了。 這就是機(jī)器學(xué)習(xí)的正則化所干的事情:讓你的模型只關(guān)注有用的數(shù)據(jù),忽略干擾項(xiàng)。 在左邊:LASSO回歸(你可以看到紅色梯級(jí)表示的系數(shù)在穿過y軸時(shí)可以等于零) 在右邊:嶺回歸(你可以看到系數(shù)接近,但從不等于零,因?yàn)樗鼈儚牟淮┻^y軸) 圖片來源:Prashant Gupta的“機(jī)器學(xué)習(xí)中的正規(guī)化” 在各種正規(guī)化的,有一些所謂的懲罰因子(希臘字母拉姆達(dá):λ)。這個(gè)懲罰因子的作用是在數(shù)學(xué)計(jì)算中,縮小數(shù)據(jù)中的噪聲。 在嶺回歸中,有時(shí)稱為“L2回歸”,懲罰因子是變量系數(shù)的平方值之和。懲罰因子縮小了自變量的系數(shù),但從來沒有完全消除它們。這意味著通過嶺回歸,您的模型中的噪聲將始終被您的模型考慮在內(nèi)。 另一種正則化是LASSO或“L1”正則化。在LASSO正則化中,只需懲罰高系數(shù)特征,而不是懲罰數(shù)據(jù)中的每個(gè)特征。 此外,LASSO能夠?qū)⑾禂?shù)一直縮小到零。這基本上會(huì)從數(shù)據(jù)集中刪除這些特征,因?yàn)樗鼈兊摹皺?quán)重”現(xiàn)在為零(即它們實(shí)際上是乘以零)。 通過LASSO回歸,模型有可能消除大部分噪聲在數(shù)據(jù)集中。這在某些情況下非常有用! 邏輯回歸 現(xiàn)在我們知道,線性回歸=某些變量對(duì)另一個(gè)變量的影響,并且有2個(gè)假設(shè):結(jié)果變量是連續(xù)的;變量和結(jié)果變量之間的關(guān)系是線性的。 但如果結(jié)果變量不是連續(xù)的而是分類的呢?這個(gè)時(shí)候就用到邏輯回歸了。 分類變量只是屬于單個(gè)類別的變量。比如每一周都是周一到周日7個(gè)日子,那么這個(gè)時(shí)候你就不能按照天數(shù)去做預(yù)測(cè)了。 每周的第一天都是星期一,周一發(fā)生的事情,就是發(fā)生在周一。沒毛病。 邏輯回歸模型只輸出數(shù)據(jù)點(diǎn)在一個(gè)或另一個(gè)類別中的概率,而不是常規(guī)數(shù)值。這也是邏輯回歸模型主要用于分類的原因。 在邏輯回歸的世界中,結(jié)果變量與自變量的對(duì)數(shù)概率(log-odds)具有線性關(guān)系。 比率(odds) 邏輯回歸的核心就是odds。舉個(gè)例子: 一個(gè)班里有19個(gè)學(xué)生,其中女生6個(gè),男生13個(gè)。假設(shè)女性通過考試的幾率是5:1,而男性通過考試的幾率是3:10。這意味著,在6名女性中,有5名可能通過測(cè)試,而13名男性中有3名可能通過測(cè)試。 那么,odds和概率(probability)不一樣嗎?并不。 概率測(cè)量的是事件發(fā)生的次數(shù)與所有事情發(fā)生的總次數(shù)的比率,例如,投擲40次投幣10次是正面的概率是25%;odds測(cè)量事件發(fā)生的次數(shù)與事件的次數(shù)的比率,例如拋擲30次有10次是正面,odds指的是10次正面:30次反面。 這意味著雖然概率總是被限制在0-1的范圍內(nèi),但是odds可以從0連續(xù)增長(zhǎng)到正無窮大! 這給我們的邏輯回歸模型帶來了問題,因?yàn)槲覀冎牢覀兊念A(yù)期輸出是概率(即0-1的數(shù)字)。 那么,我們?nèi)绾螐膐dds到概率? 讓我們想一個(gè)分類問題,比如你最喜歡的足球隊(duì)和另一只球隊(duì)比賽,贏了6場(chǎng)。你可能會(huì)說你的球隊(duì)失利的幾率是1:6,或0.17。 而你的團(tuán)隊(duì)獲勝的幾率,因?yàn)樗麄兪且恢ゴ蟮那蜿?duì),是6:1或6。如圖: 圖片來源: https://www./watch?v=ARfXDSkQf1Y 現(xiàn)在,你不希望你的模型預(yù)測(cè)你的球隊(duì)將在未來的比賽中取勝,只是因?yàn)樗麄冞^去獲勝的幾率遠(yuǎn)遠(yuǎn)超過他們過去失敗的幾率,對(duì)吧? 還有更多模型需要考慮的因素(可能是天氣,也許是首發(fā)球員等)!因此,為了使得odds的大小均勻分布或?qū)ΨQ,我們計(jì)算出一些稱為對(duì)數(shù)比率(log-odds)的東西。 log-odds 我們所謂的“正態(tài)分布”:經(jīng)典的鐘形曲線! Log-odds是自然對(duì)數(shù)odds的簡(jiǎn)寫方式。當(dāng)你采用某種東西的自然對(duì)數(shù)時(shí),你基本上可以使它更正常分布。當(dāng)我們制作更正常分布的東西時(shí),我們基本上把它放在一個(gè)非常容易使用的尺度上。 當(dāng)我們采用log-odds時(shí),我們將odds的范圍從0正無窮大轉(zhuǎn)換為負(fù)無窮正無窮大??梢栽谏厦娴溺娦吻€上看到這一點(diǎn)。 即使我們?nèi)匀恍枰敵鲈?-1之間,我們通過獲取log-odds實(shí)現(xiàn)的對(duì)稱性使我們比以前更接近我們想要的輸出! Logit函數(shù) “l(fā)ogit函數(shù)”只是我們?yōu)榱说玫絣og-odds而做的數(shù)學(xué)運(yùn)算! 恐怖的不可描述的數(shù)學(xué)。呃,我的意思是logit函數(shù)。 logit函數(shù),用圖表繪制 正如您在上面所看到的,logit函數(shù)通過取其自然對(duì)數(shù)將我們的odds設(shè)置為負(fù)無窮大到正無窮大。 Sigmoid函數(shù) 好的,但我們還沒有達(dá)到模型給我們概率的程度?,F(xiàn)在,我們所有的數(shù)字都是負(fù)無窮大到正無窮大的數(shù)字。名叫:sigmoid函數(shù)。 sigmoid函數(shù),以其繪制時(shí)呈現(xiàn)的s形狀命名,只是log-odds的倒數(shù)。通過得到log-odds的倒數(shù),我們將我們的值從負(fù)無窮大正無窮大映射到0-1。反過來,讓我們得到概率,這正是我們想要的! 與logit函數(shù)的圖形相反,其中我們的y值范圍從負(fù)無窮大到正無窮大,我們的sigmoid函數(shù)的圖形具有0-1的y值。好極了! 有了這個(gè),我們現(xiàn)在可以插入任何x值并將其追溯到預(yù)測(cè)的y值。該y值將是該x值在一個(gè)類別或另一個(gè)類別中的概率。 最大似然估計(jì) 你還記得我們是如何通過最小化RSS(有時(shí)被稱為“普通最小二乘法”或OLS法)的方法在線性回歸中找到最佳擬合線的嗎? 在這里,我們使用稱為最大似然估計(jì)(MLE)的東西來獲得最準(zhǔn)確的預(yù)測(cè)。 MLE通過確定最能描述我們數(shù)據(jù)的概率分布參數(shù),為我們提供最準(zhǔn)確的預(yù)測(cè)。 我們?yōu)槭裁匆P(guān)心如何確定數(shù)據(jù)的分布?因?yàn)樗芸幔。ú⒉皇牵?/p> 它只是使我們的數(shù)據(jù)更容易使用,并使我們的模型可以推廣到許多不同的數(shù)據(jù)。 一般來說,為了獲得我們數(shù)據(jù)的MLE,我們將數(shù)據(jù)點(diǎn)放在s曲線上并加上它們的對(duì)數(shù)似然。 基本上,我們希望找到最大化數(shù)據(jù)對(duì)數(shù)似然性的s曲線。我們只是繼續(xù)計(jì)算每個(gè)log-odds行的對(duì)數(shù)似然(類似于我們對(duì)每個(gè)線性回歸中最佳擬合線的RSS所做的那樣),直到我們得到最大數(shù)量。 好了,到此為止我們知道了什么是梯度下降、線性回歸和邏輯回顧,下一講,由Audrey妹子來講解決策樹、隨機(jī)森林和SVM。 參考鏈接: 新智元春季招聘開啟,一起弄潮AI之巔! 【2019新智元 AI 技術(shù)峰會(huì)倒計(jì)時(shí)14天】 2019年的3月27日,新智元再匯AI之力,在北京泰富酒店舉辦AI開年盛典——2019新智元AI技術(shù)峰會(huì)。峰會(huì)以“智能云·芯世界“為主題,聚焦智能云和AI芯片的發(fā)展,重塑未來AI世界格局。 同時(shí),新智元將在峰會(huì)現(xiàn)場(chǎng)權(quán)威發(fā)布若干AI白皮書,聚焦產(chǎn)業(yè)鏈的創(chuàng)新活躍,評(píng)述華人AI學(xué)者的影響力,助力中國在世界級(jí)的AI競(jìng)爭(zhēng)中實(shí)現(xiàn)超越。 |
|