機器學習的基本原理。機器學習主要有兩種方式,一種是監督式學習(supervised learning),另一種是非監督式學習(unsupervised learning)。下面簡單地說一下這兩者的不同。
監督式學習是在被告訴過了正確的答案後的學習,而非監督式學習是在沒有被告訴正確答案時的學習。所以,非監督式學習是在大量的非常亂的資料中找尋一些潛在的關係,這個成本也比較高。非監督式學習經常被用來檢測一些不正常的事情發生,比如信用卡的詐騙或是盜刷。也被用在推薦系統,比如買了這個商品的人又買了別的什麼商品,或是如果某個人喜歡某篇文章、某個**、某個餐館,那麼他可能會喜歡某個車、某個明星或某個地方。
在監督式學習演算法下,我們可以用一組「狗」的**來確定某個**中的物體是不是狗。而在非監督式學習演算法下,我們可以通過乙個**來找到其中有與其相似的事物的**。這兩種學習方式都有些有用的場景。
關於機器學習,可以讀一讀 machine learning is fun! ,這篇文章(中文翻譯版)恐怕是全世界最簡單的入門資料了。
在學習機器學習之前,需要學習資料分析,所以得先學一些大資料相關的東西,也就是 data science 相關的內容。下面是兩個不錯的和資料科學相關的教程以及乙個資源列表。
更多的列表,請參看——awesome machine learning courses。
下面這兩本電子書也是比較經典的,其中講了很多機器學習的知識,可以當做手冊或字典。
《deep learning: adaptive computation and machine learning series》 中文翻譯為《深度學習》。這本書由全球知名的三位專家伊恩·古德費洛(ian goodfellow)、友華·本吉奧(yoshua bengio)和亞倫·考維爾(aaron courville)撰寫,是深度學習領域奠基性的經典教材。
全書內容包括 3 部分:第 1 部分介紹基本的數學工具和機器學習的概念,它們是深度學習的預備知識;第 2 部分系統深入地講解現今已成熟的深度學習方法和技術;第 3 部分討論某些具有前瞻性的方向和想法,它們被公認為是深度學習未來的研究重點。這本書的官網為 「deeplearningbook.org」,在 github 上也有中文翻譯 - 《deep learning 中文翻譯》。
《neural networks and deep learning》(中文翻譯版),這是一本非常不錯的神經網路的入門書,在豆瓣上評分 9.5 分,從理論講到了**。雖然有很多數學公式,但是有**相助,就不難理解了。其中講了很多如啟用函式、代價函式、隨機梯度下降、反向傳播、過度擬合和規範化、權重初始化、超引數優化、卷積網路的區域性感受野、混合層、特徵對映的東西。
《introduction to machine learning with python》,算是本不錯的入門書,也是本比較易讀的英文書。其是以 scikit-learn 框架來講述的。如果你用過 scikit 這個框架,那麼你學這本書還是很不錯的。
《hands-on machine learning with scikit-learn and tensorflow 》,這是一門以 tensorflow 為工具的入門書,其用豐富的例子從實站的角度來讓你學習。這本書對於無基礎的人也是適合的,對於小白來說雖然略難但是受益匪淺。
除了上述的那些課程和圖書外,下面這些文章也很不錯。
還有 practical machine learning tutorial with python introduction 上面一系列的用 python 帶著你玩 machine learning 的教程。
medium 上的 machine learning - 101 ,講述了好些上面提到過的經典演算法。
medium 上的 marchine learning for humans。
dr. jason brownlee 的部落格 ,也非常值得一讀,其中好多的 「how-to」,會讓你有很多的收穫。
rules of machine learning: best practices for ml engineering ,一些機器學習相關的最佳實踐。
i am trask ,也是乙個很不錯的部落格。
麻省理工學院的電子書 deep learning。
用 python 做自然語言處理natural language processing with python。
最後乙個是 machine learning 和 deep learning 的相關教程列表,machine learning & deep learning tutorials。
下面是 10 個非常經典的機器學習的演算法。
更全的機器學習的演算法列表, wikipedia 上的 list of machine learning algorithms。
對於這些演算法,scikit-learn有一些文件供你學習。
極客時間 左耳聽風 程式設計師攻略 分布式架構入門
分布式系統涵蓋的面非常廣,具體來說涵蓋如下幾方面 所有這些形成了分布式架構的整體複雜度,也造就了分布式系統中的很多很多 圖書以及很多很多的專案。注意幾點。github 上的一篇文件 system design primer 這個倉庫主要組織收集分布式系統的一些與擴充套件性相關的資源,它可以幫助你學習...
極客時間01 左耳聽風
程式設計師用手藝 技術養活自己,不依靠公司 提高工作效率,去研究那些難的,公司內外的核心技術 注重輸出,輸出技術 價值觀,幫助更多的人,提高影響力。如何做?積少成多,形成正向迴圈 關注有價值的東西,關注市場市場需求和技術趨勢 在學習技術的過程一定要多問自己兩個問題 一,這個技術解決什麼問題?為什麼別...
極客時間 左耳聽風閱讀筆記
經典系列,推薦!歡迎掃瞄學習!1.程式設計師如何用技術變現 上 本文主要講述了作者開始接觸程式到現在的一些經歷。從最開始在學校幫老師做東西,到後來公司請他做培訓。他通過知識幫別人解決問題,來賺取報酬。乙個人能不能技術變現,主要在於你能不能幫別人解決問題。尤其是你能幫別人解決別人解決不了的問題,這個時...