謝謝邀請!
軟件工程師轉(zhuǎn)行做人工智能是一個不錯的選擇,但是要根據(jù)自身的知識結(jié)構(gòu)進行相應的準備。對于研發(fā)級軟件工程師(研發(fā)級程序員)來說,轉(zhuǎn)行做人工智能是相對比較容易的,因為研發(fā)級工程師往往都有扎實的算法基礎(chǔ)。對于應用級軟件工程師(應用級程序員)來說,轉(zhuǎn)行做人工智能需要一個系統(tǒng)的準備(學習)過程。
人工智能目前的研究方向比較多,比如自然語言處理、機器學習以及計算機視覺都是不錯的研究方向,下面就以機器學習為例,說一下作為應用級軟件工程師來說,都應該做好哪些準備。
首先,需要系統(tǒng)的學習一下算法知識。機器學習的研發(fā)是以算法為核心進行展開的,所以要有一個扎實的算法基礎(chǔ)。這個過程需要了解一些比較經(jīng)典的算法設計過程,逐步培養(yǎng)起解決問題的思路。這部分的學習內(nèi)容包括隨機算法、堆排序算法、快排、計數(shù)排序、貪心算法、核算法、勢能法、圖算法、多線程算法、數(shù)論算法和近似算法等,在學習算法的過程中也會連帶著把數(shù)據(jù)結(jié)構(gòu)一并學習一下,因為算法和數(shù)據(jù)結(jié)構(gòu)本就不分家。
其次,了解機器學習的實現(xiàn)步驟。機器學習的流程包括數(shù)據(jù)收集、數(shù)據(jù)整理、算法設計、算法實現(xiàn)、驗證算法和應用算法,數(shù)據(jù)收集是機器學習的第一步,目前可以用于機器學習的公共數(shù)據(jù)集并不少,對于實驗來說已經(jīng)夠用了。接下來就是了解常見的機器學習算法,目前比較常見的機器學習算法包括NB、k-mean、kNN、SVM、Apriori、EM、PageRank、CART等算法,對于有算法基礎(chǔ)的人來說,這些算法的學習并不困難。
最后,選擇一門編程語言來實現(xiàn)這些算法并對其進行驗證。對于軟件工程師來說,這個步驟還是相對比較輕松的,目前使用Python做機器學習的算法實現(xiàn)是一個比較常見的做法。
人工智能是我的主要研究方向之一,目前我也在帶相關(guān)方向的研究生,我會陸續(xù)在頭條寫一些關(guān)于人工智能方面的文章,感興趣的朋友可以關(guān)注我,相信一定會有所收獲。
如果有人工智能方面的問題,也可以咨詢我,謝謝!