【收藏】机器学习入门的常见问题集(文末送书)
作者:莫凡
導讀:機器學習如何入門?那些還在不斷叩擊著機器學習之門,遲遲未入門的同學應該怎么做?今天小編帶大家聽聽木羊同學怎么說...
作者:木羊同學
來源:華章計算機(hzbook_jsj)
大家好,我是木羊同學,4月1日我受邀參加了開源中國的高手問答欄目。這次的主題是機器學習入門,欄目的提問質量很高,有好多問題著實搔著了癢處。
這次的提問都很有意思,串起來可以編一套“機器學習入門的常見問題集”,這里我濃縮成三個很有代表性的問題,推薦給一直在機器學習的門外徘徊,還沒進去的同學。
第一個問題是起點:為什么神經網絡能模擬人腦?
回想一下,當你終于決定要開始學機器學習之前,究竟是什么觸動了你的心?觸動我的心的,就是上面這個問題。我的故事充滿了中二的氣息,《超能特戰隊》是一部人工智能題材的科幻動畫,我特別喜歡里面超暖的大白(●—●),而且用的是技術宅風格,我想實現它。
當然,當時之所以會有這個大膽的想法,主要是因為無知。我選擇用神經網絡。神經網絡,有的書上稱為人工神經網絡,還有什么會比選擇使用名為“人工神經網絡”的算法來實現人工智能更自然而然的事呢?更何況當時我還知道,神經網絡最近推出了一個高清重制版,名叫深度學習,很多人甚至開始預言深度學習會取代其他機器學習算法,看起來前途無量。
不過很快,我的問題就變成了“神經網絡能不能模擬人腦”。我以為這個問題很簡單,三天就能找到答案。可是,沒有一本書能作出肯定或否定的回答,當時也沒有高手問答這么好的欄目讓我提問。我沒想到,這樣一個看似簡單的謎底,竟然需要花費我未來數年的時光。
“很遺憾,神經網絡并不能模擬人腦”,我斟酌許久,開始一個字一個字地針對今天的問題,也是我當年的問題做出回答。如今,神經網絡,或者叫深度學習,已然大紅大紫,然而,這套名叫“神經網絡”的算法只做了非常有限的仿生,非要和人的神經網絡相比較的話,我認為是平行線的兩條邊。人的神經網絡沒法求導,而機器學習的神經網絡本質是擬合曲線,只不過隨著神經網絡深度的加深,模型的擬合能力也隨之加強。再復雜的曲線,只要有足夠的深度和足夠的數據進行訓練,神經網絡就能表達出來,這也正是深度學習中“深度”二字的由來。
我們正處在一個蓬勃發展的社會,“學機器學習能找一份怎樣的工作”,這自然是每一個務實的人所關心的問題。只是我想,心懷當年那份求知的渴望,也許才能更容易地在各種問題堆疊的知識體系中堅持下來。
第二個問題是困擾:機器學習的數學究竟該怎么學,為什么花了很多時間去學,卻仍然感覺啥也沒學會?
機器學習很特別,它既是算法,又是數學,但無論你把它當作一門算法來學,還是當作一門數學來學,都會有迷路的感覺。今天有人很形象地形容了這種感覺:一直在學,也學了很多,可是,到頭來不是還沒搞懂原理,就是搞懂了原理看不懂公式,要么就是看懂了公式,卻還是不知道怎樣寫成算法運行。
“機器學習要先學好數學”,這應該是大家都聽過的“好心”勸告。最終,大家都在困擾中問出那個問題:學機器學習,究竟要不要手推公式?每一個初學者想必都對此很糾結。機器學習的教材也很糾結,所以會走兩個極端:一種是偏重編程,既然大家都看不懂數學,那干脆統統刪掉,只留代碼。可是,這種教材讀完之后,免不了會產生知其然不知其所以然的不安感。想要系統全面地學?那好,另一種偏重數學的教材,翻開一看,里面全是意義不明的數學公式符號,還有各種拗口的術語名詞,讓人讀得昏頭轉向,很快迷失方向。
該怎么學才好呢?
我在《機器學習算法的數學原理與Python實現》中提出了一個概念,叫“數學語”。名字怪怪的,不過意思很好理解。學機器學習的數學,不該是自古華山一條路。不同的學習動機,應該對應不同的學習路徑。很多人,甚至可能是大多數的人,真正關心的不是在數學上怎么證明收斂,而是這些數學符號到底在說什么,想要知道的是翻譯:把這門希臘符號寫成數學語,翻譯成看完了能夠說一聲“原來如此”的大白話,進而了解這款模型為什么能做到這些,又會有怎樣的不足之處。
第三個問題是工具:機器學習的算法在現實中該怎么使用呢?
編程需要確定編程語言,首先推薦的是Python。早前做機器學習,是Python和R二選一,不過Python的資源明顯豐富得多,特別是近年在深度學習方面有著無法比擬的優勢,不是唯一的選擇,也是最佳的選擇。Python還有一個優點,就是語法簡單,有了其他編程語言的基礎,很快就能轉過來。
確定了語言,接下來大家自然就會產生一個樸素的愿望:有沒有那么一款工具,能夠直接將那些個亂糟糟的數學公式一下轉成Python代碼?畢竟數學符號和Python代碼長得太不像了,不知道該怎樣把書上這些數學公式運行起來。
可惜的是,現在還沒有這樣便利的工具。不過,Python有很多專門的庫,能夠明顯降低我們使用機器學習算法的門檻。常用的有三款,第一款是numpy,機器學習用到的各種矩陣運算里面都有,只要了解了式子的意思,就能用numpy照貓畫虎。第二款是Scikit-Learn,對常用的機器學習算法做了非常好的封裝,使用很簡單,就是調用API。第三款是Pandas,機器學習的任務通常需要處理數據,而Pandas是首選的利器。
為機器學習愛好者推薦下我的書:《機器學習算法的數學解析與Python實現》
?
點擊上方鏈接了解詳情并購買
推薦語:入門機器學習的第一本書。從生活案例中理解算法,發現算法的樂趣,再把算法應用到機器學習中,讓你零基礎掌握算法精髓,快速進入人工智能開發領域。
歡迎大家加入機器學習愛好者群來討論交流:
本群適合:想要學習機器學習的學生、程序員、研究人員或者愛好者,以及想要知道機器學習是什么、為什么和怎么用的所有讀者。??
作者簡介
莫凡——新技術深度愛好者,曾經從事信息安全前沿技術跟蹤研究和數據分析工作,在各類信息安全類技術期刊雜志發表文章五十余篇,現轉為投身高端知識“白菜化”項目,希望能讓將更多聽起來高大上的名詞沾一沾人間煙火,成為日常中生活真正用得上的知識,著有《機器學習算法的數學解析與Python實現》。個人公眾號“睡前機器學習”,個人知乎號“木羊”。
本次聯合【機械工業出版社華章公司】為大家帶來5本正版新書。快來發表你的評論,11月9日23點前,評論20字以上,點贊數前6名的讀者將獲贈正版圖書1本!!!
(備注:防止刷量,最后一小時增量超過100的屬于無效留言,會有截圖作證)
當然,讀者也可以點擊下方鏈接購買。
此外,抽出3位幸運觀眾,在本公眾號后臺回復“莫凡”參與抽獎,11月9日23點開獎!中獎者每人1本。
機器學習初學者
▲掃碼回復「莫凡」抽獎
總結
以上是生活随笔為你收集整理的【收藏】机器学习入门的常见问题集(文末送书)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【深度学习】深度学习在视觉搜索和匹配中的
- 下一篇: 【竞赛相关】Kaggle活跃竞赛的最新汇