點選上方“機器學習與生成對抗網絡”,關注"星标"
擷取有趣、好玩的前沿幹貨!
來源丨知乎問答
編輯丨極市平台
文授權自知乎,僅學術分享,著作權歸作者所有
觀點一
作者丨冒藍火的加特林
感覺這個問題跟我的科研方向有一點關系,是以就厚着臉皮強答一波了。
(1)動物的神經元都是以脈沖的形式進行資訊交流的,而脈沖是離散的,是以從數學角度人腦(往大了說就是動物)交換資訊的方式是離散的,也就是不能求導,是以就不存在所謂的“梯度”這一概念了;當然也有論文可以模組化,以一種僞bp的方式進行脈沖疊代,當然這就是後話了;

神經元的模型;樹突用來收集資訊,軸突用來發送資訊,二者又合稱神經突
(2)基礎知識準備:要解決題主的這兩個問題,首先就要知道人腦是怎樣基于脈沖的形式進行學習的:當一個神經元通過突觸(準确的說是軸突)傳輸脈沖到下一個神經元,下一個神經元收到脈沖後就會引起膜電位的上升,不發射脈沖的時候,由于神經元存在離子洩露,導緻膜電位下降;而當該神經元的膜電位達到一定門檻值的時候,就會發射脈沖到下下個神經元了,當然你也得讓神經元歇一會,在它發射脈沖後的一段時間内,你咋扒拉它,它也不射了,哦,不是,是不發射脈沖了(說白了就是賢者時間呗)。
神經元膜電位随前級神經元發射脈沖的關系:下面的綠條條就是脈沖,藍線線就是膜電位變化曲線,紅線線就是如果你不再來脈沖的話,膜電位的走向
上面說到,前級神經元發射脈沖會引起後級神經元膜電位變化,進而導緻後級神經元發射脈沖,完成信号傳遞;但是前級神經元的脈沖引起後級膜電位變化程度可是不一樣的!這就引出了大腦最重要的學習機制-STDP;啥意思呢?就是說前級脈沖引起後級膜電位的變化程度是與前後級神經元發射脈沖的時間差有關的。這個膜電位的變化程度,你可以了解為一種權重;而這種更新權重方法與時間是有關的,這也是和傳統神經網絡最不一樣的特點。
STDP學習機制:更新的權重随前後神經元發射脈沖的時間差之間的關系
(3)怎樣防止“梯度消失”:(1)中提到了,脈沖是離散的,是以其實是不存在梯度的,那麼我所了解的就是如果大腦在進行疊代過程中更新的權重過小怎麼辦?這個問題,就引出了大腦的長期記憶功能,“一朝被蛇咬,十年怕井繩”,你小時候遇見了一件非常可怕的事情為什麼你能夠記一輩子呢?這就引出了大腦的cell assembly(細胞叢集)的特點了,下圖就是大腦的功能分區,我們在處理一件事情的時候,可不是所有的分區都在工作的,其實隻用到了其中一部分,是以就本着誰的活誰幹的原則。如果你24小時幹同一件事情,大腦中負責你幹活的那塊區域不整點活兒不得被你活活累死。是以大腦的不同區域内部之間是存在叢集效應的,它們之間的互相緊密連接配接,互相抱團,有點類似與循環神經網絡的結構,由于綁定的非常緊密,突觸之間的權重也非常高;這就回答了你的梯度消失:大腦A分區平時不工作,消停待着,但是如果開始工作,隻要有一個脈沖進來,整個分區叢集就會瞬間被激活,進行工作,互相之間産生脈沖,互相之間更新權重,大腦就開始進入訓練階段了~!,如果你持續做事件A,A分區就會一直處于激活狀态,就像嚼了炫邁一樣;如果你突然不做A了,A分區就沒有外接刺激,由于神經元的不應期和STDP的學習機制,它就會一點點的萎下來,再次恢複待機狀态,是以也就不存在所謂的梯度消失;不知道我這樣說是否能夠算回答你的第一個問題;
大腦的分工和叢集效應
(4)怎樣防止“梯度爆炸”?那麼我所了解的就是如果大腦在進行疊代過程中更新的權重過大怎麼辦?這個其實反而很好解釋,根據(2)中神經元的特點,你會發現,更新權重其實隻與前級神經元和後級神經元有關,繼而大腦更新權重的方式就隻有兩層神經元的參與,是以就不會被滾起雪球來;同時為了怕更新權重過大把腦子燒壞了,還特意為神經元準備了不應期(也就是(2)中提到的賢者時間),後級神經元不能持續發射脈沖,根據STDP學習的規則,也就不能持續的一直的更新脈沖;
(5)最後,其實大腦是十分複雜的,而且神經元發射脈沖其實上是非常稀疏的。我所答的内容其實也存在很多不客觀或者不準确的地方,真心非常歡迎大家能夠一起讨論,批評指正~~!
原文連結:
https://www.zhihu.com/question/380335971/answer/1537460713
觀點二
作者丨哈佛孫一峰
現在大家普遍認為人腦并沒有像DNN那樣的梯度回傳機制...了解一點生物學就知道神經元的傳遞是單向的。但是至于能不能2個神經元一個前饋一個回傳?現在的研究并沒有發現...而且一般都是把這種連結看成循環結構的(RNN)。
其次新生的動物大機率不需要學習就能掌握很多基本的資訊處理能力。例如牛羊馬這些一生下來就能走路的。說明他們基因裡就預程式設計了走路運動,視覺等一些基本能力,而這些能力我們都是通過backpropagation訓練模型來達成的。人類之是以生下來看不清。現有的解釋大約是人類在出生時并沒有發育完全,不然嬰兒頭太大無法順利生産。
但是,大腦裡肯定是存在回傳error進而修改突觸權重的機制的。這一類機制裡現在最靠譜的就是predictive coding。
4月18号,Hinton老爺子昨天剛在nature上發了一篇paper。裡面提出了一種不需要backpropagation的local優化方法。感興趣的可以去下面這個連結看一下。
https://www.nature.com/articles/s41583-020-0277-3
論文中有一段專門講了一點先驗知識的部分。和之前答案的第二段觀點基本相吻合。
文章主要基于The NGRAD hypothesis。之前很多模型具體實作這個假設就是依托于predictive coding。本文在我看來也是類似于predictive coding的。沒有細讀,還有望其他大佬來糾正。
原文連結:
https://www.zhihu.com/question/380335971/answer/1086366831
觀點三
作者丨googol
1.為什麼會有梯度爆炸?
神經網絡的層數太多,對激活函數求導,如果結果大于1,由于随層數增加求出的梯度資訊指數增加,即為梯度爆炸。若小于1,則指數減小,即為梯度消失。
2.人腦是怎麼運作的?
是你給一個圖像進去人腦就全腦同時激活了嗎?顯然不是,大腦是分區激活的。但是,将資訊儲存在一個較遠的地方隻是人腦算法一個很小的部分,它與動物與人驚人的識物能力無關。我覺得它更多的與短時記憶的儲存(在變為長時記憶之前)有關。
3.先天結構?
拜托,現在人腦大塊的,廣泛分布的解剖結構和神經編碼機制都沒發掘完,就着眼小方向上的小結構了?皮質微柱,這個開發完了嗎?回傳通路呢,這個在大腦中比正傳通路都要多,這個應用了嗎?
4.關于先天結構的解讀?
現在AI研究認為人腦結構沒用多少是建立在對先天結構錯誤或片面的解讀上?典型的如大腦中大量的抑制性突觸。這個在主流觀點中被解讀為了這是大腦讓興奮維持在一個較均衡的值的方法,目的防止梯度爆炸或消失的發生,在AI研究領域表現為操作上表現為加上或減去一個高斯分布。但是那為什麼大腦越進階皮質區的神經網絡抑制性突觸更多?按照這個理論不應該中間層最多嗎?大量的對人腦結構的評估建立在以深度學習為基礎的标尺上,說的冷靜一點是盲目的假設深度學習是機器學習的終點,說不好聽一點那就是“鍵盤指揮大腦的行為”。
5.深度神經網絡一定要做深嗎?
顯然不是,大腦從來沒有這麼深的神經網絡,而且大腦的識物能力一點也不比現在的神經網絡弱(見第6條)。當然了,這還有一種解讀就是,自然沒我們聰明嘛,我們能做出80層,但人腦隻有6層,看我們多厲害,自然用6層可以解決,我們80層都解決不了嘛。
6.深度學習的缺陷?
不要說現在AI識物能力超過人類了。請問現在訓練的神經網絡,可不可以幫我們把一個生物(動物或植物)分類到種?可不可以充當智能生物圖鑒?(就是我輸入一個照片,它不是輸出蛾子,而是輸出草地貪夜蛾?)可不可以幫助我們發現環境中隐藏的拟态生物?不行,真不行。那有沒有人可以做到?真有!請搜尋“博物學家”。
7.未來的方向?
一種當然是變更算法,從基礎的層面去革新,而不能滿足小修小改,因為輸入的資料在現在的架構下并沒有被充分利用。一種當然是等待更大的計算機,然後整天幻想有了太陽那麼大的計算機,就可以實作強人工智能的美夢了。
8.為什麼一定要解決梯度爆炸(梯度消失)的問題?
對啊,為什麼一定要起解決呢?解決這個問題是未來AI發展必然的方向嗎?還是這隻是一種可能的途徑?
9.關于反向傳播算法。
雖然人們一直希望找到反向傳播算法的生理基礎,但可惜一直沒找到。反而出現了打擊反傳算法的證據,比如Hinton的膠囊神經網絡,就不是用反傳算法來實作機器學習的(雖然效率現在并不高)。
補圖:其實從圖中可以看出有六層(不算子層),且每層神經細胞形狀不同(大機率對應不同功能)但大腦中确實不存在單單一個皮質區(腦區)就有80層的神經網絡。不同于大多數,我恰恰認為大腦并沒有去解決梯度爆炸,而且很好的繞開了它,并且這使得它比任何現有的程式都強大。
原文連結:
https://www.zhihu.com/question/380335971/answer/1098719869
猜您喜歡:
附下載下傳 | 《Python進階》中文版
附下載下傳 | 經典《Think Python》中文版
附下載下傳 | 《Pytorch模型訓練實用教程》
附下載下傳 | 最新2020李沐《動手學深度學習》
附下載下傳 | 《可解釋的機器學習》中文版
附下載下傳 |《TensorFlow 2.0 深度學習算法實戰》
附下載下傳 | 超100篇!CVPR 2020最全GAN論文梳理彙總!
附下載下傳 |《計算機視覺中的數學方法》分享