机器学习极简入门课
特別提示
本課程為李燁老師達人課課程,需要購買訓練營課程的同學請點擊下方鏈接:
21 天入門機器學習-第03期
課程介紹
本達人課針對機器學習初學者,從機器學習、深度學習最基本的原理及學習意義入手,以模型為驅動,帶領大家吃透幾個最經(jīng)典的機器學習模型——學習這些模型的原理、數(shù)學推導、訓練過程和優(yōu)化方法。
本課為每個模型提供了極小數(shù)據(jù)量的“極簡版”實例,方便讀者從直觀上了解模型的運行原理。借助這些例子,大家可以將自己變身為“人肉計算機”,通過口算/筆算每一步的推導,模擬算法全過程,進而徹底理解每個模型的運作方式。
此外,本課還介紹了構建數(shù)據(jù)集、特征選擇、調(diào)參、驗證模型的方法,以及如何同步進行編程語言學習。幫助您掌握進行機器學習產(chǎn)品開發(fā)的基本能力。
作者介紹
李燁,高級軟件工程師,現(xiàn)就職于微軟(Microsoft),曾在易安信(EMC)和太陽微系統(tǒng)(Sun Microsystems)任軟件工程師。先后參與聊天機器人、大數(shù)據(jù)分析平臺等項目的開發(fā)。微信公眾號:yuesiyuedu;個人微信號:julia_li_2013
課程大綱
本課程大綱分為六大部分,共計 42 篇:
課程內(nèi)容
開篇詞 | 入門機器學習,已迫在眉睫
大家好,我是李燁?,F(xiàn)就職于微軟(Microsoft),曾在易安信(EMC)和太陽微系統(tǒng)(Sun Microsystems)任軟件工程師。先后參與過聊天機器人、大數(shù)據(jù)分析平臺等項目的開發(fā)。在未來的 10 周里,我將通過“機器學習極簡入門課”與同學們分享機器學習相關知識。
課程背景
首先,我們來看下當前機器學習領域招聘市場行情。
上面表格中所有帶有“算法”、“人工智能”、“數(shù)據(jù)挖掘”、“視覺”字樣的職位,都需要掌握機器學習相關知識。
在產(chǎn)品和服務中應用機器學習模型,已經(jīng)逐步成為互聯(lián)網(wǎng)行業(yè)的通行方法。甚至很多傳統(tǒng)軟件企業(yè),也開始嘗試應用機器學習。說得更直接些,人工智能正處在炙手可熱的風口浪尖上,作為程序員不會機器學習都不好意思去找工作。
很多技術開發(fā)者迫切希望快速進入人工智能領域,從事工程或者算法等相關工作,這也是我推出這門課程的初衷。
課程大綱
本課程針對機器學習初學者,從機器學習、深度學習最基本的原理及學習意義入手,以模型為驅動,帶領大家吃透幾大最經(jīng)典的機器學習模型——學習其原理、數(shù)學推導、訓練過程和優(yōu)化方法。配合精心設計的極小數(shù)據(jù)量的“極簡版”實例,方便讀者從直觀上了解模型的運行原理,利用實例大家還可將自己變身為“人肉計算機”,通過口算/筆算每一步的推導,模擬算法全過程,進而徹底理解每個模型的運作方式。結合自身實踐經(jīng)驗,我總結了多個構建數(shù)據(jù)集、特征選擇、調(diào)參、驗證模型的高效方法,并教授大家如何同步進行編程語言學習,助你快速擁有機器學習產(chǎn)品開發(fā)的基本能力。
本課程大綱分為六大部分,共計42篇。
第一部分:緒論
- 授人以魚不如授人以漁。本部分從意義和作用出發(fā),給出相應的學習方法和與理論配套的編程練習。
第二部分:基本原理
深諳其理,才能靈活應變。本部分帶大家了解什么是機器學習、機器如何自己學習,以及機器學習三要素:數(shù)據(jù)、模型、算法之間的關系。
模型是機器學習的核心,那么模型是怎么得到的呢?本部分也將講解模型的獲取(訓練)和評價(驗證/測試)過程,相應數(shù)據(jù)集合的劃分以及具體的評價指標。
這部分知識和后面講述的具體模型結合起來,就可以實踐了!
第三部分:有監(jiān)督學習 I
- 抓住關鍵,個個擊破。本部分重在詳細講解有監(jiān)督學習中經(jīng)典的線性回歸、樸素貝葉斯、邏輯回歸、決策樹模型。這幾個模型不僅基礎、經(jīng)典、常用,而且數(shù)學工具特別簡單。
第四部分:有監(jiān)督學習 II
- 百尺竿頭,更上一層樓。本部分主要講述支持向量機、支持向量回歸、隱馬爾可夫和條件隨機場模型,從支持向量機開始,數(shù)學工具的需求較之前上了一個臺階,難度明顯加大。
第五部分:無監(jiān)督學習
- 無須標注,方便運行。本部分重在講解無監(jiān)督學習中的聚類、高斯混合及主成分分析等模型。訓練數(shù)據(jù)無須標注,方便在各種數(shù)據(jù)上隨時進行嘗試,是這些模型的特征。在現(xiàn)實中,經(jīng)常用來作為有監(jiān)督的輔助手段。
第六部分:從機器學習到深度學習
- 超越自我,實現(xiàn)蛻變。本部分重在講解深度學習基本原理、深度學習與機器學習的關聯(lián)與銜接,以及深度學習目前的應用領域,為讀者下一步學習“深度學習”奠定基礎。
點擊了解《機器學習極簡入門》。
整個課程以經(jīng)典模型為驅動,講述每一個模型所解決的問題域,模型原理和數(shù)學推導過程。作為課程的主體,第三部分和第四部分講解的每個模型,都附有實例和相應的 Python 代碼。每個例子的數(shù)據(jù)量都非常小——這樣設計就是為了讓讀者可以用人腦模擬計算機,根據(jù)剛剛學到的模型算法對這些極小量數(shù)據(jù)進行“模擬訓練/預測”,以此來加深對模型的理解。
你將收獲什么
AI 技術崗位求職知識儲備
如果大家真的有意投身到人工智能領域,從事相關技術性工作,通過技術筆試、面試則是必要條件。在面試中被要求從頭解釋某一個機器學習模型的運行原理、推導過程和優(yōu)化方法,是目前非常常見的一種測試方法。機器學習模型雖然很多,但是經(jīng)典、常用的很有限。如果能學會本課程所講解的經(jīng)典模型,你將足以挑戰(zhàn)這些面試題。
觸類旁通各大模型與算法
各種機器學習模型的具體形式和推導過程雖然有很大差別,但在更基礎的層面上有許多共性。掌握共性之后,再去學新的模型、算法,就會高效得多。雖然本課的第二部分集中描述了部分一般性共同點,但真要理解個中含義,還需要以若干具體模型為載體,從問題發(fā)源,到解決方案,再到解決方案的數(shù)學抽象,以及后續(xù)數(shù)學模型求解的全過程,來了解體味。這也就是本課以模型為驅動的出發(fā)點。
極簡版實例體驗實際應用
運用到實踐中去,是我們學習一切知識的目的。機器學習本身更是一種實操性很強的技術,學習它,原本就是為了應用。反之,應用也能夠促進知識的深化理解和吸收。本課雖然以原理為核心,但也同樣介紹了:劃分數(shù)據(jù)集、從源數(shù)據(jù)中提取特征、模型訓練過程、模型的測試和評估等方法和工具。
配套數(shù)據(jù)+代碼快速實操上手
本課程中各個實例的 Python 代碼及相應數(shù)據(jù),大家可以下載、運行、改寫、參考。
課程寄語
我希望本課的讀者在知識和技巧的掌握之外,能夠將學習到的基本規(guī)律運用到日常生活中,更加理性地看待世界。
再遇到“人工智能產(chǎn)品”,能夠根據(jù)自己的知識,去推導:How it works——
- 它背后有沒有用到機器學習模型?
- 如果有的話,是有監(jiān)督模型還是無監(jiān)督模型?
- 是分類模型還是回歸模型?
- 選取的特征是哪些?
- 如果由你來解決這個問題,有沒有更好的方法?
我們自己用來判斷萬事萬物的“觀點”、“看法”、“洞察”,實際上都是我們頭腦中一個個“模型”對所聞所見(輸入數(shù)據(jù))進行“預測”的結果。這些模型自身的質(zhì)量,直接導致了預測結果的合理性。
從機器學習認識客觀規(guī)律的過程中,我們可以知道,模型是由數(shù)據(jù)和算法決定的。對應到人腦,數(shù)據(jù)是我們經(jīng)歷和見過的萬事萬物,而算法則是我們的思辨能力。
作為人類,我們不必被動等待一個外來的主宰者,完全可以主動訓練自己的思維模型,通過改進算法和增大數(shù)據(jù)量及數(shù)據(jù)多樣性來提升模型質(zhì)量——如果能在這方面給讀者朋友們帶來些許啟發(fā),我實在不勝榮幸。
最后,預祝每一位訂閱課程的朋友,能夠通過學習找到心儀的工作,如果大家有任何疑問和建議,也歡迎通過讀者圈與我交流,我們共同學習,共同進步。
我之前分享的一場 Chat 《入行 AI,選個腳踏實地的崗位》中曾提到,工業(yè)界所需的 AI 技術人員,更多集中在算法、工程、數(shù)據(jù)相關崗位之上,并全面總結了不同崗位角色所需要具備的素質(zhì)、日常工作的狀態(tài)及職業(yè)發(fā)展路徑。這場 Chat 也將收錄在課程中,作為福利供大家免費閱讀,加油!
點擊了解《機器學習極簡入門》。
第01課:為什么要學原理和公式推導
機器學習最直接的應用,就是利用模型解決實際業(yè)務中的問題。
本課所講解的幾個經(jīng)典模型,均是前輩在機器學習發(fā)展的幾十年間所總結出的、解決特定問題的固定模式,并且已在實踐中得到很好證明。
學會這些模型,一則可以以它們?yōu)檩d體理解“機器學習”是一種怎樣的機制;二則掌握了模型,也就掌握了當前許多實際問題的有效解決方案。
學模型就要學公式推導嗎?
在實際工作中,我們要運用一種模型,其實有很多現(xiàn)成的算法庫、學習框架。只要將相應的數(shù)據(jù)輸入工具、框架中,用幾行代碼指定模型的類型和參數(shù),就能自動計算出結果。
既然如此,何必再去學其中的原理,一步步推導讓人頭暈的數(shù)學公式?
對于這個問題,首先給出我的意見:
機器學習的原理和數(shù)學推導一定要學!
此處且舉個直觀的例子:
工具就像是武器,學會使用某種工具,只是學會了這種武器最基本的招式和套路。而理論學習即策略學習,決定了在未來真實對戰(zhàn)中,遇到對手攻擊時,你選取哪些招式套路,如何組合起來去迎敵。
反過來講,如果根本不學模型原理,只是把一個個應用場景背誦下來,需要的時候直接把模型當黑盒使用——這樣做我們能學到什么?
我們將學到:
這和調(diào)用任何一個封裝好的 API(無論其功能)有什么區(qū)別?和調(diào)用同事撰寫的模塊接口又有什么不同?
學會這幾件事能讓你相對他人產(chǎn)生什么樣的壁壘?作為一個原本非 AI 領域的開發(fā)者,難道因為會安裝幾個支持庫,會調(diào)幾個接口就身價倍增,就成為機器學習工程師了?
學習原理的必要性
回過頭來,我們從正面來看學習原理的必要性。
功利層面
咱們先來看看最直接的用處。
面試會考
最起碼,找工作的時候,但凡稍微靠譜點的企業(yè),在面試“機器學習工程師”時,一定會問到模型原理和推導過程!所問到的模型,隨著時間推移會越來越復雜。
三四年前甚至更早,企業(yè)技術面試時,大多會問線性回歸。這兩年,已經(jīng)基本從邏輯回歸開始問了。再過一兩年是否會問支持向量機,不得而知,但理論考察勢必會越來越難。
真想入這行,為了面試也得學其中的原理。
老板會問
在日常編碼中,可能確實只是調(diào) API 而已。
很多時候,在決定使用哪個工具、框架,調(diào)用哪個模型算法后,你還需要向老板、合作方甚至客戶解釋其中的緣由。
以前誰負責哪個模塊都是自己搞定所有事,你怎么還想讓別人給你標注數(shù)據(jù)呀?
花費這么多時間和人力訓練出的模型,怎么連個 DSAT 都 Fix 不了啊?
既然再多投入幾倍資源也達不到 95% 以上的正確率,為什么不干脆直接用 Rule-Base 來解決?
……
Manager、Tech Lead、PM 都有可能圍繞機器學習/深度學習投入產(chǎn)出比,提出各種問題。要在工作中運用這些技術,首先要說服他們。這個時候,原理就派上用場了。
同事會質(zhì)疑
對你應用 ML/DL 的疑問,不僅來自上司,很多時候也來自于同級別的同事。
相對于老板對性價比的關注,同事可能更關心技術細節(jié)——質(zhì)疑新框架/工具/模型/算法,與之前的實施方案相比,在功能、性能等方面的差異。
別人都用 TensorFlow,你為什么要用 Caffe 呢?
以前這個分類器,我們用邏輯回歸挺好的,你為什么非要換成 RNN 呢?
用這個譜聚類做數(shù)據(jù)預處理,歸根到底不還是利用詞袋模型算詞頻,比直接計算 tf-idf 做排序能好多少呢?
……
到了這個層面,只簡單概括說說原理已經(jīng)不夠了,需要深入細節(jié)做對比:
- 不同模型的特質(zhì)、適用場景,對當前數(shù)據(jù)的匹配程度;
- 不同算法對算力和時間的消耗;
- 不同框架對軟硬件的需求和并行化的力度;
了解了這些,才有資格討論技術。
【文-1】
實用層面
當然,在日常工作中可以完全不理會 Peer 的質(zhì)疑,對于 Boss 的決定也可以照單全收絕無二話。Engineer 嘛,只要埋頭干活就好了。但總得把活兒干好吧。
作為一個機器學習工程師,把活干好的基本標準是:針對技術需求,提供高質(zhì)量模型。
再高一個層次則是:針對業(yè)務需求,提供高質(zhì)量的解決方案。
優(yōu)化模型
機器學習工程師又被戲稱為調(diào)參工程師。
其所要做的工作就是在限定的數(shù)據(jù)上、規(guī)定時間內(nèi),為具體技術需求(比如訓練一個分類器)提供性能盡量高、消耗資源盡量少的模型。
選特征、調(diào)超參、換模型,稱為調(diào)參工程師的三板斧,要想有章法地使用它們,理論基礎還是必不可少的。
至此,上面 【文-1】 處所描述內(nèi)容,不再是和他人論戰(zhàn)的“彈藥”,而成了工作步驟的指導。
- 評判模型性能的指標有哪些,如何計算?
- 正在使用的模型是怎么工作的?
- 這些超參數(shù)是什么含義,調(diào)整它們會產(chǎn)生哪些影響?
- 特征選取有哪些原則、方法可運用?
如果連以上問題都不了解,又怎么優(yōu)化模型?
針對實際問題定向建模
成為一名合格的調(diào)參工程師,固然可以在 AI 領域占據(jù)一席之地,但對于業(yè)務和團隊而言,仍然是個可有可無的角色。
真正創(chuàng)造價值的,從來都是解決實際問題的人。
這些經(jīng)典的模型、算法,是前人在解決實際問題中所研究出的、具備通行性的解決方案。它們被廣泛應用,是因為所解決的目標問題總會持續(xù)出現(xiàn)。
然而,新問題也會隨著新需求不斷涌現(xiàn),現(xiàn)有成果可能無法解決這些新問題,調(diào)參工程師這時將束手無策。
但對于理論知識扎實的機器學習工程師來說,他們完全有可能針對具體業(yè)務問題,構造出目標函數(shù),甚至開發(fā)出符合自身軟硬件資源特點的求解算法。
到了這一步,即使還使用現(xiàn)成工具,也不是靠 Google 一下 Best Practice,以及復制粘貼下代碼就能解決的了。必須具備理論基礎和數(shù)學層面的建模能力才行。
點擊了解《機器學習極簡入門》。
第02課:學習機器學習原理,改變看待世界的方式
學習機器學習,除了上一篇提到的實實在在的好處外,在務虛方面同樣受益。
學習模型運作原理,可以了解現(xiàn)實事物如何轉化為數(shù)字并被計算,結果又如何映射回現(xiàn)實世界來影響我們的生活。
掌握機器學習相關知識,能為我們客觀認識現(xiàn)實帶來下面這些幫助。
破除迷信
在這個看起來人工智能要席卷一切的年代,不光是正在或立志于在 AI 領域做技術工作的人,任何人都有必要從原理角度了解機器學習、深度學習是干什么的,以及如何發(fā)揮作用。
作為一個帶有神秘色彩的熱點概念,人工智能(AI)被熱炒、被歪曲、被妖魔化是難免的。
人工智能是一個學術研究領域,目前在工業(yè)界有一定的應用和探索。AI 歸根到底是個技術問題,可學、可用、可研究亦可質(zhì)疑,而不是只能頂禮膜拜的法術神功。
具備最基本的判斷能力,才有可能不會被“神話”迷惑,不被“鬼話”恐嚇。
知道 ML/DL 模型是如何工作的,總不至于看了篇《AI 專業(yè)畢業(yè)生年薪 50 萬》就慌慌忙忙報個了 2 萬塊的培訓班,學了 pip install tensorflow ,通過復制粘貼代碼可運行幾個習題數(shù)據(jù)集,就以為能夠找份年薪 50 萬的工作了。
知道 AI 有哪些落地點和局限,就不至于瞟了幾眼《XX 職業(yè)要消失了》,《XXX 崗位將被人工智能取代》之類的網(wǎng)文就驟然開始仇視社會,好像自己明天就沒有活路了似的。
除了判斷事,判斷人可能更重要一些。
了解一件事的原理,自己有個基本的是非標準,再去看別人對它的評論,就不難看出評論者的“斤兩”。也就不至于被其所說內(nèi)容之外的語氣、措辭,或者刻意的態(tài)度所誤導。
《機器學習極簡入門》。
追本溯源
人工智能從提出到現(xiàn)在已有幾十年,幾經(jīng)沉浮。這些年間,模型、算法、實現(xiàn)技術已更迭了好幾代,如今和當年已是天壤之別。
所有的發(fā)展都不是憑空出現(xiàn)的,新方法、技術均在原有基礎上創(chuàng)新得來。每一個具體的進步,都僅僅是向前的一小步而已。
最容易創(chuàng)新的是技巧和細節(jié),越“大”的創(chuàng)新,出現(xiàn)的頻率越低。而原理所揭示的,就是這種“大”的、相對穩(wěn)定的東西。
機器學習最經(jīng)典的那幾個模型,歷史都不短,長則半世紀,短的也快 20 年了。
深度學習,早年是從屬于機器學習的神經(jīng)網(wǎng)絡,因為運算能力不夠而被束之高閣多年,近些年借助計算機硬件和分布式計算的發(fā)展而大放異彩。
雖然技術本身和應用結果產(chǎn)生了巨大的飛躍,但從根本的原理層面,卻有著緊密的傳承。
了解一件事是如何運行的,明晰事物發(fā)展的客觀規(guī)律,知道從最簡單的原理學著手逐層推進,比從一個已經(jīng)很復雜的狀態(tài)入手,一下子糾纏在各種不得要領的細節(jié)中要高效得多。
有了這樣的認識,也就不會被一些名詞所局限。不會僅僅因為人家做了一些細節(jié)改變,或者換了個說法就以為天翻地覆了。
具體到 AI 領域,真的了解了支柱技術的基本原理,總不至于:
看了一篇《當這位70歲的 Hinton 老人還在努力推翻自己積累了 30 年的學術成果……》,便宣布再也不學 CNN、DNN、RNN 了(好像真的學過一樣)。
或者:
因為《深度學習已死,可微分編程萬歲!》刷屏,就以為目前在視覺、語音、NLP 等領域已經(jīng)在創(chuàng)造價值的 DL 工具瞬間消失無用了。
精進看待世界的方法
相較于仍然處于經(jīng)驗(“煉丹”)階段的深度學習,傳統(tǒng)的統(tǒng)計學習模型和方法已經(jīng)具備了相對完善的理論基礎。
我強烈建議:即使目標崗位是“深度學習工程師”,也應該從統(tǒng)計學習方法學起。
一方面深度學習與機器學習具有傳承的關系,學習后者對于直觀理解前者有極大幫助。
另一方面,統(tǒng)計學習方法建立在將概念“數(shù)字化”(向量化)的基礎上,以數(shù)學公式和計算來表達概念之間的關聯(lián)及轉化關系。機器學習是一種認識世界的工具,借助它,我們可以從一個新的角度來看待世間萬物。
換句話說,當我們知道機器是怎樣通過學習事物特征的概率分布和轉換來掌握事物規(guī)律的時候,我們就有可能反過來審視自己看待世界的方法,發(fā)現(xiàn)其中不合理的部分,并主動優(yōu)化自己的思維模型。
比如,我在學習機器學習原理的過程中,對人類的思維方式產(chǎn)生了一些思考:
人類的道德標準實際是一種社會層面的極大似然估計。
遺忘是學習的一個步驟,是一種對信息的過濾方法,也是人類在腦力有限情況下對自身大腦的一種保護機制。
人類的偏見是一種長期訓練的結果,在信息極其匱乏的情況下,對人們做決定往往是有正向幫助的。信息越豐富,偏見的負面影響也就越嚴重。
大多數(shù)人最常用的思維模型是 KV Pair,有些人似乎終身只有這一種思維模型。
一般人往往默認一類事物的所有個體在概率空間是均勻分布的。在考慮某一個事物個體時,對其在同類事物中所處的位置——是小概率事件還是常態(tài)?發(fā)生概率相對之前是穩(wěn)定、上升還是下降?——通常毫不在意,而一概認為被提及的個體很重要。
對于原因和結果的關系,多數(shù)人根本沒想過去探究其轉換模型,而直接默認是線性關系。比如:A 地的年均 PM2.5 指數(shù)是 B 地的 10 倍,PM2.5 被認為與肺癌發(fā)病率有關,于是想當然以為 A 地肺癌發(fā)病率是 B 地 10 倍。
當一件事物比較復雜,涉及多個方面的時候,要對它有一個全面的評價,目前最常用的方法是構建一個線性回歸模型:選定一些特征,針對每個特征獨立打分,最終加權求和(例如大學排名之類)。
線性回歸是一個非常簡單的模型,往往無法達到很好的效果。但即使這樣簡單的模型,很多人還是無法掌握。
面對一項事物,既不能列舉出其主要特征,也不知道如何評估每個特征,更不用提再加權求和了。多數(shù)人最常用的全面評價標準,如果是一手資料則一般以某(幾)個個例的某個特征來代替全集;如果是二手資料,則一般選擇相信自己最先接觸到的他人結論。
以上這些僅是一些很初級的想法,并沒有進一步的研究驗證。
我分享出來只是想說明:學習機器學習原理和公式推導,并非只是做一些無聊的數(shù)字變換。很可能由此為我們打開一扇窗,讓我們從新的角度看待世界,并為日常的思考過程提供更加可量化的方法。
點擊了解《機器學習極簡入門》。
第03課:如何學習“機器學習”
學習“機器學習”這件事,我走過很長的一段彎路。有一些心得、體會和方法,在此和大家分享。
《機器學習極簡入門》
以模型為驅動,了解“機器學習”的本質(zhì)
本課力圖引導大家以模型為驅動,進行學習。
我選擇了幾種經(jīng)典模型(例如:線性回歸、邏輯回歸、決策樹、支持向量機、條件隨機場、K 均值等),作為入門的進階。
初次學習模型,不必貪多。但就這些選定的模型,一定要搞清楚其問題域、模型函數(shù)、目標函數(shù)、訓練算法……潛入到數(shù)學公式推導的層面,對每一步的公式變換和對應的物理意義有所理解,然后再去實踐。
這一個個的模型,就是機器學習的“肌肉”,我們要通過觀察學習這一塊塊肌肉,以其為載體來了解機器學習的核心——將事物轉化為數(shù)值,將關系、變換轉化為運算,以事實(數(shù)據(jù))為依據(jù),以規(guī)章(算法)為準繩,通過計算來掌握事物的客觀規(guī)律(模型)。
要知道,這些經(jīng)典模型固然經(jīng)典,但是到了實際應用中,它們并非神圣不可改變。也不是說機器學習就僅限于這些經(jīng)典模型。
只有掌握了機器學習精髓的人,才可能靈活運用現(xiàn)有模型去解決實際問題,甚至進一步針對具體問題得出自己的模型和算法。
反復學習,從記憶到掌握
當然,達到這種程度并非一蹴而就,總要從最簡單的模型開始。
根據(jù)我的經(jīng)驗,即使要真正掌握本課列出的這幾個最常用且相對簡單的模型,也需要反復學習。
有可能第一遍看完有點似懂非懂,或者感覺自己明白了,但要自己從頭推導又卡殼了。
就像剛學完又忘掉的生字,或是背了一半后半部分怎么也想不起來的九九乘法口訣。這都是非常正常的現(xiàn)象。究其原因,就是還沒有真正掌握。
多學幾遍,從頭到尾掌握整件事情的邏輯,知道一個模型是怎么從最初設定目標,到一步步實現(xiàn)目標的——當真正掌握了這個過程之后,再回頭看一個個具體的模型,每一步都是順理成章的。
掌握了事物內(nèi)在的邏輯,再去記憶,就容易多了。
學習標準設置得不必太高,比如可以這樣:
第一遍學,只要求自己能完全掌握機器學習數(shù)據(jù)、模型、算法相互作用的基本關系,訓練過程和評價標準。具體的模型,掌握最簡單的線性回歸就可以。
只要從頭到尾掌握了第一個模型,做到:能夠從模型函數(shù)開始推導出目標函數(shù),再用梯度下降算法求解,用(偽)代碼實現(xiàn)梯度下降求解過程。
第一遍學習掌握一個模型;第二遍學習就不難掌握2-3個模型;第三遍就有可能掌握本課列出的大部分模型………如此由易到難,螺旋式推進。
對于一些本身就比較復雜的數(shù)學模型,比如條件隨機場、隱馬爾科夫這類涉及場論和勢函數(shù)的模型,如果直接入手,往往會卡在模型函數(shù)本身上。但是當有了前面幾個模型的基礎,了解了更抽象層面的原理,掌握起來就容易多了。
數(shù)學需要多精深?
很多同學,想學機器學習。但是一上來就看模型,看到一大堆炫酷的公式,往往感覺很嚇人。
有些人也就因此萌生退意,要么放棄,要么只用現(xiàn)成工具把模型當作黑盒使用。
其實,學習經(jīng)典模型,并不需要多么精深的數(shù)學功底,只要掌握大學理工科本科所教授的數(shù)學知識就基本夠用了。
基礎數(shù)學概念
在學習的最初階段,只要:
- 學過坐標系;
- 了解函數(shù)、向量和矩陣的概念;
- 能從直觀角度對求導、求微與函數(shù)的關系有所理解;
- 并掌握最簡單的矩陣運算。
就可以對本課中的經(jīng)典機器學習模型有一定深度的感性認識了。
本課中的公式都是經(jīng)過精簡的,務必要掌握。如果數(shù)學工具實在掌握得太少,最起碼也要讀懂一組公式推導中的第一個和最后一個式子:
讀懂它們都針對哪些變量進行了怎么樣的運算;
這些變量和運算的物理意義是什么;
第一個式子是對哪種真實場景的數(shù)學描述;
最后推導的結果又具備怎樣的特征。
初次學習者,可以暫且掌握到這個深度。
兩條路徑反芻數(shù)學知識
當然,僅僅掌握到這種程度,勉強可以套用現(xiàn)成的模型,卻不可能達到靈活運用的程度。
所以,同學們應力求理解每一步推導過程。
如果有可能,可以事先復習一下大學本科的高數(shù)(數(shù)學分析)、概率統(tǒng)計和線性代數(shù)?;蛘?#xff0c;在學習模型的過程中,一旦遇到了數(shù)學上的阻礙,就回頭去查找相應知識。
制定數(shù)學知識速查手冊
很多數(shù)學問題,之所以讓人頭大,其實并不是真的有多難,而是符號系統(tǒng)比較復雜,運算繁復,或者運算所表達的物理意義多樣。
很多時候造成困擾是因為想不起來這里用到什么定理,哪個公式,或者這樣操作表達的含義是什么。
如果把常用的細小知識點都記錄下來,按主題整理成速查手冊(小字典),需要用的時候快速查找對應的知識點,這樣我們的“機器學習”學習之路就順暢不少。
下面兩個是我自己制作的例子,供大家參考:
- 機器學習常用微積分知識速查手冊
- 機器學習常用線性代數(shù)知識速查手冊
日常學習 Tips
關聯(lián)
把新學到的東西和日常的工作、生活聯(lián)系起來,進行思考。比如:將理論代入現(xiàn)實,不同領域間事物的類比,相似內(nèi)容的對比等。
以身邊的實例來檢測理論。不僅能夠加深理論知識的理解,而且有助于改進日常事物的處理方法。
記錄
準備一個筆記本,紙質(zhì)版或電子版均可。有什么發(fā)現(xiàn)、感想、疑問、經(jīng)驗等等,全都記下來。
如果是對某個話題、題目有比較完整的想法,最好能夠及時整理成文,至少記錄下要點。
隔一段時間把筆記整理一下,把分散的點滴整理成塊,一點點填充自己的“思維地圖”。
分享
知識技能這種東西,學了,就得“炫耀”——把學習到的新知識、理論、方法,分享給更多的人。如此一來,倒逼自己整理體系、記憶要點。這可以說是與人方便自己方便的最佳實例。
把自己的感想、體會、經(jīng)驗分享出來的同時,也鍛煉了自己的邏輯思維能力和歸納總結能力。一舉多得,何樂而不為?
點擊了解《機器學習極簡入門》。
第04課:為什么要學 Python 以及如何學 Python
第05課:機器是如何學習的?
第06課:機器學習三要素之數(shù)據(jù)、模型、算法
第07課:模型的獲取和改進
第08課:模型的質(zhì)量和評判指標
第09課:最常用的優(yōu)化算法——梯度下降法
第10課:線性回歸——從模型函數(shù)到目標函數(shù)
第11課:線性回歸——梯度下降法求解目標函數(shù)
第12課:樸素貝葉斯分類器——從貝葉斯定理到分類模型
第13課:樸素貝葉斯分類器——條件概率的參數(shù)估計
第14課:邏輯回歸——非線性邏輯函數(shù)的由來
第15課:邏輯回歸——用來做分類的回歸模型
第16課:決策樹——既能分類又能回歸的模型
第17課:決策樹——告訴你 Hello Kitty 是人是貓
第18課:SVM——線性可分 SVM 原理
第19課:SVM——直觀理解拉格朗日乘子法
第20課:SVM——對偶學習算法
第21課:SVM——線性 SVM,間隔由硬到軟
第22課:SVM——非線性 SVM 和核函數(shù)
第23課:SVR——一種“寬容”的回歸模型
第24課:直觀認識 SVM 和 SVR
第25課:HMM——定義和假設
第26課:HMM——三個基本問題
第27課:HMM——三個基本問題的計算
第28課:CRF——概率無向圖模型到線性鏈條件隨機場
第29課:CRF——三個基本問題
第30課:從有監(jiān)督到無監(jiān)督:由 KNN 引出 KMeans
第31課:KMeans——最簡單的聚類算法
第32課:譜聚類——無需指定簇數(shù)量的聚類
第33課:EM算法——估計含有隱變量的概率模型的參數(shù)
第34課:GMM——將“混”在一起的樣本各歸其源
第35課:GMM——用 EM 算法求解 GMM
第36課:PCA——利用數(shù)學工具提取主要特征
第37課:PCA——用 SVD 實現(xiàn) PCA
第38課:人工智能和神經(jīng)網(wǎng)絡
第39課:幾種深度學習網(wǎng)絡
第40課:深度學習的愿景、問題、應用和資料
附錄:入行 AI,選個腳踏實地的崗位
閱讀全文: http://gitbook.cn/gitchat/column/5ad70dea9a722231b25ddbf8
總結
- 上一篇: VMware vSphere 7.0U3
- 下一篇: Qss语法及应用