吳恩達《機器學習系列課程》學習筆記(一)

大家都想做在線教育,結果最後,B 站反而更像中國的 YouTube。

在 B 站上看到吳恩達的《機器學習系列課程》,看了看發現挺有意思,就梳理一下在此形成學習筆記。

第一節:前言

機器學習早已成爲我們的日常。

每當使用 Google 或 Bing 等搜索引擎時,它能給出非常滿意的結果,原因之一就是 Google 或微軟使用的學習算法,學會了如何給網頁排序。

每當使用 Facebook 或蘋果的相片分類功能,它能夠識別出朋友的照片,也是機器學習。

每當閱讀郵件時,垃圾郵件過濾器會幫助我們過濾大量的垃圾郵件,這也是學習算法。

吳恩達說,「我對此(機器學習)興奮的原因之一就是夢想有一天能夠建造像你我一樣智能的 AI。我們離這個目標還很遠,但是許多 AI 研究者相信實現這個目標的最好方法就是採用學習算法嘗試模擬人類大腦的學習方式。」

爲什麼現在機器學習如此流行?

吳恩達:

實際上機器學習是從 AI 即人工智能發展出來的一個領域,我們想建造智能機器,然後發現我們可以通過編程讓機器做一些基本的事情,比如如何找到從 A 到 B 的最短路徑,但大多數情況下,我們不知道如何編寫 AI 程序來做更有趣的事情,如網頁搜索、相片標記、反垃圾郵件。

人們認識到做到這些事情唯一的方法,就是使機器自己學習如何去做。

因此,機器學習是爲計算機開發的一項新功能,如今它涉及工業和基礎科學中的諸多領域。

對我而言,我是研究機器學習的,在典型的一週中,我可能會與直升飛機飛行員、生物學家,還有一些計算機系統的人員交流,例如我在斯坦福的同事,我平均每週收到兩三封來自硅谷從業者的郵件詢問如何應用學習算法解決手頭上的問題。

這顯示了機器學習涉及的領域之廣,包括自主機器人、計算生物學,硅谷的很多領域都受到機器學習的影響,還有一些其他的例子,比如數據挖掘,機器學習如此普遍的原因之一,就是網絡和自動化技術的發展,這意味着我們擁有了前所未有的大量的數據集,現在大量硅谷公司收集網絡點擊數據(點擊流數據),並試圖採用機器學習算法來挖掘數據,更好地理解用戶,並更好地爲用戶服務,目前這在硅谷佔了很大一部分。醫療記錄,隨着自動化的出現,現在我們有了電子醫療記錄,假如我們能將醫療記錄轉化爲醫療知識,就能更好地理解疾病。

計算生物學,因爲自動化,生物學家收集了關於基因序列、DNA 序列等大量數據,機器學習算法讓我們更好地理解人類基因組,以及身爲人類意味着什麼。

同樣在工程學所有的領域,我們正設法採用學習算法來理解越來越大的數據集。

機器應用的第二個領域是我們無法手動編寫的程序。例如我已經在自動直升飛機領域研究了很多年,我們就是不知道如何編寫程序使直升飛機自己飛行,唯一可行的就是讓計算機自己學習駕駛直升飛機。

手寫識別,如今在美國國內或是跨國郵寄,不再昂貴的原因之一,就是當你寫好一個信封后,學習算法能夠讀取你的手寫體,然後自動地給你的信規劃路線,由此郵寄幾千公里之外的信也只需要花費幾分錢。事實上,假如你知道自然語言處理或計算機視覺,這些是 AI 中有關理解語言或理解圖像的領域,現在大部分的自然語言處理和計算機視覺就是應用了機器學習。

學習算法還廣泛應用於私人訂製程序中(筆者注:推薦算法,千人千面),每當你使用亞馬遜、Netflix、iTunes Genius,它就會推薦電影、產品或音樂給你,這就是學習算法,想象一下,他們有一百萬的用戶,不可能爲一百萬名用戶編寫一百萬個不同的程序,用軟件給出定製推薦的唯一方法就是讓它自我學習,並根據你的偏好爲你量身定製。

最後,學習算法還被用來理解人類的學習過程和大腦,我們將會討論研究者是如何使用這些來朝着 AI 夢想前進。

幾個月前,一個學生給我看了一篇關於前沿 12 種 IT 技術的文章,這些技術是最受 IT 企業 HR 歡迎的,這篇文章有點舊了,但是在這 12 種最受歡迎的 IT 技術中,機器學習位列第一,在斯坦福,聯繫並詢問我是否認識機器學習畢業生的招聘人員數量遠大於每年畢業的機器學習學生人數。我認爲對這項技能的需求很大,未被滿足,這是學習機器學習的絕佳時機。

第二節:機器學習的定義

Machine Learning definition
即使在機器學習從業者中,也沒有對機器學習的統一定義。現有的對機器學習的定義如下:

  • Arthur Samuel 對機器學習的定義: 在沒有明確設置的情況下使計算機具有學習能力的研究領域。(Samuel 成名是由於在 1950 年代他編寫了一個跳棋程序,這個程序的令人驚訝之處在於, Samuel 自己並不是跳棋高手,他所做的是,使程序和自己對弈幾萬次,通過觀察哪些佈局容易贏、哪些容易輸,一段時間後,程序就學到了什麼是好/不好的佈局。最終程序學會了玩跳棋。並比 Samuel 玩得還好,這是一個引人注目的結果,Samuel 自己不是高手,但是因爲計算機有耐心,與自己玩上萬次對弈,沒有人有這種耐心下這麼多盤棋,因此計算機能獲得如此豐富的跳棋經驗,最終成爲一個更厲害的棋手)
  • Tom Mitchell(吳恩達卡內基梅隆大學的朋友): 一個適當的學習問題定義如下,計算機程序從經驗 E 中學習解決某個任務 T,進行某一性能度量 P,通過 P 測定在 T 上的表現因 E 而提高。
    對於跳棋程序,E 就是程序與自己下幾萬次跳棋的經驗,任務 T 就是玩跳棋,P 就是與新對手玩跳棋時贏的概率。

吳恩達給的課堂作業如下圖所示。
Question 1

各種不同類型的學習算法

Machine learning algorithms
目前有各種不同類型的學習算法,最主要的兩類:

  • 監督學習: 簡單來說,就是我們會教計算機做某件事情
  • 無監督學習:我們讓計算機自己學習
  • 其它還有:強化學習、推薦系統

吳恩達表示,相比知道這些算法、工具,更重要的是,如何去使用,因此,他會討論應用學習算法時的實際建議。

吳恩達這樣說道:「假設確實想要開發機器學習系統,如何讓那些最佳實踐操作指導你決定用什麼方式建立自己的系統,這樣當應用學習算法時,就不會像那些用其它方法做了 6 個月的人一樣,別人可能一眼就能看出來他們是在做無用功。」

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章