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

昨天爲你們推薦了幾本入門深度學習的必看書籍,錯過的朋友請戳這裏網絡

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

當前,人工智能和機器學習應該是最火爆的話題了,你估計常常聽到有不少程序猿朋友說要去學 AI,不少公司宣佈要應用AI技術,但是不少人其實並無徹底理解人工智能和機器學習。所以 Radu Raicea 以爲在解釋深度學習原理以前,咱們有必要了解幾個基本術語,就當一個入門小測驗好了:函數

你知道啥是機器學習嗎?工具

機器學習指機器可以學習利用大數據集學習而不是硬編碼規則,它是人工智能的核心,是使計算機具備智能的根本途徑,主要使用概括、綜合而不是演繹。post

機器學習能讓電腦自我學習,這種學習類型得益於現代計算機強大的處理能力,能夠輕易地處理大數據集。學習

你知道啥是監督學習嗎?大數據

監督學習應用了包含輸入值和指望輸出值的標記數據集。網站

當用監督學習訓練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這班車的最好機會,不要錯過哦。

相關文章
相關標籤/搜索