1、什么是神經網絡(Neural Network)
“深度學習指的是訓練神經網絡”
從一個房價預測的例子開始:
如果我們已知一些房屋的價格和面積,我們可以通過線性回歸的方法,擬合一條直線,從而找到一個函數,使得我們可以通過房屋的面積來預測房屋價格。但是根據實際,房屋的價格是不能為負數的,因此單純的直線並不合適,最終的函數(function)是這樣的:
這就是一個簡單的神經網絡(Neural Network),我們把方位的面積信息作為輸入,稱之為x,通過這個節點(node),最后輸出了價格,用y表示,這個節點(node)就是一個獨立的神經元(neuron)。通過這個神經網絡(雖然只有一個神經元節點),可以實現上面的房屋價格函數的功能,即輸入面積,完成線性運算,取不小於0的值,並最終輸出預測價格。
在神經網絡文獻中經常會見到這種初始值是0,而后是一條直線的函數,這個函數被稱為ReLU(Rectified Linear Unit,修正線性單元)函數,這個函數在后面會經常見到。
神經網絡就是由很多如上面的輸入——節點——輸出神經元,像樂高積木一樣堆疊而成的。
來看一個例子:
如果不僅僅通過房屋面積來預測價格,我們現在還知道了房屋的其他特征,卧室數量,郵編號碼,周邊富裕程度等信息時,神經網絡可能是上圖的樣子。
其中,取決於房屋面積的卧室數量可以獲知可以入住的家庭成員數,郵政編碼可以獲知步行化程度以及附近學校質量,富裕程度也可以獲知學校質量。而可入住人數,步行化程度,學校質量綜合決定房屋的價格。
上例中,輸入x是四種信息,輸出y時預測價格,把這些獨立的神經元疊加起來,就變成了一個稍大的神經網絡。神經網絡的一個神奇之處就在於,當實現它之后,我們要做的就只有輸入X,就能得到輸出y,不管訓練集有多大。
神經網絡的工作就是,輸入x的四種信息,輸出對應的預測價格y,而中間的三個節點,被稱為隱藏單元(hidden units),每個輸入都同時來自四個輸入特征。神經網絡中需要其自己決定每一個節點是什么,而不是人為規定如家庭成員 = 房屋面積x1 + 卧室數量x2。
需要注意的是,神經網絡需要我們喂給它足夠多的數據,即(x,y)訓練樣本,它非常擅長做計算從x到y的精准映射函數。
2、用神經網絡進行監督學習(Supervised Learning)
目前很多神經網絡所取得成就都基於一種機器學習,“監督學習(Supervised Learning)”。
在監督學習中,輸入x,習得一個函數,映射到y,比如我們之前預測房價的函數。另外一個例子就是在線廣告,給網站輸入廣告信息,網站會考慮是否給你看這個廣告,有時還需要輸入一些用戶信息,神經網絡會預測你是否會點擊這個廣告,以及你最有可能點開的廣告。
另外深度學習在圖像識別和語音識別,機器翻譯,自動駕駛等領域都得到了應用。
在房地產價格預測和在線廣告領域,使用的都是標准神經網絡(standard neural network, SNN),在圖像識別領域常用卷積神經網絡(convolutional neural network, CNN),而對於序列數據,如音頻等含有一維時間序列的數據,常用循環神經網絡(recurrent neural network, RNN),對於更復雜的如無人駕駛等應用,其中的圖像信息處理可能需要CNN網絡,而雷達信息處理則不同,此時需要用到混合神經網絡結構(hybrid neural network)。
結構化數據(Structured Data)和非結構化數據(Unstructured Data),結構化數據意味着每一個每個特征都有清晰的定義,如房價預測中的面積,卧室數量,價格等特征。相反非結構化數據,如音頻、圖像等,這里的特征,可能是圖像中的像素值或者文本中的某個單詞。非結構化數據與結構化數據相比,更難讓計算機理解。但是相反的,人類卻很擅長理解非結構化數據。通過神經網絡,我們終於能讓計算機也能更好的解釋非結構化數據,由此才能產生圖像識別、音頻識別、自然語言處理等應用。