1. 程式人生 > >五大最適合學習AI開發的程式語言, 你喜歡的語言上榜了嗎?

五大最適合學習AI開發的程式語言, 你喜歡的語言上榜了嗎?

準備學習AI的你,知不知道選擇哪種程式語言合適呢?以下列舉的五種程式語言,被認為是最適合用來學習AI。大家可以參考一下。

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

Python 中可用庫的數量是其他語言所無法企及的。NumPy 已經變得如此普遍,以至於幾乎成為了張量運算的標準 API,Pandas 將 R 的強大而靈活的資料幀帶入 Python。對於自然語言處理(NLP),您可以使用久負盛名的

NLTK 和快如閃電的 SpaCy。對於機器學習,有經過實戰檢驗的 Scikit-learn。當談到深度學習時,當前所有的庫(TensorFlowPyTorchChainerApache MXNetTheano 等)都是在 Python 上首先實現的專案。

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


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


2. JAVA 和相關語言

JVM 系列語言(Java,Scala,Kotlin,Clojure 等)也是 AI 應用開發的絕佳選擇。無論是自然語言處理(CoreNLP)、張量運算(ND4J)還是完整的 GPU 加速深度學習堆疊(DL4J),您都可以使用大量的庫來管理流水線的各個部分。另外,您還可以輕鬆訪問 Apache SparkApache 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 在 AI 領域的一些動作。結合 C / C ++ 級別的速度與型別和資料安全性,Rust 是實現產品級效能卻不會造成安全問題的最佳選擇。並且它現在已經可以與 TensorFlow 繫結了。


4. JAVASCRIPT
蛤?!JavaScript?我沒聽錯吧?其實,谷歌最近釋出了 TensorFlow.js,這是一個 WebGL 加速庫,允許您在 Web 瀏覽器中訓練和執行機器學習模型。它還包括 Keras API 以及載入和使用在常規 TensorFlow 中訓練過的模型的功能。這可能會吸引大量的 JS 開發者湧入 AI 領域。雖然 JavaScript 目前能夠訪問的機器學習庫與其他語言相比有所侷限,但在不久的將來,開發者在網頁中新增神經網路就和新增 React 元件或 CSS 屬性一樣簡單。這聽上去既強大又恐怖。

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

5. R
R 在這份榜單中排名最末,並且看上去將會越來越沒落。R 是資料科學家喜歡的語言。但是,其他程式設計師在第一次接觸 R 時會感到有些困惑,因為它採用了以資料幀為中心的方法。如果您有一組專門的 R 開發者,那麼將 R 與 TensorFlowKerasH2O 搭配使用,進行研究、原型設計和實驗是有意義的。但基於效能和操作方面的考慮,我不願意推薦將 R 用於生產。雖然您可以寫出能在生產伺服器上部署的高效能 R 程式碼,但將這種用 R 語言編寫的原型重新編碼為 Java 或 Python 肯定會更容易。