什么是機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)是一幫計(jì)算機(jī)科學(xué)家想讓計(jì)算機(jī)像人一樣思考所研發(fā)出的計(jì)算機(jī)理論,他們曾經(jīng)說過,人和計(jì)算機(jī)本身沒有區(qū)別,同樣都是一大批互相連接的信息傳遞和存儲元素所組成的系統(tǒng),所以有了這樣的想法,加上他們得天獨(dú)厚的數(shù)學(xué)功底,機(jī)器學(xué)習(xí)的前身也就孕育而生了。
機(jī)器學(xué)習(xí)的萌芽誕生于19世紀(jì)60年代,20年前開始逐步興起,它是一門跨學(xué)科的交融。這里邊包含了概率論,統(tǒng)計(jì)學(xué)等等學(xué)科,隨著計(jì)算機(jī)硬件的提升,計(jì)算機(jī)運(yùn)算性能的不斷提高,他真正開始進(jìn)入到我們的日常生活中,而在不久的將來,我相信他也會成為我們生活中必不可少的組成元素。
讓我們說說日常當(dāng)中的機(jī)器學(xué)習(xí)的應(yīng)用吧
第一個(gè)提到的,最具代表性的公司,應(yīng)該就是Google,他們所研發(fā)的Google NOW,Google Photos都是基于機(jī)器學(xué)習(xí)的產(chǎn)物。同樣在百度,圖片識別也是應(yīng)用到機(jī)器學(xué)習(xí)中的視覺處理系統(tǒng)。與此同時(shí),各種各樣的企業(yè)都開始嘗試把自己的產(chǎn)品往機(jī)器學(xué)習(xí)上靠攏 。比如金融公司的匯率預(yù)測,股票漲跌,房地產(chǎn)公司的房價(jià)預(yù)測等等。
機(jī)器學(xué)習(xí)不僅只有一種方法,實(shí)現(xiàn)他的方法有多種多樣。這里所說的方法,在程序語言中,我們叫做算法。目前所有的機(jī)器學(xué)習(xí)的算法,大概分為四類到五類。如果在學(xué)習(xí)過程中,我們不斷向計(jì)算機(jī)提供數(shù)據(jù)和這些數(shù)據(jù)相對應(yīng)的值。下面我舉一個(gè)例子
現(xiàn)在給計(jì)算機(jī)看一個(gè)貓和狗的圖片,告訴計(jì)算機(jī)那些圖片里的是貓,那些是狗,然后再讓他學(xué)習(xí)分辨去貓和狗,通過這樣的指引的方式,讓計(jì)算機(jī)學(xué)習(xí)我們是如何把這些圖片數(shù)據(jù)所對應(yīng)的圖片所代表的物體,也就是讓計(jì)算機(jī)學(xué)習(xí)那些標(biāo)簽可以代表那些圖片,這種方式就叫做“監(jiān)督學(xué)習(xí)(Supervised learning)”,預(yù)測房屋的價(jià)格,股票的漲停同樣可以用監(jiān)督學(xué)習(xí)來實(shí)現(xiàn),大家所熟知的神經(jīng)網(wǎng)絡(luò)同樣是一種監(jiān)督學(xué)習(xí)的方式,如果同樣在這樣的學(xué)習(xí)過程中,我們只給計(jì)算機(jī)提供貓和狗的圖片,但是并沒有告訴他那些是貓,那些是狗。取而代之的是,我讓他自己去判斷和分類,讓他自己總結(jié)出這兩種類型的圖片的不同之處,這就是一種“非監(jiān)督學(xué)習(xí)(Un-superrvised Learning)”,在這一種學(xué)習(xí)過程中,我們可以不用提供數(shù)據(jù)所對應(yīng)的標(biāo)簽信息,計(jì)算機(jī)通過觀察各種數(shù)據(jù)之間的特性,會發(fā)現(xiàn)這些背后的規(guī)律,這些規(guī)律也就是非監(jiān)督方法所學(xué)到的東西。
還有一種方法綜合了監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)的特征,這種就叫做“半監(jiān)督學(xué)習(xí)”(semi-supervised learning),它主要考慮如何利用少量的,帶有標(biāo)簽的樣本和大量的沒有標(biāo)簽的樣本進(jìn)行分揀和分類。
在規(guī)劃機(jī)器人的行為準(zhǔn)則方面,一種機(jī)器學(xué)習(xí)的方法叫做“強(qiáng)化學(xué)習(xí)”(reinforcement learning),也就是把計(jì)算機(jī)丟到一個(gè)對于他完全陌生的環(huán)境或者讓他完成一項(xiàng)從未接觸過的任務(wù),他自己回去嘗試各種的手段,最后讓自己去成功適應(yīng)這樣一個(gè)陌生的環(huán)境,或者學(xué)會完成這件任務(wù)的方法途徑。比如說我像訓(xùn)練機(jī)器人去投籃,我要只需要給他一個(gè)球,并告訴他你投進(jìn)了我給你記一分,讓他自己去嘗試各種各樣的投籃的方法,在開始階段,他的命中率可能會非常低,不過他會想人類一樣,自己總結(jié)和學(xué)習(xí)投籃失敗活或者成功的經(jīng)驗(yàn),最后可以達(dá)到一個(gè)很高的命中率。Google開發(fā)的AlphaGo也就是應(yīng)用了其中的一種學(xué)習(xí)方式。還有一種就是和強(qiáng)化學(xué)習(xí)類似的一種學(xué)習(xí)方法,叫做遺傳算法(Genetio algorithm)。這一種方法是模擬我們熟知的進(jìn)化理論,淘汰弱者,適者生存。通過這種淘汰的機(jī)制去選擇最優(yōu)的設(shè)計(jì)或者模型。比如讓計(jì)算機(jī)學(xué)會玩超級瑪麗,最開始的馬里奧一代可能不久就會犧牲了,不過計(jì)算機(jī)會基于一代的馬里奧隨機(jī)生成第二代,然后再保存這些代里邊最厲害的馬里奧,淘汰掉比較弱的馬里奧,然后再次幾區(qū)強(qiáng)者的繁衍和變異,生成更強(qiáng)的馬里奧,這也就是遺傳算法的基本思想。
以上就是比較重要的機(jī)器學(xué)習(xí)方法,我們再來總結(jié)一下:
他們包括有數(shù)據(jù)和標(biāo)簽的監(jiān)督學(xué)習(xí),只有數(shù)據(jù)沒有標(biāo)簽的非監(jiān)督學(xué)習(xí),有結(jié)合了監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)的半監(jiān)督學(xué)習(xí)。還有從經(jīng)驗(yàn)中總結(jié)提升的強(qiáng)化學(xué)習(xí)。最后是和強(qiáng)化學(xué)習(xí)類似的,有著適者生存的,不適者淘汰準(zhǔn)則的遺傳算法學(xué)習(xí)。如果你不僅僅只滿足與弄懂這些的區(qū)別,還想學(xué)著如何在你的生活中如何使用這些機(jī)器學(xué)習(xí)的方法。推薦去麻省理工的網(wǎng)站上尋找更多的資料,也可以繼續(xù)關(guān)注我,我也會定期的推薦如何用當(dāng)下流行的編程語言Java和他的機(jī)器學(xué)習(xí)模塊來實(shí)現(xiàn)通俗易懂的機(jī)器學(xué)習(xí)的教程。
下一期讓我們來聊聊什么是神經(jīng)網(wǎng)絡(luò)