吳恩達深度學習筆記(2)-什麼是神經網路(Neural Network)

什麼是神經網路?(What is a Neural Network)
我們常常用深度學習這個術語來指訓練神經網路的過程。有時它指的是特別大規模的神經網路訓練。那麼神經網路究竟是什麼呢?在這個視訊中,會講解一些直觀的基礎知識。
首先,讓我們從一個房價預測的例子開始講起。
假設你有一個數據集,它包含了六棟房子的資訊。所以,你知道房屋的面積是多少平方英尺或者平方米,並且知道房屋價格。這時,你想要擬合一個根據房屋面積預測房價的函式。
如果你對線性迴歸很熟悉,你可能會說:“好吧,讓我們用這些資料擬合一條直線。”於是你可能會得到這樣一條直線。這也就是一個基礎的迴歸線,這個要記下!
問題1:什麼是迴歸?(課後請狂補,搞清概念就行!)

房價預測線
但有點奇怪的是,你可能也發現了,我們知道價格永遠不會是負數的。因此,為了替代一條可能會讓價格為負的直線,我們把直線彎曲一點,讓它最終在零結束。那條粗的藍線最終就是你的函式,用於根據房屋面積預測價格。有部分是零,而直線的部分擬合的很好。你也許認為這個函式只擬合房屋價格。
作為一個神經網路,這幾乎可能是最簡單的神經網路。我們把房屋的面積作為神經網路的輸入(我們稱之為 ),通過一個節點(一個小圓圈),最終輸出了價格(我們用 表示)。其實這個小圓圈就是一個單獨的神經元。接著你的網路實現了左邊這個函式的功能。
在有關神經網路的文獻中,你經常看得到這個函式。從趨近於零開始,然後變成一條直線。這個函式被稱作 ReLU 啟用函式,它的全稱是 Rectified Linear Unit 。rectify(修正)可以理解成 ,這也是你得到一個這種形狀的函式的原因。

你現在不用擔心不理解 ReLU 函式,你將會在這門課的後面再次看到它。
問題2:重點思考:什麼是啟用函式,啟用函式的作用是什麼?
如果這是一個單神經元網路,不管規模大小,它正是通過把這些單個神經元疊加在一起來形成。如果你把這些神經元想象成單獨的樂高積木,你就通過搭積木來完成一個更大的神經網路。
讓我們來看一個例子:
我們不僅僅用房屋的面積來預測它的價格,現在你有了一些有關房屋的其它特徵,比如臥室的數量,或許有一個很重要的因素,一家人的數量也會影響房屋價格,這個房屋能住下一家人或者是四五個人的家庭嗎?而這確實是基於房屋大小,以及真正決定一棟房子是否能適合你們家庭人數的臥室數。
換個話題,你可能知道郵政編碼或許能作為一個特徵,告訴你步行化程度。比如這附近是不是高度步行化,你是否能步行去雜貨店或者是學校,以及你是否需要駕駛汽車。有些人喜歡居住在以步行為主的區域,另外根據郵政編碼還和富裕程度相關(在美國是這樣的)。但在其它國家也可能體現出附近學校的水平有多好。

在圖上每一個畫的小圓圈都可以是 ReLU 的一部分,也就是指修正線性單元,或者其它稍微非線性的函式。基於房屋面積和臥室數量,可以估算家庭人口,基於郵編,可以估測步行化程度或者學校的質量。最後你可能會這樣想,這些決定人們樂意花費多少錢。
對於一個房子來說,這些都是與它息息相關的事情。在這個情景裡,家庭人口、步行化程度以及學校的質量都能幫助你預測房屋的價格。以此為例, x 是所有的這四個輸入, y是你嘗試預測的價格,把這些單個的神經元疊加在一起,我們就有了一個稍微大一點的神經網路。這顯示了神經網路的神奇之處,雖然我已經描述了一個神經網路,它可以需要你得到房屋面積、步行化程度和學校的質量,或者其它影響價格的因素。

神經網路的一部分神奇之處在於,當你實現它之後,你要做的只是輸入x ,就能得到輸出 y 。因為它可以自己計算你訓練集中樣本的數目以及所有的中間過程。所以,你實際上要做的就是:這裡有四個輸入的神經網路,這輸入的特徵可能是房屋的大小、臥室的數量、郵政編碼和區域的富裕程度。給出這些輸入的特徵之後,神經網路的工作就是預測對應的價格。同時也注意到這些被叫做隱藏單元圓圈,在一個神經網路中,它們每個都從輸入的四個特徵獲得自身輸入,比如說,第一個結點代表家庭人口,而家庭人口僅僅取決於x1 和x2特徵,換句話說,在神經網路中,你決定在這個結點中想要得到什麼,然後用所有的四個輸入來計算想要得到的。因此,我們說輸入層和中間層被緊密的連線起來了。
值得注意的是神經網路給予了足夠多的關於x 和 y的資料,給予了足夠的訓練樣本有關x 和 。神經網路非常擅長計算從x到y 的精準對映函式。
這就是一個基礎的神經網路。你可能發現你自己的神經網路在監督學習的環境下是如此的有效和強大,也就是說你只要嘗試輸入一個x ,即可把它對映成 y ,就好像我們在剛才房價預測的例子中看到的效果。
在下一個課中,我們會了解更多監督學習的例子,有些例子會讓你覺得你的網路會十分有用,並且你實際應用起來也是如此。