1. 程式人生 > >從機器學習到深度學習資料整理

從機器學習到深度學習資料整理

從機器學習到深度學習資料整理

  在過去的大半年中,博主一直在進行人工智慧相關知識的自學。由於人工智慧最近兩年的火熱,從網上能夠找到非常多的資料,包括:MOOC、部落格等,博主也花費了很多的時間從眾多的資源中找到了一條“從入門到進階”的學習之路。在此,博主根據自己的學習體驗,將所用到的資料彙總在本片博文中。由於博主目前的研究物件主要是影象,因此在材料選擇的過程中會重點關注影象方面的知識,但是博主在下文中所推薦的資料中也涵蓋了關於文字、語音處理的內容,讀者可以根據自己的需要選擇性閱讀。

一、入門資料

  (1)吳恩達《機器學習》(網易雲課堂)

  入門學習的首選,課程全面介紹了機器學習的基礎知識,很少涉及到高深的理論或者證明,通過學習這個課程可以幫助初學者快速掌握機器學習的經典演算法,並且獲得對機器學習相關技術的全面認識。吳老師在授課的時候使用的是matlab(octave),並且課程還有相應的練習(可在網路上面找到)。所配套的練習通過指導程式設計實踐一步步地教初學者完成課程中相關的演算法,完成該練習可進一步加深學習者對機器學習基礎知識的認識。博主感覺該課程非常適合作為初學者的首選課程。

  (2)斯坦福大學 CS231 Convolutional Neural Networks for Visual Recognition 課程

  由斯坦福大學李飛飛課題組開設的關於深度學習(主要是影象方面)的課程。儘管該課程最終的目的主要是介紹卷積神經網路的,但是在課程內容的前大半會詳細地介紹並且解讀一些機器學習的基礎內容,例如:cross-entropy loss, stochastic gradient descent,backpropagation和各種響應函式等,這些內容是對吳恩達老師教學內容的巨大補充,需要仔細閱讀並且掌握。其中,博主尤其認為好好研究一下梯度下降法,領會該演算法的運算過程是十分重要的,博主的這一篇部落格或許能夠對讀者有些許幫助。該課程的視訊內容好像可以在B站上面找到,而且也隨課程配套了相應的程式設計練習(以python為程式語言)。

  (2)吳恩達《卷積神經網路》(網易雲課堂)

  對於需要從事影象相關演算法研究的讀者,肯定無法繞開卷積神經網路。吳恩達老師在網易雲課堂的微專業中提供了一個專門針對卷積神經網路的課程。該課程和《機器學習》課程的講授風格十分類似,非常適合對卷積神經網路沒有太多背景知識的讀者學習。另外,上述第二個課程的後半部分也有專門針對卷積神經網路的內容,可以搭配本課程的內容一起學習。

二、實踐資料

  經過對上述內容的學習之後,我相信讀者對深度學習的基礎內容就有了一個初步的掌握,接下來就可以通過一些自主的程式設計實踐來內化所學到的知識,使得它們成為自己的傍身技能。接下來博主就介紹兩部分別針Tensorflow和Keras應用的書籍。

  (1)Learning Tensorflow: A Guide to Building Deep Learning System(by Tom Hope, Yehezkel S.Resheff & Itay Lieder)

  Tensorflow是目前最廣為應用的深度學習框架,大量的深度學習演算法都應用到了該框架,也因此是從事相關工作人員所必須掌握的框架之一。博主所推薦的這本書好像是谷歌公司的研發人員所編著的,書中的內容主要介紹了Tensorflow框架的安裝,基本組成及如何在不同的深度學習任務中應用該框架。對每一部分的內容,書中配備了很詳細的程式碼供讀者參考,非常利於學習者的實踐操作,而且本書中還對一些模型的基礎知識進行了回顧,這些內容能夠很好地幫助學習者將基礎概念與實踐操作結合起來。

  (2)Deep Learning with Python(by Francois Chollet)

  這本書所介紹的框架是Keras,這是一個建立在Tensorflow上的高階深度學習庫(目前已經是Tensorflow官方的高階介面),相較於Tensorflow,應用該框架建模更為簡潔、直觀,而且提供了豐富的函式供研發人員使用。博主所推薦的這本書是Keras庫的第一版的作者所寫的,書中的內容涵蓋了從機器學習到深度學習應用的全部內容,並且提供了大量的程式碼示例,這本書在博主看來既是一本全面回顧機器學習到深度學習發展脈絡和基礎知識的教材,也是一本應用Keras庫的參考指南。

三、理論進階

  相較於上述所推薦的內容"知其然,而不知其所以然“的特點,這一部分所推薦的資料會聚焦於機器學習和深度學習更為理論化的一面,博主主要推薦的兩本材料為:《統計學習方法》和線上圖書《Deep Learning》

  (1)《統計學習方法》 李航著

  李航老師的這本書關注的是機器學習的理論剖析,對機器學習的基本元素、常見演算法,進行了數學上的定義、分析和推演,通過對這些內容的學習,我覺得會讓讀者對這些演算法有更為深刻的認識。從博主自己目前閱讀體驗來看,感覺很有難度,需要較為紮實的數學功底才能夠明白老師在書中所講解的內容。

  (2)《Deep Learning》(by Ian Goodfellow and Yoshua Bengio and Aaron Courville)

  這是一本線上的圖書,兼顧深度學習內容的廣度和深度,涵蓋了十分豐富的學習內容。其中第一部分概括性地講解了學習者所必備的基礎知識,包括:線性代數、概率論與資訊理論等,讀者可以根據這部分內容的指引查漏補缺。第二部分則介紹了目前已經非常成熟的深度學習技術,包括:神經網路、卷積神經網路、序列訊號處理等。第三部分則介紹了目前還處於積極研究的深度學習領域,包括特徵學習等等。書中的很多內容都有非常詳細的理論探討和數學推導,博主感覺是一本非常難啃的書。

  最後,博主給大家提供兩個網站連結:連結1和連結2,大家可以在其中找到非常豐富的免費學習資料。最後祝大家學習愉快,早日成為領域大牛!

##本文為博主原創內容,轉摘請註明出