用於AI開發的5種最佳編程語言

用於AI開發的5種最佳編程語言

AI(人工智能)為應用程序開發人員開創了一個全新的可能性。通過利用機器學習或深度學習,您可以生成更好的用戶配置文件,個性化設置和建議,或者整合更智能的搜索,語音界面或智能幫助,或者改進您的應用程序的任何其他方式。你甚至可以構建看,聽,並作出反應的應用程序。

你應該學習哪種編程語言來探索AI的深度?當然,你會需要一個擁有許多優秀機器學習和深度學習庫的語言。它還應具有良好的運行時性能,良好的工具支持,大量程序員社區以及健康的支持包生態系統。這仍然留下了很多不錯的選擇。

下面是我選擇AI開發的五種最佳編程語言。其中一些語言正在興起,而其他語言似乎正在滑落。幾個月後回來,你可能會發現這些排名已經發生了變化。

1. Python

第一,它是Python。它怎麼可能是其他的,真的嗎?儘管有令人生氣的關於Python的東西 - 空格,Python 2.x和Python 3.x之間的巨大差異,五種不同的打包系統都以不同的方式打破了 - 如果你正在做AI工作,你幾乎肯定會在某些時候使用Python。

Python中可用的庫在其他語言中幾乎是無與倫比的。NumPy已經變得如此無處不在,它幾乎是張量操作的標準API,Pandas將R的強大而靈活的數據框帶入Python。對於自然語言處理(NLP),您擁有令人尊敬的NLTK和快速的SpaCy。對於機器學習,有經過測試的Scikit-learn。而且,當涉及到深學習,目前所有的庫(的TensorFlow,PyTorch,Chainer,阿帕奇MXNet,Theano等)是有效的Python的第一個項目。

如果您正在閱讀關於arXiv的尖端深度學習研究,那麼您幾乎可以肯定會在Python中找到源代碼。然後還有Python生態系統的其他部分。雖然IPython已經成為Jupyter Notebook,並且以Python為中心,但您仍然會發現絕大多數Jupyter Notebook用戶以及大多數在線共享的筆記本都使用Python。

沒有繞過它。Python是人工智能研究的前沿語言,這是您可以找到機器學習和深度學習框架最多的語言,也是人工智能領域幾乎所有人都會說的語言。由於這些原因,儘管您的作者每天至少詛咒一次空白問題,Python仍然是人工智能編程語言中的首例。

2、Java系列

JVM系列語言(Java,Scala,Kotlin,Clojure等)也是AI應用程序開發的絕佳選擇。無論是自然語言處理(CoreNLP),張量運算(ND4J)還是完整的GPU加速深度學習堆棧(DL4J),您都可以使用大量庫來管理流水線的各個部分。另外,您還可以輕鬆訪問Apache Spark和Apache Hadoop等大數據平臺。

Java是大多數企業的通用語言,在Java 8和Java 9中提供了新的語言結構,編寫Java代碼並不是我們中許多人所記得的可惡的體驗。使用Java編寫人工智能應用程序可能會讓人覺得無聊,但它可以完成工作,並且可以將所有現有的Java基礎架構用於開發,部署和監視。

3. C / C ++

在開發AI應用程序時,C / C ++不太可能是您的首選,但如果您在嵌入式環境中工作,並且無法承受Java虛擬機或Python解釋器的開銷,那麼C / C ++就是回答。當你需要從系統中抽取最後一點的性能時,你需要回到可怕的指針世界。

值得慶幸的是,現代C / C ++可以很好寫(誠實!)。您可以選擇一些方法。您可以使用CUDA等庫來編寫自己的代碼,直接在GPU上運行,也可以使用TensorFlow或Caffe獲取靈活的高級API訪問權限。後者還允許您導入數據科學家可能用Python構建的模型,然後以C / C ++提供的所有速度在生產環境中運行它們。

留意Rust在未來一年的空間中所做的工作。結合C / C ++的速度與類型和數據安全性,Rust是實現生產性能而不會造成安全性問題的最佳選擇。並且TensorFlow綁定已經可用。

4. JavaScript

JavaScript的?究竟是怎麼回事?那麼,谷歌最近發佈了TensorFlow.js,這是一個WebGL加速庫,允許您在Web瀏覽器中訓練和運行機器學習模型。它還包括Keras API以及加載和使用在常規TensorFlow中訓練過的模型的功能。這可能會吸引大量開發人員湧入AI領域。雖然JavaScript目前對機器學習庫的訪問權限與此處列出的其他語言不同,但很快開發人員將在他們的網頁中添加神經網絡,與添加React組件或CSS屬性幾乎相同。同時授權和恐嚇。

TensorFlow.js仍處於早期階段。目前它在瀏覽器中工作,但不在Node.js中。它還沒有實現完整的TensorFlow API。不過,我預計到2018年底,這兩個問題都將基本得到解決,並且AI的JavaScript入侵將在此後不久進行。

5. R

R進入前五名的底部,並且趨向下行。R是數據科學家喜歡的語言。但是,其他程序員發現R在第一次遇到它時感到有些困惑,因為它採用了以數據框架為中心的方法。如果您有一組專門的R開發人員,那麼使用與TensorFlow,Keras或H2O進行研究,原型設計和實驗的集成是有意義的,但是我不願推薦R用於生產用途。

其他AI編程選項

當然,Python,Java,C / C ++,JavaScript和R並不是AI編程唯一可用的語言。讓我們看看三種編程語言,它們並沒有完全進入我們前五名的上升和下降。

LUA

幾年前,Lua在人工智能領域處於領先地位。藉助Torch框架,Lua是深度學習開發中最受歡迎的語言之一,您仍然會在GitHub上遇到許多歷史深入的學習工作,這些工作通過Lua / Torch定義了模型。我認為,為了研究和查看人們以前的工作,熟悉Lua是個好主意。但隨著TensorFlow和PyTorch等框架的到來,Lua的使用大幅下降。


分享到:


相關文章: