人工智能(AI)開創(chuàng)了應用程序開發(fā)的全新時代。通過利用機器學習和深度學習,可以完成用戶配置優(yōu)化,個性化設置及建議。另外,還可以整合更智能的搜索結(jié)果,提供語音界面或智能幫助等,用于優(yōu)化程序本身。你甚至可以構(gòu)建具有視覺和聽覺,并能夠作出反應的智能應用程序。 學習哪種編程語言來深入探索 AI?一個擁有大量優(yōu)秀機器學習和深度學習庫的語言當然是首選。此外,它還應具有良好的運行性能,優(yōu)秀的工具支持和聚集了大量軟件工程師的開源社區(qū)。 下面是我選出的適合 AI 開發(fā)的五種最佳編程語言。其中一些語言正在興起,而另一些似乎正在沒落。幾個月后之后,你可能會發(fā)現(xiàn)這些排名已經(jīng)發(fā)生了變化。 1. Python 第一,毫無疑問是 Python。盡管 Python 仍存在許多問題,例如空格 / Tab 縮進及 Python 2 和 Python 3 之間的不兼容性。但是,當你面對與 AI 相關(guān)的工作時,依然推薦選擇使用 Python。 Python 提供的第三方工具是無與倫比的。例如,NumPy 已經(jīng)變得無處不在,它幾乎是張量操作的標準 API;Pandas 將 R 強大而靈活的 DataFrame 帶入 Python;對于自然語言處理(NLP),你可以利用 NLTK 和快速的 SpaCy;對于機器學習,有久經(jīng)沙場的 scikit-learn;而對于深度學習,所有當前的第三方庫,諸如 TensorFlow,PyTorch,Chainer,Apache MXNe 以及 Theano,都是為 Python 量身打造。 當你閱讀到 arXiv 上有關(guān)深度學習的前沿研究論文時,你一定能找到對應 Python 版本的源代碼。Python 還有其他優(yōu)秀之處,雖然 IPython 已經(jīng)漸漸被 Jupyter Notebook 取代,從而兼容更多的語言,但絕大多數(shù) Jupyter Notebook 用戶以及大多數(shù)在線分享的 Notebook 都在使用 Python。 Python 是人工智能研究的前沿語言,是擁有機器學習和深度學習框架最多的語言,也是 AI 領(lǐng)域幾乎所有人都在使用的語言。因此,無論大家每天如何抱怨空格 / Tab 縮進問題,Python 都是人工智能編程語言中的首選。 2. Java 系列 JVM 系列語言(Java,Scala,Kotlin,Clojure 等)也是 AI 應用程序開發(fā)的絕佳選擇。無論是自然語言處理(CoreNLP),張量運算(ND4J)還是完整的 GPU 加速深度學習堆棧(DL4J),都可以有大量數(shù)據(jù)庫可以使用。另外,您還可以輕松訪問 Apache Spark 和 Apache Hadoop 等大數(shù)據(jù)平臺。 Java 是大多數(shù)企業(yè)的通用語言,Java 8 和 Java 9 中提供了新的語言結(jié)構(gòu),讓編寫 Java 代碼不再那么痛苦。使用 Java 編寫人工智能應用程序可能會有些無聊,但它可以確保完成工作,并將所有現(xiàn)有的 Java 基礎架構(gòu)用于開發(fā),部署和監(jiān)控。 3. C / C ++ 開發(fā) AI 應用程序,C / C ++ 可能不是你的首選,但如果在嵌入式環(huán)境中工作,并且無法負擔 Java 虛擬機或 Python 編譯器較慢的運行速度,那么 C / C ++ 就是最佳選擇。 值得慶幸的是,現(xiàn)在的 C / C ++ 代碼簡單多了,你可以使用 CUDA 等庫來編寫自己的代碼,直接在 GPU 上運行,也可以使用 TensorFlow 或 Caffe 獲取靈活的高級 API 訪問權(quán)限。后者還允許您導入數(shù)據(jù)科學家用 Python 構(gòu)建的模型,然后以 C / C ++ 的速度在環(huán)境中運行它們。 另外,你也可以關(guān)注 Rust 在未來一年的應用。結(jié)合了 C / C ++ 的速度與類型和數(shù)據(jù)安全性,Rust 是既能實現(xiàn)功能而又不造成安全性問題的最佳選擇。 4. JavaScript JavaScript 是怎么回事? 谷歌最近發(fā)布了 TensorFlow.js,這是一個 WebGL 加速庫,能實現(xiàn)在 Web 瀏覽器中訓練和運行機器學習模型。它還擁有 Keras API,并且能加載和使用在常規(guī) TensorFlow 中訓練過的模型。這可能會吸引大量開發(fā)人員涌入 AI 領(lǐng)域。雖然 JavaScript 目前訪問機器學習庫的方式與其他語言不同,但開發(fā)人員在網(wǎng)頁中添加神經(jīng)網(wǎng)絡,就像添加 React 組件或 CSS 屬性一樣簡單。 TensorFlow.js 仍處于早期階段。目前它無法在 Node.js 中工作,且還沒有實現(xiàn)完整的 TensorFlow API。不過,預計到 2018 年底,這兩個問題都將基本得到解決。屆時,JavaScript 在 AI 應用中的地位將會越來越高。 5. R R 位列前五的末位,呈衰落趨勢。 R 是數(shù)據(jù)科學家喜歡的語言,正因為它以數(shù)據(jù)框架為中心,其他程序員在第一次接觸 R 時常常會感到困惑。如果團隊中有專門的 R 開發(fā)人員,那么整合 TensorFlow,Keras 或 H2O 進行研究、建模和實驗是有意義的。但是,出于性能和使用方面的考慮,我不推薦 R 用于實際生產(chǎn)。雖然,可以在生產(chǎn)服務器上部署高性能 R 代碼,但采用 R 語言編寫原型,并將其重構(gòu)為 Java 或 Python 運行反而會更加容易。 入門AI,學習編程。小編給大家?guī)砭幊陶n程推薦:
轉(zhuǎn)發(fā)文章+私信小編“資料”既可獲取最新學習資料 |
|
來自: 挑燈看劍r7wtm5 > 《幾種編程語言》