摘要:下文主要講述前饋神經網絡這個值稱之為損失,我們的目標就是使對所有訓練數據的損失和盡可能的小。對于前饋神經網絡中,這個有向圖是沒有回路的。反饋神經網絡也是一類重要的神經網絡。深度學習中的也屬于一種反饋神經網絡。
監督學習中,如果預測的變量是離散的,我們稱其為分類(如決策樹,支持向量機等); 如果預測的變量是連續的,我們稱其為回歸。
反向傳播算法(back propagation algorithm, BP-algorithm)是深度學習的最重要的兩大基石(另一個是梯度下降算法),幾乎所有的深度學習算法底層都會調用BP算法,其本質就是對鏈式求導法則的應用而已. 而穿越時間的反向傳播算法(back propagation through time algorithm, BPTT-algorithm) 則是BP上的應用,其核心沒有改變,只不過在應用時,要注意一些穿越時間的特別之處.
深度學習包含兩方面內容:
1.更好的訓練深度神經網絡。神經網絡隱藏層超過兩層就算深度神經網絡,三層的NN的訓練還好說,但是如果NN很多層數呢?那將會面臨梯度彌散和梯度爆炸等問題。所以為了讓訓練的DNN取得好的效果,就有了一些訓練DNN的技巧,比如反向傳播算法、激活函數、批量歸一化、dropout等技術的發明;而梯度下降是為了更好的優化代價函數(損失函數),不管是機器學習還是深度學習,總會需要優化代價函數。
2.設計網絡結構以更好的提取特征。增加神經網絡隱藏層就能提取更高層次特征,卷積神經網絡能提取空間上的特征,循環神經網絡能夠提取時間序列特征,等等;于是各種網絡結構被發明出來,比如AlexNet,LeNet,GooleNet,Inception系列,ResNet等等,另外還有LSTM等等。
網絡結構再美,如果不能訓練到收斂,就是不work。所以我們今天介紹的這些技術就是為了更好的訓練DNN,它們是保證能夠訓練好的DNN的基礎,所以它們叫深度學習的前戲!!
數學視角:
事實上,神經網絡的本質就是通過參數與激活函數來擬合特征與目標之間的真實函數關系。初學者可能認為畫神經網絡的結構圖是為了在程序中實現這些圓圈與線,但在一個神經網絡的程序中,既沒有“線”這個對象,也沒有“單元”這個對象。實現一個神經網絡最需要的是線性代數庫。
下文主要講述前饋神經網絡:
這個值稱之為損失(loss),我們的目標就是使對所有訓練數據的損失和盡可能的小。
如果將先前的神經網絡預測的矩陣公式帶入到yp中(因為有z=yp),那么我們可以把損失寫為關于參數(parameter)的函數,這個函數稱之為損失函數(loss function)。下面的問題就是求:如何優化參數,能夠讓損失函數的值最小。
此時這個問題就被轉化為一個優化問題。一個常用方法就是高等數學中的求導,但是這里的問題由于參數不止一個,求導后計算導數等于0的運算量很大,所以一般來說解決這個優化問題使用的是梯度下降算法。梯度下降算法每次計算參數在當前的梯度,然后讓參數向著梯度的反方向前進一段距離,不斷重復,直到梯度接近零時截止。一般這個時候,所有的參數恰好達到使損失函數達到一個最低值的狀態。
在神經網絡模型中,由于結構復雜,每次計算梯度的代價很大。因此還需要使用反向傳播算法。反向傳播算法是利用了神經網絡的結構進行的計算。不一次計算所有參數的梯度,而是從后往前。首先計算輸出層的梯度,然后是第二個參數矩陣的梯度,接著是中間層的梯度,再然后是第一個參數矩陣的梯度,最后是輸入層的梯度。計算結束以后,所要的兩個參數矩陣的梯度就都有了。
反向傳播算法可以直觀的理解為下圖。梯度的計算從后往前,一層層反向傳播。前綴E代表著相對導數的意思。
反向傳播算法的啟示是數學中的鏈式法則。在此需要說明的是,盡管早期神經網絡的研究人員努力從生物學中得到啟發,但從BP算法開始,研究者們更多地從數學上尋求問題的最優解。不再盲目模擬人腦網絡是神經網絡研究走向成熟的標志。正如科學家們可以從鳥類的飛行中得到啟發,但沒有必要一定要完全模擬鳥類的飛行方式,也能制造可以飛天的飛機。
優化問題只是訓練中的一個部分。機器學習問題之所以稱為學習問題,而不是優化問題,就是因為它不僅要求數據在訓練集上求得一個較小的誤差,在測試集上也要表現好。因為模型最終是要部署到沒有見過訓練數據的真實場景。提升模型在測試集上的預測效果的主題叫做泛化(generalization),相關方法被稱作正則化(regularization)。神經網絡中常用的泛化技術有權重衰減等。
在深度學習中,泛化技術變的比以往更加的重要。這主要是因為神經網絡的層數增加了,參數也增加了,表示能力大幅度增強,很容易出現過擬合現象。因此正則化技術就顯得十分重要。目前,Dropout技術,以及數據擴容(Data-Augmentation)技術是目前使用的最多的正則化技術。
1.概念
對于一門技術的學習而言,首先最重要的是弄清概念。只有將概念理解清楚,才能順暢的進行后面的學習。由于神經網絡漫長的發展歷史,經常會有一些概念容易混淆,讓人學習中產生困惑。這里面包括歷史的術語,不一致的說法,以及被遺忘的研究等。
歷史的術語
這個的代表就是多層感知器(MLP)這個術語。起初看文獻時很難理解的一個問題就是,為什么神經網絡又有另一個名稱:MLP。其實MLP(Multi-Layer Perceptron)的名稱起源于50-60年代的感知器(Perceptron)。由于我們在感知器之上又增加了一個計算層,因此稱為多層感知器。值得注意的是,雖然叫“多層”,MLP一般都指的是兩層(帶一個隱藏層的)神經網絡。
MLP這個術語屬于歷史遺留的產物。現在我們一般就說神經網絡,以及深度神經網絡。前者代表帶一個隱藏層的兩層神經網絡,也是EasyPR目前使用的識別網絡,后者指深度學習的網絡。
不一致的說法
這個最明顯的代表就是損失函數loss function,這個還有兩個說法是跟它完全一致的意思,分別是殘差函數error function,以及代價函數cost function。loss function是目前深度學習里用的較多的一種說法,caffe里也是這么叫的。cost function則是Ng在coursera教學視頻里用到的統一說法。這三者都是同一個意思,都是優化問題所需要求解的方程。雖然在使用的時候不做規定,但是在聽到各種講解時要心里明白。
再來就是權重weight和參數parameter的說法,神經網絡界由于以前的慣例,一般會將訓練得到的參數稱之為權重,而不像其他機器學習方法就稱之為參數。這個需要記住就好。不過在目前的使用慣例中,也有這樣一種規定。那就是非偏置節點連接上的值稱之為權重,而偏置節點上的值稱之為偏置,兩者統一起來稱之為參數。
另外一個同義詞就是激活函數active function和轉移函數transfer function了。同樣,他們代表一個意思,都是疊加的非線性函數的說法。
被遺忘的研究
由于神經網絡發展歷史已經有70年的漫長歷史,因此在研究過程中,必然有一些研究分支屬于被遺忘階段。這里面包括各種不同的網絡,例如SOM(Self-Organizing Map,自組織特征映射網絡),SNN(Synergetic Neural Network,協同神經網絡),ART(Adaptive Resonance Theory,自適應共振理論網絡)等等。所以看歷史文獻時會看到許多沒見過的概念與名詞。
有些歷史網絡甚至會重新成為新的研究熱點,例如RNN與LSTM就是80年代左右開始的研究,目前已經是深度學習研究中的重要一門技術,在語音與文字識別中有很好的效果。
對于這些易于混淆以及弄錯的概念,務必需要多方參考文獻,理清上下文,這樣才不會在學習與閱讀過程中迷糊。
神經網絡其實是一個非常寬泛的稱呼,它包括兩類,一類是用計算機的方式去模擬人腦,這就是我們常說的ANN(人工神經網絡),另一類是研究生物學上的神經網絡,又叫生物神經網絡。對于我們計算機人士而言,肯定是研究前者。
在人工神經網絡之中,又分為前饋神經網絡和反饋神經網絡這兩種。那么它們兩者的區別是什么呢?這個其實在于它們的結構圖。我們可以把結構圖看作是一個有向圖。其中神經元代表頂點,連接代表有向邊。對于前饋神經網絡中,這個有向圖是沒有回路的。你可以仔細觀察本文中出現的所有神經網絡的結構圖,確認一下。而對于反饋神經網絡中,結構圖的有向圖是有回路的。反饋神經網絡也是一類重要的神經網絡。其中Hopfield網絡就是反饋神經網絡。深度學習中的RNN也屬于一種反饋神經網絡。
具體到前饋神經網絡中,就有了本文中所分別描述的三個網絡:單層神經網絡,雙層神經網絡,以及多層神經網絡。深度學習中的CNN屬于一種特殊的多層神經網絡。另外,在一些Blog中和文獻中看到的BP神經網絡是什么?其實它們就是使用了反向傳播BP算法的兩層前饋神經網絡。也是最普遍的一種兩層神經網絡。
通過以上分析可以看出,神經網絡這種說法其實是非常廣義的,具體在文章中說的是什么網絡,需要根據文中的內容加以區分。
作者推薦課程:
機器學習這個詞是讓人疑惑的,首先它是英文名稱Machine Learning(簡稱ML)的直譯,在計算界Machine一般指計算機。這個名字使用了擬人的手法,說明了這門技術是讓機器“學習”的技術。但是計算機是死的,怎么可能像人類一樣“學習”呢?
傳統上如果我們想讓計算機工作,我們給它一串指令,然后它遵照這個指令一步步執行下去。有因有果,非常明確。但這樣的方式在機器學習中行不通。機器學習根本不接受你輸入的指令,相反,它接受你輸入的數據! 也就是說,機器學習是一種讓計算機利用數據而不是指令來進行各種工作的方法。這聽起來非常不可思議,但結果上卻是非常可行的。“統計”思想將在你學習“機器學習”相關理念時無時無刻不伴隨,相關而不是因果的概念將是支撐機器學習能夠工作的核心概念。你會顛覆對你以前所有程序中建立的因果無處不在的根本理念。
2.機器學習的定義
從廣義上來說,機器學習是一種能夠賦予機器學習的能力以此讓它完成直接編程無法完成的功能的方法。但從實踐的意義上來說,機器學習是一種通過利用數據,訓練出模型,然后使用模型預測的一種方法。
數據挖掘
數據挖掘=機器學習+數據庫。這幾年數據挖掘的概念實在是太耳熟能詳。幾乎等同于炒作。但凡說數據挖掘都會吹噓數據挖掘如何如何,例如從數據中挖出金子,以及將廢棄的數據轉化為價值等等。但是,我盡管可能會挖出金子,但我也可能挖的是“石頭”啊。這個說法的意思是,數據挖掘僅僅是一種思考方式,告訴我們應該嘗試從數據中挖掘出知識,但不是每個數據都能挖掘出金子的,所以不要神話它。一個系統絕對不會因為上了一個數據挖掘模塊就變得無所不能(這是IBM最喜歡吹噓的),恰恰相反,一個擁有數據挖掘思維的人員才是關鍵,而且他還必須對數據有深刻的認識,這樣才可能從數據中導出模式指引業務的改善。大部分數據挖掘中的算法是機器學習的算法在數據庫中的優化。
統計學習
統計學習近似等于機器學習。統計學習是個與機器學習高度重疊的學科。因為機器學習中的大多數方法來自統計學,甚至可以認為,統計學的發展促進機器學習的繁榮昌盛。例如著名的支持向量機算法,就是源自統計學科。但是在某種程度上兩者是有分別的,這個分別在于:統計學習者重點關注的是統計模型的發展與優化,偏數學,而機器學習者更關注的是能夠解決問題,偏實踐,因此機器學習研究者會重點研究學習算法在計算機上執行的效率與準確性的提升。
計算機視覺
計算機視覺=圖像處理+機器學習。圖像處理技術用于將圖像處理為適合進入機器學習模型中的輸入,機器學習則負責從圖像中識別出相關的模式。計算機視覺相關的應用非常的多,例如百度識圖、手寫字符識別、車牌識別等等應用。這個領域是應用前景非常火熱的,同時也是研究的熱門方向。隨著機器學習的新領域深度學習的發展,大大促進了計算機圖像識別的效果,因此未來計算機視覺界的發展前景不可估量。
語音識別
語音識別=語音處理+機器學習。語音識別就是音頻處理技術與機器學習的結合。語音識別技術一般不會多帶帶使用,一般會結合自然語言處理的相關技術。目前的相關應用有蘋果的語音助手siri等。
自然語言處理
自然語言處理=文本處理+機器學習。自然語言處理技術主要是讓機器理解人類的語言的一門領域。在自然語言處理技術中,大量使用了編譯原理相關的技術,例如詞法分析,語法分析等等,除此之外,在理解這個層面,則使用了語義理解,機器學習等技術。作為唯一由人類自身創造的符號,自然語言處理一直是機器學習界不斷研究的方向。按照百度機器學習專家余凱的說法“聽與看,說白了就是阿貓和阿狗都會的,而只有語言才是人類獨有的”。如何利用機器學習技術進行自然語言的的深度理解,一直是工業和學術界關注的焦點。
可以看出機器學習在眾多領域的外延和應用。機器學習技術的發展促使了很多智能領域的進步,改善著我們的生活。
1、回歸算法
在大部分機器學習課程中,回歸算法都是介紹的第一個算法。原因有兩個:一.回歸算法比較簡單,介紹它可以讓人平滑地從統計學遷移到機器學習中。二.回歸算法是后面若干強大算法的基石,如果不理解回歸算法,無法學習那些強大的算法。回歸算法有兩個重要的子類:即線性回歸和邏輯回歸。
線性回歸就是我們前面說過的房價求解問題。如何擬合出一條直線最佳匹配我所有的數據?一般使用“最小二乘法”來求解。“最小二乘法”的思想是這樣的,假設我們擬合出的直線代表數據的真實值,而觀測到的數據代表擁有誤差的值。為了盡可能減小誤差的影響,需要求解一條直線使所有誤差的平方和最小。最小二乘法將最優問題轉化為求函數極值問題。函數極值在數學上我們一般會采用求導數為0的方法。但這種做法并不適合計算機,可能求解不出來,也可能計算量太大。
計算機科學界專門有一個學科叫“數值計算”,專門用來提升計算機進行各類計算時的準確性和效率問題。例如,著名的“梯度下降”以及“牛頓法”就是數值計算中的經典算法,也非常適合來處理求解函數極值的問題。梯度下降法是解決回歸模型中最簡單且有效的方法之一。從嚴格意義上來說,由于后文中的神經網絡和推薦算法中都有線性回歸的因子,因此梯度下降法在后面的算法實現中也有應用。
邏輯回歸是一種與線性回歸非常類似的算法,但是,從本質上講,線型回歸處理的問題類型與邏輯回歸不一致。線性回歸處理的是數值問題,也就是最后預測出的結果是數字,例如房價。而邏輯回歸屬于分類算法,也就是說,邏輯回歸預測結果是離散的分類,例如判斷這封郵件是否是垃圾郵件,以及用戶是否會點擊此廣告等等。
實現方面的話,邏輯回歸只是對對線性回歸的計算結果加上了一個Sigmoid函數,將數值結果轉化為了0到1之間的概率(Sigmoid函數的圖像一般來說并不直觀,你只需要理解對數值越大,函數越逼近1,數值越小,函數越逼近0),接著我們根據這個概率可以做預測,例如概率大于0.5,則這封郵件就是垃圾郵件,或者腫瘤是否是惡性的等等。從直觀上來說,邏輯回歸是畫出了一條分類線,見下圖。
邏輯回歸算法劃出的分類線基本都是線性的(也有劃出非線性分類線的邏輯回歸,不過那樣的模型在處理數據量較大的時候效率會很低),這意味著當兩類之間的界線不是線性時,邏輯回歸的表達能力就不足。下面的兩個算法是機器學習界最強大且重要的算法,都可以擬合出非線性的分類線。
2、神經網絡
神經網絡(也稱之為人工神經網絡,ANN)算法是80年代機器學習界非常流行的算法,不過在90年代中途衰落。現在,攜著“深度學習”之勢,神經網絡重裝歸來,重新成為最強大的機器學習算法之一。
神經網絡的誕生起源于對大腦工作機理的研究。早期生物界學者們使用神經網絡來模擬大腦。機器學習的學者們使用神經網絡進行機器學習的實驗,發現在視覺與語音的識別上效果都相當好。在BP算法(加速神經網絡訓練過程的數值算法)誕生以后,神經網絡的發展進入了一個熱潮。BP算法的發明人之一是前面介紹的機器學習大牛Geoffrey Hinton(圖1中的中間者)。
監督學習算法:
線性回歸,邏輯回歸,神經網絡,SVM
無監督學習算法:
聚類算法,降維算法
特殊算法:
推薦算法
除了這些算法以外,有一些算法的名字在機器學習領域中也經常出現。但他們本身并不算是一個機器學習算法,而是為了解決某個子問題而誕生的。你可以理解他們為以上算法的子算法,用于大幅度提高訓練過程。其中的代表有:梯度下降法,主要運用在線型回歸,邏輯回歸,神經網絡,推薦算法中;牛頓法,主要運用在線型回歸中;BP算法,主要運用在神經網絡中;SMO算法,主要運用在SVM中。
大數據的核心是利用數據的價值,機器學習是利用數據價值的關鍵技術,對于大數據而言,機器學習是不可或缺的。相反,對于機器學習而言,越多的數據會越 可能提升模型的精確性,同時,復雜的機器學習算法的計算時間也迫切需要分布式計算與內存計算這樣的關鍵技術。因此,機器學習的興盛也離不開大數據的幫助。 大數據與機器學習兩者是互相促進,相依相存的關系。
機器學習與大數據緊密聯系。但是,必須清醒的認識到,大數據并不等同于機器學習,同理,機器學習也不等同于大數據。大數據中包含有分布式計算,內存數據庫,多維分析等等多種技術。單從分析方法來看,大數據也包含以下四種分析方法:
1.大數據,小分析:即數據倉庫領域的OLAP分析思路,也就是多維分析思想。
2.大數據,大分析:這個代表的就是數據挖掘與機器學習分析法。
3.流式分析:這個主要指的是事件驅動架構。
4.查詢分析:經典代表是NoSQL數據庫。
也就是說,機器學習僅僅是大數據分析中的一種而已。盡管機器學習的一些結果具有很大的魔力,在某種場合下是大數據價值最好的說明。但這并不代表機器學習是大數據下的唯一的分析方法。
機器學習與大數據的結合產生了巨大的價值。基于機器學習技術的發展,數據能夠“預測”。對人類而言,積累的經驗越豐富,閱歷也廣泛,對未來的判斷越準確。例如常說的“經驗豐富”的人比“初出茅廬”的小伙子更有工作上的優勢,就在于經驗豐富的人獲得的規律比他人更準確。而在機器學習領域,根據著名的一個實驗,有效的證實了機器學習界一個理論:即機器學習模型的數據越多,機器學習的預測的效率就越好。見下圖:
總結起來,人工智能的發展經歷了如下若干階段,從早期的邏輯推理,到中期的專家系統,這些科研進步確實使我們離機器的智能有點接近了,但還有一大段距離。直到機器學習誕生以后,人工智能界感覺終于找對了方向。基于機器學習的圖像識別和語音識別在某些垂直領域達到了跟人相媲美的程度。機器學習使人類第一次如此接近人工智能的夢想。
那么,從計算機來看,以上的種種能力都有種種技術去應對。
例如計算能力我們有分布式計算,反應能力我們有事件驅動架構,檢索能力我們有搜索引擎,知識存儲能力我們有數據倉庫,邏輯推理能力我們有專家系統,但是,唯有對應智慧中最顯著特征的歸納與感悟能力,只有機器學習與之對應。這也是機器學習能力最能表征智慧的根本原因。
摘抄連接:http://www.cnblogs.com/subcon...
http://www.cnblogs.com/subcon...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44557.html
閱讀 2837·2023-04-25 20:02
閱讀 1435·2021-11-11 16:55
閱讀 614·2021-09-26 09:46
閱讀 6203·2021-09-22 15:55
閱讀 1823·2021-08-09 13:41
閱讀 1572·2019-08-30 15:52
閱讀 2371·2019-08-30 14:13
閱讀 3289·2019-08-26 13:48