最適合人工智能開發的5種編程語言,你知道幾種?

01、Python

第一名毫無疑問是 Python。儘管 Python 有些特性令人不爽(whitespace、Python 2.x 和 Python 3.x 之間的巨大差異、五種不同的包機制都在不同程度上有缺陷)但如果你正在從事 AI 工作,你幾乎肯定會在某些時候用到 Python。

Python 中可用庫的數量是其他語言所無法企及的。NumPy 已經變得如此普遍,以至於幾乎成為了張量運算的標準 API,Pandas 將 R 的強大而靈活的數據幀帶入 Python。對於自然語言處理(NLP),您可以使用久負盛名的 NLTK 和快如閃電的 SpaCy。對於機器學習,有經過實戰檢驗的 Scikit-learn。當談到深度學習時,當前所有的庫(TensorFlow,PyTorch,Chainer,Apache MXNet,Theano 等)都是在 Python 上首先實現的項目。

最適合人工智能開發的5種編程語言,你知道幾種?

(在LiveEdu上,一位德國的AI開發者教大家如何使用Python開發兩個簡單的機器學習模型)

Python 是人工智能研究的前沿語言,這是擁有最多機器學習和深度學習框架的語言,也是 AI 研究者幾乎都掌握的語言。由於這些原因,儘管筆者每天都要咒罵一次 whitespace 問題,Python 仍然是人工智能編程語言之王,您沒法繞過它。

02、JAVA 和相關語言

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

Java 是大多數企業的通用語言,在 Java 8 和 Java 9 中提供了新的語言結構,這使得編寫 Java 代碼的體驗不再像我們過去所記得的那樣糟糕。使用 Java 編寫人工智能應用可能會讓人覺得無聊,但它確實能完成工作,並且您可以使用所有現成的 Java 基礎架構來開發、部署和監視。

03、C/C++

在開發 AI 應用時,C / C ++ 不太可能成為您的首選,但如果您在嵌入式環境中工作,並且無法承受 Java 虛擬機或 Python 解釋器的開銷,那麼 C / C ++ 就是最好的解決方案。當你需要榨乾系統的每一滴性能時,你就得面對可怕的指針世界。

幸運的是,現代 C / C ++ 寫起來體驗還不錯(實話實說!)。您可以從下列方法中選擇一個最適合的:您可以一頭扎進堆棧底部,使用 CUDA 等庫來編寫自己的代碼,這些代碼將直接在 GPU 上運行;您也可以使用 TensorFlow 或 Caffe 以訪問靈活的高級 API。後者還允許您導入數據科學家用 Python 寫的模型,然後以 C / C ++ 級別的速度在生產環境中運行它們。

在未來一年中,請密切留意 Rust 在 AI 領域的一些動作。結合 C / C ++ 級別的速度與類型和數據安全性,Rust 是實現產品級性能卻不會造成安全問題的最佳選擇。並且它現在已經可以與 TensorFlow 綁定了。

04、JavaScript

JavaScript?我沒聽錯吧?其實,谷歌最近發佈了 TensorFlow.js,這是一個 WebGL 加速庫,允許您在 Web 瀏覽器中訓練和運行機器學習模型。它還包括 Keras API 以及加載和使用在常規 TensorFlow 中訓練過的模型的功能。這可能會吸引大量的 JS 開發者湧入 AI 領域。

雖然 JavaScript 目前能夠訪問的機器學習庫與其他語言相比有所侷限,但在不久的將來,開發者在網頁中添加神經網絡就和添加 React 組件或 CSS 屬性一樣簡單。這聽上去既強大又恐怖。

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

05、R語言

R 在這份榜單中排名最末,並且看上去將會越來越沒落。

R 是數據科學家喜歡的語言。但是,其他程序員在第一次接觸 R 時會感到有些困惑,因為它採用了以數據幀為中心的方法。如果您有一組專門的 R 開發者,那麼將 R 與 TensorFlow、Keras 或 H2O 搭配使用,進行研究、原型設計和實驗是有意義的。但基於性能和操作方面的考慮,我不願意推薦將 R 用於生產。

雖然您可以寫出能在生產服務器上部署的高性能 R 代碼,但將這種用 R 語言編寫的原型重新編碼為 Java 或 Python 肯定會更容易。

人工智能,火的不能再火的詞了,想要駕馭他還需要不斷的磨練,語言是與人工智能對話的基本條件,以上的五種語言你掌握了幾種呢?不想成為未來世界的文盲就快些行動起來吧!


分享到:


相關文章: