ML,AI相關
關於學習方法的問題,我個人覺得很重要,機器學習這一塊點很多,有數學,有計算機,有應用,有方法論,如何在本科生階段玩轉機器學習呢,我覺得很重要一點就是學習方法了,這個靠大家平時學習時候去總結,當然在我blog裡面我會不時穿插一些我自己的學習方法,以下僅僅是本人在大學兩年學習中相對來說比較短的時間接觸機器學習的一些心得體會及學習經驗的分享,希望能給大家帶來一些啟發,不足之處望大家指正。
進入正題,一名本科生如何入門學習機器學習?
此處我們暫且不論文科生,理科生工科生課程大多在大一會有高等數學和線性代數兩門課,機器學習大約需要多少數學知識呢?個人覺得如果你是想從事機器學習演算法基層工作,偏做數學學術的同學,你可以本科兩年左右把高代、數分這些主幹課過一遍,至於大三的一些實分析、複分析、泛函實變這些,個人覺得機器學習極少用到這些,當然也可能是我程度還不夠深入,我的建議是大家不要浮躁地一開始就拿著程式碼開始擼專案,但是也不要讀成書呆子,大家一定要明白一個觀點,如果你不想成為陳景潤那樣的數學家,大可不必花上大把時間在各種各樣的數學專業書上。那麼回到我們的問題機器學習到底需要多少數學知識呢?從我個人學習經驗,鄙人在學校大約學過高等數學、線性代數、離散數學、概率論與數理統計這四門主幹課,平均分大約在88分左右,至於為什麼平均分沒上95,是因為實在是懶得複習每本書那一章背的讓人頭疼的公式,機器學習需要的數學大約是高數微分積分思想那塊(泰勒展開可以好好複習複習)、線性代數基礎書加上部分求導(矩陣的跡這些)、概率論與數理統計(貝葉斯看看,然後是分佈那塊),這幾塊內容實在在這幾本書算是基本內容了,很簡單。之前見過一些,有的可能會說這些操作在現在流行的平臺都有許多包能用巴拉巴拉的,但是不要忘了我們雖然不是“造房子”的人,但是最基本的一些東西還是希望同學們在學習的過程中去證明證明。在已有比較好的數學基礎上去看機器學習的演算法會輕鬆很多,也解決了部分同學一心趴倒在數學坑裡的問題(執著於數學的科研小夥伴請忽略我這一大段話,統計學大佬惹不起)。
好啦,以上就是機器學習在數學方面的要求。接下來我們可以愉快地學習機器學習啦。
這裡我說說我的入門,一開始很榮幸一個大佬給我講了機器學習一些思想,順便安利了我輩楷模Andrew ng,一開始在網易雲看了一遍帶massac的視訊,憋的不要不要,很多地方一知半解,練習也較少,看完之後懵懵懂懂吧,當時是邊刷周志華老師的西瓜書(這個不必說了吧,另一個大佬,據說最近評上了ieee fellow的亞洲主席來著),當時大約是大二上學期結束後的寒假,痛並快樂著。過了一段時間,朋友圈另外一個大佬alexa哈哈,瘋狂在刷coursera,抱著萌新心態一搜,不得了哇(coursera為ng所創立),然後不知不覺刷完了stanford的ml課程,並做完了所有練習。做的同時二刷周志華老師的西瓜書,痛並快樂著。
不得不說ml博大精深,看了很久很久,我發現自己還是停留在學習階段,也就是怎麼說,在有的人看來屌屌的,但是實際上讓我立馬接一個專案,感覺壓力山大啊。這時候我開啟的B乎,手動滑稽臉,發現李航老師的《統計學習方法》,這個評價不是一般的好,繼續買書刷書,刷完感覺數學功底理解上升了一個層次。以上書籍都很安利的。後來alexa大佬在刷華盛頓大學的ml課程,據說也很nice,但是課程量太大加上後來國家某局狂搞vpn,沒得看,算是小遺憾了。
刷完統計學習方法對不對,不得不再吹一句,機器學習也是大學科,類別是真的多。轉眼到大二下學期的暑假,看大佬無聊的時候演示一波R的文字分詞,著實歡喜,自學了一波R語言(ps那時的我執著於用octave處理一切問題),美滋滋。當然我繼續搜淘寶,淘到一本機器學習實踐,看來是harrinton大佬寫的,很nice帶原始碼,小夥伴們刷起吧,不解釋,不過這本書沒刷完因為其他一些專案耽誤了。(python也是真滴好用,當然包這一塊強推anaconda,conda指令有些坑處我自己慢慢爬出來的,有問題的同學可以留言)。
搞了一波事情,發覺無聊了,這時候來了本深度學習,還是yoshia bengio大佬,別說了,再貴都買,目前刷了五章, 一直炒現飯,我給自己本科要求是不玩深度學習,但是進來了還是看看吧,就是玩玩,沒指望自己能玩轉卷積這些,只是看看。近期什麼狀態呢,(⊙o⊙)…
其實從暑假後期開始,我重心轉向託福了,打算年底刷一波分,然後再投入到令人嚮往的事業來hhhh,不過現在看起來又要重新進坑了。兩個教授給我發出申請,給研究生講講我的學習方法交流交流,maybe已經走在大部分人前面,現在是想划水劃不動了,每週跟著一幫研究生開組會,過起了研究生+本科生雙重生活。文中如有冒犯請別跟小人一般見識,現在是大三狗了,只能劃兩年,出國跟著某苦逼導師消耗自己兩三年的生命投身科研吧,當然就是說說,有大佬帶就好,現在處於不想自己帶隊的狀態,手上有一手資源,但是不想用23333,感謝讓我再休息一陣子哈哈哈哈,勞模下線了。如果想了解細節可以留言,我有時間有想法了可以不定期更新一兩波乾貨。鄙人愛好較多,歡迎找我打橋牌啊之類的,棋現在不想約了,小提琴處於想拉就拉的狀態,為bigbang著迷的程式猿,balabala當日記寫著玩哈哈。
感謝大學兩年以來幫助過我的學長學姐們,感謝我最親愛的honey,沒錯就是你呀!
忘了怎麼打分割線了,姑且這樣湊合吧。出去交換了一波準大四來補全一下。(不知道算不算畫蛇添足2333)
之前說的大約是需要不是很多的數學就能開幹,但是要知道很多東西看起來不難,但是越深入是越難的。對於想做機器學習(AI大類)相關的同學要明白自己有什麼資源,自己想達到什麼程度,自己想做什麼。上學期出去交換一學期,期間零零碎碎做了網路+嵌入式的app專案,也做了一些GAN相關的東西,聽了幾位業界蠻有名的大牛講座。思路太多下面慢慢整理(最近刷GRE也順帶繼續刷toefl真是累)。
如果你是大一/大二同學,請好好學習數學的同時刷完李航的《統計學習方法》,(最近大家都在看,似乎是國內院校神書)這本書蠻薄的,前前後後因為實習各種事詳細看了好幾遍,至今也不敢說自己完全都會,甚至前兩天和一個研究生學長討論一下把我問住了,只能說這本書中許多問題需要深入思考:為什麼要用這個方法、這個方法為什麼好、這個方法還能用在哪裡。其實在平時學習與看書這件事不衝突。
還有幾本實踐書,《python實踐》大約是這麼寫,harrington寫的,主要是基礎演算法的例項。然後是《tensorflow深度學習框架》這本是科大學長安利,出到了第二版,也挺不錯。實踐書,演算法書都挺不錯,同類型多看看也差不多了,主要提高coding和對這些問題的思考,比如這些演算法背後的一些哲學思想(開玩笑2333)。
至於周老師的西瓜書,可以當作reference之類的看,裡面工程內容也很多,如果有能力(看完李航老師書的前提下)跳過演算法部分,專注工程的一些trick。還有一點是不管用什麼方法,coding是要有的,我的blog基本上囊括了machine learning的一些基本演算法。當然了,等你看完這幾本,其實你還沒入門。。。
哈哈,當然是騙你的,如果你弄透了,基本在ml這塊就沒問題,可以繼續進階啦。這裡你可以有很多基礎的東西要看,比如CNN對不對,CNN基礎的論文大概二十篇左右,我在我的blog有詳細列出了其中比較重要的條目以及閱讀意見。然後是RNN呀LSTM呀RF呀FPGA呀GAN呀這些,當然我沒羅列完,大約就是各種網路模型,再加上各種優化方法,當然還有純convex流派,這個大大大佬應該是都會的,頂會上再厲害的東東也是有數學那麼些東西的,籠統來說就是你這裡哪裡加了個function,然後這樣optimize就很好,然後證明兩頁略這種。這些論文加起來大約200篇左右,最好是能實現一些,然後實操一些。
同時比賽也可以玩玩呀,ACM,阿里的,kaggle上的都不錯,可以拿得出手,鍛鍊鍛鍊。(當然還有JData,TX社交網路,攜程滴滴這些)還有數學建模之類,以及各種網際網路+之類的比賽水水。PS數學建模玩的好真能保送北大,因為國賽是會排名的,隔壁寢就保了。(當然ACMworld final也能保,同實驗室的學長15final打了世界30多吧,毅然決然放棄博,感覺他考個toefl就能上MIT,後來去了pony投奔樓教主,稅後嘿嘿嘿)學校211弱渣,碰巧大牛還是有的。
還有些別類例如R, scala, swift 這些語言也是相關。whatever, 語言只是工具據,當然也有各自擅長吧,如果非要選一個當然是r了,對初學者或者是外系同學比較友好(學好英文自然懂R語言qaq),據我所知數學和經濟大類一般都是用r語言做分析(在臺灣交換的舍友一天到晚用r做高維資料的證明,coding估計比我還多)。除了計算機外,時間序列也很不錯,之前做過很久的經濟方面的東西,但是苦於沒有學計量經濟學,所以後面arma, arima, garch這些都學的很艱難,當然也發現LSTM也不是總是好用,用time series的方法也不見得就比新的方法差多少,差的是修仙調參罷了。
總之就是這麼多,本科發paper還是比較難。(我指的是CVPR,emmm以及稍微比CVPR低一些的IEEE子會的一些)因為隨便水水真的不好哇,雖然感覺CVPR也挺多灌水嫌疑文章,雖然我們寫不出來,但是你仔細看多了,水不水難道看不出嘛,評價水不水大約就是別人用起來爽不爽(引用量)、對社會效益大不大(會不會有公司看中你請你帶實驗室去賺錢)。當然了做AI感覺最好還是碩士往上走,但是讀碩士肯定得拿出來論文,雖然很多學校要求不高,但是你得想清楚競爭力在哪兒。paper可能你在學校更有環境發(如果能去滴滴實驗室or)
plus:推薦兩本在看的《python深度學習》《GAN實戰生成對抗網路》()
嗯12月5號來更,上面兩本看完了,第一本是keras教父最新的那本紅書,入門級,比較適合入門者熟悉keras,算是程式設計書;第二本主要是GAN,但是確實錢真好賺,書很薄,而且基本上講的一年前發表的二十篇論文左右的量。完結撒花。