A. 程序員轉行做人工智慧能成功嗎
AI,也就是人工智慧,並不僅僅包括機器學習。曾經,符號與邏輯被認為是人工智慧實現的關鍵,而如今則是基於統計的機器學習占據了主導地位。最近火熱的深度學習正是機器學習中的一個子項。目前可以說,學習AI主要的是學習機器學習。
我們推薦機器學習路線是這樣的,如下圖:
機器學習路線圖
這個學習路線是這樣設計的:首先了解這個領域,建立起全面的視野,培養起充足的興趣,然後開始學習機器學習的基礎,這里選擇一門由淺入深的課程來學習,課程最好有足夠的實驗能夠進行實戰。基礎打下後,對機器學習已經有了充足的了解,可以用機器學習來解決一個實際的問題。這時還是可以把機器學習方法當作一個黑盒子來處理的。實戰經驗積累以後,可以考慮繼續進行學習。這時候有兩個選擇,深度學習或者繼續機器學習。
深度學習是目前最火熱的機器學習方向,其中一些方法已經跟傳統的機器學習不太一樣,因此可以單獨學習。除了深度學習以外,機器學習還包括統計學習,集成學習等實用方法。如果條件足夠,可以同時學習兩者,一些規律對兩者是共通的。學習完後,你已經具備了較強的知識儲備,可以進入較難的實戰。這時候有兩個選擇,工業界的可以選擇看開源項目,以改代碼為目的來讀代碼;學術界的可以看特定領域的論文,為解決問題而想發論文。無論哪者,都需要知識過硬,以及較強的編碼能力,因此很能考察和鍛煉水平。經過這個階段以後,可以說是踏入AI領域的門了。
坦白的說,普通程序員轉機器學習並不是一件輕松的事情。機器學習卻需要截然不同的思維模式。「機器學習模型不是靜態代碼——你需要不斷為其提供數據。」正如谷歌大腦項目(Brain Residency)負責人羅伯森說,「我們一直在不停地更新模型,而且還要不斷學習,增加更多數據,調整預測方式。它就像是一個有生命的東西,這是一種截然不同的開發模式。」
當然你可以通過掌握一些開源框架如TensorFlow開源項目來加快學習進度。
B. it程序員需要注意哪些
IT程序員需要注意以下幾點:
持續學習新技術:
提升職業素質:
注重實踐能力:
培養溝通協作能力:
關注技術趨勢:
C. 想要轉人工智慧,程序員該如何學習
轉人工智慧的程序員學習的方法如下:
1、首先先將高等數學基礎知識學透,從基礎的數據分析、線性代數及矩陣等等入門;
2、其次就是Python,Python常被昵稱為膠水語言,能夠把用其他語言製作的各種模塊(尤其是C語言或C++)很輕松地聯結在一起,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C語言或C++重寫,而後封裝為Python可以調用的擴展類庫,這也是人工智慧必備知識;
3、接下來就是人工智慧的重點學習內容,如果是已經從業多年的程序員可以就此開始學習:
4、機器學習(MachineLearning,ML)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法復雜度理論等多門學科,它是人工智慧的核心,是使計算機具有智能的根本途徑,其應用遍及人工智慧的各個領域,它主要使用歸納、綜合而不是演繹;
5、推薦演算法是計算機專業中的一種演算法,通過一些數學演算法,推測出用戶可能喜歡的東西,推薦演算法就是利用用戶的一些行為,通過一些數學演算法,推測出用戶可能喜歡的東西,在人工智慧里起到一定的判斷作用;
6、人工智慧深度學習以及數據挖掘都是對機器學習的進一步探究,學習過程中不能缺少實際項目應用的操作,如果沒有實操性的學習在以後的工作中很難適應新項目;
7、分布式搜索引擎是根據地域、主題、IP地址及其它的劃分標准,將全網分成若干個自治區域,在每個自治區域內設立一個檢索伺服器的裝置,這些就是人工智慧主要應該學習的內容。
D. 鎬庝箞瀛︿範浜哄伐鏅鴻兘錛
絎涓姝ワ細澶嶄範綰挎т唬鏁般傦紙瀛︽福鐨勭嚎浠e繕浜嗗ソ澶-_-||錛
鎳掑緱鐪嬩功灝辯洿鎺ョ敤浜嗚憲鍚嶇殑鈥斺旈夯鐪佺悊宸ュ叕寮璇撅細綰挎т唬鏁幫紝娣卞叆嫻呭嚭鏁堟灉鎷旂兢錛屼互鍚庝細鐢ㄥ埌鐨凷VD銆佸笇灝斾集鐗圭┖闂寸瓑閮芥湁浠嬬粛錛
騫垮憡錛氳竟鐪嬭竟鎬葷粨浜嗕竴濂楃瑪璁 GitHub - zlotus/notes-linear-algebra: 綰挎т唬鏁扮瑪璁般
絎浜屾ワ細鍏ラ棬鏈哄櫒瀛︿範綆楁硶銆
榪樻槸鍥犱負姣旇緝鎳掞紝涔熷氨鐩存帴鐢ㄤ簡钁楀悕鐨勨斺旀柉鍧︾忓ぇ瀛﹀叕寮璇 錛氭満鍣ㄥ︿範璇劇▼錛屽惔鎮╄揪鏁欐巿鐨勮佺増cs229鐨勮嗛戱紝璁茬殑闈炲父緇嗭紙綆楁硶鐨勭洰鏍->鏁板︽帹婕->浼浠g爜錛夈傝繖濂楁暀紼嬪敮涓鐨勭己鐐瑰湪浜庢病鏈変粙緇嶆渶榪戝ぇ鐏鐨勭炵粡緗戠粶錛屼絾鍏跺疄榪欎篃綆楁槸浼樼偣錛岃╂垜鏄庣櫧浜嗙畻娉曢兘鏈夊悇鑷鐨勫簲鐢ㄩ嗗煙錛屽苟涓嶆槸鎵鏈夐棶棰橀兘闇瑕佺敤紲炵粡緗戠粶鏉ヨВ鍐籌紱
澶氳翠竴鐐癸紝榪欎釜璇劇▼閲岃︾粏浠嬬粛鐨勫唴瀹規湁錛氫竴鑸綰挎фā鍨嬨侀珮鏂緋誨垪妯″瀷銆丼VM鐞嗚哄強瀹炵幇銆佽仛綾葷畻娉曚互鍙奅M綆楁硶鐨勫悇縐嶇浉鍏沖簲鐢ㄣ丳CA/ICA銆佸︿範鐞嗚恆侀┈灝斿彲澶緋誨垪妯″瀷銆傝懼爞絎旇板湪錛欳S 229: Machine Learning (Course handouts)錛屽悓鏍烽潪甯歌︾粏銆
騫垮憡錛氳竟鐪嬭竟鎬葷粨浜嗕竴濂楃瑪璁 GitHub - zlotus/notes-LSJU-machine-learning: 鏈哄櫒瀛︿範絎旇
絎涓夋ワ細灝濊瘯鐢ㄤ唬鐮佸疄鐜扮畻娉曘
渚濈劧鍥犱負姣旇緝鎳掞紝緇х畫鐩存帴浣跨敤浜嗚憲鍚嶇殑鈥斺旀満鍣ㄥ︿範 | Coursera 錛岃繕鏄鍚存仼杈炬暀鎺堢殑璇劇▼錛屽彧涓嶈繃榪欎釜鏄鏋佺畝鐗堢殑cs229錛屽嚑涔庡氨鏄鏁欐庝箞鍦╩atlab閲屽揩閫熷疄鐜頒竴涓妯″瀷錛堣繖濂楁暀紼嬮噷鏈夌炵粡緗戠粶鍩烘湰姒傚康鍙婂疄鐜幫級銆傝繖濂楄劇▼鐨勭己鐐規槸闅懼害姣旇緝浣庯紝鎺ㄥ艱繃紼嬮潪甯哥畝鐣ワ紝浣嗘槸榪欎篃鏄瀹冪殑浼樼偣鈥斺旇╂垜涓撴敞浜庢妸鐞嗚鴻漿鍖栨垚浠g爜銆
騫垮憡錛氫綔涓氬弬鑰 GitHub - zlotus/Coursera_Machine_Learning_Exercises: Machine Learning by Andrew Ng from Coursera
絎鍥涙ワ細鑷宸卞疄鐜板姛鑳藉畬鏁寸殑妯″瀷鈥斺旇繘琛屼腑銆
榪樻槸鍥犱負姣旇緝鎳掞紝鎼滃埌浜哻s231n鐨勮劇▼瑙嗛 CS231n Winter 2016 - YouTube 錛屾潕椋為炴暀鎺堢殑璇撅紝涓昏茶繕鏈堿ndrej Karpathy鍜孞ustin Johnson錛屼富瑕佷粙緇嶅嵎縐紲炵粡緗戠粶鍦ㄥ浘鍍忚瘑鍒/鏈哄櫒瑙嗚夐嗗煙鐨勫簲鐢錛堝墠闈㈢炵粡緗戠粶鐨勪唬鐮佹病鍐欏燂紵榪欓棬璇懼寘浣犲棬鍒扮垎~鍒板勯兘鏄浠庨浂鎵嬪啓~錛夈傝繖闂ㄨ劇▼鐨勪綔涓氬氨鏇磋創蹇冧簡錛岀洿鎺ョ敤Jupyter Notebook甯冪疆鐨勶紝鍙浠ユ湰鍦拌繍琛屽苟鑷宸辨鏌ラ敊璇銆備富瑕佷嬌鐢≒ython浠ュ強Python緋誨垪鐨勭戝﹁$畻搴擄紙Scipy/Numpy/Matplotlib錛夈傝懼爞絎旇扮殑緲昏瘧鍙浠ュ弬鑰 鏅鴻兘鍗曞厓 - 鐭ヤ箮涓撴爮錛屼富瑕佺敱鐭ュ弸鏉滃㈢炕璇戱紝鍐欑殑闈炲父濂絶
鍦ㄥ氳翠竴鐐癸紝榪欓棬璇懼圭▼搴忓憳鏉ヨ存瘮杈冭蛋蹇冿紝鍥犱負榪欎釜涓嶅儚涓婁竴姝ヤ腑鐢╩atlab瀹炵幇鐨勪綔涓氶偅鏍峰嚲鍚戠畻娉曞拰妯″瀷錛岃繖闂ㄨ劇敤Python瀹炵幇鐨勬ā鍨嬪悓鏃舵敞閲嶈蔣浠跺伐紼嬶紝鍖呮嫭甯歌佺殑灝佽卨ayer鐨刦orward/backward銆佽嚜瀹氫箟緇勫悎layer銆佸備綍灝唋ayer緇勬垚緗戠粶銆佸備綍鍦ㄧ綉緇滀腑闆嗘垚batch-normalization鍙奷ropout絳夊姛鑳姐佸備綍鍦ㄥ嶆潅妯″瀷涓嬪仛姊搴︽鏌ョ瓑絳夛紱鏈鍚庝竴涓浣滀笟涓榪樻湁鎵嬪姩瀹炵幇RNN鍙婂叾鍩哄弸LSTM銆佺紪鍐欐湁鍔╀簬璋冭瘯鐨凜NN鍙瑙嗗寲鍔熻兘銆丟oogle鐨凞eepDream絳夌瓑銆傦紙鍋氬畬浣滀笟鍩烘湰灝卞彲浠ョ湅鎳傜幇鍦ㄦ祦琛岀殑鍚勭嶅浘鐗囬庢牸鍙樻崲紼嬪簭浜嗭紝濡 cysmith/neural-style-tf錛夊彟澶栵紝榪欓棬璇劇殑浣滀笟瀹炵幇闈炲父鎺ㄥ磭computational graph錛屼笉鐭ラ亾鏄涓嶆槸鎴戠殑騫昏??瑕佹敞鎰忕殑鏄璁插笀A.K鐨勮閫熷囧揩鏃犳瘮錛屽ソ鍦╕ouTube鏈夎嚜鍔ㄧ敓鎴愯В璇磋瘝鐨勫姛鑳斤紝鍑嗙『鐜囪繕涓嶉敊錛屽彲浠ュ綋瀛楀箷鐪嬨
騫垮憡錛氫綔涓氬弬鑰 GitHub - zlotus/cs231n: CS231n Convolutional Neural Networks for Visual Recognition (winter 2016) 錛堟垜鐨勫湪浣滀笟鐨刵otebook涓婂姞浜嗕竴浜涙帹瀵兼紨綆楀摝~鍙浠ョ敤鏉ュ弬鑰:D錛