回覆列表
  • 1 # me坤子

    “開始”,是一個令人激動的字眼。然而萬事開頭難,當你擁有過多的選擇時,往往就會不知所措。

    我們希望藉助免費、便捷的線上資源,幫助你完成從小白到大牛的蛻變。這篇文章將會回答如何選擇資源、如何拓展學習以及按怎樣的順序學習等一系列問題。

    我們要開始了!首先假定你還不具備以下技能:

    精通機器學習熟練掌握Python熟悉其他Python相關包

    使用Python的經驗或許對後面的學習有幫助,但並不是必需的。在最初的幾步多花些時間和功夫也可以彌補這些欠缺。

    第1步:Python基本技能

    如果我們希望用Python進行機器學習,對Python的基本理解是至關重要的。幸運的是,由於Python作為程式語言的普及和它在相關領域的廣泛應用,找到入門教程並非難事。而從何處起步取決於你對Python的掌握程度。

    首先,你需要下載Python。考慮到我們會利用Python進行科學計算和機器學習,我建議安裝Anaconda。它是一個多平臺開源的Python發行版本,其包含了conda、Python等180多個科學包及其依賴項,還包括我們許多教程的互動式環境iPython Notebook。

    如果沒有程式設計基礎,我的建議是從下面的資料看起,然後再學習更多教程。

    Python the hard way

    如果有其他程式語言基礎,或剛接觸Python,我會建議使用以下材料:

    Learn X in Y Minutes (X = Python)

    當然,如果你是一個有經驗的Python程式設計師,你可以跳過這一步。

    第2步:機器學習基礎

    人們會覺得資料科學家有許多異於常人之處。這實際上是人們對機器學習領域的印象,因為資料科學家所做的大部分工作都不同程度的涉及到機器學習演算法。是否有必要為了更高效地完成機器學習模型的建立而去深入其核心?當然不是。就像生活中任何事物一樣,理論理解的程度和實際應用相關。但機器學習演算法並不在本文討論範圍,通常這需要長期學術研究,亦或是鍥而不捨的自學。

    好訊息是,你不需要對機器學習擁有博士一般的理解程度,換句話說,並不是所有的程式設計師都需要接受理論的計算機科學教育才能成為的程式設計人員。

    吳恩達老師在Coursera上的課程經常得到好評。然而,我的建議是多瀏覽學生編寫的課程筆記,並跳過Octave某些的註釋。儘管這些不是“官方”的筆記,但仍然把握了吳恩達老師課程材料的核心內容。如果你有時間和興趣的話,現在可以在Coursera上選擇吳恩達老師的機器學習課程了(網易雲課堂也釋出了吳老師的中文版課程)。

    非官方的課程筆記

    除了上述吳恩達老師的課程,其中還包含各種各樣的影片講座。

    Tom Mitchell的機器學習講座

    瀏覽到這裡,你並不需要檢視所有的筆記和影片。一個更為高效的方案是,完成下面特定的練習,並輔以相關的影片和筆記。例如,當你在練習迴歸模型建立時,閱讀吳恩達老師和Mitchell的相關資料即可。

    第3步:Python基礎包概覽

    當我們掌握Python並對機器學習有一定概念後,我們還要了解一些機器學習常用的開源庫:

    Numpy-主要提供矩陣運算的功能。Pandas-提供了高效地操作大型資料集所需的工具。Matplotlib-一個Python的2D繪相簿,它以各種硬複製格式和跨平臺的互動式環境生成出版質量級別的圖形。Scikit-learn-用於資料分析和資料探勘任務的機器學習演算法。

    相關學習教程如下:

    Scipy Lecture Notes10 Minutes to Pandas

    下面的教程中將會提到其他一些軟體包,其中包括Seaborn(一個基於Matplotlib的資料視覺化庫)。前面提到的包是Python機器學習任務的核心;然而,我希望你理解它們以適應相關的包,而不會在以下教程中引用它們時引起混淆。

    第4步:用Python開始機器學習Python √機器學習基礎√Numpy √Pandas √Matplotlib √

    時機成熟,讓我們用Python的標準機器學習庫Scikit-learn來實現機器學習演算法吧!

    下面的許多教程和練習將由iPython Notebook驅動,這是一個用於執行Python的互動式環境。這些iPython Notebook可以選擇線上檢視或下載,並在本地計算機上進行互動。

    來自斯坦福的iPython筆記本概述

    我們的第一個教程,是進行Scikit的學習。我建議在進行以下步驟之前先完成所有這些工作。

    scikit-learn的一般介紹,涵蓋了K-均值聚類演算法:

    An Introduction to scikit-learn

    一個更深入、更廣泛的介紹,包括一個數據集的入門專案:

    Example Machine Learning Notebook

    一個側重於評估scikit-learn中不同模型的介紹,涵蓋訓練/測試資料集拆分:

    Model Evaluation第5步:開始主題化的機器學習

    在Scikit-learn的基礎上,我們可以進一步深入探索各種常見的、有用的演算法。我們從K-means聚類開始,這是最著名的機器學習演算法之一,是解決無監督學習問題的一種簡單且有效的方法:

    Decision Trees via The Grimm Scientist

    從分類,我們看看連續的數字預測:

    Linear Regression

    然後我們可以利用迴歸分類問題,透過邏輯迴歸:

    Logistic Regression第6步:用Python完成機器學習進階

    我們已經習慣了Scikit-learn,現在我們把注意力轉向一些更高階的話題。首先是支援向量機,一種與相關的學習演算法有關的監督學習模型,可以分析資料、識別模式,用於分類和迴歸分析。

    Support Vector Machines

    接下來,透過Kaggle比賽來檢驗隨機森林:

    Kaggle Titanic Competition (with Random Forests)

    降維是一種減少問題考慮的變數數量的方法。主成分分析是無監督降維的一種特殊形式:

    Dimensionality Reduction

    在進入最後一步之前,我們回過頭看看,我們在較短的時間內完成了許多充滿意義的任務。

    使用Python及其機器學習庫,我們已經介紹了一些常見和知名的機器學習演算法(K-均值聚類演算法、K-means聚類、支援向量機),學習了強大的技術,檢查了一些機器學習支撐任務(降維,模型驗證技術)。除了一些基本的機器學習技巧外,我們也開始為自己擴充一個有用的工具包。

    在完成之前,我們將再新增一個按需使用的工具。

    第7步:Python深度學習

    深度學習無處不在。它建立在神經網路研究的基礎上,可以追溯到幾十年前,但是最近幾年來的進步已經顯著提高了深度神經網路的感知能力。如果您不熟悉深度學習,這兒有一些文章可供學習。最後一步並不意味著任何機器學習方面的權威。我們將從兩個領先的Python深度學習庫學習簡單網路的實現。對於那些有興趣深入深度學習的人,我建議從下面的教程開始:

    Neural Networks and Deep Learning

    Theano

    Theano是我們將要看到的第一個Python深度學習庫。以下的Theano深度學習教程是冗長的,但它非常的經典、具體,被各方高度評價:

    Theano Deep Learning Tutorial

    Caffe

    Caffe是我們學習的另一種庫。這篇教程是整個文章最璀璨的明珠,儘管我們已經實現了一些有趣的案例,但仍沒有一個可以與用Caffe實現谷歌的DeepDream相匹敵。好好享受吧!掌握教程內容後,就可以讓你的處理器擁有屬於你的思維了!

    Dreaming Deep with Caffe via Google"s GitHub

    我並不能保證上述這些會很快或很容易實現,但如果你花精力按照上面的7個步驟,相信你可以理解機器學習演算法並熟練使用Python完成這一工作,興許還能參與最前沿的深度學習研究中。

  • 中秋節和大豐收的關聯?
  • 汽車電控自動變速器容易出現哪些故障?