神經網路的菜鳥入門祕籍

大資料文摘發表於2018-12-19

在過去幾年中,如果你開啟過瀏覽器,那麼你肯定看到過幾百回“神經網路”這個詞。

在這篇短文中,我將為你初步介紹這一領域和神經網路本身的背景資訊。接下來的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

相關文章