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