在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

約翰·卡馬克:學習神經網絡這一周

zhKF_jqr_AI ? 來源:未知 ? 作者:鄧佳佳 ? 2018-03-21 16:54 ? 次閱讀

熟悉電子游戲的讀者也許聽說過約翰·卡馬克(John Carmack),在游戲領域,這個名字稱得上是偶像級別的存在:3D引擎之父、第一人稱射擊游戲教父、電腦怪才……和那個時代的科技大牛一樣,他自學成才,考上名校,繼而輟學入職,投身游戲軟件開發。他是個兼具數學家和哲學家氣質的程序員,也是個只想寫出好代碼的純粹的天才。那么,面對洶涌而來的人工智能浪潮,這位老一輩的程序員會有什么看法呢?

經歷了一周努力學習,近日,約翰·卡馬克在他的Facebook上發表了一篇名為1-week experience learning neural networks from scratch的學習心得,引起了網友的廣泛關注,以下是論智編譯的原文

隔了這么多年后,我終于找了一個遠離工作事務紛擾的角落,撿起編程,以一個隱居者的心態學習了一周。在過去的幾年里,我的妻子一直慷慨地提供給我這樣的環境,但我始終無法從工作中脫身,連休假期間都不得安寧。

而現在,隨著我在Oculuss中工作進展的變化,我想從頭開始用C++編寫一些神經網絡實現。我計劃挑選的操作系統是標準、準確的OpenBSD,有人說我的選擇太隨意了,可事實證明它確實沒問題。

說實在的,雖然我一直很欣賞OpenBSD的想法——這是一個相對簡單同時又頗具見地的操作系統,它目標精準,重視程式碼的品質和工藝,但之前我并沒有用過它。Linux什么都好,可惜的是這些優點它都沒有。

這倒也不是說我是個UNIX geek。我最喜歡的還是Windows的Visual Studio,所以其實我完全可以回避這些問題。我只是單純覺得在老式UNIX風格下進行長達一周的沉浸式工作會很有趣,即使進度會慢一些。這是復古計算的一次冒險——是fvwm & vi,而不是vim,是BSD vi。

而且我并沒有真正探索完整個系統,因為我把95%的時間都花在基礎的 vi/make/gdb 操作上了。我很喜歡那些實用的幫助手冊頁面,雖然一直在摸索自己能在這個系統里做什么,但我實在不想上網直接搜。試想一下,我是在查閱30幾年前的老東西,如Tektronix terminal的手冊,這簡直不能更有趣。

有一點讓我比較驚訝,就是OpenBSD對C++的支持有點爛。G++不支持C++11,LLVM C++也不能很好地和gdb配合使用。我做gdb時系統崩了幾次,我懷疑是C++導致的。當然,你不用跟我說它可以升級,我就想用最基礎的操作系統。

現在回過頭來看,我應該是完全復古了,而且寫的東西完全符合ANSI C標準。和許多老程序員一樣,有幾天我會忍不住反思:也許C++并沒有我們想得那么好……雖然我還喜歡很多其他的東西,但用普通的C語言寫個小項目還難不倒我。當然,如果還有下次的話,我會試試Emacs,這是另一個我沒怎么接觸過的領域。

在這之前,我其實已經對大多數機器學習算法有了成熟的了解,而且也做過一些線性分類器和決策樹之類的工作。但出于某些原因,我還沒碰過神經網絡,這在某種程度上可能是因為深度學習太時髦了,導致我對它持保守意見,或許也有一些反思性的偏見。我還不能接受“把所有東西丟進神經網絡里,然后讓它自己整理”這種套路。

而本著復古主義精神,我打印了幾篇Yann LeCun的舊論文,然后脫機工作,假裝自己正身處某地的山間小屋,但現實是——我還是偷偷在YouTube上看了不少斯坦福CS231N的視頻,并從中學到了很多東西。我一般很少看這種演講視頻,會覺得有點浪費時間,但這樣“見風使舵”的感覺也不賴。

我其實不認為自己對神經網絡有什么獨特的想法和建議,但就個人體驗而言,這是高效的一周,因為我把書本上的知識固化成了真實經驗。我的實踐模式也很常規:先用hacky代碼寫一版,再根據視頻教程重寫一個全新的、整潔的版本,所以兩者可以交叉檢查,不斷優化。

我也曾在反向傳播上反復跌倒了好幾次,最后得出的經驗是比較數值差異非常重要!但很有趣的一點是,即使每個部分好像都錯得離譜,神經網絡似乎還是能正常訓練的——甚至只要大多數時候符號是正確的,它就能不斷進步。

對于最終得到的多層神經網絡代碼,我是很滿意的,也產生了未來繼續完善的想法。是的,對于這類非常嚴肅的問題,我一般會直接用已有的第三方庫,但在過去的一周內,很多時候我會自己寫單獨的.cpp文件和.h文件進行編譯,這也很方便。

現在我的CNN代碼還需要優化,我大概會花幾天時間做出一個干凈、靈活的實現。之前我把沒加進卷積的初始神經網絡放到MNIST上測試時,發現它居然比LeCun論文里的結果更好——單個包含100個節點的隱藏層在測試集上的error是2%,論文里的網絡更廣更深,但它的error有3%。這個發現有點出乎我的意料,最后我總結的原因是激活函數——ReLU和Softmax。

如果要說這一周的學習有什么最精彩的心得,那應該就是神經網絡非常簡單,它只需寥寥幾行代碼就能實現突破性的進步。我覺得這和圖形學中的光線追蹤有異曲同工之妙,只要我們有足夠的數據、時間和耐心,追蹤與光學表面發生交互作用的光線,得到光線經過路徑的物理模型,我們就能生成最先進的圖像。

同樣的,通過探索一系列訓練參數,我也對 overtraining/generalization/regularization 有了更深的理解。回家的前一夜,我開心地調起了超參數。為了保持專注,“訓練”肯定比“編譯”更糟糕!

小結

讀了約翰·卡馬克的心得,不知各位讀者獲得了怎樣的體驗。作為一名成功的資深程序員,卡馬克一直以來對編程的嚴苛要求是大家有目共睹的,而他這次抽出一周時間,以這么復古的形式學習神經網絡,這樣的娛樂精神堪稱業界清流。這項“新技能”可能不會給他帶來世俗的快樂,但在代碼中創造世界的樂趣使他感到幸福,卡馬克還是那個卡馬克。

除此之外,許多國外讀者又對深度學習的理論基礎產生了擔憂。正如文中所說的:“即使每個部分好像都錯得離譜,神經網絡還是能正常訓練——甚至只要大多數時候符號是正確的,它還能不斷進步”。就梯度下降而言,理論上我們想要的是不斷走“下坡路”,走“上坡路”的結果注定是不理想的。但從長遠來看,如果兩者都能提高模型預測的結果,那走下坡的意義又在哪里?

這個領域內的所有人都在追求各種進步,擔當他們被問及為什么,大多數答案只是“just work”,如果只看結果,我們又該怎么判斷哪些是真正重要的東西?也許對于什么是“進步”,我們也需要重新設定一個更嚴格的標準。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4797

    瀏覽量

    102414
  • 電子游戲
    +關注

    關注

    0

    文章

    39

    瀏覽量

    10039
  • 程序員
    +關注

    關注

    4

    文章

    954

    瀏覽量

    30207

原文標題:約翰·卡馬克(John Carmack):學習神經網絡這一周

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何優化BP神經網絡學習

    優化BP神經網絡學習率是提高模型訓練效率和性能的關鍵步驟。以下是些優化BP神經網絡學習率的方法:
    的頭像 發表于 02-12 15:51 ?571次閱讀

    BP神經網絡與深度學習的關系

    BP神經網絡與深度學習之間存在著密切的關系,以下是對它們之間關系的介紹: 、BP神經網絡的基本概念 BP神經網絡,即反向傳播
    的頭像 發表于 02-12 15:15 ?575次閱讀

    人工神經網絡的原理和多種神經網絡架構方法

    在上篇文章中,我們介紹了傳統機器學習的基礎知識和多種算法。在本文中,我們會介紹人工神經網絡的原理和多種神經網絡架構方法,供各位老師選擇。 01 人工
    的頭像 發表于 01-09 10:24 ?851次閱讀
    人工<b class='flag-5'>神經網絡</b>的原理和多種<b class='flag-5'>神經網絡</b>架構方法

    神經網絡辨識模型具有什么特點

    神經網絡辨識模型是種基于人工神經網絡的系統辨識方法,它具有以下特點: 非線性映射能力 :神經網絡能夠處理非線性問題,可以很好地擬合復雜的非線性系統。 泛化能力 :
    的頭像 發表于 07-11 11:12 ?710次閱讀

    BP神經網絡學習機制

    BP神經網絡(Backpropagation Neural Network),即反向傳播神經網絡,是種基于梯度下降算法的多層前饋神經網絡,其學習
    的頭像 發表于 07-10 15:49 ?971次閱讀

    BP神經網絡和卷積神經網絡的關系

    BP神經網絡(Backpropagation Neural Network)和卷積神經網絡(Convolutional Neural Network,簡稱CNN)是兩種在人工智能和機器學習領域
    的頭像 發表于 07-10 15:24 ?2097次閱讀

    rnn是遞歸神經網絡還是循環神經網絡

    RNN(Recurrent Neural Network)是循環神經網絡,而非遞歸神經網絡。循環神經網絡種具有時間序列特性的神經網絡,能
    的頭像 發表于 07-05 09:52 ?868次閱讀

    遞歸神經網絡是循環神經網絡

    遞歸神經網絡(Recurrent Neural Network,簡稱RNN)和循環神經網絡(Recurrent Neural Network,簡稱RNN)實際上是同個概念,只是不同的翻譯方式
    的頭像 發表于 07-04 14:54 ?1289次閱讀

    循環神經網絡和卷積神經網絡的區別

    循環神經網絡(Recurrent Neural Network,RNN)和卷積神經網絡(Convolutional Neural Network,CNN)是深度學習領域中兩種非常重要的神經網絡
    的頭像 發表于 07-04 14:24 ?1810次閱讀

    深度神經網絡與基本神經網絡的區別

    在探討深度神經網絡(Deep Neural Networks, DNNs)與基本神經網絡(通常指傳統神經網絡或前向神經網絡)的區別時,我們需要從多個維度進行深入分析。這些維度包括
    的頭像 發表于 07-04 13:20 ?1521次閱讀

    卷積神經網絡與循環神經網絡的區別

    在深度學習領域,卷積神經網絡(Convolutional Neural Networks, CNN)和循環神經網絡(Recurrent Neural Networks, RNN)是兩種極其重要
    的頭像 發表于 07-03 16:12 ?4896次閱讀

    如何使用神經網絡進行建模和預測

    神經網絡種強大的機器學習技術,可以用于建模和預測變量之間的關系。 神經網絡的基本概念 神經網絡
    的頭像 發表于 07-03 10:23 ?1084次閱讀

    卷積神經網絡訓練的是什么

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。本文將詳細介紹卷積神經網絡
    的頭像 發表于 07-03 09:15 ?772次閱讀

    卷積神經網絡和bp神經網絡的區別

    化能力。隨著深度學習技術的不斷發展,神經網絡已經成為人工智能領域的重要技術之。卷積神經網絡和BP神經
    的頭像 發表于 07-02 14:24 ?5666次閱讀

    神經網絡架構有哪些

    神經網絡架構是機器學習領域中的核心組成部分,它們模仿了生物神經網絡的運作方式,通過復雜的網絡結構實現信息的處理、存儲和傳遞。隨著深度學習技術
    的頭像 發表于 07-01 14:16 ?1273次閱讀
    主站蜘蛛池模板: 四虎影库网址 | 国产小视频网站 | 九九国产精品 | 中文字幕一区二区三区精品 | 国产精品久久久久久久久免费 | 米奇精品一区二区三区 | 亚欧色视频在线观看免费 | 国产伦精品一区二区三区 | 国产成人精品高清免费 | 色之综合网| 午夜影院免费在线观看 | 在线精品视频成人网 | 天天搞天天干 | 一区二区三区影视 | 日本不卡免费高清一级视频 | 国产美女视频黄a视频全免费网站 | 美女网站色免费 | 日本不卡在线视频高清免费 | 欧美日一级 | 亚洲一区二区三区免费视频 | 久久天天躁狠狠躁狠狠躁 | 五月婷婷激情在线 | 黑人干亚洲 | 深爱激情五月网 | 狠狠干狠狠干 | 国产精品麻豆va在线播放 | 色偷偷偷偷 | 天堂综合网 | 男人午夜视频 | 久久精品免视看国产成人2021 | 国内色综合精品视频在线 | 四虎国产精品永久免费网址 | 三级黄色在线观看 | 精品综合久久88色鬼首页 | 午夜爽爽性刺激一区二区视频 | 国产亚洲情侣久久精品 | 亚洲一区在线免费观看 | 国产偷窥女洗浴在线观看亚洲 | 天天综合天天色 | 色吧首页| 天天久久综合 |