標籤:

吳恩達機器學習第四周課後感

目錄

一、主要內容

二、個人感受

三、實際應用

正文

一、主要內容

1.Neural Networks: Representation

《Motivations》

Non-Linear Hypotheses

在現實生活中會存在很多非線性問題,比如非線性回歸問題:如果有100個特徵,特徵之間相乘,到最後可能會輸出大約5000個最終非線性特徵。而且即使繼續算下去,還有可能會導致過擬合。在汽車的舉例中,我們了解到我們觀察到的汽車是圖案,然而計算機收到的卻是一堆數據,這也導致圖片數據必然是非線性數據,也就是說分類器將變得非常複雜。

Neurons and the Brain

神經網路最初是為了模仿大腦,不過最大的局限性是至今人類還沒有完全了解大腦。雖然80年代曾經流行過,但在90年代末基本沒落了。到了大數據時代,再加上GPU的發展,神經網路再次進入了人們的視野。人們對大腦的猜想腦神經不是根據五覺各有分工,而是根據不同的輸入可以學習到不同的技能。也有很多實驗基於這個假想試了幾波,成果也不錯,可以讓人通過舌頭看世界,或者讓盲人通過聲吶了解這邊世界,或者裝有電器的腰帶可以讓人掌握方向感,亦或者裝了第三眼的青蛙可以熟練掌握新的信息。

《Neural Networks》

Model Representation

Logistic Unit: h_	heta(x)=frac{1}{1+e^{-Theta^Tx}}

Sigmoid (logistic) activation function: g(z) = frac{1}{1+e^{-z}}

Neural Network:神經網路,即一群有強相關性的神經元。

了解神經細胞可以進一步幫助我們了解什麼是神經網路:輸入,處理,輸出。人工的神經網路的結構與此類似。在模型之中,「權重」和「參數」都有被提及。最淺的神經網路有三層(Layer):輸入層、隱藏層、輸出層。輸入層就是各個 x 。隱藏層,也就是中間層,可能只有一層,也可能有上千層。輸出層負責輸出最終答案。

a^{(j)}_i 表示第j層的i個神經元,每個神經元都是單獨的模型。比如第二層的第一個神經元為:

a^{(2)}_1=g(Theta^{(1)}_{10}x_0+Theta^{(1)}_{11}x_1+Theta^{(1)}_{12}x_2+Theta^{(1)}_{13}x_3)

最終的輸出層表示為:

h_Theta(x) = a^{(3)}_1 = g(Theta^{(2)}_{10}a^{(2)}_0+Theta^{(2)}_{11}a^{(2)}_1+Theta^{(2)}_{12}a^{(2)}_2+Theta^{(2)}_{13}a^{(2)}_3)

至於注參數維度,可以用小學奧數的握手方法得出。

用矩陣來表示神經網路是非常機智的做法,基本看一眼就應該有這種衝動了。在正向傳播的處理過程中,代數的作用很關鍵,長式子可以被簡化。神經網路真正神奇的地方在於,參數可以通過層數的進化不斷被改良,這也是為什麼我們可以看到今天深度學習可以展現如此強大的能力。

《Applications》

Example

本節課開頭的舉例讓我聯想到了邏輯門。在《我的世界》里的紅石可以通過邏輯門來實現各種各樣的神奇自動化道具,比如在《我的世界》里造一台電腦玩《我的世界》。在舉例中,當兩個輸入為0或者1的時候,我們可以列出4個不同的輸入方式,根據邏輯門的不同組合方式,我們可以獲得相應的答案。

在之後的舉例中,與門(AND)、或門(OR)、異或門(XOR),都是以最簡單的二元輸入為例,很容易理解。其中,異或門的例子中在隱藏層使用到了兩個單元,第二個隱藏層使用了一個單元,從而做到將異或門的結論整理出來。正因如此,神經網路可以通過多層計算,將一個複雜的模型由簡到難地一層一層搭上去。Yann LeCun大牛的成果真的很令人讚歎,這腦洞也是沒誰了,就是背景音樂有點難聽,最神奇的是即使有背景干擾,旋轉字元,機器都可以精確地識別數字。

Multiclass Classification

在神經網路中,最常用來處理多項分類問題的方法叫做One-vs-all。比較顯著的特徵是這個方法最後的輸出層各個單元表示不同的分類。舉例中列出了「行人」、「汽車」、「摩托」、以及「卡車」,分別用矩陣中的各個非零輸出表示「正」,{1, 2, 3, 4}則不再用於神經網路中多項的表示。

二、個人感受

我對線性代數的理解又更加近了一步,學習這個東西就是要反覆去研究去使用才能真正內化。當初我徹底明白什麼是線性是在學複變函數論的時候,這次看非線性分類問題,我才真正明白什麼是非線性,雖然線性代數課早已結束,但我的機器學習之路還很漫長。

這一周的內容我個人比較喜歡,也許跟我聽了吳恩達的《深度學習》課程有關,完成這個課後感之後,我會更新一下屬文方式和文章格式,升級一個版本,然後開始《深度學習》的課後感。不過,需要明確的一點是,這門《機器學習》的確是《深度學習》的入門課。激活函數等重要概念在這周的課程中都有涉獵,而且介紹地非常直白。

這周課程中,最讓我記憶深刻的是神經網路在邏輯門實現的應用上。雖然邏輯門的實現其實可以有更簡單的方法,但是我沒有想到這兩者竟然可以有這種聯繫,讓我覺得甚是拍案。其實生活中的很多小細節也都可以不相干的兩者互有瓜葛。其實就是在於如何去發覺。

三、實際應用

這兩年,深度學習可謂是大出風頭,阿爾法狗大殺四方,讓無數人心嚮往之。有學科關聯的,開始往這方面轉,有資金的開始做這方面的研究。當然這一切都是在有大量數據的基礎之上的。傳統機器學習和深度學習之間最大的區別在於數據量。傳統機器學習更加在意特徵工程,數據人員需要把特徵洗得乾乾淨淨,結果會變得漂漂亮亮。深度學習則是靠數據的餵養,數據量上去,結果自然就幫。如果數據不夠,還有GAN來製作一些數據來提供,雖然也是在成長期,但是一些表現真的很令人興奮。就我個人而言,我對於時裝行業和餐飲行業的興趣是最大的。出行我可以走路,住的地方一般都是低頻消費,所以房地產行業的領軍人物,沒有在福布斯排行榜拔得頭籌。


推薦閱讀:

python3機器學習經典實例-學習筆記9-分類演算法
深度學習遇上推薦系統(一)--FM模型理論和實踐
Fisher Linear Discriminant Analysis(Fisher線性判別分析)
讓我們一起來學習CNTK吧

TAG:機器學習 |