大一計算機學生如何學習機器學習?
本人全國前10高校的信息與計算科學專業學生,其實這個專業就是數學和計算機複合的專業,我確定了自己的方向是走數據科學,也就是數據挖掘機器學習這一方向,還對量化投資有挺大的興趣。一直想在保證保研的基礎上在課餘學習點東西,還沒確定方向時看了一會acm,後來確定方向後學過一下《用python進行數據分析》,發現這只是個分析工具,自己並沒有要分析什麼東西的能力,於是現在準備開始從Andrew ng的公開課開始學習機器學習。但是我們只學完了高等代數。正在學數學分析,離散數學和c++,要等大二下學期過去才能學完這些課程和數據結構,概率論,數理統計。好像數學基礎還不夠用來學習機器學習,怕學下去會像以前一樣學到一半就學不下去了。有點迷茫,請知乎大神們可以給我指點下,謝謝!
以下內容收錄改編自國內第一家專業機器學習社區---集智社區(https://jizhi.im)
個人非常厭惡羅列資源而沒有作用的答案(比如有的瞎貼一波圖片就完事了,你除了名詞什麼都不知道),所以給出一些關鍵資源。
機器學習,應該是以書籍和代碼為主,以可以反覆觀看的視頻為輔,盡量避免看一些直播課程之類的,收效很差。
機器學習快速入門只用做好三件事就可以了。
零、語言基礎:廖雪峰 @廖雪峰 的python教程(Python 2.7教程 / Python教程)或者《python基礎教程(第二版)》,這會給你語言的一個整體把握,哪怕你以後不做機器學習了不做程序員了,學會Python這門語言都會對你提高各種工作的效率提供極大的幫助。(這裡有個問題就是廖雪峰的教程到中後期跨度很大,而python基礎教程過於基礎詳細,自己把握) @軍師
一、Coursera上 Andrew Ng 教授的Machine Learning。語速緩慢,難度很低,跟著課程走,完成所布置的作業就能對機器學習有一個最基礎的認識。對你來說唯一的問題在於這門課的編程作業是基於Matlab 或 Octave 的,但是二者的語法結構都特別簡單,課程中也包含了簡單的教學,所以問題應該不大。 有本書叫《機器學習實戰》,作者是哈林頓 (Peter Harrington),用的語言是Python。(集智中有大大說書里的代碼很難看_(:з)∠)) @碩驊 @Adam的個人資料 - 集智
談機器學習就離不開數學和深度學習。
二、 CS229+CS231n全部上完。 李航《統計學習方法》(統計學習方法 (豆瓣))全部看完。 學一種深度學習框架。 @BigMoyan
非常簡單的輔助資源和快速入門:
淺說深度學習(1):核心概念 - 集智專欄9行Python代碼搭建神經網路 - 集智專欄更多相關資源可以來社區BigMoyan的深度學習資源帖(深度學習資源帖 - 集智社區)找到。
謝邀
如果是想系統性地學習機器學習,我認為良好地數學基礎是必不可少的,因此,可以提前把相關數學課程學完,比如微積分、離散數學、概率與統計,再開始學習機器學習比較合適。
經常有人糾結地問我大幾應該學什麼,我也只能糾結的回答這個跟大幾沒有關係。知識就像技能樹,你要點高級技能,就要把低級技能點滿,這個跟你何時點沒有關係。
至於如果快速攀科技,跳級選課可以,自己在網上找公開課也可以。只要有自學能力,花上足夠的時間,這些都不是問題。一門課程按16周每周12小時算就是大約200小時,時間花到了,技能就得到了。
當然,如果只是想看看從入門到放棄,淺嘗則止留個念想也不錯。
----
@陳然
無意間看到這個問題,想起我大二初學機器學習的時候,我也是信息與計算科學這個專業,這個專業網上都說很坑,其實我覺得這個專業特別適合想走機器學習這條路的學生,既有機器學習的理論知識,比如數學分析,高等代數,運籌學,泛函分析(雖然很淺),資訊理論,又有基本的計算機知識,數據結構,演算法一類的。
我覺得知識分兩個維度,廣度和深度。在初學時,我覺得應該注重廣度,建立興趣,不糾結於理論,實踐為主。
既然才大一,沒學概率論,可以先看看coursera台灣大學的概率論,一周就能學完。然後看看udacity的機器學習,偏實用,沒什麼理論,仔細了解sklearn,numpy,pandas這些庫基本的應用。sklearn的文檔可以下載下來,隨時看看。然後實踐可以耍耍kaggle的入門比賽。這樣完全就入門了,可以理論知識和實踐知識螺旋上升。數學理論的知識可以跟著學校學,或者看mooc,可以看我的另外回答。我的知乎回答:Coursera 上有哪些課程值得推薦? 2017.04.15更新更新了一套深度學習入… https://www.zhihu.com/question/22436320/answer/156447791?utm_source=qqutm_medium=social
先把線代,概率論學好再說
數學基礎看你方向了,要是做神經網路真是沒什麼數學要用,最重要的是把框架玩熟,書都不用看,基礎內容熟悉了之後,直接讀論文進入前沿都行。至於做貝葉斯的就路漫漫了,不過我感覺大一直接看圖模型也看得懂(數學系的標準
傳統機器學習也得熟悉一下,也就那幾個演算法,用多了那些數學不太懂也能理解,況且入門級的統計學習演算法也沒什麼數學...記住,目前你的目標並不是快速進入科研階段,而是把這工業界已經成熟的那一套東西玩熟
最近在學機器學習,就也xjb答一發吧。。
1.Coursera上有吳恩達的機器學習課程,翻譯成中文了,部分沒翻的連我這種四級xjb蒙過的都看得懂,所以大部分都能看懂。不過窩還是推薦周志華的西瓜書(《機器學習》清華大學出版社)作為入門。
2.還是Coursera上有hinton這位dalao的神經網路課程,英文的,可以考慮把這個作為另一個課程。
3.udacity上面有一個深度學習課程,我才剛開始看,感覺還不錯。可以考慮作為學習深度學習的課程。
4.其實我們每次學這些東西吧,可能看一遍就知道什麼原理,看不懂的看幾遍大概就會了,但是過一段時間就忘了,所以其實我們以為的會了真的只是我們以為的會了。所以建議學一個演算法就用代碼擼一發,用什麼語言不重要,不過我還是推薦Python。
5.每天起床定個目標,前一天晚上也ok,然後晚上看目標實現與否
6.寫博客記錄每次學會的演算法,包括實現的代碼。
7.考個研可能比較好...
8.上面那條xjb說的...
9.普通大學生還是考個研比較好,機器學習的世界太龐大了
---------------------
嘛,這個回答不是說數學不重要,相反我覺得數學非常重要。但是一方面上大學後我自己數學沒怎麼注意學,所以沒啥好經驗說,另外一方面,我更認為自己去體會到數學的重要性更好。
因為本人就是機器學習看著博客學了幾個演算法然後寫了點xjb的東西,想深入學習的時候才發現的數學很重要。而大一的時候別人的說數學很重要的意見沒怎麼重視。所以對此感觸很深。
所以還是建議先做幾個小項目感受感受機器學習吧,再去學數學然後深入學習。
以及。我覺得作為一個計算機學生,代碼力還是最重要的。
------------
這個回答不是資源貼,也不是課程難度討論,別總沒事就跟我說hinton課太難,全英文對我就很難了我也就列舉下資源。
什麼階段看什麼課程,哪怕一開始不知道這個課是什麼內容,但凡有點腦子也該知道能不能搞下去。
這個回答的唯一重點已經加粗了。
想看完整的從入門到精通的各個資源,貴乎其它文章回答都有了自己找去。
給自己的回答做個廣告,如果想系統的學習機器學習,我的經歷給你作為參考,大一的學生還有很多時間,加油!工作後想換機器學習方向,需要學到什麼程度去找工作? - 知乎
0.可以看看吳軍博士的《數學之美》,先大致了解一下,對這方面有一個基本的認識。這本書講的很好,深入淺出,作為入門讀物很適合。
1.首先,數學很重要!數學很重要!數學很重要!重要的話重複三遍。高數(數學學院的數學分析比高數難很多)、概率論、線性代數是基礎。建議樓主先把這幾門學完,其餘的數學可以在遇到時再看,不懂的直接Google再具體補就行。
2.題主在學C++,以前沒學過編程嗎?如果沒學過,可以一邊跟著老師學C++(當然自學也是沒太大問題的),一邊學Python。其實Python作為入門語言,也很好。學機器學習,Python算是最常用的語言了。
3.在學完一門語言後,可以學一下數據結構,那些數據結構在機器學習中具體好像很少用到?(我目前沒遇到過)。但是機器學習也是一大堆演算法,學習基礎的數據結構對思維的拓展和解決實際問題的能力很有幫助。
4.至於機器學習方面的學習資料,首先推薦吳恩達coursea上的公開課,相對簡單,對初學者友好,周志華教授的《機器學習》(西瓜書)也很棒,不過都是理論,沒有具體實現,可以參考《機器學習實戰》。還有李航博士的《統計學習方法》,感覺有些章節比西瓜書講得好,公式推導很詳細,感覺SVM、EM演算法和HMM這幾個講得都很棒,這些西瓜書沒有太過深入,這兩本書可以結合著看。一邊學習理論,一邊用代碼實現,對理解和記憶很有幫助。然後推薦cs229、cs231、cs224n等斯坦福的一系列課程,及一大堆經典教材,慢慢學你會逐漸深入的。
ps:以上均非廣告貼。
大一先把數學學好,把編程功底打牢再說,機器學習不著急學,等大二大三也來得及。
不謝邀,題主比我牛逼多了,我沒啥資格給意見。
我的建議就是基礎很重要,特別是數學,另外就是堅持很重要,要有一路走到黑的心態
要明白AI概念是來自於計算機學科,因此如果要了解AI,首先需要對計算機科學有基礎的認識,也許不一定要學會寫代碼,但至少應該知道計算機的工作原理是什麼,計算機計算的數學模型是圖靈機等等。在此之上,再去了解AI理論。
對於想要真正了解AI理論的人來說,科普讀物一般是不建議的,因為很多的比喻都是給外行的講解,並不能真正說清楚原理。
在有了基礎的數學和計算機知識以後,一般AI課程的本科生教程都會是比較好的入門材料,如 Aritificial Intelligence: A Modern Approach。
另外,在閱讀這些入門材料的同時,還建議能夠多接觸AI的發展史、流派和八卦,適當讀一些嚴肅的長篇博文,這些對從高層次理解AI的理論發展和各流派的起因、優劣很有幫助。
最後推薦一本奇書,有中文譯本,作者侯世達,《哥德爾,埃舍爾,巴赫:集異璧之大成》,本書從邏輯、繪畫、文學、音樂等許多方面闡述了人類的認知能力和AI的可能實現途徑,只可惜這個問題迄今沒有確定的回答。希望這些能有幫助。
歡迎來微信關注我,名字看我頭像。
把自己假想成一個機器去學習機器學習就好了
轉專業到數學學院,研究生在轉回計算機
作為不太了解這方面但又想幫幫你的鹹魚,只能幫你到這了。。。。
人工智慧鏈接: http://pan.baidu.com/s/1bV2aXS 密碼: 7ydc
機器學習鏈接: http://pan.baidu.com/s/1bpy6wI7 密碼: yiwj
深度學習鏈接: http://pan.baidu.com/s/1kVp2B7T 密碼: 8xey
演算法鏈接: http://pan.baidu.com/s/1pLkAFzH 密碼: ewj2
自然語言處理(NLP)鏈接: http://pan.baidu.com/s/1ckvmuq 密碼: te6q
推薦系統鏈接: http://pan.baidu.com/s/1dEWHXzb 密碼: 3ux1
斯坦福NLP課程鏈接: http://pan.baidu.com/s/1hsqU8cc 密碼: px2c
神經網路、深度學習方向鏈接: http://pan.baidu.com/s/1miPsvkG 密碼: npvp
大規模人臉標註數據集 鏈接: http://pan.baidu.com/s/1boBhqfP 密碼: 4nt5
數據集鏈接:http://pan.baidu.com/s/1c2w2vZy 密碼:frmf
TensorFlow教程鏈接: http://pan.baidu.com/s/1c11BLCW 密碼: gk45
模型鏈接: http://pan.baidu.com/s/1jHJa5Zg 密碼: 9tgc
數據分析鏈接: http://pan.baidu.com/s/1eSP43J0 密碼: dfp9
Python入門課程鏈接: http://pan.baidu.com/s/1c1TvZYK 密碼: 1zb7
計算機視覺鏈接: http://pan.baidu.com/s/1qXJ4o4s 密碼: 7kta
編程教程鏈接: http://pan.baidu.com/s/1kUAQXoj 密碼: x35a
CNCC2016演講鏈接: http://pan.baidu.com/s/1o8qIqZg 密碼: dv5s
備份:http://cloud.189.cn/t/I3Q7biaUVZja
如何學習與使用機器學習!?本課程由阿里雲機器學習平台PAI的數據產品專家——李博(傲海)為大家分享機器學習該如何從入門菜鳥到神級大師:
李博,花名:傲海。目前任職阿里雲數據產品經理,主要負責機器學習平台的產品化建設以及對外業務應用。本科、碩士就讀於北京郵電大學,曾就職於(實習)SONY和華為,從事數據相關產品開發。作為CSDN博客專家、雲棲社區博客專家,長期分享IT技術相關文章,覆蓋機器學習演算法、Android應用及源碼開發等領域。一直活躍在開發者社區,主導開發了多個GITHUB百星開源項目,並且也開發上線了多款手機APP應用。著有《機器學習實踐應用》一書,將於近期出版上市。
聯繫作者(微信公眾號):凡人機器學習
直播回看地址:http://aliyuntianchipublic.cn-hangzhou.oss-pub.aliyun-inc.com/download/%E5%82%B2%E6%B5%B7%EF%BC%8D%E5%A6%82%E4%BD%95%E5%AD%A6%E4%B9%A0%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%EF%BC%8C%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0.mp4
直播PPT內容:
http://weixin.qq.com/r/G0wQCELE7h_RrQZr9xkJ (二維碼自動識別)
datasciencemasters/go
跟著走
我之前寫過一個答案,我好像不僅說了怎麼學習數學,似乎把怎麼學習機器學習也說了。希望對你有用。
大四年級,完全沒接觸過高數,目前對機器學習產生濃厚興趣,該如何學習數學? - 知乎
數學知識方面:
首先,高數是一定要學的,這是做機器學習要用到的最基礎的數學知識(微積分),然後還需要學習線性代數,也是數學知識(矩陣),大學數學中還有一門是「概率論與數理統計」,也是機器學習中會用到的數學知識。
這些知識自學的話,可能是挺困難的(對於絕大多數人來說),所以我給你推薦一個mooc平台:
中國大學MOOC(慕課)_最好的在線課程學習平台
在上面搜上述數學類課程,數量很多,可任意挑選。我當時就是在這裡學了一遍之後,考試都成績還不錯。而且,其他的任意課程你也可以在上面搜索到然後學習。
深入的數學知識還有:數值優化、概率圖、隨機過程等。
機器學習入門課程:
在coursera上找吳恩達(Andrew Ng)教授的機器學習課程,他把要用到的數學知識也做了簡單的講解,機器學習方面的理論和演算法講的也很詳細,而且很基礎,肯定可以看懂。https://www.coursera.org/learn/machine-learning
網易公開課中也有吳恩達的另一種機器學習課程
斯坦福大學公開課 :機器學習課程
還有這個 加州理工學院公開課:機器學習與數據挖掘_全18集_網易公開課
深入的課程:
斯坦福大學在線課程網站:
Courses | ONLINE
各類機器學習課程:
機器學習: Machine Learning
cs229: Machine Learning
CS224d: Deep Learning for Natural Language Processing
CS231n: Convolutional Neural Networks for Visual Recognition
書籍:
《機器學習》周志華 清華大學出版社
《解析深度學習——語音識別實踐》電子工業出版社
《數學之美》吳軍 人民郵電出版社
《統計學習方法》李航
其次,如果有精力的話,我還推薦學一下「離散數學」,對於計算機方面的理解是很有好處的。至於這個,也有一個mooc,不過在coursera上有北京大學的「離散數學概論」課程: https://www.coursera.org/learn/dmathgen
編程方面:
建議使用Matlab和Python來做機器學習,編程方面的資料很多,我就不一一列舉。
小技巧:
善用搜索引擎,比如谷歌、必應和百度,尤其是谷歌(具體怎麼用谷歌請先自行百度 /汗 )
最後,我還有一個建議是寫博客,像我一樣:AI檸檬 - 一個科技愛好者的個人博客
把你自己學到的數學知識、計算機知識和機器學習知識都寫下來,一個是自己記錄,另外也是跟別人分享,幫助別人學習和進步,互相探討,別人還能幫你挑出錯誤,有助於你的成長,也歡迎喜好機器學習方面的同好來我博客交流。 n(*≧▽≦*)n
放一些我博客上一點機器學習方面的文章吧,供大家參考。。。
某技術講座:機器學習基礎入門 | AI檸檬
機器學習:統計回歸模型 | AI檸檬
機器學習:對數幾率回歸-1 | AI檸檬
機器學習:對數幾率回歸-2 | AI檸檬
機器學習:過擬合與欠擬合問題 | AI檸檬
機器學習:神經網路模型 | AI檸檬
才大一新生好好學習基礎課,保證高數和英語年底不掛科,大二第二學期正常過六級再說吧。再學會獨立生活,自己洗衣服洗襪子。專業課的事情等考上博士再談不遲。
先看Andrew Ng的公開課是很好的. 基本上過完一遍之後你就對機器學習所包含的知識點有一個大概的了解了, 接下來更多的其實也就是在這個基礎上面增加深度.
ML的數學基礎這個看你重點是做哪個方面..不同方面其實技能點也很不一樣. 但是我覺得其實這個時候不妨先把理論的東西放一放先做一些實戰之類的練練手..一般幾個model下來自己熟練很多. 我用的第一個軟體是Weka但是我並不推薦..折騰一陣之後我的觀點是scikit-learn是一個比較好的拿來入門的庫, 你可以看看scikit-learn是怎麼設計模型的介面的, 以及一些常見的ML編程範式比方說Data Processing Pipeline. 這些設計範式有助於你在今後自己設計演算法的時候迭代的更快一點. 目前看來基本上所有主流的ML框架(比方說Spark MLLib, Tensorflow) 都鼓勵這種開發範式, 你如果把這個用熟了拿Spark寫一個所謂的"大數據"模型也就是分分鐘的事情. 同步的教材可以看scikit-learn contributor的一本Python Machine Learning. 機器學習的演算法的思維方式跟一般的演算法課裡面學的還是很不一樣. 機器學習基本上還是Formula Oriented Programming, 並不能說這種代碼更好些因為如果有Bug其實相當難調.. 因此你寫的越多對你今後的幫助就越大. 大一的話可能對軟工的一些概念了解的也比較少, 這正好也是一個可以學習軟體工程的機會. 學會寫Property Testing會是一筆寶貴的財富. 這個我都是從Haskell裡面學到的. 如果大一學了數據結構的話其實這個時候可以想想如果自己要寫一個矩陣庫會怎麼寫? 矩陣相乘為什麼ijk和ikj的差距那麼大. 為什麼你自己寫的相比BLAS慢出翔. 然後想想怎樣可以設計一個類似Torch裡面Tensor的數據結構? Tensorflow 這樣的框架是怎麼樣做到自動求導的? 如果自己寫一個你會怎麼寫? 這些都是一些很值得思考的問題, 可以作為課餘的補充. 我把他們寫在這只是作為一個參考. 能回答這個問題的時候你對於計算機結構的理解也比以前深了. 千萬不要把機器學習當成單一的目標因而錯過了計算機科學其他領域的美:D
如果還要繼續補理論的話我是從CMU這門課開始的, 雖然說是面對PhD的課但是Tom Mitchell講的很好然後推薦的教材也是我讀過的所有裡面最容易接受的. 美中不足的一點是在於這門課比較老了所以可能裡面有一些觀點不是那麼與時俱進, 不過很多經典的演算法比如EM, HMM這些還是需要理解的.
Machine Learning
看完這個你就應該需要好好學數學了. 這裡如果你是比較frequentist一點的話可以先瀏覽一下Andrew Ng那門課在斯坦福版本的講義, 是英文的如果題主英文不是很好地話你在知乎裡面搜搜最近貌似有人在翻譯. 還有一門比較不錯的課是斯坦福的凸優化, 這兩門結合在一起看你會明白當你在learning的時候你其實本質上是在解決一個優化的問題, 有一些模型是可以凸優化求最優解的(比如線性回歸, SVM), 有些不行. 這樣你在看到新的模型的時候想的第一個問題就會變成這個能不能凸優化求解. 這些課其實不用一口氣看完的, 我覺得比較好的方式是以解決問題出發來學這些知識點, 這樣你自己才知道哪些是要補得.
當然了, 如果說走偏貝葉斯一點的話上面的還是要看, 但是你可能還要花很多時間把統計學好. 這裡一般推薦的教材是Chris Bishop的PRML, 但是對於大一應該太抖了, 學好了線性代數和統計再來. 沒有那麼陡的是Kevin Murphy的ML Probabilistic Perspective, 我個人更偏愛這本. 雖然說現在深度學習大火但是深度學習以外的部分大部分對統計的要求都很高.
當然了機器學習還有很多小的領域, 比如強化學習高斯過程什麼的, 這些領域一般以看論文為主了, 到這一步的時候相信題主已經知道怎麼尋找合適的資源了:D 具體ML怎麼應用到NLP, CV這些領域的話一般還是case by case關注一些比較好的模型, 至少和名字混個眼熟.
等到這一步的時候你就會感嘆機器學習是一個坑多麼深的領域了.
推薦閱讀:
※高頻交易都有哪些著名的演算法?
※量化投資中有沒有完美的參數尋優方式?
※Python 在金融領域的主要應用是什麼?有哪些分類以及什麼類型的金融公司會來應用?