❶ 普通程序員如何向人工智慧方向轉型
當下,人工智慧已經成為越來越火的一個方向。普通程序員,如何轉向人工智慧方向,是知乎上的一個問題。
這個學習路線是這樣設計的:首先了解這個領域,建立起全面的視野,培養起充足的興趣,然後開始學習機器學習的基礎,這里選擇一門由淺入深的課程來學習,課程最好有足夠的實驗能夠進行實戰。基礎打下後,對機器學習已經有了充足的了解,可以用機器學習來解決一個實際的問題。
這時還是可以把機器學習方法當作一個黑盒子來處理的。實戰經驗積累以後,可以考慮繼續進行學習。這時候有兩個選擇,深度學習或者繼續機器學習。深度學習是目前最火熱的機器學習方向,其中一些方法已經跟傳統的機器學習不太一樣,因此可以單獨學習。除了深度學習以外,機器學習還包括統計學習,集成學習等實用方法。
如果條件足夠,可以同時學習兩者,一些規律對兩者是共通的。學習完後,你已經具備了較強的知識儲備,可以進入較難的實戰。這時候有兩個選擇,工業界的可以選擇看開源項目,以改代碼為目的來讀代碼;學術界的可以看特定領域的論文,為解決問題而想發論文。
無論哪者,都需要知識過硬,以及較強的編碼能力,因此很能考察和鍛煉水平。經過這個階段以後,可以說是踏入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領域了解不深,但又想進入的同學踏入這個門。這里只說踏入,是因為這個領域的專精實在非常困難,需要數年的積累與努力。在進行領域學習前,充分認識自己的特點,制定合適的學習方法是十分重要的。
首先得對這個領域進行充分了解,培養興趣。在學習時,保持著循序漸進的學習方針,不要猛進的學習過難資源;結合著學習與實踐相輔的策略,不要只讀只看,實際動手才有成就感。學習某個資源時要有充分的目的,不是為了學開源項目而看代碼,而是為了寫開源項目而看;不是為了發論文而寫論文,而是為了做事情而寫論文。
本文來自公眾號:「大技術技術匯」,guanzhu了解大數據行業學習大數據技術和學習路線,還有免費學習資料放送。
如果一個學習資源對你過難,並不代表一定是你的問題,可能是學習資源的演講或撰寫人的問題。能把難的問題講簡單的人才是真正有水平的人。所以,一定要學習優質資源,而不是不分青紅皂白的學習。最後,牢記以興趣來學習。學習的時間很長,過程也很艱難,而只有興趣才是讓你持之以恆,攻克難關的最佳助力。
❷ 機器人什麼時候能夠寫代碼
截止到2014年,自己研發出可以寫代碼的機器人了。機器人完全自己寫代碼是不可能的,但是目前階寫段簡單的代碼沒問題。
2017年一款會編程的AI處於初級階段。能夠打敗初級程序員,但是對於中高段位程序員,AI還是不行的。
根據蓬勃和英特爾實驗室的研究人員表示,全球首個能自動生成完整軟體程序的AI機器人已經誕生,名為「AIProgrammer」。
自此,這個觸及程序員可能都無法完成的任務,就可以交給一台機器演算法了。據了解這個「AI程序員」是利用遺傳演算法和圖靈完備語言,這種演算法在理論上能夠完成任何類型任務。
機器人編程只要1小時
2014年中國互聯網大會創新創業大賽在位於建鄴區的極客站內舉辦。現場,南京321人才許曉毅給大家演示了機器人是怎麼編寫程序代碼的:
只見他在伺服器電腦上輸入文字指令,機器人就開始自動編寫程序,一行源代碼立刻在屏幕上編譯出來,1個多小時後,一個不算太復雜的程序就編寫好了,立刻可以運行。
據介紹,機器人程序員只要通過語言說明,就可以編寫出各行各業的軟體,有望大大提高工作效率,因此不僅是軟體行業的創新,對不懂軟體的傳統行業來說也能帶來很多便利。演示現場,項目引起了投資者和創業小夥伴們的濃厚興趣,不少人圍上來求體驗。
許曉毅和該項目所在的「孵化器」南理工技術轉移中心當即決定,將把一台機器人程序員「留」在極客站里,開放給廣大科技人才共享使用。
以上內容參考中國網-「解放」程序員,機器人編程只要1小時
以上內容參考中關村在線-機器人也會編程了 AI完爆初級程序員
❸ IT 和 AI 有區別嗎
IT是指信息技術,是指整個以電子計算機和通信技術為基礎而形成的產業,包括硬體和軟體。而AI是人工智慧,是IT的其中一個組成部分,是為了讓電腦(或其他智能機器)能夠模擬甚至超越人類的思維模式和學習能力,自主地完成某件工作並逐步積累經驗,從而形成除人類之外另一種智慧存在的前沿科技。
❹ 人工智慧會不會取代程序員的工作
不可能。(能幫助甚至自主編程的)專家人工智慧可以解放(程序員的)生產力。使軟體成本降低,並使人專注於設計。類比:就像聯合收割機取代不了農民工作一樣。以軟體開發為例:需求分析與設計需要大量的腦力勞動,這一部分目前不可能被AI替代,近幾十年也沒希望。設計後的編碼主要是體力勞動,近幾十年不斷有新語言、新模式、新框架來減少編程中的體力勞動甚至減少腦力勞動,並取得了很大進展。至於AI,已經有一些AI輔助寫代碼了,如微軟的IntelliCode,但絕對談不上能替代程序員。
❺ 人工智慧程序員是不是碼農
人工智慧程序員不是碼農。
碼農是指軟體開發的人,隨著時代的變化,很多IT工程師也自嘲為「碼農」。從現有軟體中提取出代碼片段並不難,很多人類程序員也會這樣做,只需要明確每條代碼的意義,並將其用於完全不同用途的另一程序。
人工智慧(Artificial Intelligence),英文縮寫為AI。它是研究、開發用於模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學。
然而不同於人類程序員的是,AI能夠在很大范圍內全面搜索現有程序,並用獨特方式整合在一起,這些是人類程序員不太容易想到的方式。此外可以肯定的是,整個編碼過程也會大大加快,DeepCoder在幾分之一秒內就能編寫一個程序。
可以想見的是,程序員的工作效率會有一個質的飛躍,從前靠人力的編程手段,「進化」到自動化的編碼行為。未來的工作模式,將會是一場新的工業革命,未來的行業中,智力產出品最終也可以像工業品一樣流水生產,這樣一來人類就可以免除重復性的腦力勞動,投入到更有價值的事情中去。
人工智慧是對人的意識、思維的信息過程的模擬:
它不是人的智能,只能模仿人得思考能力。它是理性的,將來它可以替代機器學習,在任何狹窄的領域,看到大量的數據,是人腦完全不能夠和它競爭的。但這也只能是它對人類數學能力得延伸和延展。而在廣泛,宏觀得領悟里,它是無法像人一樣有感情的互動,文化的創新,對不同人心理的揣摩,對音樂,藝術,詩歌的鑒賞,這些能力是它們無法替代的人的功能。
它只能是人類計算功能的替代,而永遠沒法超越人類的思辯能力。所以,它沒法替代開發它的人。人和智能機器還是存在客觀差別的,只能無限的接近,但是完全取代是不可能的;有人說的對,機器人的bug還是需要我們修復滴!作為好的遠景,當然希望能夠取代一些重復較勞累的「勞動」,減輕成本,提高效率,是可以實現的;但是創新,優化升級,多重構造還是要源於人類大腦思維。
❻ 未來50%的工作都將被人工智慧給取代,程序員會被機器人取代嗎
首先程序員這個行業和其他行業一樣也是分等級的。
雖然非常不想用「底層從業者」這五個詞來定義最低層次的程序員,但事實就是如此。
當行業的某個技術領域發展成熟到一定程度時,這個領域的大部分從業人員真的會被機器人所取代,准確的說,不只是被機器人所取代,也會被自動化系統所取代。舉一個最近的例子吧,網路發布的產品PaddlePaddle。
【PaddlePaddle是集深度學習核心框架、工具組件和服務平台為一體的技術先進、功能完備的開源深度學習平台,已被中國企業廣泛使用,深度契合企業實際應用需求,並擁有活躍的開發者社區生態。提供豐富的官方支持模型集合,並推出全類型的高性能部署和集成方案供開發者使用。】
從上面的描述介紹中就可以一窺究竟的。
【核心框架】、【工具組件】和【服務平台】這三個詞的重量真的令人深思。因為這意味著:
不用再自己搭深度學習的框架了,不用到處找工具了,集常用的組件和工具於一體,你只需要專注的干著自己的事情就可以了。
只會搭框架、搬運代碼的程序員真的會被淘汰掉的。
但是目前為止,因為公司財力、技術人員儲備不足等客觀原因,還是需要會搭框架、會搬運代碼的程序員的。
其次,提出這個問題,或許你的思維是靜止的。
應該在「程序員」三個字之前加四個字的定語,【不學習的】程序員肯定會被機器人所取代,這點毫無疑問。
【程序員】是一個升級打怪的職業,【優秀程序員】是一路不斷學習上來的,【終身學習者】這個名詞最適合「程序員」。因為程序語言的變化真的很快,技術發展很迅速。不學習,跟不上時代發展需要。科技社會的最大特徵就是一個字「快」。
【唯快不破】、【快速迭代】成了他們的標簽。
最後,機器人不具備的思維恰恰是人類的優勢,也必然是程序員的優勢。
有系統思維、能進行底層架構的程序員根本不會被機器人所取代。
這里有一個很明顯的例子就是: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領域了解不深,但又想進入的同學踏入這個門。這里只說踏入,是因為這個領域的專精實在非常困難,需要數年的積累與努力。在進行領域學習前,充分認識自己的特點,制定合適的學習方法是十分重要的。
首先得對這個領域進行充分了解,培養興趣。在學習時,保持著循序漸進的學習方針,不要猛進的學習過難資源;結合著學習與實踐相輔的策略,不要只讀只看,實際動手才有成就感。學習某個資源時要有充分的目的,不是為了學開源項目而看代碼,而是為了寫開源項目而看;不是為了發論文而寫論文,而是為了做事情而寫論文。
本文來自公眾號:「大技術技術匯」,guanzhu了解大數據行業學習大數據技術和學習路線,還有免費學習資料放送。
如果一個學習資源對你過難,並不代表一定是你的問題,可能是學習資源的演講或撰寫人的問題。能把難的問題講簡單的人才是真正有水平的人。所以,一定要學習優質資源,而不是不分青紅皂白的學習。最後,牢記以興趣來學習。學習的時間很長,過程也很艱難,而只有興趣才是讓你持之以恆,攻克難關的最佳助力。
❽ 有人說,人工智慧將來可替代程序員寫代碼,你怎麼看
你好!我是康哥! 未來不光是人工智慧會取代程序員寫代碼,我認為很多行業都有可能被取代!
作為80後的我小時候沒有電腦,父母那一輩基本上班的時候也都沒接觸過電腦,那個時候工作文稿都是用手寫,而到我上了大學,短短18年的時間電腦在中國得到了普及。讓我印象最深的是我參加工作的時候公司的老會計,業務能力不在話下,但是金蝶用友玩的不轉。後來也不得不順應時代的發展,學習電腦知識。
所以人工智慧現在看似是一個很新興的產業,但是很可能在未來的十幾年當中滲入我們生活中的方方面面。
那些重復性的工作,例如人力資源中的考勤工資;財務中的基礎做賬工作;程序員中的基礎代碼工作;甚至醫院的醫生都會被人工智慧取代 。
未來不會被渠道的是一些重復性工作不強的職位,我認為這個實際上就是效率的提升,電腦代替手工勞動,機器代替人的大腦和手腳,讓我們的生活更加有效率。
我認為是一件好事情,能讓我們有更多的時間去開發新事物。不斷地開發我們的大腦去 探索 新事物。
但是從另外一個方面來看,未來的確有很多人會失業。不管是現在我們常見的一些崗位,包括一些看似穩定的鐵飯碗,例如公務員或者事業單位人員,一些職能性的但是效率底下的職位也將會被取代。
這就提醒我們每個人都要居安思危,不斷提升自己的技能和附加值,這樣才不會被 社會 所淘汰,二十年時間看似很長,但是實際很短。
AI能代替我們的是一些能夠重復的工作和簡單的開發工作,可是誰來維護這些人工智慧,如何管理這些人工智慧我認為未來是我們人類職位的一個新增項。
作為一名IT行業的從業者,同時也是一名計算機專業的教育工作者,我來回答一下這個問題。
首先,隨著人工智慧技術的不斷發展,未來大量基礎的編碼工作必然會由智能體來完成,這個過程也會不斷推動程序員的崗位升級,提升程序員的崗位附加值,同時減輕程序員的工作壓力。實際上,人工智慧技術的發展對於未來延長程序員的職業生命周期具有重要的意義。
當前程序員崗位的工作壓力還是比較大的,不僅應用級程序員每天需要完成大量的編碼工作,研發級程序員也需要面對一些毫無能力提升的編碼工作,這在很大程度上降低了程序開發的樂趣,使得程序員感到乏味。隨著當前產品迭代的速度不斷加快(大數據時代的並行迭代),程序員不僅面臨更大的工作量,在工作內容上也得到了一定的拓展(全棧開發趨勢),所以當前從事程序員崗位還是具有一定難度的。
要想讓程序員從當前的工作壓力當中解放出來,採用智能體實現代碼編寫是非常重要的一個解決方案,這不僅會提升程序開發的效率,同時也會保障程序代碼的質量一致性,提升程序的穩定性。實際上,當前在程序開發領域內已經有不少工具可以完成一部分代碼的生成工作,雖然目前功能還不夠強大,但是已經在一定程度上減輕了程序員的編碼負擔。
未來當智能體替代程序員完成基本的編碼工作之後,程序員可以把更多的精力應用在創新方面(演算法設計、模式設計、框架設計等),而且技術驗證的速度也會明顯提升,這些都會提升程序員的工作效率。
如果有互聯網、大數據、人工智慧等方面的問題,或者是考研方面的問題,都可以在評論區留言,或者私信我!
有人說,人工智慧將來可替代程序猿寫代碼,你怎麼看?
好!
科技 這么發達,
完全有可能,
但是,
怎麼發達,
有一些程序還是離不開人的操作,
程序猿,
有些程序必須靠人工才能完,
這個毋庸置疑,
不論智能怎麼發達,
有些人的操作,
永遠取代不了的,
這個倒是真的,
有一些事物,
是人工智慧無法完成的,
到任何時候人,
都不會被智能取代消退,
總有一些程序交給人,
來操作!
都是些不深入ai的媒體炒作概念,讓人覺得ai無所不能。一百二十八年內不可能,有的話也是小打小鬧,滿足不了工業屆千變萬化的需求。ai可以輔助創作,但獨立創作,尤其是代碼,絕無可能。
如果ai將來能寫可執行的邏輯正確的代碼,那麼未來的程序員或演算法工程師,都會大部分失業。如果ai都能按邏輯寫代碼,都可以去嘗試各種邏輯,甚至自己決策。那麼ai可以控制各種帶有晶元的設備,小到手機,大到 汽車 。這還是ai么,這不是上帝之子么。
可能你從github喂海量的代碼給到模型,藉助於大數據和gpu算力出來,理論上來說能訓練出一個號稱能寫代碼的ai.但這個ai寫出的代碼都是基於統計規律的,不能處理突發事故。運氣好的話,生成的代碼能執行,但代碼越長,生成的代碼可運行的概率越低。
即使能運行,代碼的邏輯是什麼?
程序員和產品經理干架,就是因為需求會一直變。你期望ai能寫出滿足千變萬化的需求的代碼?
我們從幾十億年的單細胞生物進化到今天,能不能有點自信?要是ai這么厲害,我覺得我沒臉說我是人了。總之,怎麼可能!
將來我們寫代碼時:
總之,ai可以輔助程序員編程,極大提高編程效率。但如果代替程序員自己編程,根本不可能。如果有那一天,我把我現在的手機吃了。
這幾年,人工智慧被炒的越來越熱了,比如阿里的魯班系統能夠自動生成雙十一海報,一天可能出圖上億張;還有通過機器學習,程序畫的話,被賣到上億元;其實就目前來講,這些都是比較基礎的,人工智慧即使畫畫,也是通過機器學習別人的畫之後,說白了, 組合的。沒有靈魂作為支撐的產品,不能說沒有價值,但是在意義層面來講絕對是非常弱的。
人工智慧在將來可以替代程序員寫代碼嗎?我只能說:有可能,而且即使人工智慧代替程序員寫代碼,也是比較基礎的,其實,隨著現在程序工具化的趨勢,已經解放了程序員,如果人工智慧+工具化,在一些基礎的,機械的編程中,確實能夠讓程序員解放出來,去處理更加復雜的業務邏輯和架構設計。
但是,我感覺人工智慧完全取代程序員是不可能的。因為,機器永遠也不想到人類復雜的需求,尤其是,變來變去的需求變化。如果機器能夠有靈魂的話,估計也會被人類復雜且變來變去的需求,折磨的要死,從而發出一句,感嘆:卧槽,這是什麼玩意的破需求。
但是,去年有一條新聞值得我們關注,那就是:
Repairnator 是由 KTH 瑞典皇家理工學院的軟體技術教授 Martin Monperrus 開發。它會監控開源軟體在持續集成期間發現的 bug,並嘗試自動修復它們。如果它成功合成了一個有效的補丁,那麼 Repairnator 會偽裝成人類身份向人類開發者提交此補丁。到目前為止,Repairnator 已經成功生成了 5 個補丁,並被人類開發者永久地合並到代碼庫中。
這是自動程序修復軟體工程研究中新的里程碑。
所以,現在機器都可以修改 bug 了,將來在一定程度上寫程序,也是有可能的,但是完全取代我認為不現實。
原因如下:
當然了,如果機器能夠完全取代人類編程的話,那非常可怕啊,未來有可能將是被機器控制的時代,而不是人類控制機器的時代。
有人說,人工智慧將來可以取代程序員來寫代碼,這個理由不成立,因為人工智慧就是程序員開發出來的。而且現在所謂的人工智慧遠遠沒有達到真正意義上的智能,大部分還是人工更多一點。
如果以人類的生命成長階段來看,人工智慧目前只能算是嬰兒階段,在嬰兒階段就拋棄喂養自己的母親程序員,那為時也太早了。
人工智慧大體分兩個大的方向,圖像識別和機器學習。目前圖像識別成長的比機器學習更快一點,但也僅限於快一點兒,我們常見的圖像識別場景就是無人駕駛。而機器學習發展相對緩慢,都是在初級階段,如果想要有階段性的變化,在演算法機制上要有突破性的進步,才能引領機器學習進入下一階段。
所以至少在未來幾十年甚至上百年我認為我們程序員都不會失業的,還是有飯吃的。
所謂人工智慧的程序也是由人類開發設定的,它也絕不會取代人的作用,它對美學,結構想像力設計,邏輯多向思維甚至懸思學都無法深入涉足,它就像一個架構師將演算法和公式公布出來,其它基礎部分由代碼來完成一樣,就算將來人工智慧也可以進行相關研發,但審核與檢測仍然需要人類完成,人類的工作只會越來越高級。
所以不用杞人憂天,人工智慧是不可能真正成為人類的思維一部分的,當它的工作目標對人類無意義而虛耗電能和時間的時候,人類是一定會及早發現並介入的,一個簡單的拔電源就可以停止其行為……
人工智慧是近階段大家經常提到的一個話題,其中神經網路深度學習其中一個特點,那麼人工智慧最終真的能達到一般人類這樣去思維么?能夠像程序員那樣的編程么?會不會以後有一天真的能替代程序員了吧,這件事情你是怎麼看待的?針對這事情我來說一下我的看法。
人工智慧會讓程序員的工作效率更高,十年之內不可能完全代替程序員
在CSDN上有一篇報道,有一個名字為Screenshot-to-code-in-Keras的項目可以把一些稿件自動變成一堆html代碼加css代碼,有的前端程序員就可能為此而感覺到恐慌,感覺以後人工智慧要替代自己的飯碗了,這樣的事情也不足為奇,在人工智慧這個概念還沒有興起之前,一些java程序員使用ide開發工具就能生成一堆代碼,節省了開發效率。感覺起碼在近五到十年內感覺人工智慧還不能完全替代人類程序員這樣去編程,就以前端代碼為例,雖然html代碼加效果類css讓人工智慧生成代碼,可能人工智慧在這方面戰術上完勝,但是一些戰略問題它還是遠遠不及人類的。
其一它生成的東西能確保是人類想要的嗎?,如果不符合要求是不是需要人類程序員來調整,人工智慧不可能做出一套適應所有場景的東西出來。
其二前端程序員是要與後端程序員進行對接的,在對接時各個參數,怎麼調用了,相當復雜,兩個人類程序員(前端程序員與後端程序員)還需要溝通好長時間,難道人工智慧就能那麼完美理解人類的意思就不需要溝通了么?
近5到10年內的情況可能是這樣的,一些低級的常規的代碼都可能會是自動生成,一些組織調整的工作交給人類程序員來進行處理,最後項目的質量當然還是有人類進行負責的,由人工智慧的加持,程序員的工作效率可能會大大提高,以往傳統開發需要幾周的工作量可能會縮減到幾天甚至更短。
未來上層領域的程序員數量會減少
隨著時間再往後發展,我想一些上層代碼會逐漸由人工智慧程序自己完成了,可能寫代碼的不再是程序員了,比如說可能是一種操作軟體的形式存在,有著成熟的操作界面,良好的操作體驗,一個非技術人員通過界面輸入自己想要的東西,通過一定的規則描述,然後就會生成相應的代碼並能直接運行。或者比這個更先進,不是一個軟體界面的形式存在,而是一個智能硬體設備,只需要對其說話,像與人類說話那樣,說出自己的需求,智能設備就能在短時間內做出自己想要的東西。
如果真能達到這種程度的話,我想未來參與業務開發的程序員的數量將會急劇減少,但是 不可能減少到為0,因為人工智慧做出的東西也不可能是完全有保證的,起碼需要個別人還需要進行對項目代碼進行負責不是嘛,就想現在的無人駕駛車為啥還留有方向盤一樣。上層開發的人員少了,人工智慧這些底層開發的程序員會更吃香了,甚至數量會多起來。
軟體數量和規模將成倍增長
大家都知道程序做事效率是相對高的,人類做項目是用天,周,年為單位來計算的,那麼這些軟體交給人工智慧處理應該是秒級別的吧,如果是大一點的項目頂多是分鍾了。如果是這樣的話,估計人類世界軟體的發展速度將會達到一個新的高度,軟體的數量和規模將是幾何倍數的增長。
如果真是這樣一天的到來,我想人類在學習和思想上都要有策略上的改變,以前經常在嘴邊說的話,要勤奮,要多動手,未來的人類要做的事情,就是要多思考,勤於思考。動手的事情就交給人工智慧去吧。
那是必然的。不僅程序,看病,甚至很多方面都可以,但是,那種機械的,生冷的東西在幾何級數提高效率的同時也會鑄成,無論如何,這個趨勢不可阻擋,是喜是憂?需要蓋棺定論。
電腦只能處理精確到指令,需求一開始往往是很模糊的,以目前人工智慧自然語言語義理解的發展程度,可能性很低。
❾ 普通Web 開發程序員想轉行做 AI,有必要考研嗎
考研應該是最快的入門AI的途徑:
Web程序開發,僅僅是一種技能,不涉及到數學、信息等學科的基礎知識;人工智慧涉及了大量的數學、信息學的知識,如果沒有一個系統的學習,很難入門;
現在最前沿的AI,肯定是在頂級期刊中發表出來的,如果沒有系統的科研訓練,很難掌握這些最新動態。
我覺得是有必要考研的
❿ 編程和人工智慧有什麼區別
無人機編程和計算機編程區別為:知識不同、操作不同、適合人群不同。一、知識不同1、無人機編程:無人機編程不僅涉及編程的知識,還需要了解無人機飛行原理等方面的知識。2、計算機編程:計算機編程需要的是編程相關的知識。二、操作不同1、無人機編程:無人機編程是通過給無人機編寫程序,讓無人機完成相應的指令。2、計算機編程:計算機編程是直接在電腦上操作,沒有實物要求。三、適合人群不同1、無人機編程:無人機編程強調動手能力,適合低齡兒童操作。2、計算機編程:計算機編程強調邏輯思維,適合專業技術程序員操作。