獻給程式設計師的最好的一份機器學習自學手冊

文章推薦指數: 80 %
投票人數:10人

該文章來自Github上開源項目翻譯

自上而下的學習路線: 軟體工程師的機器學習

靈感來自 谷歌面試學習手冊

  • 原文地址:Machine Learning for Software Engineers

  • 原文作者:ZuzooVn(Nam Vu)

  • 翻譯:lsvih

這是?

這是我為期數月的學習計劃。

我正要從一名移動軟體開發者(自學,無計科文憑)轉型成為一名機器學習工程師。

我的主要目標是找到一種以實踐為主的學習方法,並為初學者抽象掉大多數的數學概念。

這種學習方法是非傳統的,因為它是專門為軟體工程師所設計的自上而下、以結果為導向的學習方法。

如果您想讓它更好的話,隨時歡迎您的貢獻。


目錄

  • 這是?

  • 為何要用到它?

  • 如何使用它?

  • Follow me

  • 別認為自己不夠聰明

  • 關於視頻資源

  • 預備知識

  • 每日計劃

  • 動機

  • 機器學習概論

  • 掌握機器學習

  • 有趣的機器學習

  • 機器學習簡介

  • 一本深入,非技術的機器學習指南

  • 故事與經驗

  • 機器學習算法

  • 入門書籍

  • 實用書籍

  • Kaggle知識競賽

  • 系列視頻

  • MOOC

  • 資源

  • 成為一名開源貢獻者

  • 遊戲

  • 播客

  • 社區

  • 面試問題

  • 我崇拜的公司


為何要用到它?

我會為了我未來的工作:機器學習工程師 而遵循這份計劃。

自從2011年以來,我一直進行著原生移動應用的開發(包括安卓、IOS和黑莓)。

我有軟體工程的文憑,但是沒有計算機科學的文憑。

我僅僅在大學的時候學習過一點基礎科學,包括微積分、線性代數、離散數學、機率論與統計。

我認真思考過我在機器學習方面的興趣:

  • 我能在沒有計科碩士、博士文憑的情況下找到一份關於機器學習的工作嗎?

  • 你當然可以,但是我想進入這個領域則無比艱難。

  • 我是一名軟體工程師,我自學了機器學習,我如何在沒有相關經驗的情況下找到一份關於機器學習的工作?

  • 我正在為我的團隊招聘機器學習專家,但你的MOOC並不會給你帶來工作機會。

    事實上,大多數機器學習方向的碩士也並不會得到工作機會,因為他們(與大多數上過MOOC的人一樣)並沒有深入地去理解。

    他們都沒法幫助我的團隊解決問題。

  • 找一份機器學習相關的工作需要掌握怎樣的技能?

  • 首先,你得有正兒八經的計科或數學專業背景。

    ML是一個比較先進的課題,大多數的教材都會直接默認你有以上背景。

    其次,機器學習是一個集成了許多子專業的奇技淫巧的課題,你甚至會想看看MS的機器學習課程,去看看他們的授課、課程和教材。

  • 統計,假設,分布式計算,然後繼續統計。

我深陷困境。

據我所知, 機器學習有兩個方向:

  • 實用機器學習: 這個方向主要是查詢資料庫、數據清洗、寫腳本來轉化數據,把算法和庫結合起來再加上一些定製化的代碼,從數據中擠出一些準確的答案來證明一些困難且模糊不清的問題。

    實際上它非常混亂。

  • 理論機器學習: 這個方向主要是關於數學、抽象、理想狀況、極限條件、典型例子以及一切可能的特徵。

    這個方向十分的乾淨、整潔,遠離混亂的現實。

我認為對於以實踐為主的人來說,做好的方法就是 「練習--學習--練習」,這意味著每個學生一開始就能參與一些現有項目與一些問題,並練習(解決)它們以熟悉傳統的方法是怎麼做的。

在有了一些簡單的練習經驗之後,他們就可以開始鑽進書里去學習理論知識。

這些理論知識將幫助他們在將來進行更進一步的訓練,充實他們解決實際問題的工具箱。

學習理論知識還會加深他們對那些簡單練習的理解,幫助他們更快地獲得進階的經驗。

這是一個很長的計劃,它花去了我一年的時間。

如果你已經對它有所了解了,它將會讓你省去很多時間。

如何使用它?

以下的內容全部是概要,你需要從上往下來解決這些項目。

我使用的是Github獨特的flavored markdown的任務列表來檢查我計劃的進展。

  • 創建一個新的分支,然後你可以這樣來標出你已經完成的項目,只需要在框中填寫一個x即可:[x]

了解更多有關 Github-flavored markdown的知識

Follow me

我是一名非常非常想去美國工作的越南軟體工程師。

我在這份計劃中花多少時間?在每天的艱辛工作完成後,每晚花4小時。

我已經在夢想的旅途中了。

  • Twitter: @Nam Vu


當我打開書本,發現他們告訴我多元微積分、統計與推理、線性代數是先決條件的時候,我變得非常沮喪。

我不知道從哪兒開始…別認為自己不夠聰明

  • 我數學不好怎麼辦

  • 沒有數學專業背景而理解機器學習算法的5種技巧

  • 我是如何學習機器學習的?

關於視頻資源

部分視頻只有在Coursera、EdX的課程註冊了才能觀看。

雖然是免費的,但是有時候這些課程不在開放的時間段,你可能需要等上一段時間(可能是好幾個月)。

我將會加上更多的公開的視頻源來代替這些在線課程的視頻。

我很喜歡大學的講座。

預備知識

這個小章節是一些在每日計劃開始前我想去了解的一些預備知識與一些有趣的信息。

  • Data Analytics,Data Analysis,數據挖掘,數據科學,機器學習,大數據的區別是什麼?

  • 學習如何去學習

  • 不要斬斷鎖鏈

  • 如何自學

每日計劃

每個主題都不需要用一整天來完全理解它們,你可以每天完成它們中的多個。

每天我都會從下面的列表中選一個出來,一遍又一遍的讀,做筆記,練習,用Python或R語言實現它。

動機

機器學習概論

  • 形象的機器學習簡介

  • 一份溫柔的機器學習指南

  • 為開發者準備的機器學習簡介

  • 菜鳥的機器學習基礎

  • 你如何向非計算機專業的人來解釋機器學習與數據挖掘?

  • 在罩子下的機器學習,博文簡單明了地介紹了機器學習的原理

  • 機器學習是什麼?它是如何工作的呢?

  • 深度學習——一份非技術性的簡介

掌握機器學習

  • 掌握機器學習的方法

  • 程式設計師的機器學習

  • 掌握並運用機器學習

  • Python機器學習小課程

  • 機器學習算法小課程

有趣的機器學習

  • 機器學習真有趣!

  • Part 2: 使用機器學習來創造超級馬里奧的關卡

  • Part 3: 深度學習與卷積神經網絡

  • Part 4: 現代人臉識別與深度學習

  • Part 5: 翻譯與深度學習和序列的魔力

機器學習簡介(用手指沾上墨水來書寫機器學習簡介)

  • Part 1 : 什麼是機器學習?

  • Part 2 : 監督學習與非監督學習

一本深入、非技術性的機器學習指南

  • 概述,目標,學習類型和算法

  • 數據的選擇,準備與建模

  • 模型的評估,驗證,複雜性與改進

  • 模型性能與誤差分析

  • 無監督學習,相關領域與實踐中的機器學習

故事與經驗

  • 一周的機器學習

  • 一年的機器學習

  • 我是如何在3天內寫出我的第一個機器學習程序的

  • 學習路徑:你成為機器學習專家的導師

  • 不是PhD你也可以成為機器學習的搖滾明星

  • 如何6個月成為一名數據科學家:一名黑客的職業規劃

  • 視頻

  • 幻燈片

  • 5個你成為機器學習工程師必須要掌握的技能

  • 你是一個自學成才的機器學習工程師嗎?你是怎麼做的?花了多長時間?

  • 一個人如何成為一名優秀的機器學習工程師?

  • 一個關注於機器學習的學術假期

機器學習算法

  • 用「士兵」來表示10種機器學習算法

  • Top10的數據挖掘算法

  • 介紹10種機器學習的術語

  • 機器學習算法之旅

  • 機器學習工程師需要知道的10種算法

  • 比較監督學習算法

  • 收集的最簡化、可執行的機器學習算法

入門書籍

  • Data Smart: Using Data Science to Transform Information into Insight 1st Edition

  • Data Science for Business: What you need to know about data mining and data­ analytic-thinking

  • Predictive Analytics: The Power to Predict Who Will Click, Buy, Lie, or Die

實用書籍

  • Machine Learning for Hackers

  • GitHub repository(R)

  • GitHub repository(Python)

  • Python Machine Learning

  • GitHub repository

  • Programming Collective Intelligence: Building Smart Web 2.0 Applications

  • Machine Learning: An Algorithmic Perspective, Second Edition

  • GitHub repository

  • Resource repository

  • Introduction to Machine Learning with Python: A Guide for Data Scientists

  • GitHub repository

  • Data Mining: Practical Machine Learning Tools and Techniques, Third Edition

  • Slides for Chapters 1-5 (zip)

  • Slides for Chapters 6-8 (zip)

  • Teaching material

  • Machine Learning in Action

  • GitHub repository

  • Reactive Machine Learning Systems(MEAP)

  • GitHub repository

  • An Introduction to Statistical Learning

  • GitHub repository(R)

  • GitHub repository(Python) - 視頻

  • Building Machine Learning Systems with Python

  • GitHub repository

  • Learning scikit-learn: Machine Learning in Python

  • GitHub repository

  • Probabilistic Programming & Bayesian Methods for Hackers

  • Probabilistic Graphical Models: Principles and Techniques

  • Machine Learning: Hands-On for Developers and Technical Professionals

  • Machine Learning Hands-On for Developers and Technical Professionals review

  • GitHub repository

  • Learning from Data - 在線教程

  • Reinforcement Learning: An Introduction (2nd Edition)

  • GitHub repository

  • Machine Learning with TensorFlow(MEAP)

Kaggle知識競賽

  • Kaggle競賽:怎麼樣,在哪裡開始?

  • 一個初學者如何用一個小項目在機器學習入門並在Kaggle競爭

  • 如何競爭Kaggle的Master

系列視頻

  • Machine Learning for Hackers

  • Fresh Machine Learning

  • Machine Learning Recipes with Josh Gordon

  • Everything You Need to know about Machine Learning in 30 Minutes or Less

  • A Friendly Introduction to Machine Learning

  • Nuts and Bolts of Applying Deep Learning - Andrew Ng

  • BigML Webinar - 視頻 - 資源

  • mathematicalmonk's Machine Learning tutorials

  • Machine learning in Python with scikit-learn

  • GitHub repository - 博客

  • My playlist – Top YouTube Videos on Machine Learning, Neural Network & Deep Learning

  • 16 New Must Watch Tutorials, Courses on Machine Learning

  • DeepLearning.TV

  • Learning To See

  • Neural networks class - Université de Sherbrooke

MOOC

  • Udacity的機器學習導論

  • 複習Udacity機器學習導論

  • Udacity的監督學習、非監督學習及深入

  • Machine Learning Foundations: A Case Study Approach

  • Courserad的機器學習

  • 視頻

  • 複習Coursera機器學習

  • Coursera的機器學習路線圖

  • Machine Learning Distilled

  • BigML training

  • Coursera的神經網絡課程

  • 由Geoffrey Hinton(神經網絡的先驅)執教

  • 使用TensorFlow創建深度學習應用

  • 描述統計學概論

  • 推理統計學概論

資源

  • 一個月學會機器學習

  • 一份「非技術性」的機器學習與人工智慧指南

  • Hacker News的《軟體工程師的機器學習》

  • 開發者的機器學習

  • 給開發者的關於機器學習的建議

  • 機器學習入門

  • 為新手準備的機器學習入門教程

  • 初學者如何自學機器學習

  • 機器學習自學資源

  • 提升你的機器學習技能

  • 一份'坦誠'的機器學習指南

  • 用機器學習讓Hacker News更具可讀性

  • 視頻

  • 幻燈片

  • 深入機器學習

  • 大學中的機器學習課程

  • 斯坦福

  • 機器學習夏令營

  • 牛津

  • 劍橋

  • Flipboard的主題

  • 機器學習

  • 深度學習

  • 人工智慧

  • Medium的主題

  • 機器學習

  • 深度學習

  • 人工智慧

  • 每月文章Top10

  • 2016年7月

  • 2016年8月

  • 2016年9月 - 2016年10月 - 2016年11月

  • 算法

  • 2016年9月 - 2016年10月-11月

  • 機器學習

  • 全面的數據科學家的資源

  • DigitalMind的人工智慧資源

  • 令人驚嘆的機器學習

  • CreativeAi的機器學習

成為一名開源貢獻者

  • tensorflow/magenta: Magenta: Music and Art Generation with Machine Intelligence

  • tensorflow/tensorflow: Computation using data flow graphs for scalable machine learning

  • cmusatyalab/openface: Face recognition with deep neural networks.

  • tensorflow/models/syntaxnet: Neural Models of Syntax.

遊戲

  • Halite:AI編程遊戲

  • Vindinium: 挑戰AI編程

  • Video Game AI比賽

  • 憤怒的小鳥AI比賽

  • The AI Games

  • Fighting Game AI Competition

  • CodeCup

  • 星際爭霸AI學生錦標賽

  • AIIDE星際爭霸AI競賽

  • CIG星際爭霸AI競賽

  • CodinGame - AI Bot Games

播客

  • 適合初學者的播客:

  • Talking Machines

  • Linear Digressions

  • Data Skeptic

  • This Week in Machine Learning & AI

  • 「更多」進階的播客:

  • Partially Derivative

  • O』Reilly Data Show

  • Not So Standard Deviation

  • 盒子外的播客:

  • Data Stories

社區

  • Quora

  • 機器學習

  • 統計學

  • 數據挖掘

  • Reddit

  • 機器學習

  • 計算機視覺

  • 自然語言處理

  • 數據科學

  • 大數據

  • 統計學

  • Data Tau

  • Deep Learning News

  • KDnuggets

面試問題

  • 如何準備機器學習職位的面試

  • 40個機器學習與數據科學的面試問題

  • 21個必須要知道的數據科學問題與回答

  • Top 50 機器學習面試問題與回答

  • 機器學習面試問題

  • 常用的機器學習面試問題

  • 機器學習面試問題有哪些相同的?

  • 什麼是評價一個機器學習研究者的最好的問題?

  • 機器學習面試問題大搜集

  • 121個需要掌握的問題與回答

我崇拜的公司

  • ELSA - 你虛擬的口語教練


請為這篇文章評分?


相關文章 

機器學習最好的入門資料

這是一篇很難寫的文章,因為我希望這篇文章能對學習者有所啟發。我在空白頁前坐下,並且問自己了一個很難的問題:什麼樣的庫、課程、論文和書籍對於機器學習的初學者來說是最好的。文章里到底寫什麼、不寫什麼,

京東T3.2大數據工程師分享的入門書籍!

在美國,大數據工程師平均年薪達17.5萬美元,在中國頂尖的網際網路公司里,大數據工程師的薪酬比同級別的其他職位高出30%以上。DT時代來得太突然了,國內發展勢頭很猛,而大數據相關的人才卻非常地有...

今晚直播|你該如何成功轉行數據分析

大家好,我是第7期「知識眾籌」分享者 易成凡,同時也是猴子社群會員。對於大家之前的留言問題,我用了幾個晚上認真整理了一下。目前有34個問題來提問。我總結了一下,大致是以下幾個方面。1 數據分析該...

機器學習,深度學習資料1000+

機器學習是研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。它是人 工智能的核心,是使計算機具有智能的根本途徑。深度學習是機器學習研究中...

給初學者:3個月學會機器學習 ||附完整路徑

一個初學者應該如何開始學習機器學習?這裡有份3個月的課程,能幫助你從初學者到精通機器學習。這是一個快速學習計劃,本課程將涵蓋所有數學概念、機器學習理論和深度學習理論,讓你能夠儘快跟上該領域的發展。

如何成為機器學習工程師?培訓推薦

對很多人來說,「機器學習」這個詞既讓人倍感興奮,又覺得高深莫測。畢竟,幾乎所有巨頭——從國外的 Google、Facebook、Apple、Amazon 到國內的 BAT、華為、美團、今日頭條等...

「數據科學家」和「數據工程師」是一回事嗎?

「數據科學家」和「數據工程師」可能是新的職位名稱,但其核心的工作角色已經存在了一段時間。傳統上,我們把進行數據分析工作的人稱作「數據分析師」,而把那些創造支撐數據分析後端平台的人稱做 「商業智能...