還需要學習哪些知識與技術?
這是很多本科生同學比較關心的問題,我結合當前課題組的實際情況來回答一下。
首先,人工智能是一個非常大的研究領域,大的研究方向就涉及到機器學習、自然語言處理、計算機視覺、自動推理、知識表示和機器人學,而不同的研究方向對于研究方法和工具也有不同的要求。
編程語言本身就是一種工具,Python和Java都屬于比較典型的全場景編程語言,但是由于Python本身的庫非常豐富,而且Python語言的語法糖也比較豐富,可以讓研究人員把更多的精力放在算法上,所以Python在人工智能領域有非常廣泛的應用。
但是在落地應用階段,Java和C++的應用就比較多了,一方面這兩種編程語言的性能比較穩定,另一方面這兩種語言的行業應用生態也比較完善,項目實施的風險會相對比較低。
以我的課題組為例,計算機視覺組普遍在使用C++,自然語言處理組更多在使用Python,落地的時候會使用Java,當然Python也是可以做落地的,但是不同小組的leader同學往往有自己的考慮,組內的同學也會形成一個統一的選型。
從學習的角度來說,初期學好Python就夠用了,然后應該把更多的精力用在機器學習、深度學習上,后期進組后,再根據本組leader的要求來學習其他編程語言也完全來得及。
我多年來一直給研究生上機器學習這門課,課程里的案例實現都在采用Python語言來實現,所以從讀研的角度來說,掌握Python也會更方便一些。
學習人工智能對于實踐場景的要求比較高,在學習編程語言的過程中,可以參加一些實踐活動,比如深度學習、推薦系統、知識圖譜等實踐活動不僅會促進編程語言的學習和應用,也會提升對于人工智能技術的理解。
考慮到很多同學并沒有參加實踐的渠道,所以我聯合一些985大學的導師共同成立了一個實踐平臺,陸續開展了深度學習、強化學習、遷移學習、推薦系統、自然語言處理、知識圖譜、計算機視覺等方向的實踐活動和知識講座活動,可以聯系我申請參與,相信會有所收獲。
最后,如果有人工智能相關的問題,歡迎與我交流。