在原本的世界裡,“誤差反向傳播算法”(error Back-Propagation,簡稱BP)出現得很早。
1974年,哈佛大學的Paul Werbos,在博士論文中首次發明了BP算法,可惜沒有引起重視。
1982年,David Parker重新發現了BP算法,然而,仍然沒有太大的反響。
到了1986年,Rumelhart、 Hinton 和 Williams三人發表了《Learning representations by back-propagating errors》,重新報道了這一方法。
從那之後,人工神經網絡中的誤差反向傳播學習算法,纔得到了應有的重視,並逐漸廣泛應用起來,奠定了神經網絡走向完善和實用的基礎。
BP算法的本質,其實是LMS(Least Mean Square)算法的推廣。
LMS試圖最小化網絡輸出的均方差,用於激活函數可微的知機的訓練。
只要將LMS推廣到由非線可微神經元組的多層前饋神經網絡,就得到了BP算法。
因此,BP算法也被稱爲廣義δ規則。
BP算法有很多優點,理論依據堅實、推導過程嚴謹、理概念清楚、通用強……
可以說,它爲多層神經網絡的訓練與實現,提供了一條切實可行的解決途徑,功不可沒。
但是也要看到,BP也有著自的侷限,比如收斂速度緩慢、易陷局部極小等。
慢點倒還不怕,可以通過調整超參數,或者升級件能來解決。
可一旦陷局部最優,就有可能無法得到全局最優解,這纔是真正要命的問題。
有時可以通過選擇恰當的學習速率,有限度地改善這個問題。
也有些時候無法徹底避免,只能“湊合著用”。
幸運的是,儘管理論上存在著種種不足,但在絕大多數景下,BP算法的實際表現都還不錯。
BP算法的基本思想,是將學習過程分爲兩個過程。
在進行訓練時,首先正向傳播。
將數據送輸層,然後從前往後,送各個藏層進行理,最後將結果送到輸出層,得到計算結果。
若計算結果與期(標籤)不符,則開始進行誤差反向傳播。
在這一步,通過損失函數計算實際輸出與期輸出的誤差E,然後從後往前,運用鏈式法則,逐層計算每個參數(w,b)相對於誤差E的偏導數。
這個過程就是反向傳播,從輸出層開始,一直進行到輸層爲止。
主要目的是將誤差E分攤給各層所有單元,從而獲得各層單元的誤差信號。
然後以此爲基準,調整各神經元的權重和偏置,直到網絡的總誤差達到度要求。
江寒只花了3天,就理清了BP算法的思路,又花了兩天,就將論文寫了出來。
這篇論文用到的數學公式相當多,但寫作的困難程度其實也就那樣。
複合函數連續求偏導,任何學過一點高數的人,都能很練地完。
而且,江寒重生前,在BP算法上著實下了點功夫,理解得還算徹。
因此很輕鬆就將其復原了出來。
寫完《神經網絡訓練中的誤差反向傳播算法》之後,江寒就開始琢磨,如何將手裡的這一批論文發表出去。
也不知道怎麼回事,那兩篇投往三區期刊的“多層知機”和“人工神經網絡”論文,迄今沒有任何迴音。
既沒有拒稿,也沒有進同行評議。
如果不是對投稿系統多有點了解,江寒差點就要懷疑,編輯是不是本沒看到自己的論文?
目前已經投稿出去的十幾篇論文裡,已經確定發表的,只有3篇。
分別是:投往4區期刊AIREV的《論如何高效判定數據是否線可分》;
投往1區期刊IEEE TEC(TRANSACTIONS ON EVOLUTIONARY COMPUTATION,電氣與電子工程師協會主辦,進化計算雜誌)的《馬爾可夫隨機場》;
以及用小號Dr.X投稿給AMC的《論知機的侷限——異或問題的無解》。
總共價值7個學點。
江寒的系統UI上,現在很明確地顯示著【學點:-14,7】。
從這也能看出,用小號投稿是完全沒問題的。
其餘的論文大部分都在審稿中,有的已經進了同行評議環節,但遲遲沒有進下一步。
也有幾篇關於“知機”應用的水貨論文,沒能通過同行評議,被雜誌社拒稿了。
江寒隨便改改,然後國拒稿的,投給了國外,國外打回來的,投給國。
反正不管怎麼樣,但凡有一點機會,都要試一試。
萬一發表了,學點它不香嗎?
與此相比,臉皮什麼的,一點都不重要。
14個學點的債務,才還了一半,安全起見,最好儘快將手頭的論文扔出去才行。
這需要等待“多層知機”和“帶藏層的神經網絡”問世。
可就這麼幹等著,始終拿不到準信,又讓人心裡有點不踏實。
如果能讓更多人關注到神經網絡技,應該可以提高一些論文的發表率吧?
那麼,如何引起別人關注呢?
江寒琢磨了一下,別說,還真讓他想到了一個辦法。
那就是參加機學習方面的各種競賽活。
只要在競賽中拿到好名次,爲黑馬,想讓業界忽視“人工神經網絡”都不太可能。
說幹就幹,江寒馬上打開電腦,上網查了起來,很快就找到了一大堆,各種各樣的比賽都有。
機學習方面的競賽,這些年裡層出不窮。
什麼大學生信息技創新應用大賽、國際大學生類腦計算比賽(iccbc)、國際智能語音及人工智能產品創新大賽、機閱讀理解技競賽……
此外還有各種計算機視覺、機學習方面的頂級會議:cvpr,iccv,eccv、nips……
不過,仔細一分析,江寒就發現,絕大部分都去不了。
首先Pass掉舉辦地點在國外的比賽和會議,忒麻煩,一沒護照,二沒邀請函,怎麼去?
其次,凡是大學生專屬的比賽,不走後門的話,目前也基本沒法參加。
最後,還要排除讀理解、智能語音等領域的各種比賽。
目前的人工神經網絡,還於雛形階段,在圖形、圖像識別之外的領域,還打不過其他技路線的算法。
而且,江寒本人對其他領域的涉獵也極爲有限,去了也是白去,拿不到像樣的績,怎麼“一鳴驚人”?
所以,最好是計算機視覺相關的比賽,而且比賽時間不能太遙遠,同時影響力還不能太小……
這樣一來,江寒經過一番篩選之後,結果就發現……
竟然一個能去的都沒有!
這就有點悲催了。
不過幸好,還有各種互聯網比賽。
國的網絡巨頭,如騰訊、滴滴、京東、螞蟻金服、百度等都會定期舉辦各種機學習方向的比賽。
國外也有DataCastle、Datafountain、Biendata、Kesci、Codalab、Crowdai等平臺。
其中阿里的天池平臺和Kaggle分別是國、國外的主流比賽平臺。
江寒登錄各個網一看,還真有兩家平臺,近期就將舉辦機學習方向的比賽。
其中距離最近的,是Kaggle面向全世界機學習好者,舉行的“全球機學習業餘好者大獎賽”。
時間就在11月13日,比賽容也是非常親民的MNIST手寫數字識別,賽事的規模和檔次也足夠。
這簡直就是爲“人工神經網絡”的初次亮相,量定做的一場比賽。
除了賽事被冠名以“業餘”兩字,讓人覺有點Low之外,一切都很頗費。
再一看網站首頁的公告,明天21點就截止報名了。
江寒當機立斷,馬上點擊了【報名】按鈕,然後註冊了個人信息。
搞定了這件事之後,他就開始整理行裝。
前幾天,老高打來電話,商量參加NOIP複賽的事。
今年的比賽時間定於11月10日,而今天已經是11月8日。
兩人約好了11月9日,也就是明天上午在學校集合,然後坐火車出發。
NOIP的複賽,一般每個省只設一個考點。
本省的考點就設在省會合江市。
江寒沒準備帶太多東西,反正又不是很遠的地方。
而且,去了那邊也是住賓館,即使什麼也不帶,也能住得很舒服。
所以,帶上點兒巾、牙什麼的,就可以輕裝上路了。
正忙著,有人輕輕地敲了敲門。
“進來吧。”江寒隨口應了一聲。
房門輕輕推開,夏雨菲苗條的影,輕盈地飄了進來。