本文來自 YouTube 上的一段 5 分鐘漫畫版視訊,有趣且簡單的介紹了什麼是深度學習, 包括深度學習的應用、深度學習與機器學習和人工智慧的不同之處、什麼是神經網路以及如何訓練它們來識別手寫的數字。最後介紹了深度學習的一些流行應用。
Google 如何在短短几秒鐘內將整個網頁翻譯成不同的語言,或者你的手機相簿如何根據它們的位置對圖片進行分組? 這些都是深度學習的結果。
深度學習是機器學習的一個子集,而機器學習又是人工智慧的一個子集。
人工智慧是一種使機器能夠模仿人類行為的技術,機器學習是一種通過使用資料訓練的演算法來實現 AI 的技術,最後深度學習是一種受人腦結構(生物神經網路)啟發的機器學習。這種結構在深度學習領域稱為人工神經網路。
讓我們來更好地理解深度學習,以及它與機器學習的區別。
假設我們有一個可以區分蕃茄和櫻桃的機器,如果使用機器學習完成,則必須告訴機器可以區分兩者的特徵。這些特徵可能是大小(Size)和莖的類別(Type of Stem)。
如果使用深度學習,神經網路可以提取特徵,而不需要人工干預。
當然,這種特性需要擁有大量的資料來訓練我們的機器。現在讓我們來深入研究神經網路的工作原理。
原理
在這裡,我們有三個學生,他們每人在一張紙上寫下數字 9, 但他們寫的並不完全一樣。人類的大腦可以很容易地識別數字,但是計算機如何識別它們? 使用深度學習可以實現。
每個數字以 28x28 畫素的影像形式顯示,總計 784 畫素。
這是一個經過訓練可識別手寫數字的神經網路,神經元是神經網路中最基本的的核心實體,是進行資訊處理的地方,784 個畫素中的每個畫素都被送到神經網路第一層的神經元,這形成了輸入層,輸入層僅接受輸入,不進行函式處理。
另一端是輸出層,輸入層與輸出層之間的一層神經元稱為隱含層。隱含層與輸出層的神經元都是擁有啟用函式的功能神經元。
輸入層神經元接收到 784 個輸入訊號,這些輸入訊號通過帶權重的連線進行傳遞,神經元接收到的總輸入值將與神經元的閾值(每個神經元都有一個閾值稱為偏差 Bias)進行比較,然後通過啟用函式(Activation Function)處理以產生神經元的輸出,啟用函式的結果決定了神經元是否被啟用。
神經網路的學習過程,就是根據訓練資料來調整神經元之間的“連線權”(connection weight)以及每個功能神經元的閾值。換言之,神經網路學到的東西,蘊含在連線權與閾值中。
應用
那麼深度學習有哪些應用呢?
在客服行業:當大多數人與客服代理交談時,交談看起來是那麼真實,他們甚至沒有意識到這實際上是個機器人。
在醫療行業,神經網路可檢測癌細胞並分析 MRI 影像以提供詳細結果。
像科幻小說一樣的自動駕駛汽車現在已經成為現實。蘋果、特斯拉和日產一些公司在研發自動駕駛汽車。
侷限性
深度學習的範圍很廣,但也面臨著一些侷限性。
資料量
第一個侷限性便是資料。雖然深度學習是處理非結構化資料的最有效方法,但神經網路需要大量的資料來訓練。
計算能力
假設我們擁有大量的樣本資料,但並不是每臺機器都有處理這些資料的能力,這給我們帶來了第二個限制:計算能力。通常簡稱“算力”。
訓練神經網路需要成千上萬的圖形處理單元。與 CPU 相比,GPU 當然更貴。
訓練時間
最後就是訓練時間,深度神經網路需要幾個小時甚至幾個月的訓練,時間隨著網路中資料量和層數的增加而增加。
深度學習框架
一些流行的深度學習框架,包括 Tensorflow、Pytorch、Caffe、DL4J 和 Microsoft cognitive toolkit。
未來
我們對深度學習和人工智慧在未來的應用只看到了表面,未來會充滿驚喜。
Horse 技術正在為盲人開發一種使用深度學習的裝置,用計算機視覺向使用者描述世界,整體複製人類的思維。
小測驗
所以給你一個小測驗, 神經網路的正確工作順序排序:
- A. The bias is added 加偏差
- B. The weighted sum of the inputs is calculated 計算輸入的加權和
- C. Specific neuron is activated 特異性神經元被啟用
- D. The result is fed to an activation function 結果被輸入到啟用函式
答案:
- B、 計算輸入的加權和
- A、 加偏差
- D、 結果被輸入到啟用函式
- C、 特異性神經元被啟用
說明:在神經網路中,一層中的每個神經元都與相應層中的其他神經元相連。這些連線具有隨機權重。計算輸入的加權和,並以偏置形式新增一個附加輸入(w * x + b)。其結果被輸入到啟用函式。基於特定的閾值,只有那些超過閾值的神經元才會被啟用。