手把手 | 神經網絡的菜鳥入門秘籍
大數據文摘出品
編譯:李雷、笪潔瓊、云舟
在過去幾年中,如果你打開過瀏覽器,那么你肯定看到過幾百回“神經網絡”這個詞。
在這篇短文中,我將為你初步介紹這一領域和神經網絡本身的背景信息。接下來的5分鐘可能不會讓你迅速成為這個領域的世界級專家,但讓你經歷一個意義非凡的入門階段卻是很簡單的。另外,你還將學習到一些流行術語(尤其是按文后的清單做進一步閱讀),這可以成為你茶余飯后的談資。
什么是機器學習?
要理解神經網絡,我們首先需要懂機器學習。而為了理解機器學習,我們就得先談談人類學習,或者“經典編程”。
在經典編程中,我,也就是開發人員,需要弄明白我正在試圖解決的問題的各個方面,并確切地知道怎樣找到解決方案。
例如,假設我希望我的程序知道正方形和圓形之間的區別。解決這個問題的其中一種方法是編寫一個可以檢測邊角的程序。如果我的程序檢測到4個角,那么這個形狀是一個正方形,如果它檢測不到任何角,那么這個形狀就是一個圓。
那么機器學習又是啥?一般來說,機器學習=從例子中學習。
在機器學習中,當面對上文區分圓和正方形的問題時,我們將設計一個學習系統,將許多形狀及其類別(正方形或圓形)的例子作為輸入,從而希望機器能夠自己學習可以用來區分形狀的特征。
然后,一旦機器學會了所有的特征,我們就可以給它一個以前沒出現過的圖像,并且希望它能夠正確地對其進行分類。
什么是神經元?
在神經網絡的背景下,神經元是一個奇妙的名詞,“聰明”的人不愿用函數(function)這個樸素名字。當然,在數學和計算機科學的背景下,函數(function)也是一個奇妙的名稱,它接收輸入,實現處理邏輯并輸出結果。
更重要的是,神經元可以被認為是一個學習單元。
因此,我們需要在機器學習的背景下理解什么是學習單元。之后我們就可以理解神經網絡最基本的構造,即神經元。
為了闡述這個問題,假設我試圖理解博客文章中單詞數量與人們實際從該帖子中讀到的單詞數量之間的關系。請注意 - 我們是在機器學習領域做這件事,因此我們要從例子中學習。
所以我在博客文章中收集了許多單詞數統計的實例,用x表示,以及人們在這些帖子中實際閱讀了多少單詞,用y表示,我假設它們之間存在一定關系,用f表示。
這件事情的神奇之處在于,我只需要告訴機器(程序)我期望看到的關系(例如直線)大概是怎樣的,機器就會明白它需要繪制的實際圖形。
那我在這里又得到了什么?
下一次,我想要寫一篇有x個單詞的博客文章,機器可以運用它發現的關系f來告訴我,我可以預期人們實際閱讀的單詞數量,y。
所以,神經網絡是......
好,如果一個神經元是一個函數,那么神經網絡就是一個函數網絡!這意味著我們有許多(很多)這樣的函數和這樣的學習單元,它們的所有輸入和輸出是相互交織的,就是說他們互為輸入輸出。
作為這個網絡的設計者,我需要回答以下問題:
- 如何為輸入和輸出建模?(例如,如果輸入是一些文本,我可以用字母建模嗎?那數字和向量呢?...。)
- 每個神經元有哪些功能?(它們是線性的嗎?還是指數型的?...)
- 網絡的架構是什么?(也就是說,哪個函數的輸出是哪個函數的輸入?)
- 我可以用哪些流行術語描述我的網絡?
一旦我回答了這些問題,我就可以向我的網絡“展示”許多正確的輸入輸出的例子,這樣當我“展示”給它一個它以前從未見過的新示例輸入時,它就會知道正確的輸出。
你也可以訪問神經網絡游樂場這個超級酷的網站,從而更好地理解這個過程意味著什么。
神經網絡游樂場:https://playground.tensorflow.org/
神經網絡 - 永無止境的故事
由于這個領域實際上在不斷膨脹,每分鐘出現的新內容的數量對任何人來說都是不可能跟蹤的。(不知道會不會有朝一日我們能夠建立一個能夠追蹤人類在AI領域進步的AI)
進入這個領域,首先要知道的是沒有人知道一切。所以你不用擔心自己不如他人,只要保持好奇心就好了。:)
因此,推薦一些比較優秀的資源:
Gal Yona,在這個領域非常棒的博主之一。她的帖子包括從核心技術的解釋到半哲學的評論。
- 核心技術的解釋:https://towardsdatascience.com/do-gans-really-model-the-true-data-distribution-or-are-they-just-cleverly-fooling-us-d08df69f25eb
- 到半哲學的評論:https://towardsdatascience.com/the-tale-of-1001-black-boxes-62d12b5886aa
Siraj Raval 是一個擁有大量視頻的油管博主(youtuber),從理論解釋到動手教程都非常有趣!
- 理論解釋:https://www.youtube.com/watch?v=xRJCOz3AfYY
- 動手教程:https://www.youtube.com/watch?v=pY9EwZ02sXU
Christopher Olah,一位充滿激情和洞察力的研究員,擁有一個超炫的博客,其中包括從基本概念到深度學習的帖子。
- 從基本概念:http://colah.github.io/posts/2015-09-Visual-Information/
- 深度學習:https://distill.pub/2017/feature-visualization/
《走向數據科學》是這個領域最大的中型出版物,無論你有幾分鐘或幾小時的時間,都可以去他們的主頁開始探索一切,從實用工具到深度算法應有盡有。
- 走向數據科學:https://towardsdatascience.com/
相關報道:
https://medium.freecodecamp.org/neural-networks-for-dummies-a-quick-intro-to-this-fascinating-field-795b1705104a
【本文是51CTO專欄機構大數據文摘的原創譯文,微信公眾號“大數據文摘( id: BigDataDigest)”】