{eval=Array;=+count(Array);}
作為一個(gè)多年的從業(yè)者,我想說(shuō)的是Python和人工智能是兩個(gè)完全不同的概念,Python只是一種編程語(yǔ)言,而人工智能是一種科學(xué)方法,主要研究如何通過(guò)計(jì)算機(jī)實(shí)現(xiàn)類似人類智能的裝置或者程序。Python作為一種計(jì)算機(jī)編程語(yǔ)言,可以作為實(shí)現(xiàn)人工智能的編程工具,但是它并不是唯一的選擇。
先來(lái)簡(jiǎn)單介紹下人工智能的實(shí)現(xiàn)方法,目前主要有兩種流派。
一種是基于神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí),也就是近年來(lái)隨著Google的阿爾法狗戰(zhàn)勝世界圍棋冠軍而再次(之所以用再次,是因?yàn)樗?jīng)也火爆過(guò)一段時(shí)間,后來(lái)遇到技術(shù)瓶頸又沉寂了)火爆起來(lái)的技術(shù)。Google為了方便人工智能的開發(fā),開源了TensorFlow庫(kù),該庫(kù)可以極大的方便人工神經(jīng)網(wǎng)絡(luò)的開發(fā)與試驗(yàn),受到了廣大研究者的青睞,而作為開發(fā)TensorFlow的編程語(yǔ)言——Python自然也就成為研究者必學(xué)的工具。此外,還有FaceBook的開源項(xiàng)目PyTorch也是一個(gè)很優(yōu)秀的機(jī)器學(xué)習(xí)庫(kù),同樣也使用Python作為開發(fā)語(yǔ)言,這就又給Python增加了許多使用者。其實(shí),還有很多語(yǔ)言也能進(jìn)行人工智能開發(fā),比如Matlab和C/C++也是一些廣泛使用的語(yǔ)言,只不過(guò)編程過(guò)程會(huì)稍微復(fù)雜一些罷了。
還有一種人工智能的實(shí)現(xiàn)方法是基于演繹邏輯的推理方法,曾經(jīng)火爆一時(shí)的專家系統(tǒng)就是基于這種技術(shù),只是因?yàn)榻鼛啄晟疃葘W(xué)習(xí)如日中天,掩蓋了它的光輝,這種模式的人工智能實(shí)現(xiàn)方法使用的編程語(yǔ)言則是Lisp和Prolog。
此外,還要提醒一下題注,想要學(xué)習(xí)人工智能,只會(huì)編程是遠(yuǎn)遠(yuǎn)不夠的,它需要扎實(shí)的數(shù)學(xué)基礎(chǔ),從線性代數(shù)、概率過(guò)程、到微積分,甚至還有張量分析等,有了這些基礎(chǔ)知識(shí),才能看懂并改進(jìn)各種學(xué)習(xí)算法。至于你的算法用什么語(yǔ)言實(shí)現(xiàn),則相對(duì)要簡(jiǎn)單很多,當(dāng)然Python就是一個(gè)不錯(cuò)的選項(xiàng),比起其它語(yǔ)言更簡(jiǎn)潔,更易學(xué),關(guān)鍵是有強(qiáng)大的庫(kù)支持。
不論是Python還是其他語(yǔ)言,對(duì)于人工智能來(lái)說(shuō)只是一種實(shí)現(xiàn)工具,所以未來(lái)任何一種語(yǔ)言都可以代替Python來(lái)實(shí)現(xiàn)人工智能的編譯。
Python之所以隨著人工智能爆火,是因?yàn)樗谋磉_(dá)簡(jiǎn)單,目前所有的教程和教材都是基于Python的。
而且目前主流的TensorFlow系列、pytorch、openCV等框架都是用Python來(lái)開發(fā)的,Python以它強(qiáng)大的庫(kù)和兼容性占領(lǐng)了人工智能這塊的基礎(chǔ)編程。
但是隨著工業(yè)界的進(jìn)入,很多人工智能的技術(shù)需要通過(guò)嵌入式和硬件結(jié)合,所以目前C和C++也開始煥發(fā)第二春。
然后還有一些偏門的用PHP和Java去實(shí)現(xiàn),來(lái)滿足甲方的一些{{BANNED}}要求,基本就是這些語(yǔ)言了。
python其實(shí)主要用于調(diào)用別人編好的人工智能的模塊,或者很方便的將別人的人工智能積木打好,構(gòu)建神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)等。但如果你要學(xué)習(xí)模塊里面的東西,c++,cuda等都需要涉及。要成為人工智能高手,其實(shí)該好好學(xué)習(xí)數(shù)學(xué)這門語(yǔ)言:)
人工智能不一定非要學(xué)習(xí)python,但是掌握了python將有利于你最有效率的去學(xué)習(xí)人工智能相關(guān)知識(shí)。為什么這么說(shuō)呢:
任何一門編程語(yǔ)言都只是程序設(shè)計(jì)的工具,程序設(shè)計(jì)的本質(zhì)是算法和數(shù)據(jù)結(jié)構(gòu)。而python是目前學(xué)習(xí)成本最低的編程語(yǔ)言,簡(jiǎn)單易學(xué)。還支持跨平臺(tái)開發(fā),你寫的代碼基本不用怎么改就能分別在windows、linux、macos操作系統(tǒng)上運(yùn)行,非常方便。python語(yǔ)言是一門解釋性腳本語(yǔ)言,無(wú)需編譯,可以一邊寫代碼一邊調(diào)試,非常有利于理解代碼本身的邏輯。而其他靜態(tài)編程語(yǔ)言就麻煩多了。
目前無(wú)論市面上的人工智能相關(guān)教材,還是網(wǎng)絡(luò)上開源框架,基本都是以python作為對(duì)應(yīng)開發(fā)語(yǔ)言來(lái)講解。人工智能本身就涉及很多數(shù)學(xué)相關(guān)的知識(shí),pyhon有豐富的數(shù)值計(jì)算相關(guān)的包,比如numpy,pandas等等,基于這樣第三方包,讓我們?cè)趯W(xué)習(xí)過(guò)程中能把精力都投入到理解相關(guān)知識(shí)本身,而不被如何去實(shí)現(xiàn)某個(gè)矩陣計(jì)算而絞盡腦汁。
至于還有沒(méi)有其他語(yǔ)言也可以用來(lái)學(xué)習(xí),那是肯定的。目前主流人工智能開源框架都提供多種語(yǔ)言的sdk,比如c++,java等。不過(guò)這兩種語(yǔ)言的學(xué)習(xí)成本就要大不少。請(qǐng)一定要記得我們是為了學(xué)習(xí)人工智能而不是為了學(xué)習(xí)編程語(yǔ)言這個(gè)初衷。希望我的回答對(duì)你有幫助!
本人從事IT行業(yè)已有十年之久,很高興回答你的這個(gè)問(wèn)題。
首先,編程語(yǔ)言(programming language)可以簡(jiǎn)單的理解為一種計(jì)算機(jī)和人都能識(shí)別的語(yǔ)言。一種計(jì)算機(jī)語(yǔ)言讓程序員能夠準(zhǔn)確地定義計(jì)算機(jī)所需要使用的數(shù)據(jù),并精確地定義在不同情況下所應(yīng)當(dāng)采取的行動(dòng)。
學(xué)習(xí)人工智能最快入手的開發(fā)語(yǔ)言是python,但同時(shí)現(xiàn)在主流的開發(fā)語(yǔ)言都可以作為人工智能應(yīng)用的開發(fā)語(yǔ)言,接下來(lái)分析下各自開發(fā)語(yǔ)言的優(yōu)缺點(diǎn)。
Python
由于其語(yǔ)法,簡(jiǎn)單性和多功能性,Python成為開發(fā)人員最喜歡的人工智能開發(fā)編程語(yǔ)言。Python最打動(dòng)人心的地方之一就是便攜性,它可以在Linux、Windows、Mac OS和UNIX等平臺(tái)上使用。允許用戶創(chuàng)建交互式的、解釋的、模塊化的、動(dòng)態(tài)的、可移植的和高級(jí)的代碼。
另外,Python是一種多范式編程語(yǔ)言,支持面向?qū)ο?,過(guò)程式和功能式編程風(fēng)格。由于其簡(jiǎn)單的函數(shù)庫(kù)和理想的結(jié)構(gòu),Python支持神經(jīng)網(wǎng)絡(luò)和NLP解決方案的開發(fā)。
優(yōu)點(diǎn)
Python有豐富多樣的庫(kù)和工具。
支持算法測(cè)試,而無(wú)需實(shí)現(xiàn)它們。
Python的面向?qū)ο笤O(shè)計(jì)提高了程序員的生產(chǎn)力。
與Java和C ++相比,Python的開發(fā)速度更快。
缺點(diǎn)
習(xí)慣使用Python來(lái)編寫人工智能程序的程序員很難適應(yīng)其它語(yǔ)言的語(yǔ)法。
與c++和Java不同的是,Python需要在解釋器的幫助下工作,這就會(huì)拖慢在AI開發(fā)中的編譯和執(zhí)行速度。
不適合移動(dòng)計(jì)算。
C ++開發(fā)語(yǔ)言
優(yōu)點(diǎn)
c++是最快的計(jì)算機(jī)語(yǔ)言,如果你的人工智能項(xiàng)目對(duì)于時(shí)間特別敏感,那么C++是很好的選擇,它提供更快的執(zhí)行時(shí)間和更快的響應(yīng)時(shí)間(這也是為什么它經(jīng)常應(yīng)用于搜索引擎和游戲)。此外,c++允許廣泛使用算法,并且在使用統(tǒng)計(jì)人工智能技術(shù)方面是有效的。另一個(gè)重要的因素是c++支持在開發(fā)中重用代碼。
C ++適用于機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)。
缺點(diǎn)
多任務(wù)處理不佳; C ++僅適用于實(shí)現(xiàn)特定系統(tǒng)或算法的核心或基礎(chǔ)。
它遵循自下而上的方法,因此非常復(fù)雜。
Java開發(fā)語(yǔ)言
Java也是一種多范式語(yǔ)言,遵循面向?qū)ο蟮脑瓌t和一次寫入讀取/隨處運(yùn)行(WORA)的原則。它是一種AI編程語(yǔ)言,可以在任何支持它的平臺(tái)上運(yùn)行,而無(wú)需重新編譯。
在各種項(xiàng)目的開發(fā)中,Java都是常用語(yǔ)言之一,它不僅適用于NLP和搜索算法,還適用于神經(jīng)網(wǎng)絡(luò)。
Lisp開發(fā)語(yǔ)言
優(yōu)點(diǎn)
Lisp是一門計(jì)算機(jī)編程語(yǔ)言,是繼Fortran之后的第二古老的編程語(yǔ)言。隨著時(shí)間的推移,LISP逐漸發(fā)展成為一種強(qiáng)大的、動(dòng)態(tài)的編碼語(yǔ)言。
有人認(rèn)為L(zhǎng)isp是最好的人工智能編程語(yǔ)言,因?yàn)樗鼮殚_發(fā)人員提供了自由。在人工智能中使用Lisp,因其靈活性可以快速進(jìn)行原型設(shè)計(jì)和實(shí)驗(yàn),當(dāng)然這也反過(guò)來(lái)促進(jìn)Lisp在AI開發(fā)中的發(fā)展,例如,Lisp有一個(gè)獨(dú)特的宏系統(tǒng),有助于開發(fā)和實(shí)現(xiàn)不同級(jí)別的智能。
與大多數(shù)人工智能編程語(yǔ)言不同,Lisp在解決特定問(wèn)題時(shí)更加高效,因?yàn)樗m應(yīng)了開發(fā)人員編寫解決方案的需求,非常適合于歸納邏輯項(xiàng)目和機(jī)器學(xué)習(xí)。
缺點(diǎn)
很少有開發(fā)人員熟悉Lisp編程。
作為一種較古老的編程語(yǔ)言,Lisp需要配置新的軟件和硬件來(lái)適應(yīng)它的使用。
Prolog
Prolog也是古老的編程語(yǔ)言之一,與Lisp一樣,它也是人工智能項(xiàng)目開發(fā)的常用語(yǔ)言,擁有靈活框架的機(jī)制,它是一種基于規(guī)則和聲明性的語(yǔ)言,包含了決定其人工智能編碼語(yǔ)言的事實(shí)和規(guī)則。
Prolog支持基本的機(jī)制,例如模式匹配、基于樹的數(shù)據(jù)結(jié)構(gòu)和人工智能編程的自動(dòng)回溯。除了在人工智能項(xiàng)目中廣泛使用外,Prolog還用于創(chuàng)建醫(yī)療系統(tǒng)。
隨著人工智能zd時(shí)代呼聲漸起,Python憑借其入門簡(jiǎn)單、應(yīng)用廣泛的優(yōu)勢(shì)成為很多想要入行互聯(lián)網(wǎng)行業(yè)的人們的首選編程語(yǔ)言。如果你想學(xué)一門語(yǔ)言,可以從語(yǔ)言的適用性、學(xué)習(xí)的難易程度、企業(yè)主的要求專幾個(gè)方面考慮。從這幾個(gè)角度看,學(xué)習(xí)Python都沒(méi)有什么可挑剔的。如果你想要專業(yè)的學(xué)習(xí)Python開發(fā),更多需要的是付出時(shí)間和精力,一般在2w左右,時(shí)間在4-6個(gè)左右??梢愿鶕?jù)自己的實(shí)際需求去實(shí)地看一下,先好好試聽之后,再選擇適合自己的。只要努力學(xué)到真東西,前途屬自然不會(huì)差。
我們都知道學(xué)習(xí)人工智能需要學(xué)習(xí)一門語(yǔ)言,而這個(gè)語(yǔ)言到底怎么選擇才能合適呢?下面我們來(lái)看一看吧。
首先你提到的應(yīng)該是Python,而Python最大的特點(diǎn)就是語(yǔ)法簡(jiǎn)潔 簡(jiǎn)單,包含眾多強(qiáng)大的庫(kù),有著非常完善的語(yǔ)言生態(tài),Python也被認(rèn)為是適合科學(xué)計(jì)算的一種語(yǔ)言,眾多科學(xué)計(jì)算相關(guān)的開源庫(kù)都是支持Python環(huán)境的。
所以Python是非常適合人工智能方面的開發(fā)的,但是 其實(shí)語(yǔ)言并不重要,所有的編程語(yǔ)言都是有共性的,每一個(gè)編程語(yǔ)言的語(yǔ)法學(xué)習(xí)都是相似的。語(yǔ)法學(xué)習(xí)周期差不多一周左右就可以學(xué)會(huì)。
語(yǔ)言不重要,關(guān)鍵是你想要做的這個(gè)東西用哪種語(yǔ)言更加適合去做,現(xiàn)在也有g(shù)o語(yǔ)言成為黑馬凸顯出來(lái),所以無(wú)論語(yǔ)言是什么,這只是一個(gè)過(guò)程,實(shí)現(xiàn)最終的結(jié)果才是最終我們想要的內(nèi)容。
百戰(zhàn)程序員IT問(wèn)題專業(yè)解答
我們都知道學(xué)習(xí)人工智能需要學(xué)習(xí)一門語(yǔ)言,而這個(gè)語(yǔ)言到底怎么選擇才能合適呢?下面我們來(lái)看一看吧。
首先你提到的應(yīng)該是Python,而Python最大的特點(diǎn)就是語(yǔ)法簡(jiǎn)潔 簡(jiǎn)單,包含眾多強(qiáng)大的庫(kù),有著非常完善的語(yǔ)言生態(tài),Python也被認(rèn)為是適合科學(xué)計(jì)算的一種語(yǔ)言,眾多科學(xué)計(jì)算相關(guān)的開源庫(kù)都是支持Python環(huán)境的。
所以Python是非常適合人工智能方面的開發(fā)的,但是 其實(shí)語(yǔ)言并不重要,所有的編程語(yǔ)言都是有共性的,每一個(gè)編程語(yǔ)言的語(yǔ)法學(xué)習(xí)都是相似的。語(yǔ)法學(xué)習(xí)周期差不多一周左右就可以學(xué)會(huì)。
語(yǔ)言不重要,關(guān)鍵是你想要做的這個(gè)東西用哪種語(yǔ)言更加適合去做,現(xiàn)在也有g(shù)o語(yǔ)言成為黑馬凸顯出來(lái),所以無(wú)論語(yǔ)言是什么,這只是一個(gè)過(guò)程,實(shí)現(xiàn)最終的結(jié)果才是最終我們想要的內(nèi)容。
這個(gè)只是專業(yè)人士的工作習(xí)慣,就目前而言python 在AI領(lǐng)域應(yīng)用是最為廣泛的,這個(gè)其實(shí)也是得益于早期python的積累,被非常多的數(shù)學(xué)和計(jì)算機(jī)領(lǐng)域研究者應(yīng)用,從而積累了大量的公式模型庫(kù),在人工智能走向快速發(fā)展階段而被更多從業(yè)者所應(yīng)用。
10
回答0
回答10
回答3
回答10
回答2
回答10
回答10
回答7
回答3
回答