這才是機(jī)器學(xué)習(xí)正確高效的學(xué)習(xí)路線!
:
最近幾年人工智能和深度學(xué)習(xí)備受推崇,所以有不少同學(xué)不管三七二十一就一頭扎進(jìn)去投入到CV的大隊(duì)伍中。
然而,對于基礎(chǔ)的統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí)一知半解,似懂非懂,最終進(jìn)入工作崗位才發(fā)現(xiàn)「高不成低不就」,技術(shù)淺的不愿意干、技術(shù)太深的干不了。
所以,我個(gè)人更加建議能夠從基礎(chǔ)學(xué)起,系統(tǒng)扎實(shí)的學(xué)一下機(jī)器學(xué)習(xí)。
我一向認(rèn)為,在學(xué)習(xí)一樣技術(shù)之前不要太著急,首先要弄清楚它到底是什么、然后學(xué)習(xí)的時(shí)候也能夠更加清晰明了一些。
今天,就從三個(gè)方面介紹如何學(xué)習(xí)機(jī)器學(xué)習(xí):
什么是機(jī)器學(xué)習(xí)?
如何學(xué)機(jī)器學(xué)習(xí)?
怎么進(jìn)階機(jī)器學(xué)習(xí)?
話不多說,下面開始介紹。
一、 什么是機(jī)器學(xué)習(xí)?
什么是機(jī)器學(xué)習(xí)?它和人工智能、深度學(xué)習(xí)有什么關(guān)系?
人工智能是計(jì)算機(jī)學(xué)科的一個(gè)分支,一個(gè)技術(shù)領(lǐng)域和方向的統(tǒng)稱。
機(jī)器學(xué)習(xí)是人工智能的一個(gè)子領(lǐng)域,從過去的數(shù)據(jù)樣本中獲得知識(shí)的過程,并利用這些知識(shí)來做出未來的預(yù)測,它可以作為一種數(shù)據(jù)挖掘技術(shù)使用。 ?
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)子領(lǐng)域,它是一種具有更多功能的機(jī)器學(xué)習(xí)技術(shù),因?yàn)樗噲D模仿人腦中的神經(jīng)元,它是一種將現(xiàn)象學(xué)習(xí)為概念的嵌套層次結(jié)構(gòu),每個(gè)概念都與更簡單的概念有關(guān),例如,卷積神經(jīng)網(wǎng)絡(luò)。
看到這里,應(yīng)該很清楚的區(qū)分?jǐn)?shù)據(jù)挖掘和后兩者之間的區(qū)別,下面再詳細(xì)的從特征工程、方法等方面解釋一下機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的區(qū)別。
特征工程
這是一個(gè)利用領(lǐng)域知識(shí)提取數(shù)據(jù)的重要特征,然后將其輸入學(xué)習(xí)算法的過程。這個(gè)過程確保數(shù)據(jù)中的模式對學(xué)習(xí)算法更加明顯。
在機(jī)器學(xué)習(xí)中,大多數(shù)應(yīng)用的特征需要由專家來識(shí)別。這個(gè)過程需要大量的時(shí)間和精力。
在深度學(xué)習(xí)中,算法會(huì)自行提取特征。
解決問題的方法
當(dāng)使用傳統(tǒng)的機(jī)器學(xué)習(xí)算法解決問題時(shí),建議將問題分解成更小的部分,解決它們,然后將它們的輸出結(jié)合起來,得到最終結(jié)果。
而深度學(xué)習(xí)則建議從頭到尾,端到端的解決這個(gè)問題。
例如,假設(shè)有一個(gè)動(dòng)物識(shí)別問題,一張圖片可能有多種動(dòng)物。
機(jī)器學(xué)習(xí)首先會(huì)識(shí)別圖像中可能存在的物體,然后分別預(yù)測或識(shí)別它們中的每一個(gè)。
而深度學(xué)習(xí)會(huì)輸入完整的圖像并一次性輸出物體的位置和名稱。
數(shù)據(jù)
與傳統(tǒng)的機(jī)器學(xué)習(xí)算法相比,深度學(xué)習(xí)算法通常需要更多的數(shù)據(jù)才能給出較好的表現(xiàn)。
硬件
與傳統(tǒng)的機(jī)器學(xué)習(xí)相比,深度學(xué)習(xí)是計(jì)算密集型的(因?yàn)橛懈嗟木仃嚦朔ǎ虼藢τ布陀?jì)算性能有更高的要求。
訓(xùn)練時(shí)間
基于前兩點(diǎn),深度學(xué)習(xí)在數(shù)據(jù)量、計(jì)算量都要比傳統(tǒng)機(jī)器學(xué)習(xí)大很多,因此,深度學(xué)習(xí)在訓(xùn)練模型方面也會(huì)耗費(fèi)更多時(shí)間。
二、如何學(xué)機(jī)器學(xué)習(xí)?
機(jī)器學(xué)習(xí)是一個(gè)很模糊且寬泛的話題,關(guān)于它的書籍、博客、視頻課程也是非常多的,我認(rèn)為如果希望做一些宏觀的了解,看一些網(wǎng)上的文章就行。如果希望深入學(xué)習(xí),個(gè)人建議還是系統(tǒng)的看看相關(guān)的書籍、視頻課程,然后盡量動(dòng)手實(shí)現(xiàn)一下,因?yàn)楫?dāng)你動(dòng)手實(shí)現(xiàn)的時(shí)候你會(huì)對它的理解更加深刻。
機(jī)器學(xué)習(xí)可以從兩個(gè)方向說起:學(xué)習(xí)算法和應(yīng)用領(lǐng)域,如果把應(yīng)用領(lǐng)域也囊括在內(nèi)的話,那包含的學(xué)習(xí)內(nèi)容就太多了,
數(shù)據(jù)挖掘
計(jì)算機(jī)視覺
自然語言處理
搜索引擎
......
以上每個(gè)應(yīng)用領(lǐng)域都能找到很多相關(guān)的書籍或者課程,因此就沒必要把它們?nèi)苛_列出來了。
單從學(xué)習(xí)算法來說,它可以分為如下幾個(gè)種類:
監(jiān)督學(xué)習(xí)
無監(jiān)督學(xué)習(xí)
半監(jiān)督學(xué)習(xí)
增強(qiáng)學(xué)習(xí)
按研究階段和研究內(nèi)容綜合來劃分又可以這樣進(jìn)行分類:
傳統(tǒng)機(jī)器學(xué)習(xí)(后面稱機(jī)器學(xué)習(xí))
深度學(xué)習(xí)
我就從以上這3個(gè)方向開始 介紹一下相關(guān)的優(yōu)質(zhì)學(xué)習(xí)資源。
機(jī)器學(xué)習(xí)
視頻課程
《機(jī)器學(xué)習(xí)》-吳恩達(dá)
[中英字幕]吳恩達(dá)機(jī)器學(xué)習(xí)系列課程嗶哩嗶哩bilibiliwww.bilibili.com/video/BV164411b7dx/?spm_id_from=333.337.search-card.all.click
提及機(jī)器學(xué)習(xí),入門課程當(dāng)然少不了吳恩達(dá)的入門經(jīng)典課程《機(jī)器學(xué)習(xí)》,雖然目前關(guān)于機(jī)器學(xué)習(xí)的教程層出不窮,但是絕大多數(shù)都是各教育機(jī)構(gòu)為分取蛋糕而創(chuàng)作出的產(chǎn)物,難免良莠不齊,內(nèi)容不嚴(yán)謹(jǐn),所以盡管老掉牙,我還是會(huì)首推吳恩達(dá)的這門《機(jī)器學(xué)習(xí)課程》,
《機(jī)器學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)》-Geoffrey Hinton
Hinton機(jī)器學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)中文課 - 網(wǎng)易云課堂study.163.com/course/courseMain.htm?courseId=1003842018&trace_c_p_k2=3ce7a362f80f4a46a7d8c2435cb7ee65
圖靈獎(jiǎng)得主、人工智能領(lǐng)域三位頂尖大牛之一,我想從事AI領(lǐng)域的應(yīng)該對Hinton都不陌生,從他的文章中就可以看的出來,非常有深度,嚴(yán)謹(jǐn),他的這門課程也保持了一貫作風(fēng)。但是,這門課也有一個(gè)問題,就是語速相對較快,一遍要跟著理解英語,一遍要去理解他所闡述的知識(shí),我覺得這還是一件挺吃力的事情。
《機(jī)器學(xué)習(xí)》-李宏毅
李宏毅機(jī)器學(xué)習(xí)2019(國語)嗶哩嗶哩bilibiliwww.bilibili.com/video/av46561029/
我覺得對于英語水平有限的同學(xué)來說看一門英文的課程還是很吃力的,比如我,每當(dāng)涉及到英語都會(huì)覺得頭疼。如果你也一樣,可以選擇看一下李宏毅的《機(jī)器學(xué)習(xí)》,這門課也是一門機(jī)器學(xué)習(xí)的入門經(jīng)典,目前已經(jīng)更新到2019版,不僅內(nèi)容詳細(xì),而且授課語言輕松風(fēng)趣。
書籍
《機(jī)器學(xué)習(xí)》-周志華
這本書很適合機(jī)器學(xué)習(xí)入門,沒有過多的公式推導(dǎo),也沒有晦澀難懂的詞匯,理論與示例相結(jié)合,闡述非常詳細(xì)。

《統(tǒng)計(jì)學(xué)習(xí)方法》-李航
和周志華老師的機(jī)器學(xué)習(xí)不同,《統(tǒng)計(jì)學(xué)習(xí)方法》這本書籍有更多的公式推導(dǎo)和理論證明,可以這樣概括兩者的區(qū)別:《機(jī)器學(xué)習(xí)》更偏重于算法原理,讓你知道每個(gè)算法怎么實(shí)現(xiàn)的,步驟是什么?!督y(tǒng)計(jì)學(xué)習(xí)方法》會(huì)深扒原理背后的理論支撐,這樣有助于更加深入的理解機(jī)器學(xué)習(xí)算法,對后續(xù)深入研究會(huì)有很多好處,當(dāng)然,隨之而來的就是對于初學(xué)者看著滿篇的公式也會(huì)讓人覺得很頭疼。
《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》- Peter Harrington
就如同這本書的名稱一樣,它更加突出實(shí)戰(zhàn),它不過多的討論算法的原理和優(yōu)缺點(diǎn),簡單的介紹一下算法的流程步驟,然后接下來更多的篇幅就是圍繞實(shí)戰(zhàn)展開,會(huì)給出一個(gè)示例,然后逐步編程實(shí)現(xiàn),這樣有助于讓自己發(fā)現(xiàn)學(xué)習(xí)理論過程中容易忽略的點(diǎn),進(jìn)一步加深對機(jī)器學(xué)習(xí)的理解,我認(rèn)為這本書還是很有必要看一下的,畢竟僅僅學(xué)習(xí)理論知識(shí)難免會(huì)落入“紙上談兵”的困境,實(shí)踐才能出真知。
我個(gè)人建議可以用《機(jī)器學(xué)習(xí)》+《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》的組合進(jìn)行學(xué)習(xí),《統(tǒng)計(jì)學(xué)習(xí)方法》可以在學(xué)習(xí)一段時(shí)間機(jī)器學(xué)習(xí)之后,希望更加深入了解機(jī)器學(xué)習(xí)時(shí)抽空好好看一下,推導(dǎo)一下里面的公式。

總結(jié)
以上課程和書籍都有一個(gè)共性,就是直接從神經(jīng)網(wǎng)絡(luò)、感知機(jī)、貝葉斯、KNN這些機(jī)器學(xué)習(xí)算法開始講起,而機(jī)器學(xué)習(xí)是一門交叉學(xué)科,它涉及概率論、統(tǒng)計(jì)學(xué)、逼近論、凸分析、計(jì)算復(fù)雜性理論等多門學(xué)科。如果希望在機(jī)器學(xué)習(xí)領(lǐng)域做更加深入的研究,我認(rèn)為還需要把這些相關(guān)的知識(shí)學(xué)習(xí)一下。當(dāng)然,如果日常工作是強(qiáng)業(yè)務(wù)類型,更加偏重于機(jī)器學(xué)習(xí)的應(yīng)用而不是偏重模型調(diào)優(yōu),我覺得上述這些課程和書籍已經(jīng)夠用了。
深度學(xué)習(xí)
視頻課程
斯坦福CS20:http://web.stanford.edu/class/cs20si/index.html
吳恩達(dá)深度學(xué)習(xí)工程師:https://mooc.study.163.com/smartSpec/detail/1001319001.htm
卡耐基梅隆大學(xué)深度學(xué)習(xí)導(dǎo)論:https://www.bilibili.com/video/av34151455/
李宏毅深度學(xué)習(xí):https://www.bilibili.com/video/av9770302/
書籍
《深度學(xué)習(xí)》-Goodfellow、Bengio
《Python深度學(xué)習(xí)》-弗朗索瓦·肖萊

《深度學(xué)習(xí)入門》-齋藤康毅

三、怎么進(jìn)階機(jī)器學(xué)習(xí)?
多看、多練!
這是互聯(lián)網(wǎng)/IT領(lǐng)域一個(gè)通用的法則,無論是學(xué)一門編程語言還是機(jī)器學(xué)習(xí),重點(diǎn)都是在掌握基礎(chǔ)理論之后通過實(shí)戰(zhàn)項(xiàng)目達(dá)到多看、多練的效果。
多看的目的是為了學(xué)習(xí)別人的用法,多練的目的是加深自己的理解。
推薦5個(gè)github熱門的機(jī)器學(xué)習(xí)項(xiàng)目,涵蓋傳統(tǒng)機(jī)器學(xué)習(xí)、深度學(xué)習(xí),同時(shí)還可以學(xué)習(xí)tensorflow、pytorch這兩個(gè)機(jī)器學(xué)習(xí)平臺(tái)。

tensorflow_course是一個(gè)gihub資源,目前已經(jīng)9.5k個(gè)star,受歡迎程度可見一斑,上面有傳統(tǒng)算法,例如線性回歸、支持向量機(jī),也有深度學(xué)習(xí)算法,例如卷積神經(jīng)網(wǎng)絡(luò),能夠讓你在學(xué)習(xí)機(jī)器學(xué)習(xí)的過程中進(jìn)一步熟練tensorflow。

這也是一個(gè)github項(xiàng)目資源,雖然不如上面這個(gè)火熱,但是目前也擁有4.1k個(gè)star,和上面這個(gè)資源有些類似之處,包括傳統(tǒng)算法和深度學(xué)習(xí)算法的實(shí)現(xiàn),可以邊學(xué)習(xí)機(jī)器學(xué)習(xí)知識(shí)、邊學(xué)習(xí)深度學(xué)習(xí)平臺(tái)。

一個(gè)很棒的機(jī)器學(xué)習(xí)框架,github 39k+star,按編程語言進(jìn)行整理,包括但不限于C/C++、Python、Java、JS、matlab、Rust。

每種語言有包含傳統(tǒng)機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺、自然語言處理、數(shù)據(jù)挖掘、數(shù)據(jù)可視化等項(xiàng)目。

目前5.4k個(gè)star,這個(gè)資源可以稱得上是大合集,包括計(jì)算機(jī)視覺、自然語言處理、教程和示例、優(yōu)秀文章的實(shí)現(xiàn),非常全面。

書籍、文章、教程、視頻、講座、數(shù)據(jù)集,應(yīng)有盡有的一個(gè)深度學(xué)習(xí)資源列表。
建議大家有空可以多瀏覽Github,有很多好用的開源免費(fèi)工具。但是,目前Github上項(xiàng)目多如牛毛,而且刷榜現(xiàn)在也非常嚴(yán)重,想要找到優(yōu)質(zhì)的項(xiàng)目變得越來越難。這里,給大家推薦Github上一個(gè)非常不錯(cuò)的項(xiàng)目《DevWeekly》,這個(gè)項(xiàng)目每周都會(huì)精挑細(xì)選一些優(yōu)質(zhì)的開源項(xiàng)目,涵蓋C++、JAVA、JavaScript、Python、Go等不同編程語言。此外,還有一些開源工具、優(yōu)秀的技術(shù)文章,建議大家看一下:
hello,大家好,我是Jackpop,重點(diǎn)大學(xué)本科畢業(yè)后保送到哈工大計(jì)算數(shù)學(xué)專業(yè)讀研,有多年國內(nèi)頭部互聯(lián)網(wǎng)、IT公司工作經(jīng)驗(yàn),先后從事過計(jì)算機(jī)視覺、推薦系統(tǒng)、后端、數(shù)據(jù)等相關(guān)工作。如果同學(xué)們在升學(xué)考研、職業(yè)規(guī)劃、高考志愿、簡歷優(yōu)化、技術(shù)學(xué)習(xí)