C++成爲人工智慧核心算法?

Python是否會取代C/C++成為人工智能核心算法?

互聯網產品日漸飽和,移動互聯網也已進入下半場,市場已經從巔峰時代逐漸進入一個相對平穩的發展階段,互聯網人口滲透率已經超過了50%。人工智能掀起了新的一波世界科技浪潮,互聯網巨頭公司BAT、近年來崛起的人工智能企業曠世科技Face++、商湯科技、極鏈科技Video++都在不斷增大人工智能領域的投入。

自從2017年國務院印發《新一代人工智能發展規劃》中明確指出在中小學階段設置人工智能課程之後,python一路逆襲成為人工智能時代最合適的語言,並藉此為未來國家和社會發展奠定了人工智能的人才培養基礎,甚至被眾多程序員譽為“宇宙最好的編程語言”。

但人工智能的核心算法主要還是依賴於C/C++的。

因為是計算密集型,需要非常精細的優化,還需要GPU、專用硬件之類的接口,這些都只有C/C++能做到,所以某種意義上來說,其實C/C++才是人工智能領域最重要的語言。

Python是API binding,使用Python是因為CPython的膠水語言特性,能夠把用其他語言製作的各種模塊很輕鬆的連接在一起,比如3D遊戲中的圖形渲染,性能要求特別高就可以用C/C++重寫,而後封裝為Python可以調用的擴展類庫。所以說要開發一個其他語言到C/C++的跨語言接口,Python是最容易的,比其他語言的ffi門檻要低很多,尤其是使用Cython的時候,其他語言的ffi許多都只能導入C的函數入口點,複雜的數據結構大多隻能手工用byte數組接起來,如果還需要回調函數輸入那就無計可施了。

Python是否會取代C/C++成為人工智能核心算法?

而Cpython的C API是雙向融合的,可以直接對外暴露封裝過的Python對象,還可以允許用戶通過繼承這些自定義對象來引入新特性,在一定條件限制下甚至可以從C代碼當中再調用Python的函數。不過這也是PyPy這樣的JIT解釋器的一個障礙。而且Python歷史上也一直都是科學計算和數據分析的重要工具,有numpy這樣的底子,因為行業近似所以選擇API binding語言的時候會首選Python,同時複用numpy這樣的基礎庫既減少了開發工作量,也方便從業人員上手。

機器學習作為人工智能的一個分支,它是讓機器能具備擺脫對人工指令的依賴,能按照一定的算法開展自主學習的能力,它的出現才真正讓“人工智能”不枉智能二字。在當下興起的人工智能以及大數據運用上,Python的優勢可以被廣泛運用到許多領域和重要的日常軟件功能當中,人臉識別、會話接口、商業智能等領域,Python都證明了它的實用性。自動化的司法調查、安全檢查、網頁分析等都有可能使用Python來實現。但未來5到10年,整個人工智能會往什麼方向發展?Python和C/C++誰能成為核心算法,值得我們的期待。


分享到:


相關文章: