精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

程序員怎樣轉向人工智能方向

工程師人生 ? 來源:工程師吳畏 ? 2018-12-17 14:33 ? 次閱讀

眼下,人工智能已經成為越來越火的一個方向。普通程序員,如何轉向人工智能方向,是知乎上的一個問題。本文是我對此問題的一個回答的歸檔版。相比原回答有所內容增加。

一。 目的

本文的目的是給出一個簡單的,平滑的,易于實現的學習方法,幫助 “普通” 程序員踏入AI領域這個門。這里,我對普通程序員的定義是:擁有大學本科知識;平時工作較忙;自己能獲取的數據有限。因此,本文更像是一篇 “from the scratch” 的AI入門教程

二。 AI領域簡介

AI,也就是人工智能,并不僅僅包括機器學習。曾經,符號與邏輯被認為是人工智能實現的關鍵,而如今則是基于統計的機器學習占據了主導地位。最近火熱的深度學習正是機器學習中的一個子項。目前可以說,學習AI主要的是學習機器學習。但是,人工智能并不等同于機器學習,這點在進入這個領域時一定要認識清楚。關于AI領域的發展歷史介紹推薦看周老師寫的《機器學習簡介》。下面一個問題是:AI的門好跨么?其實很不好跨。我們以機器學習為例。在學習過程中,你會面對大量復雜的公式,在實際項目中會面對數據的缺乏,以及艱辛的調參等。如果僅僅是因為覺得這個方向未來會“火”的話,那么這些困難會容易讓人放棄。考慮到普通程序員的特點,而要學習如此困難的學科,是否就是沒有門路的?答案是否定的。只要制定合適的學習方法即可。

三。 學習方法

學習方法的設定簡單說就是回答以下幾個問題:我要學的是什么?我怎樣學習?我如何去學習?這三個問題概括說就是:學習目標,學習方針與學習計劃。學習目標比較清楚,就是踏入AI領域這個門。這個目標不大,因此實現起來也較為容易。“過大的目標時就是為了你日后放棄它時找到了足夠的理由”。學習方針可以總結為 “興趣為先,踐學結合”。簡單說就是先培養興趣,然后學習中把實踐穿插進來,螺旋式提高。這種方式學習效果好,而且不容易讓人放棄。有了學習方針以后,就可以制定學習計劃,也稱為學習路線。下面就是學習路線的介紹。

四。 學習路線

我推薦的學習路線是這樣的,如下圖:

圖1 AI領域學習路線圖

這個學習路線是這樣設計的:首先了解這個領域,建立起全面的視野,培養起充足的興趣,然后開始學習機器學習的基礎,這里選擇一門由淺入深的課程來學習,課程最好有足夠的實驗能夠進行實戰。基礎打下后,對機器學習已經有了充足的了解,可以用機器學習來解決一個實際的問題。這時還是可以把機器學習方法當作一個黑盒子來處理的。實戰經驗積累以后,可以考慮繼續進行學習。這時候有兩個選擇,深度學習或者繼續機器學習。深度學習是目前最火熱的機器學習方向,其中一些方法已經跟傳統的機器學習不太一樣,因此可以單獨學習。除了深度學習以外,機器學習還包括統計學習,集成學習等實用方法。如果條件足夠,可以同時學習兩者,一些規律對兩者是共通的。學習完后,你已經具備了較強的知識儲備,可以進入較難的實戰。這時候有兩個選擇,工業界的可以選擇看開源項目,以改代碼為目的來讀代碼;學術界的可以看特定領域的論文,為解決問題而想發論文。無論哪者,都需要知識過硬,以及較強的編碼能力,因此很能考察和鍛煉水平。經過這個階段以后,可以說是踏入AI領域的門了。“師傅領進門,修行在個人”。之后的路就要自己走了。

下面是關于每個階段的具體介紹:

0.領域了解

在學習任何一門知識之前,首先第一步就是了解這個知識是什么?它能做什么事?它的價值在什么地方?如果不理解這些的話,那么學習本身就是一個沒有方向的舟,不知道駛向何處,也極易有沉船的風險。了解這些問題后,你才能培養出興趣,興趣是最好的引路人,學習的動力與持久力才能讓你應付接下來的若干個階段。關于機器學習是什么,能做什么,它與深度學習以及人工智能的關系,可以看我寫的博客 從機器學習談起:

1.知識準備

如果你離校過久,或者覺得基礎不牢,最好事先做一下準備復習工作。“工欲善其事,必先利其器”。以下的準備工作不多,但足以應付后面階段的學習。

數學:復習以下基本知識。線性代數:矩陣乘法;高數:求導;概率論:條件與后驗概率。其他的一些知識可以在后面的學習的過程中按需再補;

英文:常備一個在線英文詞典,例如愛詞霸,能夠不吃力的看一些英文的資料網頁;

FQ:可以隨時隨地上Google,這是一個很重要的工具。不是說百度查的不能看,而是很多情況下Google搜出來的資料比百度搜的幾十頁的資料還管用,尤其是在查英文關鍵字時。節省時間可是很重要的學習效率提升;

2.機器學習

機器學習的第一門課程首推Andrew Ng的機器學習。這門課程有以下特點:難度適中,同時有足夠的實戰例子,非常適合第一次學習的人。cs229 這門課程我這里不推薦,為什么,原因有以下:

時間:cs229 的時間太早,一些知識已經跟不上當今的發展,目前最為火熱的神經網絡一筆帶過。而Cousera上神經網絡可是用了兩個課時去講的!而且非常詳細;

教學:Ng在cs229 時候的教學稍顯青澀,可能是面對網絡教學的原因。有很多問題其實他都沒有講清楚,而且下面的人的提問其實也很煩躁,你往往不關心那些人的問題。這點在Coursera上就明顯得到了改善,你會發現Ng的教學水平大幅度改善了,他會對你循循善誘,推心置腹,由淺入深的教學,在碰到你不明白的單詞術語時也會叫你不要擔心,更重要的,推導與圖表不要太完善,非常細致清晰,這點真是強力推薦;

字幕:cs229 的字幕質量比Coursera上的差了一截。Coursera上中文字幕翻譯經過了多人把關,質量很有保證;

作業:cs229 沒有作業,雖然你可以做一些,但不會有人看。這點遠不如Coursera上每周有deadline的那種作業,而且每期作業提交上去都有打分。更重要的是,每期作業都有實際的例子,讓你手把手練習,而且能看到自己的成果,成就感滿滿!

3.實踐做項目

學習完了基礎課程,你對機器學習就有了初步了解。現在使用它們是沒有問題的,你可以把機器學習算法當作黑盒子,放進去數據,就會有結果。在實戰中你更需要去關心如何獲取數據,以及怎么調參等。如果有時間,自己動手做一個簡單的實踐項目是最好的。這里需要選擇一個應用方向,是圖像(計算機視覺),音頻語音識別),還是文本(自然語言處理)。這里推薦選擇圖像領域,這里面的開源項目較多,入門也較簡單,可以使用OpenCV做開發,里面已經實現好了神經網絡,SVM等機器學習算法。項目做好后,可以開源到到 Github上面,然后不斷完善它。實戰項目做完后,你可以繼續進一步深入學習,這時候有兩個選擇,深度學習和繼續機器學習;

4.深度學習

深度學習:深度學習是目前最火熱的研究方向。有以下特點:知識更新快,較為零碎,沒有系統講解的書。因此學習的資源也相對零散,下面是一些資源介紹。其中不推薦的部分并不代表不好,而是在這個初學階段不合適:

推薦,UFLDL: 非常好的DL基礎教程,也是Andrew Ng寫的。有很詳盡的推導,有翻譯,且翻譯質量很高;

推薦,Deep learning (paper):2015年Nature上的論文,由三位深度學習界的大牛所寫,讀完全篇論文,給人高屋建瓴,一覽眾山小的感覺,強烈推薦。如果只能讀一篇論文了解深度學習,我推薦此篇。這篇論文有同名的中文翻譯;

推薦,Neural networks and deep learning:這本書的作者非常擅長以淺顯的語言表達深刻的道理,雖然沒有翻譯,但是閱讀并不困難;

推薦,Recurrent Neural Networks: 結合一個實際案例告訴你RNN是什么,整篇教程學完以后,會讓你對RNN如何產生作用的有很清晰的認識,而這個效果,甚至是讀幾篇相關論文所沒有的;

不推薦,Neural Networks for Machine Learning - University of Toronto | Coursera:深度學習創始人教的課,最大的問題是太難,而且老先生的吐字有時不是很標準;

不推薦,Deep Learning (book):同樣也是由深度學習大牛所寫的書,但感覺就像是第二作者,也就是他的學生所寫的。很多內容都講了,但是感覺也沒講出什么內容來,只是告訴你來自那篇論文,這樣的話可能直接閱讀論文更合適。

不推薦,cs231n:李菲菲的課程,很有名,專門講CNN。但是這門課程有一個最大的問題,就是沒有字幕,雖然有youtube的自動翻譯字幕,但有還不如沒有。

5.繼續機器學習

深度學習未必就是未來的一定主流,至少一些大牛是這么認為的。傳統的機器學習有如下特點,知識系統化,有相對經典的書。其中統計學習(代表SVM)與集成學習(代表adaboost)是在實踐中使用非常多的技術。下面是相關資源:

推薦,機器學習(周志華):如果是在以前,機器學習方面的經典教材首推PRML,但現在周老師的書出來以后,就不再是這樣了。首先推薦讀周老師的書。這本書有一個特點,那就是再難的道理也能用淺顯精煉的語言表達出來。正如周老師的名言:“體現你水平的地方是把難的東西講容易了,而不是把容易的東西講難,想把一個東西講難實在太簡單”;

不推薦,Pattern Recognition And Machine Learning:當前階段不推薦。PRML是以貝葉斯的觀點看待很多機器學習方法,這也是它的一大特色。但對于初學者來說,這種觀點其實并無必要。而且此書沒有中文翻譯,當前階段硬啃很容易放棄;

6.開源項目

當知識儲備較為充足時,學習可以再次轉入實踐階段。這時候的實踐仍然可以分兩步走,學習經典的開源項目或者發表高質量的論文。開源項目的學習應該以盡量以優化為目的,單純為讀代碼而學習效果往往不太好。好的開源項目都可以在Github 里搜索。這里以深度學習為例。深度學習的開源優秀庫有很多,例如torch,theano等等,這里列舉其中的兩個:

推薦,DeepLearnToolbox:較早的一個深度學習庫,用matlab語言撰寫,較為適合從剛學習的課程轉入學習。遺憾的是作者不再維護它了;

推薦,tensorflow:Google的開源庫,時至今日,已經有40000多個star,非常驚人,支持移動設備;

7.會議論文

較好的課程都會推薦你一些論文。一些著名的技術與方法往往誕生于一些重要的會議。因此,看往年的會議論文是深入學習的方法。在這時,一些論文中的內容會驅使你學習數學中你不擅長的部分。有時候你會覺得數學知識儲備不夠,因此往往需要學習一些輔助課程。當你看完足夠的論文以后,在這個階段,如果是在校學生,可以選擇某個課題,以發論文為目的來學習研究。一般來說,論文是工作的產物。有時候一篇基于實驗的論文往往需要你寫代碼或者基于開源項目。因此開源項目的學習與會議論文的工作兩者之間是有相關的。兩者可以同時進行學習。關于在哪里看論文,可以看一下CCF推薦排名,了解一下這個領域里有哪些優秀的會議。下面介紹兩個圖像與機器學習領域的著名頂級會議:

CVPR:與另兩個會議ICCV和ECCV合稱計算機視覺領域的三大會,注意會議每年的主頁是變動的,因此搜索需要加上年份;

Conference on Neural Information Processing Systems:簡稱NIPS,許多重要的工作發表在這上面,例如關于CNN的一篇重要論文就是發表在上面;

8.自由學習

自由學習:到這里了,可以說是進入這個門了。下面可以依據興趣來自由學習。前階段不推薦的學習資源也可隨意學習,下面是點評:

cs229 :Ng寫的講義很不錯,其中關于SVM的推導部分很清晰,想學習SVM推薦;

Neural Networks for Machine Learning:大牛的視角跟人就是不一樣,看看Hinton對神經網絡是怎么看的,往往會讓你有種原來如此的感悟。其實看這門課程也等同于讀論文,因為幾乎每節課的參考資料里都有論文要你讀;

CS231n: Convolutional Neural Networks for Visual Recognition:最新的知識,還有詳細的作業。國內應該有團隊對字幕進行了翻譯,可以找找;

PRML:作為一門經典的機器學習書籍,是很有閱讀必要的,會讓你對機器學習擁有一個其他的觀察視角;

五。 總結

本文的目的是幫助對AI領域了解不深,但又想進入的同學踏入這個門。這里只說踏入,是因為這個領域的專精實在非常困難,需要數年的積累與努力。在進行領域學習前,充分認識自己的特點,制定合適的學習方法是十分重要的。首先得對這個領域進行充分了解,培養興趣。在學習時,保持著循序漸進的學習方針,不要猛進的學習過難資源;結合著學習與實踐相輔的策略,不要只讀只看,實際動手才有成就感。學習某個資源時要有充分的目的,不是為了學開源項目而看代碼,而是為了寫開源項目而看;不是為了發論文而寫論文,而是為了做事情而寫論文。如果一個學習資源對你過難,并不代表一定是你的問題,可能是學習資源的演講或撰寫人的問題。能把難的問題講簡單的人才是真正有水平的人。所以,一定要學習優質資源,而不是不分青紅皂白的學習。最后,牢記以興趣來學習。學習的時間很長,過程也很艱難,而只有興趣才是讓你持之以恒,攻克難關的最佳助力。

謹以此文與在學海中乘舟的諸位共勉。我就是一名普通程序員,剛剛轉入AI領域,還有很多不足。希望此文可以幫助到大家。

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

    關注

    1791

    文章

    46859

    瀏覽量

    237582
  • 程序員
    +關注

    關注

    4

    文章

    950

    瀏覽量

    29763
收藏 人收藏

    評論

    相關推薦

    程序員將消失”,李彥宏/黃仁勛都贊同,三大方向可“自救”

    電子發燒友網報道(文/吳子鵬)日前,百度創始人、董事長兼首席執行官李彥宏在央視《對話》?開年說的訪談中表示,以后其實不會存在“程序員”這種職業了,因為只要會說話,人人都會具備程序員的能力。“未來
    的頭像 發表于 03-12 00:18 ?3414次閱讀
    “<b class='flag-5'>程序員</b>將消失”,李彥宏/黃仁勛都贊同,三大<b class='flag-5'>方向</b>可“自救”

    Linux驅動程序程序員指南

    電子發燒友網站提供《Linux驅動程序程序員指南.pdf》資料免費下載
    發表于 11-22 15:53 ?0次下載
    Linux驅動<b class='flag-5'>程序</b><b class='flag-5'>程序員</b>指南

    嵌入式和人工智能究竟是什么關系?

    嵌入式和人工智能究竟是什么關系? 嵌入式系統是一種特殊的系統,它通常被嵌入到其他設備或機器中,以實現特定功能。嵌入式系統具有非常強的適應性和靈活性,能夠根據用戶需求進行定制化設計。它廣泛應用于各種
    發表于 11-14 16:39

    AI編程工具會不會搶程序員飯碗

    AI編程工具可輔助編程,減少手動編碼,提升效率,對程序員有積極影響也有挑戰。程序員需深化技能、拓寬知識應對。長遠看,AI與人類程序員將共生共榮。
    的頭像 發表于 11-08 10:17 ?111次閱讀

    第五屆長沙·中國1024程序員節開幕

    場精彩活動將輪番上演。超200名海內外技術人員圍繞人工智能、數據技術等前沿領域展開深入研討。 本屆1024程序員節中機器人與具身智能、大模型等主題引發熱烈討論;程序員、開發者如何利用生
    的頭像 發表于 10-25 15:42 ?157次閱讀

    《AI for Science:人工智能驅動科學創新》第一章人工智能驅動的科學創新學習心得

    周末收到一本新書,非常高興,也非常感謝平臺提供閱讀機會。 這是一本挺好的書,包裝精美,內容詳實,干活滿滿。 《AI for Science:人工智能驅動科學創新》這本書的第一章,作為整個著作的開篇
    發表于 10-14 09:12

    risc-v在人工智能圖像處理應用前景分析

    RISC-V在人工智能圖像處理領域的應用前景十分廣闊,這主要得益于其開源性、靈活性和低功耗等特點。以下是對RISC-V在人工智能圖像處理應用前景的詳細分析: 一、RISC-V的基本特點 RISC-V
    發表于 09-28 11:00

    名單公布!【書籍評測活動NO.44】AI for Science:人工智能驅動科學創新

    ! 《AI for Science:人工智能驅動科學創新》 這本書便將為讀者徐徐展開AI for Science的美麗圖景,與大家一起去了解: 人工智能究竟幫科學家做了什么? 人工智能將如何改變我們所生
    發表于 09-09 13:54

    【轉型必看】Java到AI,程序員的逆襲秘籍,轉行人工智能不再是夢!

    ?隨著技術的不斷進步,人工智能(AI)已經成為當今科技領域最熱門的話題之一。許多開發者開始考慮從傳統的軟件開發領域,如Java,轉向人工智能領域,今天小編和大家一起來探討Java開發者是否可以轉型到
    的頭像 發表于 07-31 14:42 ?874次閱讀
    【轉型必看】Java到AI,<b class='flag-5'>程序員</b>的逆襲秘籍,轉行<b class='flag-5'>人工智能</b>不再是夢!

    FPGA在人工智能中的應用有哪些?

    FPGA(現場可編程門陣列)在人工智能領域的應用非常廣泛,主要體現在以下幾個方面: 一、深度學習加速 訓練和推理過程加速:FPGA可以用來加速深度學習的訓練和推理過程。由于其高并行性和低延遲特性
    發表于 07-29 17:05

    人工智能輔助編程工具的定義和工作原理

    隨著人工智能(Artificial Intelligence, AI)技術的飛速發展,其在各行各業的應用日益廣泛。在編程領域,人工智能輔助編程工具作為一種創新的技術解決方案,正逐漸改變著程序員
    的頭像 發表于 07-05 18:00 ?1188次閱讀

    中國面向人工智能的數據治理 行業研究報告

    電子發燒友網站提供《中國面向人工智能的數據治理 行業研究報告.pdf》資料免費下載
    發表于 05-10 17:22 ?0次下載

    適者生存,程序員最終會流向哪……

    程序員沒有永遠的護城河!!就目前的互聯網大環境來看,it行業已經是……
    的頭像 發表于 03-11 17:11 ?388次閱讀
    適者生存,<b class='flag-5'>程序員</b>最終會流向哪……

    嵌入式人工智能的就業方向有哪些?

    嵌入式人工智能的就業方向有哪些? 在新一輪科技革命與產業變革的時代背景下,嵌入式人工智能成為國家新型基礎建設與傳統產業升級的核心驅動力。同時在此背景驅動下,眾多名企也紛紛在嵌入式人工智能
    發表于 02-26 10:17

    2024程序員的未來方向如何走?還看今朝

    這幾年的IT行業想必大家已經感受到了,Android、Java、前端等等程序員都經歷了大廠……
    的頭像 發表于 02-02 09:45 ?784次閱讀
    2024<b class='flag-5'>程序員</b>的未來<b class='flag-5'>方向</b>如何走?還看今朝