官术网_书友最值得收藏!

前言PREFACE

近十年來,隨著人工智能技術的快速發展和廣泛應用,各行各業掀起了一股人工智能學習浪潮。利用人工智能相關技術解決現實生活中的問題已經成為學術界和工業界的一種共識。因此,這也使與人工智能相關的專業在各類高校中如雨后春筍般涌現出來,但是對于絕大多數讀者來講,想要跨入人工智能這扇大門仍舊存在著較高的門檻。所以,一本結構合理、內容有趣、理論與實踐并重的入門書籍對于初學者來講就顯得十分必要了。

為什么會有這本書

筆者大約是在2016年開始接觸機器學習,也正是在那個時間點附近,筆者越發地認為“要想學得好,筆記不能少”。于是在這之后,筆者每學完一個新的知識點都會將它記錄下來。慢慢地,不知不覺就記錄了近200篇博客。在記錄的過程中,筆者都會將看到的各種資料以筆者自己的思維方式從頭梳理一遍再形成筆記。這樣做的好處就是能夠使這些知識點與自己腦中固有的知識更好地融合。

在2020年4月,筆者注冊了一個公眾號用來分享與傳播與機器學習相關的知識內容。同時,為了提高這些文章的質量,筆者以原先的博客記錄為藍本又一次從頭梳理了這些內容,然后陸續進行了推送。2020年11月初,筆者在微信群里看到有朋友說,如果能將這些文章整理成一個文檔就好了,因為在手機上看容易分神。為了滿足這些朋友的需要,筆者又一次對這些內容的組織結構進行了梳理與排版,很大程度上滿足了對于初學者的需求。

2020年12月初,清華大學出版社的趙佳霓編輯找到筆者,希望能將這份筆記整理成書稿出版。在與出版社簽訂合同后筆者又重新對所有內容進行了第3次修訂與補充。在整個內容的修訂過程中,為了達到學術上的嚴謹及自己對于內容質量的要求,筆者同本書的另外一位作者黃曉輝一起對本書的結構與內容進行了調整與補充,對文中所出現的每個知識點做了詳細的考證與引用,對于每個算法所涉及的示例代碼都進行了重新調試。工作之余,在歷經近半年的修訂后終于形成了現在的《跟我一起學機器學習》。本書第1~3章、第6章和第9章由王成編寫,第4、5、7、8章和第10章由黃曉輝編寫。

如何進行學習

好的方法事半功倍,而差的方法則事倍功半。當然,從本質上來講方法沒有好和壞之分,只有適合與不適合的區別,因此本書中所總結的學習方法也只是筆者的一家之言,不過這也十分值得學習與借鑒。

如果各位讀者也經常在網上瀏覽有關人工智能的相關內容,肯定會經常看到有人提出類似“如何才能入門機器學習”這樣的問題。想想筆者自己在剛接觸機器學習時又何嘗不是這樣呢,總覺得自己一直在門外徘徊,就是不得其中之道。幸運的是經過漫長的摸索后,筆者終于總結出了一條適合自己的學習路線。同時筆者也堅信,這也是適合絕大多數初學者的學習路線。

1.怎樣學

筆者第一次學習機器學習時所接觸到的資料就是吳恩達老師的機器學習視頻,并且相信很多讀者也都或多或少地看過這個視頻。總體來講,它的確是一個很好的機器學習入門材料,內容也非常淺顯易懂,并且吳恩達老師講得也十分詳細,但是,學著學著筆者漸漸地發現這份資料并不十分適合自己。局限于當時沒有找到更好的學習方法,筆者也就只能硬著頭皮看完了整個內容。后來,直到拿著李航老師的《統計機器學習》進行第二次學習時,筆者才慢慢地總結出了一條有效的學習路線,總結起來就是一句話:先抓主干,后抓枝節。

學習一個算法就好比遍歷一棵大樹上的所有枝節,算法越復雜其對應的枝葉也就越繁茂。一般來講通常有兩種方式遍歷這棵大樹:深度優先遍歷和廣度優先遍歷。對于有的人來講可能適合第一種方式,即從底部的根開始,每到一個枝干就深入遍歷下去,然后回到主干繼續遍歷第二個枝干,直到結束,而對于有的人來講可能第二種方式更適合,即從底部的根開始,先沿著主干爬到樹頂以便對樹的整體結構有一定的概念,然后從根部開始像第一種方式那樣遍歷整棵大樹。相比于第一種方式,第二種方式在整個遍歷過程中更不容易“迷路”,因為一開始就先對樹的整體結構有了一定的了解了。

因此,對于一個算法的學習,筆者將它歸結成了5個層次(3個階段):

其中,階段一可以看成先從大樹主干爬到樹頂一窺大樹全貌的過程,因為對于一個算法來講最基本的就是它所對應的思想,而這也是一個算法的靈魂所在。階段二和階段三就可以看成遍歷完整棵大樹后的層次了,它是對算法里細枝末節的具體探索。

為什么會是上面這種排序呢?可以打亂嗎?筆者的回答是:當然可以,只要是適合自己的方法,那就是好方法。不過,對于絕大多數人來講,筆者認為應該遵循上面這一學習順序。不過遺憾的是現在大多數讀者的學習順序是①②④⑤③或者是①②④③⑤。這兩種學習順序的弊端就在于,很多算法在其數學推導過程中是有難度的,當克服不了這個難度時很多讀者往往就不會接著往下進行,而這一問題在初學者當中尤為突出。相反,筆者一貫主張的是:先學會怎么用,再探究為什么。學習過程最重要的就是要形成一個良好的正向循環,這樣才會有繼續學習下去的動力。

2.學到什么時候

對于一個算法到底應該學到什么時候或者什么層次同樣也是初學者所面臨的一個問題。可以想象,如果沒有事先將一個算法的學習過程歸結為如上3個階段,此時筆者還真不知道告訴你應該學到哪種程度,因此筆者的建議是,對于所有的算法來講階段一是必須完成的,但對于一些相對容易的算法(如線性回歸)可以要求自己達到上述3個階段,而對于那些難度較大的算法(如支持向量機)可以根據自己的定位選擇。同時需要注意的是,對于任何一個算法的學習很少有人能做到學一遍就全懂的境界,所以也不要抱著學一遍就結束的想法。

因此,各位讀者在實際的學習過程中,可以在第一次學習時先達到階段一,然后在第二次學習時再達到階段二……因為這樣分階段的學習方式更能夠相對容易地使自己獲得滿足感,獲得繼續學下去的樂趣。最后,照著以上步驟進行,學習3~4個算法后,便算得上是初窺機器學習的門徑了。

本書特色

從整理筆記伊始,筆者盡量選擇了以直白的方式闡述每個算法背后的思想與原理。盡管這看起來可能有點口語化,但極大地降低了學習的門檻,尤其是對于那些非計算機專業的讀者來講。同時,對于一些重要而又難以理解的概念,筆者會嘗試2~3次以不同的口吻進行闡述。例如筆者在第3章中用了下面這段話闡述為什么需要用到最大似然估計:

我們知道,在有監督的機器學習中都是通過給定訓練集,即(xiyi)求得其中的未知參數Wb。換句話說,對于每個給定的樣本xi,事先已經知道了其所屬的類別yi,即yi的分布結果是知道的。那么,什么樣的參數Wb能夠使已知的y(1)y(2),…,ym這樣一個結果(分布)最容易出現呢?也就是說,給定什么樣的參數Wb,能使當輸入x(1)x(2),…,xmm個樣本時,最能夠產生已知類別標簽y(1)y(2),…,ym這一結果呢?

盡管這段話讀起來可能有些啰唆,但只要各位讀者認真體會,一定會受益匪淺。

本書源代碼

掃描下方付費二維碼,可獲取本書源代碼。

說明:文中需掃碼閱讀的請掃此付費二維碼。

致謝

首先感謝清華大學出版社趙佳霓編輯的耐心指點,以及對本書出版的推動;其次感謝在本書中筆者所引用文獻的作者,沒有你們的付出也不會有本書的出版;然后感謝Brandy、十、olderwang、XiaomeiMi、Wanlong、fanfan和凌同學吃飽了為本書提出的寶貴意見;最后還要感謝筆者的家人在背后默默地支持筆者。

由于時間倉促,書中難免存在不妥之處,請各位讀者見諒,并提寶貴意見。如能再版,你們的名字也將出現在致謝當中。

王成

2022年4月

主站蜘蛛池模板: 庆安县| 武邑县| 金门县| 克拉玛依市| 乐亭县| 英德市| 什邡市| 铜山县| 桂东县| 双流县| 迁安市| 五大连池市| 泽普县| 永年县| 丰原市| 友谊县| 庆元县| 商城县| 醴陵市| 张家界市| 弥勒县| 抚远县| 伊金霍洛旗| 全南县| 潞城市| 吴堡县| 青川县| 扬中市| 宜良县| 仙桃市| 响水县| 馆陶县| 仁化县| 文水县| 酒泉市| 安平县| 西宁市| 大方县| 定兴县| 津市市| 明星|