




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 機(jī)器學(xué)習(xí)概要介紹與入門(mén)StuQ 微信號(hào) stuq2015功能介紹 實(shí)踐驅(qū)動(dòng)的IT教育平臺(tái)如何學(xué)習(xí)機(jī)器學(xué)習(xí)技術(shù)學(xué)習(xí)路線首先,機(jī)器學(xué)習(xí)這個(gè)東西,你想入門(mén)的話(huà)并不困難,因?yàn)楹?jiǎn)單的機(jī)器學(xué)習(xí)算法,它的思路其實(shí)很樸素的。 只要你學(xué)過(guò)一些基礎(chǔ)的概率統(tǒng)計(jì)的知識(shí),你都可以去理解它。就像說(shuō)我們這邊并不會(huì)完整的介紹機(jī)器學(xué)習(xí)的東西,因?yàn)樗臍v史非常長(zhǎng),門(mén)類(lèi)非常繁多,我們最關(guān)注的主要的方法還是基于統(tǒng)計(jì)的機(jī)器學(xué)習(xí)。說(shuō)到這,我就會(huì)從統(tǒng)計(jì)方法上來(lái)給大家講一個(gè)機(jī)器學(xué)習(xí)的例子。比如說(shuō)這邊有很多人,都應(yīng)該非常喜歡看書(shū),但是大家都知道書(shū)店里面書(shū)非常多,現(xiàn)在網(wǎng)上也有非常多的賣(mài)書(shū)平臺(tái),比如京東,當(dāng)當(dāng),那么我們?cè)趺粗雷约合矚g看什么書(shū)呢
2、?一般的做法我們會(huì)先選一個(gè)分類(lèi),比如說(shuō)你喜歡歷史,你會(huì)選擇歷史書(shū),你喜歡計(jì)算機(jī),你就會(huì)選擇計(jì)算機(jī)的書(shū)。但是這樣就缺少一個(gè)驚喜,你不知道里面還有什么書(shū),其實(shí)我很喜歡,但是我又想不到它。大家都知道,很多線下的實(shí)體書(shū)店都會(huì)提供一種服務(wù),叫做書(shū)籍推薦。比如說(shuō)新華書(shū)店等,他們有一個(gè)最簡(jiǎn)單粗暴的方法,就是把銷(xiāo)量最高的書(shū)最熱門(mén)的書(shū)擺到前臺(tái),叫熱銷(xiāo)書(shū)。比如有一百個(gè)人進(jìn)去,有25個(gè)人在那邊駐足停留,那么他們就達(dá)到了他們的目的。大家都知道,現(xiàn)在網(wǎng)上最大的賣(mài)書(shū)平臺(tái)就是亞馬遜了,亞馬遜當(dāng)年最有名的服務(wù)就是他們的薦書(shū)服務(wù)。他們就是組織一個(gè)非常專(zhuān)業(yè)的薦書(shū)團(tuán)隊(duì),這個(gè)薦書(shū)團(tuán)隊(duì)會(huì)為不同的用戶(hù)去推薦他們可能喜歡的書(shū)。就像你剛進(jìn)亞
3、馬遜的首頁(yè)上你看到的書(shū),發(fā)現(xiàn)都是你喜歡的書(shū),你會(huì)感到非常驚喜和意外。不過(guò)后來(lái)亞馬遜直接把這個(gè)薦書(shū)團(tuán)隊(duì)給開(kāi)除了,因?yàn)楹髞?lái)亞馬遜他們自己的人直接寫(xiě)了一個(gè)圖書(shū)推薦系統(tǒng),而且后來(lái)通過(guò)實(shí)際的運(yùn)營(yíng)發(fā)現(xiàn),這個(gè)圖書(shū)推薦系統(tǒng)比薦書(shū)團(tuán)隊(duì)準(zhǔn)確率還高。為什么這個(gè)薦書(shū)系統(tǒng)準(zhǔn)確率會(huì)這么高呢?我可以用非常簡(jiǎn)單的方式講一下薦書(shū)系統(tǒng)的原理。它在機(jī)器學(xué)習(xí)里面的算法就叫做關(guān)聯(lián)規(guī)則算法 ,因?yàn)閬嗰R遜他發(fā)現(xiàn)了一個(gè)規(guī)律,比如說(shuō)如果很多人喜歡去買(mǎi)A這本書(shū),然后買(mǎi)A這本書(shū)的人又會(huì)以很高的概率去買(mǎi)B這本書(shū)。比如說(shuō)一百人買(mǎi)了A,其中90人買(mǎi)了B,那么有一個(gè)人來(lái)買(mǎi)A的時(shí)候,他是不是也有可能喜歡B?那么我們考慮這種情況,如果有一百個(gè)人同時(shí)買(mǎi)了A,B
4、,C 3本書(shū),其中70人都買(mǎi)了D這本書(shū)。那么如果有一個(gè)人買(mǎi)了A,B,C這三本書(shū),那么是不是也有可能會(huì)喜歡D?我們甚至可以認(rèn)為這個(gè)人喜歡D這本書(shū)是板上定釘?shù)氖铝?。所以說(shuō)你會(huì)發(fā)現(xiàn)亞馬遜不僅會(huì)在首頁(yè)上推薦你喜歡的書(shū),它可能已經(jīng)篩選了你買(mǎi)過(guò)的所有的書(shū),從這中間找出關(guān)聯(lián)的你可能會(huì)喜歡的書(shū)。同時(shí)你買(mǎi)任何一本書(shū)的時(shí)候,他還會(huì)給你推薦一個(gè)書(shū)籍組合,讓你去買(mǎi)組合里面的另外一本書(shū)。就像剛剛有同學(xué)講到啤酒和尿布,這個(gè)故事也是一個(gè)非常經(jīng)典的故事,這些類(lèi)型的推薦系統(tǒng)全部都是用了關(guān)聯(lián)規(guī)則的方法,但關(guān)聯(lián)規(guī)則方法是包括很多算法,我們后面會(huì)在講機(jī)器學(xué)習(xí)技術(shù)的時(shí)候談到這些東西。當(dāng)然,除了亞馬遜網(wǎng)站以外,你現(xiàn)在去,比如說(shuō)電影網(wǎng)站淘
5、寶,他們都會(huì)有一個(gè)推薦系統(tǒng)。所以我們可以從這個(gè)最簡(jiǎn)單的例子看到,雖然機(jī)器學(xué)習(xí)是一門(mén)聽(tīng)起來(lái)非常高大上的學(xué)科,但是其實(shí)里面非常多的簡(jiǎn)單的算法,它的思想是非常樸素的,比如我們剛剛講的關(guān)聯(lián)規(guī)則,這其實(shí)就是我們高中和大學(xué)學(xué)到的概率論里面的統(tǒng)計(jì)思想 。所以說(shuō)大家都應(yīng)該可以非常簡(jiǎn)單地去理解這個(gè)原理,而且我們要知道機(jī)器學(xué)習(xí)里面最重要的一個(gè)流派就是統(tǒng)計(jì)學(xué)這個(gè)流派。剛剛可能有同學(xué)看到,我說(shuō)機(jī)器學(xué)習(xí)入門(mén)不困難,他可能就覺(jué)得機(jī)器學(xué)習(xí)這門(mén)課不難。這里我要說(shuō)一下,我剛剛只是說(shuō)機(jī)器學(xué)習(xí)入門(mén)不難,但是說(shuō)實(shí)話(huà),如果你想學(xué)深入的話(huà),它是非常困難的一門(mén)學(xué)科,為什么呢?有這么幾個(gè)方面,首先,雖然說(shuō)很多機(jī)器學(xué)習(xí)算法它的思想是非常簡(jiǎn)單的
6、,我們會(huì)盡量說(shuō)用比較樸素的語(yǔ)言把它的思想講給大家,但是其實(shí)它是有很深的數(shù)學(xué)理論背景的,就跟我們學(xué)算法的時(shí)候不僅要知道算法的思想,也要去證明這個(gè)算法是不是正確的,還要知道這些算法背后的邏輯推理的過(guò)程。如果說(shuō)你數(shù)學(xué)確實(shí)不好的話(huà),你最多也就是去簡(jiǎn)單的使用那些現(xiàn)成的模型,學(xué)一下一些傳統(tǒng)的成熟的機(jī)器學(xué)習(xí)方法,學(xué)會(huì)用這些方法去解決一些實(shí)際中的問(wèn)題,可能說(shuō)你的目的也就是這樣。其實(shí)對(duì)于大多數(shù)人來(lái)說(shuō),這樣也就差不多了,但是如果你想創(chuàng)造性去做一個(gè)工作,比如你想發(fā)明一個(gè)新的機(jī)器學(xué)習(xí)算法,或者說(shuō)你想根據(jù)實(shí)際情況去調(diào)整很多模型的參數(shù),想得到更好的訓(xùn)練效果,那么就是一件相對(duì)比較困難的事情。第二個(gè)問(wèn)題,機(jī)器學(xué)習(xí)模型。雖然不
7、能說(shuō)浩如煙海,但其實(shí)也是非常非常多的。就跟你做數(shù)學(xué)題一樣,你要解一個(gè)問(wèn)題,你腦子里會(huì)去想你要用什么方法解決這個(gè)問(wèn)題?我們?cè)谟脵C(jī)器學(xué)習(xí)方法去解決一個(gè)問(wèn)題的時(shí)候,也會(huì)說(shuō)我們到底要用哪個(gè)機(jī)器學(xué)習(xí)方法去解決它。我們肯定要去選擇一個(gè)合適的模型,如果我們想把這個(gè)問(wèn)題套到上面去呢,他畢竟不是萬(wàn)金油,還可能需要去改一些模型的細(xì)節(jié)和參數(shù),所以這是一個(gè)非常有經(jīng)驗(yàn)性的事情。而經(jīng)驗(yàn)是需要在日常工作中積累的,所以這需要一個(gè)比較長(zhǎng)的積累的時(shí)間。第三個(gè)問(wèn)題就是所謂的機(jī)器學(xué)習(xí)的性能的問(wèn)題。說(shuō)實(shí)話(huà),有些機(jī)器學(xué)習(xí)的模型的效果非常好,比如現(xiàn)在深度學(xué)習(xí)的深度神經(jīng)網(wǎng)絡(luò),深度神經(jīng)網(wǎng)絡(luò)的效果非常好,尤其是在現(xiàn)在互聯(lián)網(wǎng)上數(shù)據(jù)量非常大的情況下
8、,深度神經(jīng)網(wǎng)絡(luò),基本上一個(gè)CNN就可以干掉大部分傳統(tǒng)模型。但是其實(shí)是有利有弊的。雖然深度神經(jīng)網(wǎng)絡(luò)效果非常好,但是他的速度真的是非常慢,尤其是深度神經(jīng)網(wǎng)絡(luò)里面的卷積層,在優(yōu)化的時(shí)候都在想怎么,去優(yōu)化卷積層里面的卷積速度??傊瑢?duì)一個(gè)深度學(xué)習(xí)的系統(tǒng)的性能優(yōu)化問(wèn)題,對(duì)一個(gè)做深度學(xué)習(xí)的公司來(lái)說(shuō)是非常重要的。優(yōu)化速度,一方面我們可以去提升程序的性能,比如說(shuō)優(yōu)化代碼和硬件資源,但它畢竟是有限的。比如說(shuō)當(dāng)你遇到一個(gè)1000層的神經(jīng)網(wǎng)絡(luò),在每層上再給他搞個(gè)一百萬(wàn)的特征,你就算把程序優(yōu)化得再好,神也拯救不了。所以說(shuō)有的時(shí)候我們必須得去簡(jiǎn)化網(wǎng)絡(luò),簡(jiǎn)化網(wǎng)絡(luò)就是我們可能要砍掉網(wǎng)絡(luò)里面的許多層,也要簡(jiǎn)化每一層的網(wǎng)絡(luò)參數(shù)
9、,說(shuō)白了就是要減少計(jì)算量。深度學(xué)習(xí)有一個(gè)問(wèn)題說(shuō),如何在精簡(jiǎn)模型減少參數(shù)的情況下保證它有一個(gè)比較高的準(zhǔn)確率?就是說(shuō)它的準(zhǔn)確率不會(huì)下降很厲害,可以在可承受的范圍之內(nèi)。這個(gè)是一個(gè)非常重要的課題。這種優(yōu)化的問(wèn)題其實(shí)挺多的,如果你感興趣的話(huà),可以在自己學(xué)習(xí)之余去找找看??傊趯?shí)際使用的時(shí)候,速度是很關(guān)鍵的問(wèn)題。剛剛有一個(gè)人提到問(wèn)題說(shuō),機(jī)器學(xué)習(xí)不是很多都用Python嗎?為什么會(huì)講C+呢?說(shuō)實(shí)話(huà)Python非常好,有句話(huà)講得好,“人生苦短,為什么不用Python”。但是Python主要是用在一種實(shí)驗(yàn)場(chǎng)景下,如果你有一個(gè)想法,想驗(yàn)證這個(gè)想法的正確性,我拿一個(gè)小規(guī)模的數(shù)據(jù)集來(lái)做實(shí)驗(yàn),或者說(shuō)一個(gè)東西不是用在一
10、個(gè)產(chǎn)品上,可以等一天,那你是可以用Python的。但是現(xiàn)在有一個(gè)問(wèn)題就是性能問(wèn)題,如果你想把你的東西放在生產(chǎn)環(huán)境中來(lái)使用,比如說(shuō)現(xiàn)在大部分深度學(xué)習(xí)系統(tǒng),你別看他上面給你的都是Python的接口,但是它里面所有的東西都是用C+實(shí)現(xiàn)的 ,因?yàn)樗鼘?duì)性能的要求非常高,它需要用任何的方式去提高它的速度,這種事情除了C+還沒(méi)有什么能夠做到。我們后面會(huì)有更加深入的去講解實(shí)際應(yīng)用中的優(yōu)化問(wèn)題,必須得去講一些C+的內(nèi)容。最后一個(gè)問(wèn)題就是說(shuō)無(wú)論你的機(jī)器學(xué)習(xí)模型準(zhǔn)確率再高,那么你還是有可能會(huì)出現(xiàn)預(yù)測(cè)錯(cuò)誤的。比如說(shuō)兩年之前做的一個(gè)項(xiàng)目,它是給一個(gè)研究院做的迎賓系統(tǒng),比如說(shuō)你人走過(guò)來(lái),要識(shí)別出你是什么人,就是給你拍張照
11、做一個(gè)人臉識(shí)別,我們當(dāng)年還沒(méi)做人臉識(shí)別,就直接去買(mǎi)了當(dāng)年國(guó)內(nèi)最好的人臉識(shí)別引擎,它是一個(gè)小的設(shè)備,上面有一個(gè)攝像頭。我們當(dāng)時(shí)測(cè)試是沒(méi)有問(wèn)題的,而且他們還有個(gè)經(jīng)理每天都要去測(cè)兩次,每次都是沒(méi)問(wèn)題的,最后驗(yàn)收的時(shí)候也是通過(guò)了的。結(jié)果有一天他們老總來(lái)了,這個(gè)系統(tǒng)把他識(shí)別成女的了,然后他們經(jīng)理就打電話(huà)給我了。說(shuō)實(shí)話(huà),我心里也很苦啊,他們那個(gè)人臉識(shí)別的模型從準(zhǔn)確率上來(lái)講已經(jīng)90%多了,這個(gè)產(chǎn)品其實(shí)挺牛逼的。但是就是點(diǎn)背,撞上這種小概率事件。而且你要知道對(duì)于一個(gè)使用機(jī)器學(xué)習(xí)系統(tǒng)的人來(lái)說(shuō),你的測(cè)試準(zhǔn)確率可能是99.9%,他只看那失敗的0.1%,因?yàn)樗挥幸淮蔚氖褂脵C(jī)會(huì)。那我們?cè)趺慈ソ鉀Q這個(gè)問(wèn)題呢?我們還是只
12、能不斷的去優(yōu)化我們的模型,真的碰到這種小概率事件,有的時(shí)候也就沒(méi)辦法。我們剛剛講了機(jī)器學(xué)習(xí)里面的一些難度,說(shuō)實(shí)話(huà),你想深入學(xué)習(xí)機(jī)器學(xué)習(xí)是非常難的。那么我們肯定要制定一條路線,就是如何去學(xué)習(xí)這個(gè)機(jī)器學(xué)習(xí)。好,我們來(lái)看學(xué)習(xí)路線,這里,我要跟很多人潑冷水了。學(xué)機(jī)器學(xué)習(xí),你肯定還是要有數(shù)學(xué)基礎(chǔ)的,這個(gè)數(shù)學(xué)基礎(chǔ)并不是什么非常高深的數(shù)學(xué)。對(duì)于非常簡(jiǎn)單的機(jī)器學(xué)習(xí)方法,我們是用高中的數(shù)學(xué)知識(shí)再加一些簡(jiǎn)單的離散數(shù)學(xué)知識(shí)就行了。 但是另一方面呢,如果說(shuō)你想完全理解這些方法,那你肯定要自己去補(bǔ)微積分,概率論,線性代數(shù),甚至后面很多關(guān)于復(fù)變,最優(yōu)化這些東西 。說(shuō)白了就是入門(mén)是很簡(jiǎn)單的,但是當(dāng)你入門(mén)了之后,你會(huì)發(fā)現(xiàn)說(shuō)數(shù)
13、學(xué)會(huì)變成深入學(xué)習(xí)的障礙。不是所有人都去做算法本身的,所以說(shuō)我們這邊很強(qiáng)調(diào)我們的目的是為了理解算法,并且再通過(guò)我們的工程能力去實(shí)現(xiàn)這些算法,所以本課程不會(huì)直接去講數(shù)學(xué),但是會(huì)在必要的時(shí)候提及這些數(shù)學(xué)知識(shí)。本課程的重點(diǎn)是用最基礎(chǔ)的語(yǔ)言去描述這些內(nèi)容,涉及到具體的數(shù)學(xué)知識(shí)的時(shí)候,會(huì)說(shuō)讓大家去學(xué)習(xí)具體哪方面內(nèi)容。還有我說(shuō)一下數(shù)學(xué),其實(shí)數(shù)學(xué)都是可以補(bǔ)的。說(shuō)實(shí)話(huà),我當(dāng)年自己開(kāi)始學(xué)高數(shù)的時(shí)候就考了66分,然后我發(fā)現(xiàn)數(shù)學(xué)這東西真的是太重要了,我還是要去學(xué)習(xí)它。第二個(gè)就是說(shuō)機(jī)器學(xué)習(xí)的思想和方法,這是本課程一大重點(diǎn)。學(xué)而不思則罔,思而不學(xué)則殆,放在機(jī)器學(xué)習(xí)里面,其實(shí)也是一樣的。如果現(xiàn)在丟給大家一個(gè)實(shí)際問(wèn)題,讓大家
14、去用機(jī)器學(xué)習(xí)里面的方法去解決,有一些人可能還是能想出123,但是大部分人想破腦袋也不可能知道怎么做。好在前人幫我們總結(jié)了很多套路,這些套路就是解決問(wèn)題的時(shí)候,我應(yīng)該按照什么方法來(lái)解決問(wèn)題。你這些套路,我告訴你們,首先我應(yīng)該怎么組織數(shù)據(jù),然后我應(yīng)該怎么寫(xiě)代碼去訓(xùn)練這些數(shù)據(jù),訓(xùn)練完之后你應(yīng)該怎么用你訓(xùn)練出來(lái)的結(jié)果去預(yù)測(cè)最后的答案,而這些東西就是我們所謂的訓(xùn)練的方法,它的結(jié)果就是我們所謂的訓(xùn)練的模型。因?yàn)槿ソ榻B這些東西可能對(duì)大家來(lái)說(shuō)是最實(shí)用的東西,自古套路得人心,學(xué)完套路之后,你就馬上可以去做一些實(shí)戰(zhàn)訓(xùn)練了。不過(guò)另外一句話(huà),學(xué)而不思則罔,學(xué)習(xí)完套路之后,必須要去理解為什么這些套路管用,我們要知道這些
15、套路之后的原理是什么,只不過(guò)這些原理大多會(huì)涉及一些數(shù)學(xué)知識(shí)。本課程的方針就是說(shuō)我們用最簡(jiǎn)單的語(yǔ)言來(lái)講解這些原理,當(dāng)然有些地方還是會(huì)提起一些數(shù)學(xué)公式,不過(guò)希望大家課后能夠自己去看一些資料,更好的去思考和理解這些機(jī)器學(xué)習(xí)方法。最后一步就是工程實(shí)踐,說(shuō)白了,計(jì)算機(jī)就是一門(mén)比較講究實(shí)用性的領(lǐng)域。如果你是一個(gè)工程師,就算你懂得再多,最后也無(wú)法轉(zhuǎn)變成能夠?qū)嶋H工作的代碼,那你是沒(méi)有什么用處的。所以說(shuō)本課程是教大家如何去實(shí)踐機(jī)器學(xué)習(xí),我們學(xué)習(xí)機(jī)器學(xué)習(xí)模型,直接去解決問(wèn)題,這是本課程最大的特色。我們并不關(guān)注那些過(guò)于抽象的理論,畢竟對(duì)于工程人員來(lái)說(shuō),動(dòng)手是理解有問(wèn)題最好的方式。只有形象地的去理解一個(gè)問(wèn)題,我們才能
16、不斷的去細(xì)究一個(gè)問(wèn)題,去探索它的本質(zhì)。本課程的不同之處在于我們雖然開(kāi)始會(huì)用一些小規(guī)模的數(shù)據(jù)去做一些實(shí)驗(yàn),但是我們并不只是針對(duì)每一個(gè)機(jī)器學(xué)習(xí)模型做一些小實(shí)驗(yàn),我們最后會(huì)去開(kāi)發(fā)一個(gè)完全可以實(shí)際使用的系統(tǒng),教大家怎么用機(jī)器學(xué)習(xí)去解決我們現(xiàn)實(shí)的問(wèn)題。實(shí)現(xiàn)方法我們現(xiàn)在來(lái)看一下,如果我們想在工程領(lǐng)域進(jìn)行大規(guī)模機(jī)器學(xué)習(xí),并且在線上應(yīng)用,我們應(yīng)該學(xué)習(xí)什么技術(shù)。我們的關(guān)注點(diǎn)是如何進(jìn)行大規(guī)模機(jī)器學(xué)習(xí)。大規(guī)模機(jī)器學(xué)習(xí)的第一點(diǎn)就是hadoop,大多數(shù)人應(yīng)該都聽(tīng)過(guò)這個(gè)東西。雖然說(shuō)現(xiàn)在更多,分布式數(shù)據(jù)處理工具層出不窮,但是它依然是屹立不倒最重要的工具之一。hadoop是一個(gè)分布式計(jì)算和存儲(chǔ)平臺(tái),也就是說(shuō)它又能搞分布式計(jì)算
17、,又能搞分布式存儲(chǔ),可以說(shuō)是一個(gè)全能選手。但它有個(gè)致命的問(wèn)題,就是實(shí)時(shí)性不夠,所以它不是一個(gè)解決問(wèn)題的萬(wàn)金油。hadoop的細(xì)節(jié)我們之后用到的時(shí)候會(huì)詳細(xì)講,我這里提一句,hadoop里面有個(gè)項(xiàng)目叫mahout,這個(gè)項(xiàng)目已經(jīng)使用一些可以擴(kuò)展機(jī)器學(xué)習(xí)領(lǐng)域算法的實(shí)現(xiàn),如果大家有興趣可以去看一下。第二個(gè)大規(guī)模工具是Spark,它的優(yōu)點(diǎn)主要有兩個(gè):它的api使用了流模型,相對(duì)來(lái)說(shuō)更易于使用。速度非??臁adoop會(huì)把它的中間計(jì)算結(jié)果存儲(chǔ)在外部設(shè)備,比如說(shuō)它的一個(gè)分布式完全系統(tǒng)上,它有一個(gè)網(wǎng)絡(luò)和硬盤(pán)的IO問(wèn)題。Spark為了彌補(bǔ)這個(gè)問(wèn)題做了一個(gè)非常簡(jiǎn)單粗暴的選擇,它把中間的計(jì)算結(jié)果全部存在內(nèi)存里面,沒(méi)有
18、一個(gè)網(wǎng)絡(luò)和硬盤(pán)的IO損耗,速度自然快。第三個(gè)是STORM,它是完全瞄準(zhǔn)hadoop的軟肋,如果說(shuō)Spark只是通過(guò)提高計(jì)算速度來(lái)緩解實(shí)質(zhì)性的問(wèn)題的話(huà),那么STORM則是一次釜底抽薪。它直接換了整個(gè)計(jì)算模型,用一種網(wǎng)絡(luò)的實(shí)時(shí)流模型來(lái)解決問(wèn)題,我們會(huì)在后面用到的時(shí)候具體講解這個(gè)模型。第四個(gè)是Hurricane,他是一個(gè)用C+開(kāi)發(fā)的系統(tǒng),它的架構(gòu)是模仿STORM,只不過(guò)是希望通過(guò)C+來(lái)提升它的計(jì)算速度,并且大家在做工作的時(shí)候就會(huì)發(fā)現(xiàn)我們需要做一些線性代數(shù)的計(jì)算,它的目的就是希望構(gòu)建一個(gè)易于使用的分布式計(jì)算系統(tǒng)。上面我們介紹了一些工具,這些工具都是一些大規(guī)模分布式計(jì)算的框架,如果說(shuō)繼續(xù)學(xué)習(xí)是一個(gè)工廠,
19、那么它們就是工廠的主任,他們的職責(zé)就是負(fù)責(zé)指揮底下的工人去工作,但是我們最后肯定是要實(shí)踐具體機(jī)器學(xué)習(xí)的方法,要有一些人來(lái)干實(shí)事。所以實(shí)際上工作中我們只有這些工具是不行的,所以我們?cè)谡n程中會(huì)講到生產(chǎn)實(shí)際中會(huì)用到的一些相關(guān)工具。我們先看最上面的,一些深度學(xué)習(xí)的工具和框架,說(shuō)白了就是,你用了這些框架之后,你就可以非常方便的去用這去用這些現(xiàn)成的深度學(xué)習(xí)工具訓(xùn)練一個(gè)模型,你只要輸入數(shù)據(jù),定一下網(wǎng)絡(luò)結(jié)構(gòu),它就可以給你訓(xùn)練出你需要的東西。這里我們推薦有Tensorflow和Caffe。Tensorflow是一個(gè)第二代人工智能機(jī)器學(xué)習(xí)系統(tǒng),雖然它是一個(gè)通用的機(jī)器學(xué)習(xí)框架,但是現(xiàn)在深度學(xué)習(xí)太熱了,大家基本都用它
20、來(lái)做深度學(xué)習(xí)。Tensorflow,是一個(gè)n維向量流模型,看起來(lái)很像STORM,它非常靈活。比如說(shuō)你的機(jī)器不好用了,你隨便接幾臺(tái)機(jī)器,隨便加幾張顯卡,它都可以正常工作。Tensorflow背后的支持者是谷歌,所以它擁有龐大的用戶(hù)社區(qū)擁有很多資源。當(dāng)你想要去驗(yàn)證一個(gè)實(shí)驗(yàn)性的想法的時(shí)候,它是一個(gè)非常好的選擇。不過(guò)它也有它的缺點(diǎn)。第一點(diǎn),如果說(shuō)你只有一個(gè)GPU的話(huà),它的性能確實(shí)不敢恭維,而且由于封裝太好了,它的內(nèi)部代碼相當(dāng)復(fù)雜,開(kāi)發(fā)調(diào)試起來(lái)非常令人討厭,想要深度定制是非常困難的。因此在生產(chǎn)環(huán)境中并不會(huì)使用它,因?yàn)槲覀儧](méi)有那么多的計(jì)算資源。小公司里面生產(chǎn)環(huán)境首選我覺(jué)得還是Caffe,這個(gè)計(jì)算模型比較陳
21、舊,但是因?yàn)樗臍v史比較長(zhǎng),所以支持的工具比較多,而且它的內(nèi)部代碼比較簡(jiǎn)單。同時(shí)它的優(yōu)點(diǎn)是運(yùn)行效率高,特別是應(yīng)用于基礎(chǔ)能力和硬件資源都不是非常理想的小公司,而且如果你的公司里面有一個(gè)技術(shù)能力非常強(qiáng)的人,他能夠吃透Caffe之后你們還可以去維護(hù)自己的版本。對(duì)小公司來(lái)說(shuō),這是一個(gè)性?xún)r(jià)比非常高的選擇。我們將在后面非常詳細(xì)的去介紹它,因?yàn)槲易约盒〉哪P投际怯盟プ龅?。深度學(xué)習(xí)的工具是一個(gè)執(zhí)行訓(xùn)練和運(yùn)行基石,在這上面還需要配套的工具來(lái)處理數(shù)據(jù)并調(diào)度任務(wù)。我上一節(jié)介紹的大規(guī)模處理數(shù)據(jù)的工具就是最好的選擇,他們可以幫你做數(shù)據(jù)預(yù)處理,處理完之后,調(diào)用這些深度學(xué)習(xí)的框架,然后這些深度學(xué)習(xí)的框架就可以幫你去做最后
22、深度學(xué)習(xí)的計(jì)算。這里我們還要注意說(shuō),因?yàn)閿?shù)據(jù)非常多,無(wú)論是我們訓(xùn)練數(shù)據(jù)也好,還是我們最后訓(xùn)練出來(lái)的模型也好,都是存儲(chǔ)在一個(gè)分布式存儲(chǔ)環(huán)境當(dāng)中的。而我們就可以選擇HDFS或者M(jìn)ongoDB,這是非常適合存儲(chǔ)非關(guān)系型數(shù)據(jù)的系統(tǒng)。至于我們系統(tǒng)的數(shù)據(jù)就可以存儲(chǔ)在MySQL這種傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)集群中。最后我們還可以用Redis這種內(nèi)存數(shù)據(jù)庫(kù)來(lái)做訓(xùn)練和預(yù)測(cè)的加速。比如說(shuō)你可以預(yù)先加載一塊東西出來(lái),作為一個(gè)緩存,它可以有效降低我們預(yù)測(cè)和訓(xùn)練IO的延遲。接下來(lái)我們來(lái)講解機(jī)器學(xué)習(xí)里面推薦給初學(xué)者看的兩本書(shū):一本是周志華的機(jī)器學(xué)習(xí),這本書(shū)是最近評(píng)價(jià)比較好的機(jī)器學(xué)習(xí)教材。當(dāng)然他是一種科普性的教材,所以它并不適合完
23、全自學(xué),但是配合我們這個(gè)課程去看也是完全不錯(cuò)的。一些機(jī)器學(xué)習(xí)的技術(shù)算法在這本書(shū)里面都會(huì)有相應(yīng)的介紹。優(yōu)點(diǎn)是對(duì)算法的描述比較簡(jiǎn)單直接,但相應(yīng)缺點(diǎn)是缺乏一些深度的分析。第二本是機(jī)器學(xué)習(xí)實(shí)戰(zhàn),這本書(shū)顧名思義,它的重點(diǎn)在于實(shí)戰(zhàn),它也是一個(gè)入門(mén)的經(jīng)典教材了。這本書(shū)對(duì)理論講的比較簡(jiǎn)單形象,每個(gè)方法它都會(huì)使用Python代碼教你怎么實(shí)現(xiàn)對(duì)小規(guī)模數(shù)據(jù)集的分析。它的優(yōu)點(diǎn)就是能夠讓你迅速抓住每個(gè)機(jī)器學(xué)習(xí)算法的理論核心思想,但因?yàn)槭侨腴T(mén)性質(zhì)的書(shū),所以說(shuō)無(wú)論是理論還是代碼方面都是講的比較簡(jiǎn)單的。理論上沒(méi)有做一些深入的分析,這部分可能還不如周志華的那本書(shū)。代碼上,它的工程規(guī)范性相對(duì)是比較差的,也只是處理一些小規(guī)模的數(shù)據(jù)
24、集。所以實(shí)際上你還是得去自己優(yōu)化代碼的,不過(guò)這是我看到的最靠譜的實(shí)戰(zhàn)類(lèi)的書(shū)籍。最后一部分是由2017年5月份,CSDN出版的程序員雜志,這本書(shū)刊登了Hurricane當(dāng)時(shí)的一個(gè)實(shí)時(shí)處理系統(tǒng)的架構(gòu)剖析,如果大家對(duì)大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)原理非常感興趣,大家可以去看這一篇文章,里面也涉及了深度學(xué)習(xí)網(wǎng)絡(luò)和機(jī)器學(xué)習(xí)相關(guān)的內(nèi)容。機(jī)器學(xué)習(xí)領(lǐng)域前景和就業(yè)好,我們來(lái)看一看機(jī)器學(xué)習(xí)的就業(yè)前景和就業(yè)情況吧。我們知道,機(jī)器學(xué)習(xí)非常非常火,即便是像我們這種傳統(tǒng)的IT公司,都已經(jīng)開(kāi)始踏入機(jī)器學(xué)習(xí)領(lǐng)域了。就像我們之前介紹的,阿爾法狗和自動(dòng)駕駛已經(jīng)讓我們體會(huì)到了機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)莫大的威力了。相比之下,很多新的領(lǐng)域有極大的用
25、武之地。我們國(guó)家之前搞了一個(gè)“互聯(lián)網(wǎng)+”的政策,提倡線上和線下結(jié)合。我們認(rèn)為現(xiàn)在可以搞出一個(gè)“機(jī)器學(xué)習(xí)+”,鼓勵(lì)大家利用機(jī)器學(xué)習(xí)去解決實(shí)際的問(wèn)題。我們來(lái)聊一聊人工智能的發(fā)展趨勢(shì)。大家使用計(jì)算機(jī)解決實(shí)際問(wèn)題的時(shí)候,像原來(lái)都會(huì)建立一個(gè)數(shù)學(xué)模型,用數(shù)學(xué)模型之間的邏輯關(guān)系來(lái)反映現(xiàn)實(shí)問(wèn)題。只可惜在現(xiàn)在,實(shí)際問(wèn)題越來(lái)越復(fù)雜,傳統(tǒng)的數(shù)學(xué)模型方式基本上失效了,因此出現(xiàn)了機(jī)器學(xué)習(xí)。機(jī)器學(xué)習(xí)的一大流派呢,其實(shí)是統(tǒng)計(jì)學(xué)。統(tǒng)計(jì)學(xué)流派其實(shí)也就反映了機(jī)器學(xué)習(xí)跟傳統(tǒng)數(shù)學(xué)模型之間的差異,他們關(guān)注的是現(xiàn)實(shí)問(wèn)題在統(tǒng)計(jì)方法下的關(guān)聯(lián)關(guān)系,而不是基于數(shù)學(xué)邏輯的因果關(guān)系,這點(diǎn)差別非常大。其實(shí)我們更希望的關(guān)注工程的、能解決實(shí)際的問(wèn)題。就像金老師介紹的這幾本圖書(shū)還有雜志,其實(shí)關(guān)心的更多的是概率問(wèn)題,而不是為什么??梢酝ㄟ^(guò)機(jī)器學(xué)習(xí)去找一個(gè)規(guī)律的表現(xiàn)層,然后我們?cè)賮?lái)分析這個(gè)表層下的邏輯關(guān)系。最后我們來(lái)了解一下現(xiàn)在的大勢(shì)所趨是什么,我個(gè)人覺(jué)得就是深度學(xué)習(xí)。深度學(xué)習(xí)在處理很多很多問(wèn)題的時(shí)候,特別特別牛逼,尤其是圖像識(shí)別、模式匹配、語(yǔ)音識(shí)別這些領(lǐng)域。大家可以看到,蘋(píng)果剛剛出的iOS11,里面新的Siri說(shuō)話(huà)非常自然。怎么做到的呢,這其實(shí)跟機(jī)器學(xué)習(xí)和深度學(xué)習(xí)有非常大的關(guān)系。我也說(shuō)過(guò),神經(jīng)網(wǎng)絡(luò)其實(shí)三十年前就已經(jīng)提出來(lái)了,為什么現(xiàn)在才這么火呢?最主要的一個(gè)原因就是深度神經(jīng)網(wǎng)絡(luò)極度依賴(lài)于數(shù)據(jù)量。大數(shù)據(jù)時(shí)代一定程度地觸發(fā)了人工
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高中化學(xué)新教材同步 必修第一冊(cè) 第3章 第2節(jié) 實(shí)驗(yàn)活動(dòng)2 鐵及其化合物的性質(zhì)
- 【四川卷】四川省德陽(yáng)市高中2022級(jí)(2025屆)高三質(zhì)量監(jiān)測(cè)考試(二)(德陽(yáng)二診)(2.21-2.23)英語(yǔ)試卷答案
- 傾廢航行數(shù)據(jù)記錄儀戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 鎳精礦戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 信鴿教練合同范本
- 加盟 轉(zhuǎn)讓合同范本
- 值守合同范本
- 中國(guó)學(xué)生發(fā)展核心素養(yǎng)心得體會(huì)
- 臺(tái)車(chē)出售合同范本
- 水利工程師水力學(xué)試題(附參考答案)
- 2025天津市安全員-B證考試題庫(kù)附答案
- 二年級(jí)下冊(cè)數(shù)學(xué)口算題-可打印
- 新風(fēng)施工合同
- 2025-2030年園藝修剪機(jī)器人行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢(xún)報(bào)告
- 人教版四年級(jí)數(shù)學(xué)下冊(cè)第四單元測(cè)試卷(含答案)
- 北師大版二年級(jí)數(shù)學(xué)下冊(cè)各單元測(cè)試卷
- 教科版 二年級(jí)下冊(cè)科學(xué)教學(xué)計(jì)劃
- 工序標(biāo)準(zhǔn)工時(shí)及產(chǎn)能計(jì)算表
- 人教版體育與健康四年級(jí)-《障礙跑》教學(xué)設(shè)計(jì)
- DB32-T 2860-2015散裝液體化學(xué)品槽車(chē)裝卸安全作業(yè)規(guī)范-(高清現(xiàn)行)
- 福利院裝修改造工程施工組織設(shè)計(jì)(225頁(yè))
評(píng)論
0/150
提交評(píng)論