入門機器(深度)學習的書籍及學習資料推薦
(第一次寫博客,如有什麽地方寫得不對的,或者意見相左的,還請見諒!)
工作了一段時間,又重新回來讀書(本科計算機專業,第一個研究生是商科,現讀回了計算機專業)了,最開始想著走APP研發路線的,但是最終回來讀書之後卻恰好碰上了so-called人工智能,所以就決定將專業設定為數據分析(Data Analytics),主要學習的課程方向是數據可視化分析,機器學習和深度學習等課程。剛回來讀書那會,太多不適應,特別是要重新撿回很多編程的知識和技能是一件挺艱辛的事。當初辭職那會準備相關的編程技能主要事針對網站和APP的開發,比較前端,所以辭職到正式入學的時候大部分時間都在學習前端的東西,這導致了我入學之後選擇AI相關的課程碰到了編程的另外一個問題,從而不得不邊學邊做課程項目和實驗。
重點來了:所以寫下這篇文章,給出一些想學習機器學習相關的建議,希望能幫助想入門的人。文章會主要從三方面來給出建議:
- 書籍的推薦
- 視頻及課程推薦
- 其他資源,如論文等
我在邊學邊做項目著實走了不少彎路,有時候浪費了不少時間,做了很多無用功,所以從以上方面選取一些方面我覺得綜合運用能幫助到希望入門機器學習的人。
一、 書籍推薦
一本好的書能很好的幫助你快速的學會一些基本的知識及應用,以下書籍是我入門機器學習覺得比較有用的。
1.1 Python編程 從入門到實踐
對於那些學過python的人並且是大牛,這本書當然可以直接略過,不需要了。但是對於那些沒有系統學過python的人,並且想用python做AI相關項目的,這是一本很好的入門書籍,非常的基礎及好懂。當初花了7天左右,跟著裏面一段段的代碼把它從頭到尾學習了一遍,並最終完成了自己第一個數據可視化分析的項目。這本書跟其他很多語言介紹的書籍一樣,從基礎的語法到項目都有涵蓋,書本的最後是三個用python實現的項目。當然看這本書的過程建議結合numpy,matplotlib和scipy相關官方文章一起看,這樣子你會在完成閱讀之後更好的懂得如何利用相關代碼去實現你的項目。當然,這本書是作為一個基礎讓你了解python是如何運作的,本書主要使用的python3.x的版本。
1.2 普林斯頓微積分讀本及線性代數(作為參考書來使用)
對於想學習機器學習的人來說,還是需要具備一定的數據基礎和理解,特別是線性代數,微積分和概率論相關的數學知識。這裏只推薦微積分和線性代數的書,概率論就目前我所碰到的知識點來說相對比較淺顯易懂,尚沒有讓人無法理解的地步。至於線性代數,我推薦我本身大學讀書那會所使用的教科書,個人覺得同濟大學編著的線性代數還是挺不錯的,而微積分則推薦普林斯頓微積分讀本,從基礎到極限到求導是怎麽一回事,這本書淺顯易懂的告訴了你全部,值得一讀的微積分好書。
1.3 機器學習和深度學習(理論為主,實踐需要自己嘗試用代碼去實現)
機器學習和深度學習這裏推薦三本書,這三本書的講解都比較清晰,也非常適合從基礎到深入。機器學習(2本)和深度學習(1一本),其中周誌華老師的書我還在讀,因為這本書是作為教科書使用的,所以也非常適合想學習的人讀,非常推薦,讀了一部分了,感覺老師寫的很不錯。其余兩本,網上大部分人都推薦讀英文(我自己本身也是讀英文,也習慣了,因為在國外前前後後也待了六七年了),周誌華老師就不用說了,也是機器學習界的大牛,寫的書自然不會差到哪裏去。
1.4 Deep Learning with Python和TensorFlow機器學習實戰指南
最後針對書籍方面推薦兩本實戰方面的書,Deep learning with python是深度學習領域的超級大牛Francois Chollet編寫的,他同時也是Keras(一個深度學習的框架,非常簡單易用)的開創者,另外一本是講解如何用TensorFlow來做機器學習相關的項目,這本書從基礎的TensorFlow語法到如何使用TensorFlow來實現其他相關的機器學習項目都有比較清晰的解釋,搭配這本書和官網的指南,是一個不錯的學習指引。
二、視頻及課程推薦
閱讀好的書是一個獲取知識的好途徑,但是有時候書本冗雜度也高,並且要完整的讀完一本書需要相當的時間,這時候視頻課程就是另外一個比較快速學習並且能輔以實戰的地方了。這裏主要推薦幾個課程供大家參考(都是要付費的,我個人覺得真正想學習,投資知識花點錢沒什麽,所以看你個人)。下面這些課程是我覺得在我學習過程中幫助非常大的,Coursera的課程都是配有編程練習的,跟著指引敲出相關的代碼,幫助你在實踐中加速理解學習機器學習和深度學習過程中碰到的相關算法。
- Coursra.org上Andrew Ng的機器學習和深度學習的課程。機器學習所使用的Matlab,深度學習使用的Python,這裏需要註意一下。
- 斯坦福大學的公開課: cs231 Convolutional Neural Network for Visual Recognition 和 cs230 Deep Learning,這兩門課基本都是純英文,目前尚不清楚支不支持中文,Youtube上有資源。
三、其他
上面的書籍也好,視頻也好,很大程度上都是在講一些已經在機器學習和深度學習領域比較普遍的知識和理論應用,而如果想在這兩個領域有比較深的發展和理解,那麽從我個人學習的過程當中來說,論文和其他人寫的博客是非常好的學習資源。特別是論文,好的論文代表著技術的發展方向,所以我非常建議一定要看論文,因為論文真的代表著state of the art,當然看論文不需要通篇摸透,這個很難,別人都是花好幾個月甚至一兩年才出這麽個成果,所以很難在短時間內復現論文所講的技術原理和框架,但是對論文有了解,並嘗試運用是一個非常好的習慣,不管是基於研究還是運用,相關的最新論文都還是值得看看,具體的就請問谷歌和百度了。
入門機器(深度)學習的書籍及學習資料推薦