浅析神经网络为什么能够无限逼近任意连续函数
轉(zhuǎn)載自??淺析神經(jīng)網(wǎng)絡(luò)為什么能夠無(wú)限逼近任意連續(xù)函數(shù)
神經(jīng)網(wǎng)絡(luò)為什么能夠無(wú)限逼近任意連續(xù)函數(shù)?
?下面通過(guò)一個(gè)分類例子一步一步的引出為什么神經(jīng)網(wǎng)絡(luò)能夠無(wú)限逼近任意函數(shù)這個(gè)觀點(diǎn),并且給出直觀感覺!
我們首先有這個(gè)需求,需要將下面的數(shù)據(jù)點(diǎn)進(jìn)行分類,將三角形與正方形正確的分開,如圖所示:
其實(shí)上圖就是一個(gè)解決一個(gè)異或問(wèn)題。
下面我分別從線性模型,感知機(jī)以及神經(jīng)網(wǎng)絡(luò)逐步圍繞這個(gè)例子來(lái)引出自己的觀點(diǎn)。(以下的講解都在二元函數(shù)下進(jìn)行,便于可視化,高維空間類比)
1.線性模型
如上圖所示,我們什么激活函數(shù)都不加,那么輸出結(jié)點(diǎn)的公式表達(dá)為:y=w1x1+w2x2(注:這里的1,2均是下標(biāo),下文一樣)
我們希望得到通過(guò)訓(xùn)練數(shù)據(jù)學(xué)習(xí)出w1,w2,然后得到線性模型,能夠解決異或問(wèn)題。但是我們很容易看出,無(wú)論怎么學(xué)習(xí),異或問(wèn)題是一個(gè)非線性問(wèn)題,并不能由一個(gè)線性方程能夠正確的將三角形與正方形分隔開!就好像下圖表達(dá)一樣,無(wú)論你直線怎么動(dòng),都不能正確分離開:
?
2.感知機(jī)
感知機(jī)的定義非常簡(jiǎn)單,在上面線性模型中的激活函數(shù)變?yōu)橄旅娴碾A梯函數(shù)的時(shí)候,就是感知機(jī)模型。
那么感知機(jī)是否可以解決上面異或問(wèn)題呢?很顯然并沒有改變它只是線性模型的本質(zhì),并不能解決非線性分類問(wèn)題.因?yàn)楦兄獧C(jī)分類平面投影到二維空間的時(shí)候,與下圖是一模一樣的:
紅線就代表投影方程,比如現(xiàn)在一個(gè)輸入點(diǎn)坐標(biāo)為(0,0)帶入方程得到結(jié)果為0,那么就在紅線上,輸入數(shù)據(jù)帶入模型中,大于0的話,投影下來(lái)是在紅線的右側(cè). 小于0的話,投影下來(lái)是在紅線的左側(cè).無(wú)論怎么學(xué)習(xí)(移動(dòng))模型,都無(wú)法改變感知機(jī)是一個(gè)線性模型解決不了非線性問(wèn)題的本質(zhì).
?
3.神經(jīng)網(wǎng)絡(luò)?
下面我們看多個(gè)感知機(jī)組合成的神經(jīng)網(wǎng)絡(luò)是否能夠解決這個(gè)問(wèn)題呢?答案是肯定能啊,標(biāo)題是神經(jīng)網(wǎng)絡(luò)能夠無(wú)限逼近任意連續(xù)函數(shù),那么肯定能夠解決非線性問(wèn)題,那么如何解釋呢。下面一步一步給出理解,首先給出一個(gè)倆層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如下:
很容易看出神經(jīng)網(wǎng)絡(luò)就是多個(gè)感知機(jī)組合而來(lái)的,第二層的第一個(gè)感知機(jī)學(xué)到的模型可視化可以是下面這個(gè):
第二層的第二個(gè)感知機(jī)學(xué)到的模型可視化可以是下面這個(gè):
那么在最后一個(gè)輸出結(jié)點(diǎn),進(jìn)行將第二層倆個(gè)神經(jīng)元進(jìn)行線性組合的時(shí)候,得到的可視化圖是下面這個(gè):
相信到這里大家已經(jīng)有感覺了,這不是明擺著已經(jīng)解決了我提出的問(wèn)題了嗎,還不信,看下面!
我們已經(jīng)成功的將圓形與正方形分類出來(lái),圓形對(duì)+1這個(gè)輸出,三角形對(duì)應(yīng)-1這個(gè)輸出,倆個(gè)不同的平面上,正確的完成了非線性分類問(wèn)題。
可能還有些抽象,這么直白來(lái)說(shuō),第一個(gè)神經(jīng)元學(xué)到的方程可以為x1+x2=1/2對(duì)四個(gè)數(shù)據(jù)的輸出分別是:
(0,0)輸出為-1,輸入神經(jīng)元激活函數(shù)之前的值是小于0(為-1/2)的
(1,0)輸出我+1 輸入神經(jīng)元激活函數(shù)之前的值是大于0(為1/2)的
(0,1)輸出為+1 輸入神經(jīng)元激活函數(shù)之前的值是大于0(1/2)的
(1,1)輸出為+1 輸入神經(jīng)元激活函數(shù)之前的值是大于0(3/2)的
這與我們的預(yù)期不一樣,我們希望(0,0)與(1,1)輸出的結(jié)果應(yīng)該一樣,屬于同一類。
根據(jù)上圖知道第二個(gè)神經(jīng)元學(xué)到的模型x1+x2=7/4對(duì)四個(gè)數(shù)據(jù)的輸出分別是:
(0,0)輸出為-1,輸入神經(jīng)元激活函數(shù)之前的值是小于0(-7/4)的
(1,0)輸出我-1 輸入神經(jīng)元激活函數(shù)之前的值是小于0(-3/4)的
(0,1)輸出為-1 輸入神經(jīng)元激活函數(shù)之前的值是小于0(-3/4)的
(1,1)輸出為+1 輸入神經(jīng)元激活函數(shù)之前的值是大于0(1/2)的
注:以上方程只是為了講解,并不一定是對(duì)的!
第三個(gè)神經(jīng)元通過(guò)對(duì)前面?zhèn)z個(gè)神經(jīng)元的線性組合,只需要我們通過(guò)學(xué)習(xí)w1,w2來(lái)控制(0,0)與(1,1)的輸出同為負(fù)數(shù),(1,0)與(0,1)的輸出同為正,那么就完成了我們的任務(wù),也滿足了我上圖的結(jié)論,正確分類了.也就是說(shuō),
我們希望得到下面的結(jié)論:
代入(-1,-1)的時(shí)候,模型輸出為-1
代入(+1,-1)的時(shí)候,模型輸出為+1
代入(+1,+1)的時(shí)候,模型輸出為-1
也就是說(shuō)滿足:-w1-w2+b<0
? ? ? ? ? ? ? ? ? ? ? w1-w2+b>0
? ? ? ? ? ? ? ? ? ? ? w1+w2+b<0
很容易通過(guò)學(xué)習(xí)w1,w2,b得到這樣的模型,比如5x1-2x2-4=0(x1為第一個(gè)神經(jīng)元的輸出,x2為第二個(gè)神經(jīng)元的輸出,注意通過(guò)階梯函數(shù),輸出只能是+1,-1了),滿足了我們的分類要求!!已經(jīng)成功的解決了異或問(wèn)題。
可能有同學(xué)會(huì)問(wèn),你這僅僅只解決了異或問(wèn)題呀?那加入其它限制條件呢?比如說(shuō)下圖:
如果是上圖的非線性分類問(wèn)題,不僅僅是簡(jiǎn)單的異或問(wèn)題,神經(jīng)網(wǎng)絡(luò)能夠解決嗎?答案是肯定的,我們可以在隱藏層加一個(gè)神經(jīng)元,在一開始倆個(gè)神經(jīng)元的作用下,再加入一個(gè)神經(jīng)元,它起到的線性效果是下圖(這里為了簡(jiǎn)單方便,我就畫一下投影圖):
在沒有加入第三個(gè)神經(jīng)元的時(shí)候,投影圖如下(倆個(gè)紅線之內(nèi)的是輸出為+1的樣本,之外的為輸出為-1的樣本):
但是這個(gè)圖只能解決異或問(wèn)題,并不能將最上面三角形正確分類,我們新加入的神經(jīng)元起到的效果只要滿足下面這個(gè)條件即可:
我們就很容易得到結(jié)論,我們又可以正確將要求的樣本正確分類了(每個(gè)區(qū)域應(yīng)該屬于哪個(gè)輸出-1還是+1,為了直觀我在圖上畫出來(lái)了~)!那么無(wú)論你是什么樣的數(shù)據(jù)樣本,我都可以理論上加入無(wú)數(shù)個(gè)隱藏層神經(jīng)元來(lái)逼近任意連續(xù)函數(shù)進(jìn)行我們的任務(wù)(有一個(gè)結(jié)論是無(wú)數(shù)個(gè)直線能夠逼近任意連續(xù)曲線,道理是一樣的)。
下面給出四個(gè)隱藏神經(jīng)元的輸出層可視化效果,這次的激活函數(shù)也不會(huì)階梯函數(shù)了,可能是sigmoid或者tanh等其它非線性激活函數(shù),但這些都不影響表達(dá)的本質(zhì)。
到這里,我已經(jīng)講完了我要說(shuō)的內(nèi)容了,只是根據(jù)自己的理解通過(guò)非常簡(jiǎn)單的例子想給大家一個(gè)直觀上的認(rèn)識(shí)和理解,希望能對(duì)大家理解有幫助,歡迎大家指錯(cuò)交流~
部分圖片來(lái)自于:Hugo Larochelle課程的slides
總結(jié)
以上是生活随笔為你收集整理的浅析神经网络为什么能够无限逼近任意连续函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 为什么梯度反方向是函数下降最快的方向
- 下一篇: 马斯克回应“X(推特)退出欧洲”传闻:完