一類適應於人工智慧和知識工程領域的、具有符號處理和邏輯推理能力的計算機程式設計語言。
人工智慧(AI)語言是一類適應於人工智慧和知識工程領域的、具有符號處理和邏輯推理能力的計算機程式設計語言。能夠用它來編寫程式求解非數值計算、知識處理、推理、規劃、決策等具有智慧的各種複雜問題。
典型的人工智慧語言主要有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 肯定會更容易。
人工智慧,火的不能再火的詞了,想要駕馭他還需要不斷的磨練,語言是與人工智慧對話的基本條件。