1.吳恩達深度學習第一週

1.1 歡迎

深度學習改變了傳統的互聯網業務,例如網絡搜索和廣告。但是深度學習同時也使得許多產品和企業以很多方式幫助人們。從獲得更好的健康關注:深度學習讀取x光圖像,到生活中的個性化教育,到精準化農業甚至到駕駛汽車和其他方面。如果你想用深度學習來做這些令人窒息的操作,我(吳老師)將幫助你做到這一點。學完這套課程之後,你將能更加自信的繼續深度學習之路。AI讓我們在接下來的十年中創造更好的社會和時代。
AI是最新的電力,在幾百年前,我們社會的電氣化改變了每個行業(醫療,交通等)。AI領域發展最爲迅速的就是深度學習了。因此,現在深度學習是廣受歡迎的一種技巧。這個課程會幫你獲得這種技能。
這門課程中你會學到:

  • 第一門課,神經網絡和深度學習,第一部門中將會學習如何建立神經網絡,包含一個深度神經網絡,以及如何在數據上訓練他們。最後,將會用神經網絡辨認喵星人。
  • 第二門課,深度學習方面的實踐,提升你的深度學習網絡。學習構建深度學習網絡以及如何讓他表現良好。將會學到:超參數調整,正則化,診斷偏差,方差以及一些高級優化算法(如momentum,adam)。
  • 第三門課,將會用2周的時間,學習如何結構化你的機器學習工程,構建機器學習的策略改變了深度學習的錯誤。舉個例子:分割數據的方式,分割爲訓練集,比較集或改變的驗證集以及測試集合,在深度學習中貢獻不同,影響很大,應該如何處理呢?如果你聽說過端對端深度學習,你也會在第三門課中瞭解更多。
  • 第四門課,卷積神經網絡,經常用於圖像,學習如何搭建這樣的模型
    *第五門課, 序列模型,應用於自然語言處理和其他問題,包括的模型有循環神經網絡,LSTM模型(長短期記憶網絡),將之應用於NLP(自然語言處理)問題。將這些模型應用於序列數據。

1.2 什麼是神經網絡

“深度學習”指的是訓練神經網絡,有時候規模很大。神經網絡究竟是什麼呢?從一個房價預測的例子開始,假設有一個6間房屋的數據集,單位是平方米,已知房屋價格,想要找到一個函數,根據房屋面積,預測房價的函數,利用線性迴歸的知識,很容易擬合出一根曲線。
在這裏插入圖片描述
房價不會爲負數,所以起點有一段是0.可以把這個例子用神經網絡實現。
在這裏插入圖片描述
中間這個小圓圈是獨立的神經元,這個網絡就實現了上面線性迴歸實現的功能。這個神經元所做的,就是輸入面積,完成線性運算,取不小於0的值,最後得到預測價格。這個函數一開始是0,然後就是一條直線,這個函數被稱作ReLU函數,全稱是修正線性單元。修正指的是取不小於0的值,這就是這個函數長這樣的原因。
上圖是一個神經單元網絡,是一個規模很小的神經網絡。大一點的神經網絡,是把這些單個神經元堆疊起來形成的,你可以把這些神經元想像成樂高積木,你通過搭積木來構建一個更大的神經網絡。
再來看一個例子,不只用面積,再加上其他特徵,比如臥室的數量,面積+臥室數量,就可以推導出家庭的規模。郵編在某些國家說明了步行化程度,郵編和富裕程度加起來可以推導出附近學校的質量,這個關係中的每個小圓圈都可能是一個ReLU,或者其他的不那麼線性的函數。
在這裏插入圖片描述
最終,根據前面的特徵,可以預測出房屋的價格,在這個例子中,x是所有的這4個輸入,y是預測的價格,把這些獨立的神經元疊加起來,就有了一個稍微大一點的神經網絡。
神經網絡的神奇之處在於當你實現了他之後,你只需要輸入x,就能得到輸出y,不管你的訓練集有多大,所有的中間過程,他都會自己完成。那麼你實際上做的就是:
在這裏插入圖片描述
左邊4個輸入,右邊1個輸出預測房子的價格,中間的圈,在神經網絡中,被叫做隱藏單元,每個的輸入都同時來自4個特徵,比如說,我們不會具體指定某一個圈代表的是家庭人口或者他是被哪些特徵影響的。我們會這麼說:神經網絡,你自己決定這個節點是什麼,我們給你4個輸入特徵,隨便你怎麼計算。
因此我們說:左側是輸入層,右側是輸出層,中間是隱藏層,隱藏層的連接數是很高的,因爲每個輸入的特徵都連接到了每一個圈圈。只有你餵給他足夠多的數據,關於x和y的,也就是訓練集,神經網絡非常擅長計算從x到y的精準映射函數。
上面講的就是一個最簡單的神經網絡,你會發現自己的神經網絡在監督學習的環境下是如此有效和強大,你只要輸入x就會給你y,就像這個房價的例子,接下來會有更多的監督學習的例子。

1.3 用什麼神經網絡進行監督學習

至今爲止所有神經網絡創造的價值都基於其中一種機器學習,叫做監督學習
在機器學習中,習得一個函數,映射到輸出y,比如我們之前用於預測房價的例子。再接下來的例子中,神經網絡效果超羣,獲得很大經濟價值的就是在線廣告,神經網絡預測某種用戶是不是會點廣告進去,神經網絡在這方面已經很好了。計算機視覺,輸入圖像,來分辨這是什麼對象。語音識別方面,機器翻譯方面,無人駕駛技術方面,雷達方面。
對於這些應用,你要機智的選擇x和y,才能解決特定問題,然後把這個監督學習過的組件嵌入到大型系統中,比如無人駕駛。在一些領域,如廣告推廣,房地產的房價預測,用的都是標準的神經網絡。圖像領域裏用卷積神經網絡CNN。對於序列數據,如音頻,有時間成分,音頻是隨着時間播放的,他是一維的時間序列,對於序列數據經常使用RNN(循環神經網絡)。對於語言,英語和漢語,字母和單詞,都是逐個出現的,語言最自然的表達方式也是序列數據,可以使用更復雜的RNNs。對於更復雜的應用,比如無人駕駛,你有一張圖,你需要使用更復雜的CNN“卷積神經網絡結構”架構去處理。雷達信息會更不一樣。你需要一些更復雜的混合的神經網絡結構。
所以,爲了更標準的說明標準的CNN和RNN結構是什麼,在文獻中,你可能見過這樣的圖片,如下:
在這裏插入圖片描述
這是一個標準的神經網絡。
在這裏插入圖片描述
這是一個卷積神經網絡。在後續的課程中,我們會去了解這幅圖的含義如何實現它。卷積網絡通常用於圖像數據。
在這裏插入圖片描述
這種圖是循環神經網絡,非常適合處理一維序列數據,其中包含時間成分,後續課程也會實現它。
機器學習被應用於結構化數據和非結構化數據,結構化數據是數據庫裏的數據,例如房價預測中,可能你的訓練集的數據就是在數據庫中,這就是結構化數據。
在這裏插入圖片描述
結構化數據意味着每個特徵,比如房屋大小,都有清晰的定義。非結構化數據指的是音頻,原始音頻,圖像,你想要識別圖像或者文本中的內容,這裏的特徵可能是圖像中的像素值或是文本中的單個單詞,非結構化數據計算機理解起來更困難,但是人類很擅長理解音頻和圖像。神經網絡的興起,令人興奮的一件事是多虧了深度學習和神經網絡,計算機能更好的理解非結構化數據了。這讓語音識別,圖像識別,自然語言處理領域豐富的多,比兩三年前要豐富多了。
課程中會學習很多的算法原理,幫助理解非結構化數據,會用很多例子讓你明白。最後,神經網絡改變了監督學習,創造經濟價值,但是神經網絡背後的技術概念都不是新概念了,有些甚至已經十幾年歷史了。爲什麼近期纔會興起呢?

1.4 爲什麼深度學習會興起

爲什麼深度學習突然這麼厲害了?看一個圖,垂直軸代表機器學習的性能,比如垃圾郵件過濾的準確率。

在這裏插入圖片描述
對於傳統的機器學習算法,剛開始增加數據的時候,準確率會上升。但是一段時間之後性能會進入平臺期。那是因爲這些模型沒辦法處理海量數據。在過去的20年我們遇到的很多問題,早期都只有相對較少的數據量。多虧了數字化社會,後來採集數據變得更簡單,我們的數據越來越多。在過去20年我們採集到的數據遠超傳統機器學習算法能處理的規模。
在這裏插入圖片描述
如果使用神經網絡的話,採用小規模,那麼性能可能會這樣(如下圖黃色線:)。
在這裏插入圖片描述
隨着神經網絡規模的擴大,性能表現可以說是越來越好的。
在這裏插入圖片描述
需要注意兩點:一點是如果你想達到這麼高的性能水平,有兩個條件,第一個是需要訓練一個規模足夠大的神經網絡,發揮數據規模量巨大的優點。另外,想要達到那種規模的性能,需要你的數據量足夠大,因此我們經常說:規模推動着深度學習的進步。說到規模,不僅是神經網絡的規模,我們需要許多隱藏單元的神經網絡,有許多的參數,許多的鏈接;還有數據的規模。
事實上,要在神經網絡上有更好的表現,在今天最好的手段,往往就是訓練一個更大的神經網絡,要麼投入更多的數據,這隻能在一定程度上起作用,因爲你最終耗盡了數據,或者最終你的網絡規模太大,需要的訓練時間太久。但是,提升規模,已經讓我們在深度學習的世界中獲得了大量的進展,
爲了使這個圖在技術上更準確一點,我還要加點說明,x軸代表數據量,準確點說是帶標籤的數據量,這裏介紹一個約定,小寫的m表示訓練集的規模,這個m就是水平軸,在前面的那一段,各個算法的性能排名並不是很確定,訓練集不大的時候,效果會取決於你手工設計的組件會決定最終的表現。因此很有可能,有些人訓練一個svm,可能是因爲手工設計組件很厲害,有些人的訓練規模會大一些,可能訓練集不大的時候,導致svm表現更好一些。因此,在這個圖像的左邊部分,各個算法的優劣,並不是定義的很準確,最終的性能取決於手工設計組件的技能以及算法處理的一些細節。只有在大數據領域,非常龐大的訓練集,也就是在右邊,我們才能見到神經網絡穩定的領先其他算法。
如果有人問你爲啥神經網絡那麼流行,你也可以給他用上面這個圖。吳老師很推薦。
在深度學習崛起的初期,是數據和計算能力規模的進展,訓練一個神經網絡的能力,無論是cpu還是gpu,是這些發展讓我們取得了巨大的進步。但是在最近幾年,也見證了一些算法的極大創新。算法方面的創新,都爲了讓神經網絡運行的更快。
舉個例子,神經網絡的巨大突破是從sigmod函數,轉換到ReLU函數。
在這裏插入圖片描述
使用sigmod函數,使用的是函數在這個區域的斜率。梯度會接近0。所以學習會變得十分緩慢,因爲用梯度下降法時,梯度接近0,參數會變化的很慢,學習也會很慢,而通過改變激活函數,神經網絡用ReLU,他的梯度,對所有的正值輸出都是1.因此梯度不會逐漸趨向於0,這裏的梯度就是斜線的斜率。
在這裏插入圖片描述
我們發現只需要將sigmod函數轉換成ReLU函數,就會使梯度下降法運行的更快,這就是一個有點簡單算法創新的例子。但是最終算法創新帶來的影響是增加計算速度。這也使得我們能訓練規模更大的神經網絡,或者在合理的時間內完成運算(即使數據量和規模都很大)。
快速計算的另一方面,訓練神經網絡的時候,很多時候都是憑藉直覺的,你有了新想法,關於神經網絡架構的想法,然後你寫代碼實現,然後跑實驗,就可以告訴你你的神經網絡效果如何。知道結果之後,再回去改,去改你神經網絡中的細節,然後你不選重複這個循環。當你的神經網絡需要很長時間去訓練的時候,需要很長時間才能循環一圈的時候,在實現神經網絡的時候,迭代速度對你的效率影響巨大。當你有想法,直接去試,10分鐘能看到結果,或者最多一天。如果你用一個月,你肯定是接受不了的。最快的完成一圈,讓你可以完成更多的想法。你最終就可以很快的發現適合你的神經網絡。所以計算速度的提升,真的有利於提高迭代速度

在這裏插入圖片描述
是上面講的這些促進了深度學習的發展,他們還在繼續發揮作用。

1.5 關於這門課

微專業一共五門課!
在這裏插入圖片描述
目前是第一門課,講最基礎的。有四個周,目前已經完成第一個周,深度學習的入門介紹。每一週都有10幾道多選題,用來檢驗自己對材料的理解。第二週你會學到神經網絡的編程基礎。瞭解神經網絡中正向傳播和反向傳播的結構,還有算法的過程,以及如何高效的實現神經網絡,第二週就有編程了,練習學到的知識。吳老師說很過癮。在第三週,編寫單隱藏層神經網絡,你需要學習所有必須的關鍵概念,。第四周,你需要建立一個多層的深層神經網絡。

1.6 課程資源

網站:https://www.coursera.org/recommendations 不免費
在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章