10分鐘弄懂深度學習1:什麼是神經網路?

什麼是神經網路

深度學習是指訓練神經網路的過程,有的時候深度學習表示大規模的神經網路的訓練,本節課程我們將從直觀的理解上講解什麼是神經網路。

我們還是透過

舉例子

的方式來解釋一下,究竟什麼才是神經網路,從經典的房價預測的例子開始講起。

假如我們有一個有關於房價的資料集,這個資料集中有6個樣本,每個樣本的特徵是房屋的面積,而樣本的標籤就是房屋的價格,此時我們需要一個能夠擬合這個資料集的函式,並且能夠透過這個函式根據房屋的面積來預測房價。

我們在機器學習的專欄中已經學習過了線性迴歸,所以我們很清楚如何透過線性迴歸來擬合出一條直線,於是我們可能得到這樣的一條直線來擬合我們的資料集。

10分鐘弄懂深度學習1:什麼是神經網路?

但是此時的模型會有一些問題,我們將我們的直線繼續擴充套件,我們會發現,當我們的房屋的面積小於a的時候,我們的房屋的價格就會為負數,這是不現實的,因為我們知道房屋的價格永遠都不能為負數,因此為了解決這個問題,我們需要把我們的直線彎曲一點,讓它最終在零結束,那麼我們最終的函式就如下所示:

10分鐘弄懂深度學習1:什麼是神經網路?

我們可以看出我們的模型在大於a的時候,也就是直線部分會擬合的很好。以上是我們透過線性迴歸的方式來擬合我們的房屋的資料。

如果我們要透過神經網路的方式來實現上面的模型的話,這可能是最簡單的神經網路了。我們把房屋的面積作為神經網路的輸入(x),透過一個神經元(小圓圈),最終輸出價格(y)。

10分鐘弄懂深度學習1:什麼是神經網路?

我們透過上面的神經網路就能擬合出線性迴歸所擬合出來的函式,而這個函式我們未來在深度學習的過程中會經常的見到,這個函式從趨近於0開始,然後變為一條直線,這個函式被稱為RELU啟用函式,它的全稱就是Rectified Linear Unit(修正線性單元)。修正可以理解為max(0,x)。

10分鐘弄懂深度學習1:什麼是神經網路?

所以我們當前的神經網路可以做到和線性迴歸一樣的功能,這個神經網路的工作原理就是輸入房屋面積,然後直接使用RELU啟用函式來對房屋的面積進行對映,然後我們就可以得出房屋的面積了,和線性迴歸的效果是一樣的。

我們可以看出我們只通過一個神經元就完成了房價預測的任務,我們可以透過更多的神經元來搭建一個更大的神經網路。

我們再來看一個例子。

現在我們不僅使用單一的房屋的面積來預測房屋的價格,我們現在還有房屋的一些其它的特徵,比如臥室的數量,郵政編碼(郵政編碼決定了你步行化的程度),地區富裕度。

這些特徵能夠決定我們一個房子的價格,比如房子的大小和臥室的數量可以決定家庭的大小,郵政編碼可以決定步行化的程度,郵政編碼和地區富裕度還可以決定學校的質量,而又可以根據家庭的大小,步行化的程度,以及學校的質量可以決定最終的房屋的價格,所以我們可以根據這個邏輯建立如下所示的神經網路。

10分鐘弄懂深度學習1:什麼是神經網路?

該圖中的每一個神經元都可以是一個Relu,也就是修正線性單元,或者其它非線性的函式。

雖然我們已經描述出來了這樣的一個神經網路,但是看起來家庭的大小,步行化的程度,以及學校的質量可能也需要我們得到,其實不用我們得到,我們只用像神經網路中輸入房屋的大小,臥室的數量,郵政編碼,富裕度這四個特徵x,就能得到價格y,這正是神經網路神奇的地方,因為神經網路自己可以計算你訓練集中樣本的數目以及所有的中間過程。這樣的話,我們就可以建立如下所示的神經網路了:

10分鐘弄懂深度學習1:什麼是神經網路?

所以我們要做的就是將房屋大小,臥室數量,郵政編碼,富裕度這四個特徵(x1、x2、x3、x4)輸入到神經網路中,輸入之後,神經網路就會預測出對應的價格。

同時我們也要注意隱藏層的單元,我們可以看到隱藏層的單元都是從輸入的四個特徵獲得自身的輸入,比如說隱藏層的第一個節點表示家庭人口,而家庭人口僅僅取決於特徵x1和特徵x2,神經網路的厲害之處在於,雖然這個隱藏層的結點也在和特徵x3和特徵x4相連,但是神經網路總是能夠透過權重引數的作用使得x3和x4對第一個隱藏層結點沒有作用,所以我們的特徵x3和特徵x4依然可以和這個隱藏層的結點相連(雖然x3和x4並不會對第一個隱藏層有什麼意義)。

這樣的好處就是我們沒有必要去考慮很細節的東西,比如考慮第一個隱藏層和x1和x2有關,從而連線x1和x2,而與x3和x4無關,從而不連線x3和x4,如果我們考慮到如此細節的東西,那麼我們的神經網路的搭建會異常的麻煩,當我們餵給神經網路足夠多的資料的時候,神經網路總是能夠自動學習到相應的引數,使得雖然與x3和x4相連,但是x3和x4卻不會對隱藏層第一個單元造成任何影響。

這裡我們可以把神經網路的隱藏層看成是特徵的升級,比如一開始我們輸入的是房屋大小,臥室數量,郵政編碼,富裕度,經過隱藏層之後,我們的特徵變為了家庭的大小,步行化的程度,以及學校的質量(有可能)然後輸入到最後輸出層,相比來說家庭的大小,步行化的程度,以及學校的質量更能決定房價y,所以我們可以簡單的看成神經網路的隱藏層就是對我們特徵的升級。

至此我們就知道了什麼是神經網路,希望能夠透過本節課程能夠了解到神經網路。神經網路非常擅長從x到y的精準對映函式。它非常的強大,只要你輸入x,我們就可以將對映成y,就像我們上面的預測房價的例子一樣。