機器學習:從入門到晉級
目前,人工智能(AI)非常熱門,許多人都想一窺究竟。如果你對人工智能有所了解,但對機器學習(Machine Learning)的理解有很多的困惑,那麽看完本文後你將會對此有進一步深入理解。在這裏,不會詳細介紹機器學習算法的基本原理,而是通過將比較有意思的視頻(YouTube)和文字相結合,逐漸增加對機器學習基礎的理解。
當看到本文時,請坐下來放松一下。因為下面的這些視頻需要花費一點時間,但看完視頻後,你肯定會被吸引繼續閱讀下去。此外,當閱讀完本文後,你應該會對現在最熱門的技術——機器學習有了全面的知識基礎,並對此產生學習熱情,最終能學到什麽程度完全取決於個人的努力,本文只是一塊敲門磚。
為什麽機器學習現在如此熱門
人工智能總是很酷,從科幻電影到現實中的阿法狗、聊天機器人等,一直吸引人們的關註。長久以來,人們認為人工智能一直圍繞著程序員對某些事情應該如何表現的功能性猜測。然而,程序員並不總是像我們經常看到的那樣對人工智能編程同樣有著天賦。正如我們經常看到的那樣,比如谷歌“史詩遊戲失敗”中在人工智能、物理、有時甚至是經驗豐富的人類玩家中都存在有過失。
無論如何,人工智能有一種新的天賦——通過該項技術,我們可以教電腦玩遊戲、理解語言、甚至識別人或物。這個只顯露冰山一角的新技術來源一個舊的概念——機器學習,直到最近幾年,它才獲得了理論之外的處理能力,這源於數據量的爆炸、計算機性能的提升以及算法理論的突破。
通過人工智能這項技術,我們不再需要人為地提出高級算法,只需要教會計算機自己來提出高級算法即可。
那麽這樣的事情是如何實現的呢?機器學習算法並沒有真正被類似於程序員編程那樣進行編寫,而是自動生成。觀看下面這個簡短的視頻,該視頻為創建人工智能的高級概念提供了出色的註釋和動畫。
是不是一個很瘋狂的處理過程?並且,當算法完成後,我們甚至無法理它,它就像一個黑匣子。比如,該項技術應用於視覺領域中是用人工智能玩馬裏奧遊戲。作為一個人,我們都知道如何躲避障礙物和吃金幣,但人工智能識別所產生的預測策略是瘋狂的,見下面的視頻:
是不是很吃驚?看完上述視頻後,我們的問題是對機器學習不了解,並且不知道如何將它與電子遊戲聯系起來。
為什麽要使用機器學習?
關於為什麽要關心機器學習,這裏有兩個很好的答案。
- 首先,機器學習使計算機可以做到計算機以前不能實現的事情。如果你想嘗試一些新事物,或者不僅僅是新事物,而是影響全世界,你都可以用機器學習來完成。
- 其次,如果你不影響世界,世界將影響你。
現在,很多大型公司在機器學習上投入了很多的研發和投資,我們已經看到它正在改變世界。思想領袖警告我們不能讓這個新的算法時代存在於公眾視線之外。想象一下,如果一些企業巨頭控制著互聯網,如果我們不掌握這項武器,科學的真理將不會被我們占據。Christian Heilmann在他關於機器學習的談話中說得很好:
“我們能夠希望其他人善用這種力量。對於個人而言,不要認為這是一個好的賭註。我寧願玩,也要參加這場科技革命,你也應該參與。”——Chris Heilmann的機器學習談話視頻
對機器學習感興趣
機器學習這個概念很有用而且很酷,上述內容讓我們比較抽象地了解了它,但機器學習算法究竟發生了什麽?它是如何運作的?我們還不是很清楚。
如果你想直接進入到理論研究,建議你跳過這一部分繼續下一個“如何開始”部分。如果你有動力成為機器學習的實幹者,那麽就不需要看下面的視頻了。如果你仍然試圖了解機器學習可能是什麽,下面的使用機器學習完成數字手寫體識別的視頻非常適合引導讀者建立一種機器學習的邏輯:
是不是很酷?該視頻顯示每個層變得更簡單,而不是變得更復雜。就像函數將數據分解成較小的部分一樣,以抽象的概念結束。你可以在該網站(Adam Harley)與此流程進行交互。
此外,機器學習的經典實例之一是1936年的鳶尾花數據集。在參加JavaFXpert的機器學習概述的演示中,我學會了如何使用工具來可視化調整和反向傳播神經網絡上神經元的權重。可視化過程可以讓我們看到它是如何訓練神經模型。
使用Jim可視化工具訓練鳶尾花神經網絡
即使你不是一個Java愛好者,Jim提供了一個1.5小時的機器學習概念介紹也是比較有用的,其中包含上述許多例子的更多詳細信息。
這些概念令人興奮,你準備好成為這個新時代的愛因斯坦嗎?機器學習算法每天都在發生突破,所以現在就開始吧。
如何開始?
目前,網絡上有大量的資源可用。首先,應該訂閱一些時事通訊、技術博客、微信公眾號,以保持個人知識的滾動。比如medium、愛可可-愛學習、雲棲社區等。
至於如何進行深入學習,我推薦下面兩種方法:
從頭到尾擰完n顆螺栓
在這種方法中,將需要你全面了解機器學習算法和相關的數學知識。我知道,這種方式聽起來很難完成,但要想真正地了解算法細節,就必須從頭開始編碼實現。
如果你想成為機器學習中的一員,並在核心圈中占據一席之地,那麽這就是你的選擇。我建議你試試一些公開課app(比如,course、Brilliant.org),並參加人工神經網絡課程。經典的網絡課程主推Andrew Ng 老師的機器學習課程以及周誌華老師的書籍等。
在學習的同時,可以完成對應的線下作業。通過完成對應的作業,會進一步加深對知識的理解,因為這些作業並不簡單。但更重要的是,如果確實完成了這項工作,你將對機器學習的實施有進一步深刻的理解,這將使得你以新的和改變世界的方式成功地將其應用到對應的場景中。
快速上手
如果你對編寫算法並不感興趣,但仍想要使用它們來創建一個令人驚嘆的網站/應用程序,你應該跳轉到學習TensorFlow和對應的速成課程。
TensorFlow是用於機器學習的開源軟件庫。
如果選修課程不適合你的學習方式,那你仍然是很幸運的。如今不必學習機器學習的細節就可以掌握如何使用它。此外,還可以通過多種方式有效地機器學習作為服務成為技術巨頭。
數據是這項技術很重要的原材料,如果你的數據比較合適,那麽使用機器學習建模可能是最佳解決方案。無論是使用機器學習中的哪一種算法,現在就開始吧。
成為創造者
我要對所有上述的人和視頻說聲謝謝,它們是我學習機器學習起步的靈感,雖然我在該領域仍然是個新手,但是當我們擁抱這個令人敬畏的時代時,我很高興為他人指明一條學習道路。
如果你想學習這門技術,就必須與機器學習領域的研究者有所聯系。沒有友好的面孔、回答和討論,任何事情都將變得很難。一般技術圈的人都是比較熱心腸的,遇到問題先google,找不到答案就咨詢圈內人,相信會有友好的同行給出友好的建議。
我希望這篇文章能激勵你和周圍的人學習機器學習,我也很樂意和你一起尋找酷炫有趣的機器學習代碼,希望本文對你有所幫助。
原文鏈接
本文為雲棲社區原創內容,未經允許不得轉載。
機器學習:從入門到晉級