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锛