當前位置:
首頁 > 最新 > 如何快速入門機器學習

如何快速入門機器學習

最近幾年,人工智慧浪潮層層推進,對各大科技公司產生巨大影響。百度推出Apollo無人車計劃,阿里建立達摩院,騰訊成立的AI Lab雖布局較晚卻也不甘人後。China+AI已是大勢所趨,吸引的不僅是大公司,更有許多人工智慧的愛好者。曾經只存在於科幻小說或實驗室中遙不可及的人工智慧產品也逐漸成為老百姓日常生活的一部分。而支撐人工智慧技術迅速發展的核心技術之一就是機器學習

首先來看看在某招聘網站上,當前公司對機器學習人才有怎樣的要求。

可以看到,對語言的掌握是其中尤其重要的基礎條件。學好語言,就相當於走好了萬里長征第一步。那麼,在機器學習的起步階段,我們需要會那種(些)酷炫的編程語言呢?

1. 我需要學習哪些編程語言?

不論你選擇哪種語言,只要對這種語言下的機器學習庫和工具足夠熟悉,語言本身就沒有那麼重要了。現在對應各種語言的機器學習庫層出不窮。根據你在公司中擔任的角色和所要完成的任務不同,某些語言和工具可能會比其他的更好用。

R

R 是一種為專統計計算而設計的語言。它在大規模的數據挖掘、可視化和報告方面已經取得了巨大的成功。你能夠輕鬆地獲取各種的包(通過 CRAN)來使用幾乎所有的機器學習演算法、統計測試和分析等。R 語言本身有著優美(雖然有些人會覺得晦澀)的語法用來表達數據的關係、變換和並行操作。

KDNuggets 最近組織了一次投票,結果表明 R 是 2015 年用於解決分析、挖掘及其他數據科學任務的最受歡迎的語言。不過,近年來 Python 的人氣也在急劇上升。

MATLAB

MATLAB 在學術界很受歡迎,因為它能處理複雜的數學表達式,對代數和微積分有強大的支持,還支持符號運算。同時,從數字信號處理到計算生物學,又或者是其他的科目,它都有對應的工具箱可用。它經常被用於開發新的機器學習演算法的原型,有時也會被用於開發最終完整的工具。它的商用許可的確非常昂貴,但也對得起它在研發方面帶來的方便。Octave 是一款免費的 MATLAB 替代品。它的語法與 MATLAB 幾乎相同,但只提供一部分工具箱,IDE 也略微遜色。

Python

雖然 Python 是一種更通用的編程語言和腳本語言,但它在數據科學家和機器學習工程師中的人氣也是急劇上升。跟 R 和 MATLAB 不同,它並沒有內置數據處理和科學計算專用的語法,但它有像 NumPy、SciPy 和 Pandas 這樣的庫用更友好的語法提供了同樣的功能。

像 scikit-learn、Theano 和 TensorFlow 這樣的機器學習庫讓你能夠方便地訓練各種機器學習模型,還能用上分散式計算。當然,這些庫中最影響性能的部分一般還是用 C/C++ 甚至 Fortan編寫的,而 Python 包則是作為它們的介面(這在 R 中也很常見)。

但 Python 最大的優勢在於它的生態系統使得你能夠很方便地搭建起一個複雜的端到端服務,比如用 Django 或是 Flask 搭建 Web 應用,或是用 PyQt 開發桌面應用,甚至用 ROS 搭建一個自主機器人。

Java

由於它乾淨一致的實現、面向對象編程的風格以及通過 JVM 獲得的平台獨立性,Java 是很多軟體工程師的首選語言。它以簡潔性和靈活性為代價換取了明確性和可靠性,使它在實現重要的企業軟體系統時非常受歡迎。對於那些一直使用 Java 的公司,當他們需要開發機器學習產品時,為了保持同樣的可靠性和避免寫一堆混亂的介面,他們可能更傾向於繼續使用 Java。

除了一些可以用來做分析和原型開發的庫和工具(比如 Weka)以外,要用 Java 開發大規模分散式的機器學習系統,我們有很多選擇,比如 Spark+MLlib、Mahout、H2O 以及 Deeplearning4j。這些庫和框架也很方便跟工業級別的數據處理和存儲系統比如Hadoop/HDFS 整合在一起。

C/C++

在開發像操作系統組件和網路協議這樣計算性能和內存使用效率極為重要的底層軟體時,C/C++ 是最理想的選擇。由於同樣的原因,它們在實現機器學習演算法的關鍵部分時也很受歡迎。但是它們沒有內建的關於數據處理操作的抽象,內存管理的任務也很繁重,這使得它們對新手來說不太合適,而且在開發完整的端到端系統時也比較笨重。

在開發嵌入式系統(比如智能汽車、智能感測器等),可能必須使用 C/C++。而在其他場景下,用它們進行開發的便利程度可能要視現有的基礎設施和具體的應用而定。不過無論如何,我們並不缺少 C/C++ 的機器學習庫,比如 LibSVM、Shark 和 mlpack。

企業級解決方案

在這些語言和庫以外,還有很多統計建模和商業分析的商用產品,用於在更為受控的數據處理環境下應用機器學習模型。這些產品,包括 RapidMiner、IBM SPSS、SAS+JMP 和 Stata 等,它們的目標是為數據分析提供可靠和端到端的解決方案,通常也會將 API 或是腳本語法暴露給用戶。

近年來還湧現出了一批「機器學習即服務」平台,比如 Amazon Machine Learning、Google Prediction、DataRobot、IBM Watson 和 Microsoft Azure Machine Learning 等。它們使你能夠拓展你的機器學習產品的規模,處理巨量的數據以及快速地對不同的模型進行試驗。只要你在機器學習領域打好了堅實的基礎,使用這些平台就像學習使用一門新工具一樣簡單。

特別提示

選擇語言和庫時要注意考慮開發時間和實際性能之間的平衡。一條能夠飛速處理數據的流水線如果需要幾個月來開發,在有些情況下這可能就毫無用處。一般來說,能夠快速地搭建和測試原型會更重要,因為一開始你肯定會失敗。

這也是為什麼大部分公司都想尋找那種已經有慣用的工具 / 語言 / 庫的機器學習工程師。工業界往往會用 Python 和 R 這樣的高層次語言來開發演算法的原型,然後用 Java 或是 C/C++ 來開發生產級別的解決方案。

2. 導師的力量

在學習語言的過程中,會遭遇眾多關於數據結構,遞歸,面向對象的難題。這個時候,一個有經驗導師提供的專業意見將會迅速給你膠著的思路注入一股清泉,幫助你平穩打好語言基礎。

Udacity是由谷歌無人車之父、斯坦福大學終身教授,原谷歌副總裁、Google X 實驗室聯合創始人 Sebastian Thrun創立的一家盈利性教育平台,提供大規模開放式在線課程。【機器學習】納米學位由矽谷明星導師領銜主講,給課程進行中遇到問題的學員提供專業指導。

3. 我能在課程里得到什麼?

獨家課程內容,項目直播輔導

除了學習來自矽谷領先企業的課程視頻、實戰項目,與項目直播講解!還有更多 Udacity 獨家學習資料,等待你來探索。

加入同步學習小組,在導師幫助下快速成長

你將加入學習小組,認識志同道合的夥伴,在專業導師全方位輔導和監督下,用最高效率掌握前沿技術,成為搶手人才。

獨一無二的矽谷實戰項目和代碼審閱

親自挑戰來自矽谷的數據分析開發實戰項目,獲得該領域專家的逐行代碼審閱和反饋,學習最先進的技術標準,與矽谷編程開發者的思維同步!

獲得 Udacity納米學位證書

畢業後,你將獲得 Udacity 頒發的畢業證書,證明你的專業知識和技術水平。當你完成機器學習(入門)納米學位所有項目之後,你將擁有嫻熟的 Python 中級編程能力與基本的數據分析能力,並為繼續深造機器學習(進階)納米學位打下堅實基礎,有能力迅速掌握後續的機器學習與人工智慧技術。

課程內容

(上下滑動查看內容)

Python 語法與數據結構

在這個部分,你將了解 Python 的整數和字元串數據類型,學會使用變數存儲數據,掌握使用內置的函數和方法。你將會學習條件語句,循環語句完成複雜的統計。同時你將學會使用集合數據類型,包括列表、集合和字典等多種數據結構。

Python 文件與網路

你會使用 Python 標準庫和第三方庫中的模塊,認識 Python 強大的庫。並學會讀取磁碟上的文件中的數據,使用在線資源解決實際問題。最後你將練習編寫一個網路抓取程序來跟蹤維基百科文章之間的鏈接。

數據分析入門

學習使用 Python 了解數據分析流程的主要步驟,運用 Python 和 Pandas 處理多個數據集;並通過兩個數據分析實戰案例,學習使用 Python、Numpy 和 Pandas 進行數據清洗、探索、分析和可視化;

線性代數基礎

線性代數是深度神經網路的基礎。在這一部分中,你將從0基礎開始學習線性代數中的向量以及交點知識以及實現向量的基本操作。

模型的評估與驗證

模型的評價指標是深度學習建模過程中非常重要的一環。在這一部分中,你將學習如何衡量深度學習模型以及其他機器學習模型好壞。

你將挑戰的實戰項目

(上下滑動查看內容)

1. 分析電話和簡訊記錄

在這個項目中,你將會挑戰一個數據分析的任務。你會應用你在課程中學到的數據結構,字元串處理,循環等技巧,從電話和簡訊記錄的數據中發現一些端倪。

2. 探索美國共享單車數據

你需要藉助Python完成對美國 3 個城市的共享單車行程數據的數據分析。你將編寫代碼來清理數據,計算描述性統計數據,並實現數據分布的基本可視化。

3. 數據分析入門

學習使用 Python 了解數據分析流程的主要步驟,運用 Python 和 Pandas 處理多個數據集;並通過兩個數據分析實戰案例,學習使用 Python、Numpy 和 Pandas 進行數據清洗、探索、分析和可視化;

4. 線性代數

通過代碼實現一個矩陣求逆,更深刻的理解線性代數的本質。

5. 預測未來房價

運用機器學習原理與基礎統計分析工具針對房地產數據建立一個模型、評估模型的表現好壞並利用這個模型預測未來房價。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

學習筆記:人工智慧基礎-機器學習(一)

TAG:機器學習 |