深度学习入门笔记(一):深度学习引言
歡迎關注WX公眾號:【程序員管小亮】
專欄——深度學習入門筆記
聲明
1)該文章整理自網上的大牛和機器學習專家無私奉獻的資料,具體引用的資料請看參考文獻。
2)本文僅供學術交流,非商用。所以每一部分具體的參考資料并沒有詳細對應。如果某部分不小心侵犯了大家的利益,還望海涵,并聯系博主刪除。
3)博主才疏學淺,文中如有不當之處,請各位指出,共同進步,謝謝。
4)此屬于第一版本,若有錯誤,還需繼續修正與增刪。還望大家多多指點。大家都共享一點點,一起為祖國科研的推進添磚加瓦。
文章目錄
- 歡迎關注WX公眾號:【程序員管小亮】
- 專欄——深度學習入門筆記
- 聲明
- 深度學習入門筆記(一):深度學習引言
- 1、簡介
- 2、神經網絡
- 3、監督學習
- 4、結構化和非結構化
- 5、為什么深度學習會興起?
- 推薦閱讀
- 參考文章
深度學習入門筆記(一):深度學習引言
1、簡介
其實大部分人都是這樣的,即便是我們這些技術宅,第一次聽到深度學習的時候也是一臉懵逼,覺得很高大上,然而并不知道它到底是干啥的。關于什么是深度學習,深度學習能做些什么事情?在 deeplearning.ai 的神經網絡和深度學習課程中做過介紹。
以下是吳恩達老師的原話:
深度學習改變了傳統互聯網業務,例如如網絡搜索和廣告,但是深度學習同時也使得許多新產品和企業以很多方式幫助人們,從獲得更好的健康關注。
深度學習做的非常好的一個方面就是讀取X光圖像,除此之外還有生活中的個性化教育,到精準化農業,甚至到駕駛汽車以及其它一些方面。
在接下來的十年中,我認為我們所有人都有機會創造一個驚人的世界和社會,這就是 AI (人工智能)的力量。我希望你們能在創建 AI (人工智能)社會的過程中發揮重要作用。
我認為AI是最新的電力,大約在一百年前,我們社會的電氣化改變了每個主要行業,從交通運輸行業到制造業、醫療保健、通訊等方面,我認為如今我們見到了 AI 明顯的令人驚訝的能量,帶來了同樣巨大的轉變。顯然,AI 的各個分支中,發展的最為迅速的就是深度學習。因此現在,深度學習是在科技世界中廣受歡迎的一種技巧。
其實只要你一搜深度學習就是各種鋪天蓋地的新聞和資料,
關于深度學習的用途,現在最熟知的莫過于,用一個深度神經網絡進行貓咪辨認,如下圖,可以看到兩只小貓咪,那么以電腦為首的機器,能不能識別出有幾只貓咪,什么品種的貓咪(我太喜歡小貓小狗了 😃)。
2、神經網絡
大概了解了深度學習之后,下一個就應該是神經網絡了。
我們常常用深度學習這個術語來指訓練神經網絡的過程。有時它指的是特別大規模的神經網絡訓練。那么神經網絡究竟是什么呢?
讓我們從一個房價預測的例子開始講起。假設你有一個數據集,它包含了六棟房子的信息。所以也就是說,你知道房屋的具體信息,比如面積是多少平方英尺或者平方米,并且知道房屋價格,目標函數是預測房價。
這時,就需要擬合一個根據房屋面積預測房價的函數。如果對線性回歸很熟悉,你應該很容易就用這些數據擬合一條直線。
但奇怪的是,你可能也發現了,價格永遠不會是負數,也就是等于或者大于0。因此,直線需要彎曲一點并最終在零結束。這條藍色的手劃線就是最終的函數,用于根據房屋面積預測價格。雖然這條直線擬合的不錯,但是因為價格永不負數的緣故,你也許會認為這個函數只擬合房屋價格,沒啥普適性,偶然性反而更大一些。
把房屋的面積(size)作為神經網絡的輸入,用xxx表示,通過一個小圓圈,其實這個小圓圈就是一個單獨的神經元(neuron),最終輸出了價格(price),用yyy表示。到這里網絡就實現了左邊的功能。
劇透一下,在有關神經網絡的文獻中,你會經常看到這個函數。從趨于零開始,然后變成一條直線,幾乎可以說是完全擬合了房屋價格和房屋面積的關系。這個函數被稱作 ReLU 激活函數,它的全稱是 線性整流函數(Rectified Linear Unit, ReLU),又稱 修正線性單元。修正可以理解成 max(0,x)max(0,x)max(0,x),這也是函數這個形狀的原因。
至于很多同學擔心的數學問題,這里提出了Relu函數,你現在不用擔心,之后我們會詳細地講到它。
可以看到我們已經簡單地搭建了一個單神經元網絡,如果可以的話也可以叫它 神經網絡,不管規模的大小,即便只有一個神經元,它也是通過把這些單個神經元疊加在一起來形成一個大的網絡。比較經典的類比就是,把這些神經元想象成單獨的樂高積木,你就通過搭積木來完成一個更大的神經網絡。
下圖是神經網絡:
下圖是樂高積木:
有沒有一種相似的感覺???
還是來看剛才的例子,不僅僅用房屋的面積來預測它的價格,還有其他相關房屋特征,比如臥室的數量,家人的數量等等。
在kaggle上有一個經典的競賽題目就是房價預測,具體說明如下:
可以看到影響最終價格的因素可以很多,甚至高達79個。這些都可以在圖上用小圓圈代替,也就是說都可以是 ReLU 的一部分,再或者其它非線性函數的一部分。對于一個房子來說,這些都是與它息息相關的事情。在這個情景里,除了房屋面積之外,還有比如臥室的數量,郵政編碼(交通便利程度),富裕程度等。
神經網絡的神奇之處在于,當你實現它之后,你要做的只是輸入xxx,就能得到輸出yyy,這就成為了一個端到端的系統以實現功能。不過神經網絡需要大量的數據,從而精準地從xxx到yyy實現映射函數。這些數據是需要有 label 標注的,也就是監督學習,可能你不知道什么是監督學習,別著急,下一節會講到的。你會發現神經網絡在監督學習的環境下是如此的有效和強大,也就是說你只要嘗試輸入一個xxx,即可把它映射成yyy,就好像剛才在房價預測中看到的效果,轉換成了一個簡單數學問題,是不是很棒!
3、監督學習
神經網絡有很多種類,根據不同的場景,考慮到使用的效果,會產生不一樣的化學反應,事實證明,目前幾乎所有神經網絡創造的經濟價值,本質上都離不開 監督學習。
監督學習是指:利用一組已知類別的樣本調整分類器的參數,使其達到所要求性能的過程,也稱為監督訓練或有教師學習。
如今深度學習比較熱門的領域,就是在線廣告。這也許不是最鼓舞人心的,但真的很賺錢(尼瑪,還真是真實=-=)。具體就是通過在網站上輸入一個廣告的相關信息,因為也輸入了用戶的相關信息,于是網站就會考慮是否向你展示廣告,你的點擊的行為會直接影響到一些大型在線廣告公司的收入。再舉一個某寶的例子,你在挑選自己想要的產品時,系統會推薦一些類似的或者相關的產品給你,而這有可能會導致你的連帶消費,這個點擊行為可能會直接影響到一些產品公司的收入。
除此之外,計算機視覺在過去的幾年里也依靠深度學習取得了長足的進步。最經典的例子是手寫數字識別,輸入你的手寫數字,計算機就可以輸出相應的真實數字。
還有在語音識別方面的進步也是非常令人興奮的。比如語音輸入轉換為文字,像訊飛之類的輸入法公司。還有得益于深度學習,機器翻譯也有很大的發展,比如百度。
而這些都是監督學習,因為都是利用一組已知類別的樣本調整分類器的參數。
4、結構化和非結構化
你可能也聽說過機器學習對于結構化數據和非結構化數據的應用,結構化數據意味著數據的基本數據庫。例如在房價預測中,你可能有一個數據庫,有專門的幾列數據告訴你臥室的大小和數量,這就是結構化數據。或預測用戶是否會點擊廣告,你可能會得到關于用戶的信息,比如年齡以及關于廣告的一些信息,然后對你的預測分類標注,這就是結構化數據,意思是每個特征,比如說房屋大小臥室數量,或者是一個用戶的年齡,都有一個很好的定義。
相反非結構化數據是指比如音頻,原始音頻或者你想要識別的圖像或文本中的內容。這里的特征可能是圖像中的像素值或文本中的單個單詞。
從歷史經驗上看,處理非結構化數據是很難的,與結構化數據比較,讓計算機理解非結構化數據很難,而人類進化得非常善于理解音頻信號和圖像,文本是一個更近代的發明,但是人們真的很擅長解讀非結構化數據。
神經網絡的興起就是這樣最令人興奮的事情之一,多虧了深度學習和神經網絡,計算機現在能更好地解釋非結構化數據,這是與幾年前相比的結果。許多新的令人興奮的應用被使用,語音識別、圖像識別、自然語言文字處理,甚至可能比兩三年前的還要多!!!
5、為什么深度學習會興起?
推動深度學習變得如此熱門的主要因素有三個:數據規模、計算量及算法的創新。
1958年Rosenblatt發明的感知算法可對輸入的多維數據進行二分類,且能夠使用梯度下降法從訓練樣本中自動學習更新權值。
1986年Hiton發明的MLP的BP算法,并采用Sigmoid進行非線性映射,有效解決了非線性公類和學習的問題。該方法引發了神經網絡的第二次熱潮。
2006年,深度學習元年。Hiton提出了深層網絡訓練中梯度消失問題的解決方案:“無監督訓練對權值進行初始化+有監督訓練微調”。其主要思想是先通過自學習的方法學習到訓練數據的結構,然后在該結構上進行有監督訓練微調。
2012年Hiton課題組首次參加ImageNet圖像識別比賽,AlexNet奪得冠軍,并碾壓了第二名(SVM)的分類性能。
這么看來其實深度學習和神經網絡之前的基礎技術理念已經存在大概幾十年了,為什么它們現在才突然流行起來呢?先來看一下時間線中最重要的2012年,為什么深度學習在這一年火了?先來看一下為什么深度學習能夠如此有效?
來畫個圖,在水平軸上畫一個形狀,在此繪制出所有任務的數據量,而在垂直軸上,畫出機器學習算法的性能。根據圖像可以發現,如果把一個傳統機器學習算法的性能畫出來,作為數據量的一個函數,你可能得到一個彎曲的線,就像圖中這樣,它的性能一開始在增加更多數據時會上升,但是一段變化后它的性能就會像一個高原一樣。
而數字化社會來臨了,數據量變得非常巨大,比如在電腦網站上、在手機軟件上以及其它數字化的服務,它們都能創建數據,同時便宜的相機被配置到移動電話,還有加速儀及各類各樣的傳感器,同時在物聯網領域也收集到了越來越多的數據。僅僅在過去的20年里對于很多應用,我們便收集到了大量的數據,遠超過機器學習算法能夠高效發揮它們優勢的規模。
如圖,如果訓練一個小型的神經網絡,那么這個性能可能會像黃色曲線表示那樣;如果訓練一個稍微大一點的神經網絡,比如說一個中等規模的神經網絡(藍色曲線),它在某些數據上面的性能也會更好一些;如果訓練一個非常大的神經網絡,它就會變成綠色曲線那樣,并且保持變得越來越好。
因此你會發現,如果想要獲得較高的性能體現,那么有兩個條件要達到,第一個是一個規模足夠大的神經網絡,以發揮數據規模量巨大的優點,另外一個是需要能畫到xxx軸的這個位置,也就是需要大量數據。所以事實上如今最可靠的方法來在神經網絡上獲得更好的性能,往往就是要么訓練一個更大的神經網絡,要么投入更多的數據,這只能在一定程度上起作用,因為最終你耗盡了數據,或者最終你的網絡是如此大規模導致將要用太久的時間去訓練,但是僅僅提升規模的的確確地讓我們在深度學習的世界中摸索了很多時間。
然而真的只有這兩個因素嘛?只有數據和算法?
答案當然是No,還有一個重要的原因就是不斷增長的計算力(CPU和GPU的發展)。 過去的幾年里有很多巨大的算法創新,其中很多算法創新都只是為了讓神經網絡運行得更快(相當于提升計算力)。例如,一個巨大的突破就是用relu函數代替了sigmoid函數。這些新算法大大縮短了神經網絡的訓練周期,讓我們可以訓練更大的神經網絡、利用上更多的訓練數據。
除此之外,強大計算力的另一個很重要的原因是,它可以讓你更快的驗證自己的想法,以便不斷試錯,以得到更好的想法。例如,你有一個神經網絡架構的想法,你用代碼實現了你的想法,然后運行它,進行訓練,然后通過觀察它,分析運行結果,然后你再修改自己的想法細節,然后再運行再觀察再修改…。就這樣不停地來回試錯,所以執行這個試錯的周期就很關鍵了。這也是為什么很多傳統方向的人會有一些鄙視我們方向,因為他們把深度學習理解為調參…好氣啊我。
綜合以上,深度學習火起來的三大要素就是,數據,計算力,算法。而算法在不斷地被創新,訓練數據不斷地在被收集,計算力CPU、GPU也在不斷地增強,所以你我要充滿信心,深度學習會越來越強大,越來越厲害,做更多的事!!!
推薦閱讀
- 深度學習入門筆記(一):深度學習引言
- 深度學習入門筆記(二):神經網絡基礎
- 深度學習入門筆記(三):求導和計算圖
- 深度學習入門筆記(四):向量化
- 深度學習入門筆記(五):神經網絡的編程基礎
- 深度學習入門筆記(六):淺層神經網絡
- 深度學習入門筆記(七):深層神經網絡
- 深度學習入門筆記(八):深層網絡的原理
- 深度學習入門筆記(九):深度學習數據處理
- 深度學習入門筆記(十):正則化
- 深度學習入門筆記(十一):權重初始化
- 深度學習入門筆記(十二):深度學習數據讀取
- 深度學習入門筆記(十三):批歸一化(Batch Normalization)
- 深度學習入門筆記(十四):Softmax
- 深度學習入門筆記(十五):深度學習框架(TensorFlow和Pytorch之爭)
- 深度學習入門筆記(十六):計算機視覺之邊緣檢測
- 深度學習入門筆記(十七):深度學習的極限在哪?
- 深度學習入門筆記(十八):卷積神經網絡(一)
- 深度學習入門筆記(十九):卷積神經網絡(二)
- 深度學習入門筆記(二十):經典神經網絡(LeNet-5、AlexNet和VGGNet)
參考文章
- 吳恩達——《神經網絡和深度學習》視頻課程
總結
以上是生活随笔為你收集整理的深度学习入门笔记(一):深度学习引言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海外社交媒体SNS运营之社交媒体概览
- 下一篇: 平凡的我