零基礎入門深度學習工作原理?看本文就對了!

景略集智發表於2018-05-30

昨天為大家推薦了幾本入門深度學習的必看書籍,錯過的朋友請戳這裡

在入門學習深度學習之前,有必要先了解一下深度學習的工作原理。著名程式猿小哥 Radu Raicea 特意為入門學習者寫了一篇文章,利用一個票價預測工具的例子解釋深度學習的工作原理,不需要有多高深的數學知識,人人都能看懂

當前,人工智慧和機器學習應該是最火爆的話題了,你估計經常聽到有很多程式猿朋友說要去學 AI,很多公司宣佈要應用AI技術,可是很多人其實並沒有完全理解人工智慧和機器學習。因此 Radu Raicea 覺得在解釋深度學習原理之前,我們有必要了解幾個基本術語,就當一個入門小測驗好了:

你知道啥是機器學習嗎?

機器學習指機器能夠學習利用大資料集學習而不是硬編碼規則,它是人工智慧的核心,是使計算機具有智慧的根本途徑,主要使用歸納、綜合而不是演繹。

機器學習能讓電腦自我學習,這種學習型別得益於現代計算機強大的處理能力,可以輕易地處理大資料集。

你知道啥是監督學習嗎?

監督學習應用了包含輸入值和期望輸出值的標記資料集。

當用監督學習訓練AI的時候,我們需要給它輸入值,並告訴它期望輸出值。如果AI生成的輸出值有誤,它會調整自身計算。這個過程會隨著資料集的更新而不斷迭代,直到AI不再犯錯。

監督學習的一個典型應用就是天氣預報AI應用。AI利用歷史資料學習如何預測天氣。訓練資料包括輸入值(氣壓、溼度、風速等)和輸出值(溫度等)。

你知道啥是無監督學習嗎?

無監督學習就是使用沒有具體結構的資料集。

當使用無監督學習方法訓練AI時,需要讓AI對資料進行分類。

無監督學習的一個應用例子就是為電商網站預測消費行為。AI沒有利用標記過的輸入值和輸出值資料集,相反它會對輸入資料自己分類,從而能讓網站知道顧客最喜歡買什麼東西。

為啥要講這兩個概念呢?

因為監督學習和無監督學習正是深度學習中的兩種學習方法

祝賀你通過入門小測驗,現在我們開啟深度學習的大門。

深度學習的概念源於人工神經網路的研究,是機器學習研究中的一個新的領域,目的是建立、模擬人腦進行分析學習的神經網路,它模仿人腦的機制來解釋資料,例如影象,聲音和文字。

作為一種機器學習方法,深度學習能讓我們用給定的輸入值訓練AI預測輸出值。監督學習和無監督學習都能用來訓練AI

我們來看看 Radu Raicea 怎樣用製作一個票價預測小工具的例子解釋深度學習的工作原理,然後用監督式學習的方法訓練它。

首先我們希望這個票價預測工具能用以下輸入值預測票價(在這裡先不考慮往返機票):

  • 出發機場

  • 到達機場

  • 出發時間

  • 航線

神經網路

我們來看看AI的大腦——神經網路。 和動物一樣,這個票價預測AI的大腦也有神經元。下圖中的圓圈代表神經元,它們相互連線:

零基礎入門深度學習工作原理?看本文就對了!

神經元被分為三種不同的層級:

  • 輸入層(input layer)

  • 隱藏層(可能有多個)(hidden layer)

  • 輸出層(output layer)

輸入層接收輸入資料。在我們的票價預測AI中,輸入層有4個神經元:出發機場,到達機場,出發日期和航線。輸入層收到這些資訊後會傳遞給第一個隱藏層。

隱藏層會對輸入資料進行數學運算。如何決定隱藏層的數量、以及每層神經元的數量仍是構建神經網路的挑戰。

深度學習中的“深度”倆字指的就是神經元中有不止一個隱藏層。

最後,輸出層會返回輸出資料,在這個例子中,就是AI預測出票價。

零基礎入門深度學習工作原理?看本文就對了!

所以,這個AI工具到底是怎麼計算出預測票價的呢?

當然是靠神奇的深度學習。

神經元之間的每個連線都和權重(weight)緊密相關,它決定了輸入值的重要性。初始權重是隨機設定的。 當預測某個航班的機票價格時,出發日期是最重要的因素之一,因此,出發日期神經元之間的連線會有很大的權重。

零基礎入門深度學習工作原理?看本文就對了!

每個神經元都有一個啟用函式。如果沒有一定的數學知識,很難理解這些函式。不過,這篇文章面向入門者的,所以這裡不再講解深奧的數學知識。

簡單來說,這些函式的目標之一就是將神經元的輸出值“標準化”。

一旦一組輸入資料通過神經網路的所有層級,AI會通過輸出層返回輸出值。

這不難理解,對吧?

訓練神經網路

深度學習中最難的部分就是訓練AI,為什麼?

  • 你需要大資料集。

  • 你需要有滿足訓練所需的強大的計算能力。

拿我們要做的票價預測AI來說,我們需要有歷史機票價格的資料。而且因為機場和出發日期的組合有很多種可能,因此這個票價列表資訊會非常龐大。

要訓練AI,我們需要為它提供來自資料集中的輸入值,然後將AI的輸出值與資料集的輸出值相比較。由於AI還沒有接受訓練,因此輸出值會有很多錯誤。

一旦將整個資料集中的所有資料輸入完成,我們可以建立一個函式,為我們展示AI的輸出值與真正的輸出值差距有多大。這個函式就叫做“代價函式”(Cost Function)。

理想狀態下,我們希望代價函式為零,但是隻有AI的輸出值和資料集的輸出值一樣的時候,才代表達到了這個狀態。

那問題來了,怎樣降低代價函式?

我們上文中提到了“權重”這個東東,還記得嗎?在減少代價函式的操作中,權重起著至關重要的作用。改變神經元間的權重可以調整代價函式,我們可以隨機改變它們直到代價函式接近0,但這種方法效率很低。

在這種情況下,一種叫做梯度下降(Gradient Descent)的神器隆重出場。

梯度下降是一種尋找函式最小值的方法,我們要找到機票價格模型中代價函式的最小值,就要靠梯度下降。

梯度下降的工作原理是在資料集的每次迭代後,以很小的增量改變權重通過計算確定權重代價函式的導數(或梯度),我們就能發現朝哪個方向可以找到最小值。

要想將代價函式最小化,我們需要多次迭代資料集,這就是為什麼剛才說需要有強大的計算能力。

利用梯度下降更新權重可以自動完成,這就是深度學習的魔力所在!等我們訓練完機票價格預測AI工具後,我們就可以用它來預測未來的機票價格了!

哦對了,神經網路也有很多型別,不同的AI使用的神經網路也不同,比如計算機視覺技術採用的是卷積神經網路(Convolutional Neural Networks),自然語言處理用的是迴圈神經網路(Recurrent Neural Networks)。

想學習更多知識?

瞭解深度學習的工作原理只是學習深度學習的第一步,我覺得接下來可以先看吳恩達在coursera上開設的深度學習課程

集智再補充一些資源,我們曾整理了一批機器學習、深度學習的網路資源,少年請拿去:戳這裡

最後對深度學習做個總結:

  • 深度學習需要神經網路模仿動物的智力。

  • 一個神經網路中有三種神經元層,即輸入層、隱藏層(可有多個層級)和輸出層。

  • 神經元之間的連線與權重有關,它決定了輸入值的重要性。

  • 將啟用函式應用到資料中,可以使神經元的輸出值“標準化”。

  • 要訓練神經網路,你需要一個大資料集。

  • 迭代資料集和將AI輸出與資料集輸出進行對比,將產生一個代價函式,顯示AI的輸出與真實輸出之間的差異。

  • 資料集的每一次迭代後,神經元之間的權重會通過梯度下降的方式,降低代價函式的值。

深度學習的工作原理,這下理解了吧,那就快入坑學習吧!

但是如果害怕自己基礎不好,學習AI技能感到吃力,怎麼破?沒關係!!

假如你是真正的小白,但又希望能以最高效的方式學習人工智慧知識,我們這裡正好有個免費學習AI的機會,讓你從零到精通變身AI工程師,不瞭解一下?

機會傳送門:戳這裡!!

這可能是正點趕上AI這班車的最好機會,不要錯過哦。

相關文章