天天看點

最适合人工智能開發的5種程式設計語言&首選Python的原因在人工智能上使用Python比其他程式設計語言的好處

閱讀原文

作者:田曉旭編譯 編輯: 田曉旭 2017-04-06 10:35 IT168網站 原創 

  【IT168 評論】自從去年,AlphaGo打遍天下棋手無對手,人工智能的風頭就一直無人能及。在剛剛過去的IT領袖峰會上,BAT三位大佬都看好人工智能的未來發展。今年年初,百度就做了一個大動作,在醫療方面押寶人工智能,是以在這次峰會上李彥宏也發聲稱網際網路是道開胃菜,人工智能才是主菜。

  人工智能是一個很廣闊的領域,很多程式設計語言都可以用于人工智能開發,是以很難說人工智能必須用哪一種語言來開發。選擇多也意味着會有優劣之分,并不是每種程式設計語言都能夠為開發人員節省時間及精力。是以我們整理了5種比較适用于人工智能開發的程式設計語言,希望能夠對你有所幫助。

最适合人工智能開發的5種程式設計語言&首選Python的原因在人工智能上使用Python比其他程式設計語言的好處

▲圖檔來源于網絡

 1.Python

  Python由于簡單易用,是人工智能領域中使用最廣泛的程式設計語言之一,它可以無縫地與資料結構和其他常用的AI算法一起使用。

  Python之是以時候AI項目,其實也是基于Python的很多有用的庫都可以在AI中使用,如

  Numpy提供科學的計算能力,Scypy的進階計算和Pybrain的機器學習。

  另外,Python有大量的線上資源,是以學習曲線也不會特别陡峭。

 2.Java

  Java也是AI項目的一個很好的選擇。它是一種面向對象的程式設計語言,專注于提供AI項目上所需的所有進階功能,它是可移植的,并且提供了内置的垃圾回收。另外Java社群也是一個加分項,完善豐富的社群生态可以幫助開發人員随時随地查詢和解決遇到的問題。

  對于AI項目來說,算法幾乎是靈魂,無論是搜尋算法、自然語言處理算法還是神經網絡,Java都可以提供一種簡單的編碼算法。另外,Java的擴充性也是AI項目必備的功能之一。

 3.Lisp

  Lisp因其出色的原型設計能力和對符号表達式的支援在AI領域嶄露頭角。LISP作為因應人工智能而設計的語言,是第一個聲明式系内函數式程式設計語言,有别于指令式系内過程式的C、Fortran和面向對象的Java、C#等結構化程式設計語言。

  Lisp語言因其可用性和符号結構而主要用于機器學習/ ILP子領域。著名的AI專家彼得·諾維奇(Peter Norvig)在其《Artificial Intelligence: A modern approach》一書中,詳細解釋了為什麼Lisp是AI開發的頂級程式設計語言之一,感興趣的朋友可以自行檢視。

 4.Prolog

  Prolog與Lisp在可用性方面旗鼓相當,據《Prolog Programming for Artificial Intelligence》一文介紹,Prolog一種邏輯程式設計語言,主要是對一些基本機制進行程式設計,對于AI程式設計十分有效,例如它提供模式比對,自動回溯和基于樹的資料結構化機制。結合這些機制可以為AI項目提供一個靈活的架構。

  Prolog廣泛應用于AI的 expert系統,也可用于醫療項目的工作。

 5.C ++

  C ++是世界上速度最快的面向對象程式設計語言,其在硬體層面上的交流能力使開發人員能夠改程序式執行時間。 C ++對于時間很敏感,這對于AI項目是非常有用的,例如,搜尋引擎可以廣泛使用C ++。

  在AI項目中,C++可用于統計,如神經網絡。另外算法也可以在C ++被廣泛地快速執行,遊戲中的AI主要用C ++編碼,以便更快的執行和響應時間。

  寫在最後:

  其實為AI項目選擇程式設計語言,其實很大程度上都取決于sub-field,對于程式設計語言的選擇要從大局入手,不能隻考慮部分功能。在這些程式設計語言中,Python因為适用于大多數AI sub-field,是以漸有成為AI程式設計語言之首的趨勢,而Lisp和Prolog因其獨特的功能,是以在部分AI項目中卓有成效,地位暫時難以撼動。而Java和C++的自身優勢将在AI項目中繼續保持。

在人工智能上使用Python比其他程式設計語言的好處

1.優質的文檔

平台無關,可以在現在每一個*nix版本上使用

和其他面向對象程式設計語言比學習更加簡單快速

Python有許多圖像加強庫像Python Imaging Libary,VTK和Maya 3D可視化工具包,Numeric Python, Scientific Python和其他很多可用工具可以于數值和科學應用。

Python的設計非常好,快速,堅固,可移植,可擴充。很明顯這些對于人工智能應用來說都是非常重要的因素。

對于科學用途的廣泛程式設計任務都很有用,無論從小的shell腳本還是整個網站應用。

最後,它是開源的。可以得到相同的社群支援。

2.AI的Python庫

總體的AI庫

AIMA:Python實作了從Russell到Norvigs的“人工智能:一種現代的方法”的算法

pyDatalog:Python中的邏輯程式設計引擎

SimpleAI:Python實作在“人工智能:一種現代的方法”這本書中描述過的人工智能的算法。它專注于提供一個易于使用,有良好文檔和測試的庫。

EasyAI:一個雙人AI遊戲的python引擎(負極大值,置換表、遊戲解決)

機器學習庫

PyBrain 一個靈活,簡單而有效的針對機器學習任務的算法,它是子產品化的Python機器學習庫。它也提供了多種預定義好的環境來測試和比較你的算法。

PyML 一個用Python寫的雙邊架構,重點研究SVM和其他核心方法。它支援Linux和Mac OS X。

scikit-learn旨在提供簡單而強大的解決方案,可以在不同的上下文中重用:機器學習作為科學和工程的一個多功能工具。它是python的一個子產品,內建了經典的機器學習的算法,這些算法是和python科學包(numpy,scipy.matplotlib)緊密聯系在一起的。

MDP-Toolkit這是一個Python資料處理的架構,可以很容易的進行擴充。它海收集了有監管和沒有監管的學習算飯和其他資料處理單元,可以組合成資料處理序列或者更複雜的前饋網絡結構。新算法的實作是簡單和直覺的。可用的算法是在不斷的穩定增加的,包括信号處理方法(主成分分析、獨立成分分析、慢特征分析),流型學習方法(局部線性嵌入),集中分類,機率方法(因子分析,RBM),資料預處理方法等等。

自然語言和文本處理庫

NLTK 開源的Python子產品,語言學資料和文檔,用來研究和開發自然語言處理和文本分析。有windows,Mac OSX和Linux版本。

3.案例

做了一個實驗,一個使用人工智能和物聯網做員工行為分析的軟體。該軟體通過員工情緒和行為的分心提供了一個有用的回報給員工,進而提高了管理和工作習慣。

使用Python機器學習庫,opencv和haarcascading概念來教育訓練。建立了樣品POC來檢測通過安置在不同地點的無線攝像頭傳遞回來基礎情感像幸福,生氣,悲傷,厭惡,懷疑,蔑視,譏諷和驚喜。收集到的資料會集中到雲資料庫中,甚至整個辦公室都可以通過在Android裝置或桌面點選一個按鈕來取回。

開發者在深入分析臉部情感上複雜點和挖掘更多的細節中取得進步。在深入學習算法和機器學習的幫助下,可以幫助分析員工個人績效和适當的員工/團隊回報。

4.結論

python因為提供像 scikit-learn的好的架構,在人工智能方面扮演了一個重要的角色:Python中的機器學習,實作了這一領域中大多的需求。D3.js JS中資料驅動文檔時可視化最強大和易于使用的工具之一。處理架構,它的快速原型制造使得它成為一門不可忽視的重要語言。AI需要大量的研究,是以沒有必要要求一個500KB的Java樣闆代碼去測試新的假說。python中幾乎每一個想法都可以迅速通過20-30行代碼來實作(JS和LISP也是一樣)。是以,它對于人工智能是一門非常有用的語言。

另外本人還開設了個人公衆号:JiandaoStudio ,會在公衆号内定期釋出行業資訊,以及各類免費代碼、書籍、大師課程資源。

最适合人工智能開發的5種程式設計語言&首選Python的原因在人工智能上使用Python比其他程式設計語言的好處

掃碼關注本人微信公衆号,有驚喜奧!公衆号每天定時發送精緻文章!回複關鍵詞可獲得海量各類程式設計開發學習資料!

例如:想獲得Python入門至精通學習資料,請回複關鍵詞Python即可。

繼續閱讀