軟件工程師如何轉行做人工智能?

wobushinv


軟件工程師轉行做人工智能是一個不錯的選擇,但是要根據自身的知識結構進行相應的準備。對於研發級軟件工程師(研發級程序員)來說,轉行做人工智能是相對比較容易的,因為研發級工程師往往都有紮實的算法基礎。對於應用級軟件工程師(應用級程序員)來說,轉行做人工智能需要一個系統的準備(學習)過程。

人工智能目前的研究方向比較多,比如自然語言處理、機器學習以及計算機視覺都是不錯的研究方向,下面就以機器學習為例,說一下作為應用級軟件工程師來說,都應該做好哪些準備。

首先,需要系統的學習一下算法知識。機器學習的研發是以算法為核心進行展開的,所以要有一個紮實的算法基礎。這個過程需要了解一些比較經典的算法設計過程,逐步培養起解決問題的思路。這部分的學習內容包括隨機算法、堆排序算法、快排、計數排序、貪心算法、核算法、勢能法、圖算法、多線程算法、數論算法和近似算法等,在學習算法的過程中也會連帶著把數據結構一併學習一下,因為算法和數據結構本就不分家。

其次,瞭解機器學習的實現步驟。機器學習的流程包括數據收集、數據整理、算法設計、算法實現、驗證算法和應用算法,數據收集是機器學習的第一步,目前可以用於機器學習的公共數據集並不少,對於實驗來說已經夠用了。接下來就是了解常見的機器學習算法,目前比較常見的機器學習算法包括NB、k-mean、kNN、SVM、Apriori、EM、PageRank、CART等算法,對於有算法基礎的人來說,這些算法的學習並不困難。

最後,選擇一門編程語言來實現這些算法並對其進行驗證。對於軟件工程師來說,這個步驟還是相對比較輕鬆的,目前使用Python做機器學習的算法實現是一個比較常見的做法。

人工智能是我的主要研究方向之一,目前我也在帶相關方向的研究生,我會陸續在頭條寫一些關於人工智能方面的文章,感興趣的朋友可以關注我,相信一定會有所收穫。

如果有人工智能方面的問題,也可以諮詢我,謝謝!


IT人劉俊明



首先人工智能肯定是未來的一個方向,無論是否想轉行,都有必要去了解人工智能技術。


其次我認為學習人工智能主要有四種境界,你需要確定自己需要達到哪種境界,才好確定你的努力方向和策略。


1.科學家境界
2.工程師境界
3.應用者境界
4.知其然境界


科學家境界

科學家境界是很少很少一部分人能達到的境界,主要是那些從事人工智能研究的科學家,他們能原創出很多的算法和理論,解決一些最前沿的難題。比如深度學習的鼻祖Hinton,生成對抗網絡發明人 Ian goodfellow,Xgboost發明人陳天奇等等。


工程師境界

工程師境界也是很難的一種境界,需要用很強的理論背景和工程實現能力,能獨立復現最新的論文,深刻理解論文的實現原理,並能在上面做一些小創新。


應用者境界

應用者境界是大部分人工智能算法工程師所在的境界,主要就是明白算法原理,知道如何實現,核心在於知道如何把他應用在一個實際的業務場景之中。


知其然境界

最後一個是知其然,也知其所以然境界,知道當下的人工智能到底是什麼,知道機器學習和深度學習大概是個什麼東西,不會過分的去神話AI,知道目前AI的優勢,更知道目前AI的侷限。


不同的境界對應不同的要求,簡單點概括就是:

工程能力決定你的下界,理論能力與業務理解決定你的天花板。


PS:本號作者目前是某大廠機器學習算法工程師,致力於全棧AI算法和業務場景落地,非常樂於在網上分享最新的AI知識,也經常開直播教同學AI算法和編程。感興趣的同學可以關注本頭條號,獲得最新的乾貨!


人工智能與未明學院


軟件工程師,首先上手python不是問題。

然後就得補機器學習的知識了。這個比較需要精力,初步的瞭解簡單網絡,以cnn最為常見。cnn家族很大,如果做的與圖像相關,肯定要深入瞭解並關注最新文獻狀態。其他還有很多類型的網絡模型,以rnn,對抗生成網絡,自編碼器等為代表,這些東西通過國內的博客就能大量學習,作為轉陣地的資學習資料足夠豐富了

接著,機器學習裡,作為程序員最喜歡的部分,深度學習框架,選擇主流幾種的一個,上手做實驗。代碼去github上找,數據集就用公開的。還是那句話,博客對愛學習的人來說,非常友好

機器學習要由淺入深,跑一跑經典的網絡,分析一下代碼,再對照論文理解理解。見得多,練的多,基本就進了機器學習的大門了。對於程序員來說,應該不用做學術研究吧,熟悉性能最優的最新網絡就夠了,用的好就行


allenlew312


人工智能和使用何種語言無關。目前主要是模糊控制(Fuzzy Logic Control)和神經元網絡(Neural Networks - NN),大多應用於模式識別,圖像處理,自動控制,語音識別等。基於NN, 就開發了機器學習(Machine Learning - ML)和深度學習(Deep Learning - DL)等應用領域,這二者是有區別的。ML 需人工干預(設定輸入和輸出以訓練Training NN),但DL無需人工干預,可自動實現訓練和學習過程。且ML有有限的層(2層 - 2 Layers), 但DL具有多層(Multi-Layer), 屬於深度學習。所謂深度,就是具有更多盡(深層)NN.


YingBai910


需要很深的數學功底,其它都不重要


等著我96988731


先可以學python,之後再學神經網絡搭建。


真IT小叮噹


只聽說過卷積神經網絡。


藍色土耳其267


我是打醬油的,進錯門了不好意思😜


傻傻的衝1


看書學習,實踐。基本就是這個套路


JosephKwok659


學習就可以轉


分享到:


相關文章: