LISP;Prolog;Smalltalk;C++。
典型的人工智能語言主要有LISP、Prolog、Smalltalk、C++等。
第一名毫無疑問是 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 上首先實現的項目。
(在LiveEdu上,一位德國的AI開發者教大家如何使用Python開發兩個簡單的機器學習模型)
Python 是人工智能研究的前沿語言,這是擁有最多機器學習和深度學習框架的語言,也是 AI 研究者幾乎都掌握的語言。
JVM 系列語言(Java,Scala,Kotlin,Clojure 等)也是 AI 應用開發的絕佳選擇。
無論是自然語言處理(CoreNLP)、張量運算(ND4J)還是完整的 GPU 加速深度學習堆棧(DL4J),
您都可以使用大量的庫來管理流水線的各個部分。
另外,您還可以輕鬆訪問 Apache Spark 和 Apache Hadoop 等大數據平台。
Java 是大多數企業的通用語言,
在 Java 8 和 Java 9 中提供了新的語言結構,這使得編寫 Java 代碼的體驗不再像我們過去所記得的那樣糟糕。
使用 Java 編寫人工智能應用可能會讓人覺得有一點點枯燥,但它確實能完成工作,並且您可以使用所有現成的 Java 基礎架構來開發、部署和監視。
在開發 AI 應用時,C / C ++ 不太可能成為您的首選,
但如果您在嵌入式環境中工作,並且無法承受 Java 虛擬機或 Python 解釋器的開銷,那麼 C / C ++ 就是最好的解決方案。
當你需要榨乾系統的每一滴性能時,你就得面對可怕的指針世界。
幸運的是,現代 C / C ++ 寫起來體驗還不錯(實話實説!)。
您可以從下列方法中選擇一個最適合的:
您可以一頭扎進堆棧底部,使用 CUDA 等庫來編寫自己的代碼,這些代碼將直接在 GPU 上運行;
您也可以使用 TensorFlow 或 Caffe 以訪問靈活的高級 API。
後者還允許您導入數據科學家用 Python 寫的模型,然後以 C / C ++ 級別的速度在生產環境中運行它們。
在未來一年中,請密切留意 Rust 在 AI 領域的一些動作。
結合 C / C ++ 級別的速度與類型和數據安全性,Rust 是實現產品級性能卻不會造成安全問題的最佳選擇。並且它現在已經可以與 TensorFlow 綁定了。
其實,谷歌最近發佈了 ,這是一個 WebGL 加速庫,允許您在 Web 瀏覽器中訓練和運行機器學習模型。
它還包括 Keras API 以及加載和使用在常規 TensorFlow 中訓練過的模型的功能。
這可能會吸引大量的 JS 開發者湧入 AI 領域。
雖然 Java 目前能夠訪問的機器學習庫與其他語言相比有所侷限,但在不久的將來,開發者在網頁中添加神經網絡就和添加 React 組件或 CSS 屬性一樣簡單。
R 在這份榜單中排名最末,並且看上去將會越來越沒落。
R 是數據科學家喜歡的語言。
但是,其他程序員在第一次接觸 R 時會感到有些困惑,因為它採用了以數據幀為中心的方法。
如果您有一組專門的 R 開發者,那麼將 R 與 TensorFlow、Keras 或 H2O 搭配使用,進行研究、原型設計和實驗是有意義的。
但基於性能和操作方面的考慮,我不願意推薦將 R 用於生產。
雖然您可以寫出能在生產服務器上部署的高性能 R 代碼,但將這種用 R 語言編寫的原型重新編碼為 Java 或 Python 肯定會更容易。
人工智能,火的不能再火的詞了,想要駕馭他還需要不斷的磨練,語言是與人工智能對話的基本條件,