適用于人工智能開發(fā)的語言有哪一些
近年來,人工智能(AI)正在不斷釋放科技革命和產(chǎn)業(yè)變革積蓄的巨大能量,深刻改變著人類生產(chǎn)生活方式和思維方式,推動社會生產(chǎn)力整體躍升。什么是AI?它將為我們帶來哪些價值?我們陸續(xù)為大家分享AI科普系列文章。后續(xù)更新敬請關(guān)注!
人工智能技術(shù)的提升不僅為企業(yè)的運營帶來了效率,而且為人民的生活帶來了便利。迄今為止,人工智能已實現(xiàn)了生物識別智能、自動駕駛汽車和人臉識別等項目。
像大多數(shù)軟件應(yīng)用程序的開發(fā)一樣,開發(fā)人員也在使用多種語言來編寫人工智能項目,但目前還沒有任何一種完美的編程語言可以完全速配人工智能項目。
編程語言的選擇往往取決于對人工智能應(yīng)用程序的期望功能。關(guān)于最佳人工智能編程語言的“爭論”從未停止,今天我們將為大家分享最適合人工智能開發(fā)的5種常用編程語言,看一看你會哪一個呢?
01、Python
第一名毫無疑問是Python。盡管Python的某些特性在不同程度上有所缺陷。(whitespace、Python 2.x 和 Python 3.x 之間的巨大差異、五種不同的包機制都在不同程度上有缺陷)但如果你正在從事AI工作,你必定會在某些時候用到Python。Python中可用庫的數(shù)量是其他語言所無法企及的。
作為Python的一個擴展程序庫,NumPy的重要性和普遍性日趨增強,以至于幾乎成為了張量運算的標(biāo)準(zhǔn)API?;贜umPy,Pandas(該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的)可將R強大而靈活的數(shù)據(jù)框帶入Python。對于自然語言處理(Natural Language Processing,簡稱NLP),你還可以使用久負(fù)盛名的NLTK和快如閃電的SpaCy。
對于機器學(xué)習(xí),有經(jīng)過實戰(zhàn)檢驗的Scikit-learn。當(dāng)談到深度學(xué)習(xí)時,當(dāng)前所有的庫(TensorFlow、PyTorch、Chainer、Apache MXNet、Theano 等)都是在Python上首先實現(xiàn)的項目。
(在LiveEdu上,一位德國的AI開發(fā)者教大家如何使用Python開發(fā)兩個簡單的機器學(xué)習(xí)模型。)
Python是人工智能研究的前沿語言,它是擁有最多機器學(xué)習(xí)和深度學(xué)習(xí)框架的語言,也是目前AI研究者幾乎都掌握的一種語言。
02、JAVA和相關(guān)語言
JVM系列語言(Java、Scala、Kotlin、Clojure等)也是AI應(yīng)用開發(fā)的絕佳選擇。
無論是自然語言處理(CoreNLP)、張量運算(ND4J)還是完整的 GPU加速深度學(xué)習(xí)堆棧(DL4J),你都可以使用大量的庫來管理流水線的各個部分。此外,你還可以輕松訪問Apache Spark和Apache Hadoop等大數(shù)據(jù)平臺。
Java是大多數(shù)企業(yè)的通用語言。Java8和Java9為我們提供了新的語言結(jié)構(gòu),這使得你在編寫Java代碼時,其體驗不再像過去那樣“糟糕”。
使用Java編寫人工智能應(yīng)用可能會略感枯燥,但它確實是你完成工作的好幫手,并且你可以基于所有現(xiàn)成的Java基礎(chǔ)架構(gòu)來開發(fā)、部署和監(jiān)視。
03、C/C++
在開發(fā)AI應(yīng)用時,C/C++可能不會成為你的首選,但如果你在嵌入式的環(huán)境中工作,且無法承受Java虛擬機或Python解釋器所帶來的開銷,那么C/C++就是你最好的選擇。
你可以從下列方法中選擇一個最適合你的:
? 扎進堆棧底部,使用CUDA等庫來編寫自己的代碼,這些代碼將直接在GPU上運行;
? 你也可以使用TensorFlow或Caffe以訪問靈活的高級API。
當(dāng)然,后者還支持你導(dǎo)入數(shù)據(jù)科學(xué)家用Python寫的模型,然后以C/C++級別的速度在生產(chǎn)環(huán)境中運行它們。
04、Java
Java是一種直譯式腳本語言,是一種動態(tài)類型、弱類型、基于原型的語言,內(nèi)置支持類型。
眾所周知,谷歌于2018年發(fā)布了TensorFlow.js。TensorFlow.js是一個開源的基于硬件加速的Java庫,用于訓(xùn)練和部署機器學(xué)習(xí)模型。
TensorFlow.js是一個WebGL加速庫,支持你在Web瀏覽器中訓(xùn)練和運行機器學(xué)習(xí)模型。它還包括Keras API以及加載和使用在常規(guī)TensorFlow中訓(xùn)練過的模型的功能。這可能會吸引大量的JS開發(fā)者涌入AI領(lǐng)域。
雖然Java目前能夠訪問的機器學(xué)習(xí)庫,與其他語言相比有所局限,但在不久的將來,開發(fā)者在網(wǎng)頁中添加神經(jīng)網(wǎng)絡(luò)就和添加React組件或CSS屬性一樣簡單。
為在各種環(huán)境中都盡可能獲得最好的計算性能,Tensorflow.js目前已經(jīng)實現(xiàn)了純Java或WebGL的客戶端,以及Nodejs服務(wù)器端三種后端計算環(huán)境。同時,Tensorflow.js還支持對已有模型的再訓(xùn)練,幫助用戶定制符合自己業(yè)務(wù)需求的模型。
05、R語言
R在這份榜單中排名最末,且看上去將會越來越?jīng)]落。R是數(shù)據(jù)科學(xué)家較為喜歡的一種編程語言。但是,其他程序員在第一次接觸R時會感到有些困惑,因為它采用了以數(shù)據(jù)框為中心的方法。
如果您有一組專門的R開發(fā)者,那么將R與TensorFlow、Keras或H2O搭配使用,進行研究、原型設(shè)計和實驗是有一定意義和價值的。
但基于性能和操作方面的考慮,這里不建議大家將R用于生產(chǎn)。
雖然你可以寫出能在生產(chǎn)服務(wù)器上部署的高性能R代碼,但將這種用R語言編寫的原型重新編碼為Java或Python應(yīng)該會更容易。
語言是與人工智能對話的基本條件,想要駕馭人工智能,我們還需要進行不斷的磨練。以上的五種編程語言你掌握了幾種呢?不想成為未來世界的文盲就趕快學(xué)習(xí)和行動起來吧!