1. 程式人生 > >機器學習極簡入門課程

機器學習極簡入門課程

開篇詞 | 入門機器學習,已迫在眉睫

大家好,我是李燁。現就職於微軟(Microsoft),曾在易安信(EMC)和太陽微系統(Sun Microsystems)任軟體工程師。先後參與過聊天機器人、大資料分析平臺等專案的開發。在未來的 10 周裡,我將通過“機器學習極簡入門課”與同學們分享關於機器學習方面的一些心得。

課程背景

首先,我們來看一下當前機器學習領域招聘市場的行情。

enter image description here

上面表格中所有帶有“演算法”、“人工智慧”、“資料探勘”、“視覺”字樣的職位,都需要懂機器學習。

在產品和服務中應用機器學習模型,已經逐步成為了網際網路行業的通行方法。甚至很多傳統軟體企業,也開始嘗試應用機器學習。說得更直接一點,人工智慧正處在炙手可熱的風口浪尖上,作為程式設計師不會機器學習都不好意思去找工作了。

很多技術開發者迫切希望快速進入人工智慧領域從事工程或者演算法等相關工作,這也是我推出這門課程的初衷。

課程大綱

本課程針對機器學習初學者,從機器學習、深度學習最基本的原理及學習意義入手,以模型為驅動,帶領大家吃透幾大最經典的機器學習模型——學習其原理、數學推導、訓練過程和優化方法。配合精心設計的極小資料量的“極簡版”例項,方便讀者從直觀上了解模型的執行原理,利用例項大家還可將自己變身為“人肉計算機”,通過口算/筆算每一步的推導,模擬演算法全過程,進而徹底理解每個模型的運作方式。結合自身實踐經驗,我總結了多個構建資料集、特徵選擇、調參、驗證模型的高效方法,並教授大家如何同步進行程式語言學習,助您快速擁有機器學習產品開發的基本能力。

本課程大綱分為六大部分,共計 42 篇:

第一部分:緒論

  • 授人以魚不如授人以漁。本部分從意義和作用出發,給出相應的學習方法和與理論配套的程式設計學習。

第二部分:基本原理

  • 深諳其理,才能靈活應變。本部分開始帶大家瞭解什麼是機器學習、機器如何自己學習、以及機器學習三要素:資料、模型、演算法之間的關係。

  • 模型是機器學習的核心,那麼模型是怎麼得到的呢?本部分也將講解模型的獲取(訓練)和評價(驗證/測試)過程,相應的資料集合的劃分以及具體的評價指標。

  • 這部分知識和後面講述的具體模型結合起來,就可以實踐了!

第三部分:有監督學習 I

  • 抓住關鍵,個個擊破。本部分重在詳細講解有監督學習中經典的線性迴歸、樸素貝葉斯、邏輯迴歸、決策樹模型。這幾個模型不僅基礎、經典、常用,而且數學工具特別簡單。

第四部分:有監督學習 II

  • 百尺竿頭,更上一層樓。本部分講述支援向量機、支援向量迴歸、隱馬爾科夫和條件隨機場模型,從支援向量機開始,數學工具的需求較之前上了一個臺階,難度明顯加大。

第五部分:無監督學習

  • 無須標註,方便執行。本部分重在講解無監督學習中的聚類、高斯混合及主成分分析等模型。這部分模型的特徵是所需訓練資料無須標註,方便在各種資料上隨時進行嘗試。在現實中,經常用來作為有監督的輔助手段使用。

第六部分:從機器學習到深度學習

  • 超越自我,實現蛻變。本部分重在講解深度學習基本原理、深度學習與機器學習的關聯與銜接、以及深度學習目前的應用領域,為讀者下一步學習“深度學習”奠定基礎。

整個課程以經典模型為驅動,講述每一個模型所解決的問題域,模型的原理和數學推導過程。作為課程的主體,第三部分和第四部分講解的每個模型,都附有例項和相應的 Python 程式碼。每個例子的資料量都非常小——這樣設計就是為了讓讀者可以用人腦模擬計算機,根據剛剛學到的模型演算法對這些極小量資料進行“模擬訓練/預測”,以此來加深對模型的理解。

enter image description here

你將收穫什麼

AI 技術崗位求職知識儲備

如果大家真的有意投身到人工智慧領域做技術性工作,那麼經過技術筆試、面試是必要條件。在面試中被要求從頭解釋某一個機器學習模型的執行原理、推導過程和優化方法,是目前非常常見的一種測試方法。機器學習模型雖然很多,但是經典、常用的很有限。如果能把本課程中講解的經典模型都學會,用來挑戰面試題相信是足夠了。

觸類旁通各大模型與演算法

各種機器學習模型的具體形式和推導過程雖然有很大差別,但卻在更基礎的層面有許多共性。掌握共性之後,再去學新的模型、演算法,就會高效得多。雖然本課的第二部分集中描述了部分一般性共同點,但真要理解箇中含義,卻還要以若干具體模型為載體,從問題發源,到解決方案,再到解決方案的數學抽象,以及後續數學模型求解的全過程,來了解體味。這也就是本課以模型為驅動的出發點。

極簡版例項體驗實際應用

運用到實踐中去,是我們學習一切知識的目的。機器學習本身更是一種實操性很強的技術,學習它,原本就是為了應用。反之,應用也能夠促進知識的深化理解和吸收。本課雖然以原理為核心,但也同樣介紹了:劃分資料集、從源資料中提取特徵、模型訓練過程、模型的測試和評估等方法和工具。

配套資料+程式碼快速實操上手

本課程中各個例項的 Python 程式碼及相應資料,大家可以下載、執行、改寫、參考。

enter image description here

課程寄語

我希望本課的讀者在知識和技巧的掌握之外,能夠將學習到的基本規律運用到日常生活中,更加理性地看待世界。

再遇到“人工智慧產品”,能夠根據自己的知識,去推導:How it works——

  • 它背後有沒有用到機器學習模型?
  • 如果有的話是有監督模型還是無監督模型?
  • 是分類模型還是迴歸模型?
  • 選取的特徵是哪些?
  • 如果由你來解決這個問題,有沒有更好的方法?

我們自己用來判斷萬事萬物的“觀點”、“看法”、“洞察”,實際上都是我們頭腦中一個個“模型”對所聞所見(輸入資料)進行“預測”的結果。這些模型自身的質量,直接導致了預測結果的合理性。

借鑑機器學習認識客觀規律的過程,可以知道,模型是由資料和演算法決定的。對應到人腦,資料是我們經過見過的萬事萬物,而演算法則是我們的思辨能力。

我們作為人類不必被動等待一個外來的主宰者。完全可以主動訓練自己的思維模型,通過改進演算法和增大資料量及資料多樣性來提升模型質量——如果能在這方面給讀者朋友們帶來些許啟發,我實在不勝榮幸。

最後,預祝每一位訂閱課程的朋友,能夠通過學習找到心儀的工作,如果大家有任何疑問和建議,也歡迎通過讀者圈與我交流,我們共同學習,共同進步。

我之前分享的一場 Chat 《入行 AI,選個腳踏實地的崗位》中曾提到,工業界所需的 AI 技術人員,更多集中在演算法、工程、資料相關崗位之上,並全面總結了不同崗位角色所需要具備的素質、日常工作的狀態,及職業發展路徑。這場 Chat 也將收錄在課程最後,作為福利供大家免費閱讀,加油!