有一天,作者知道了Golang和Python。他注意到有人提到了兩種機器學習的語言,受好奇心驅動作者閱讀了它們。讀過以後,作者意識到這兩門科目(即數學和人工智慧)並非他喜歡的,但他可以將它們結合起來,創造出更有用的東西。這對作者而言是全新的挑戰!從那以後,作者對機器學習充滿了興趣。他認為機器學習是長期以來最愉快和最令人興奮的一種技巧。(作者曾經喜歡的程式語言反而變得次要起來。)而這種興趣的開始源於觀看一個關於機器學習的線上課程。
關於機器學習我們能做些什麼?
機器學習看起來像是一件神祕的事情,但我們每天都會用到它。它被廣泛應用在不同的程式中:
比如,
-
亞馬遜和Netflix是如何知道你想提出建議?
-
這些自動駕駛汽車的背後是什麼?
-
金融交易可以自動化嗎?
-
天氣預報的原理是什麼?
-
Google搜尋引擎如何工作?
-
機器能幫助我們改善醫療保健嗎?
-
Siri和Alexa為什麼可以處理自然語言?
即便這些簡單的例子。也足以給我們留下難忘的想象。
開始需要什麼?
我們很容易被大量的關於機器學習的資訊所困擾。我們有大量的部落格和論文可供檢視。並且它們還在不斷增長。(原因是它一個相對全新的領域,並且人們對它的興趣在過去幾年有所增加。)
作為一個多學科交叉的領域。學習它,您還至少需要掌握電腦科學和數學等領域的知識。
首先您必須瞭解程式設計。其次,想真正深入機器學習,您還需要比資料科學家做更多的實踐工作。(資料科學家將更關注資料分析。)然而,這兩者之間並非毫無聯絡,因為如果是在您自己進行工作時。您至少需要使用一種通用程式語言才能構建機器學習位和與其相關的供使用者使用的應用程式。
在數學中,機器學習尤其重要。因此,您需要了解以下幾點:
-
線性代數
-
可能性
-
統計
-
多元微積分
-
優化和演算法
現在,您可能會對深度學習(一個試圖模仿人類大腦學習模式的機器學習子類)充滿興趣。您需要學習有關人工智慧的具體事情。而這也只是您眾多選擇中的一個。
當然,如果在某些情況很緊急的時候,您則需要了解分散式計算,以加速和擴充套件您的計算內容。由於該領域的可並行性和數學性質,功能程式設計也同樣適用。您甚至可能會來使用特定的數字程式設計技術來編碼和優化您的演算法。
但是,我們真的需要這麼多東西才能開始呢?其實不然。事實上,您想深入機器學習,並不意味著您必須成為數學和人工智慧領域的專家。您只需對數學有個基本理解。另外,您還可以通過工具獲取幫助。
想真正深入機器學習,最重要的是克服不夠了解機器學習而產生的恐懼感。我們都是從零開始的。這有一種常見的錯誤觀點:機器學習是一個需要很多不同技能的領域,我們必須要了解所有數學問題才行。而正確的應該是選擇一個對於初學者來說很容易的工具;比如 Weka和scikit-learn。通過使用它們來確保您真的喜歡這個流域。然後再投入大量的時間來了解您所需的技能。
它值得嗎?
作者進入這個令人驚歎的領域已經過去了幾個月。對作者來說,機器學習最令人興奮的方面除了它的作用外,還有技能的組合(不僅僅是軟體開發)。隨著時間的推移,學習和獲得如此多的新技能是具有挑戰性的。但對作者來說,這絕對值得花時間和精力。