回覆列表
  • 1 # 人工智慧學者

    首先,什麼是人工智慧要搞清楚。機器學習 深度學習不能代替人工智慧。第二,用於人工智慧的語言很多,lisp,prolog,smalltalk是傳統人工智慧語言,forth, C/C++,fortran,Cobol,JAVA,Python,...都可以並實際用於人工智慧。第三 關於機器學習,C/C++是Python演算法庫的根。演算法實現需要C/C++。應用可以用Python.因此,真正搞機器學習,還是需要C/C++。搞人工智慧需要的知識更多。lisp,prolog也往往需要C/C++來實現。我自1983年進入人工智慧領域。幾十年沒有多少同行。去年冒出那麼多專家。懵了。第四,我本人不贊成Python是最適合人工智慧的語言。請問lisp,prolog,smalltalk放哪?可解釋推理。Python怎麼實現?

  • 2 # 輕軟

    C由單個函式組成,C++由函式的函式組成,即類組成。Python由類的類組成。Python每一部分都是類。比如int x , 這個int就是一個類了,驚不驚奇,強不強大?你可以x.很多東西出來。另外,Phthon還有很多內建的資料型別,如字典。而人工智慧依賴的就是數學運算,數學運算依賴就是資料結構和演算法。Phthon已經天生地做好了很多事情,當然你可以用c或c++做同樣的事,但可能要多花一年或十年的時間。

    可能初學者對上面的理解還比較模糊,舉個例子,由表x張,每一張由y個不同屬性,每一張由z個橫列,需要實現的功能是,對每個屬性排序,豎列累加累乘,排序,表的置換,相加,相乘。等等。可以分別用c,c++,phthon來做做。

  • 3 # 小貝的STEAM教室

    其實人工智慧可以用到很多種語言,不只是Python和C/C++,還有Java,以及lisp,prolog.不過目前來看,還是Python和C++用得更多。

    而Python其實是人工智慧的首選語言,而且想要入門Python比其他語言都會容易些。當然了,不是說C++在人工智慧中就毫無用處了,而是相比Python,它更不適合用在人工智慧上。為什麼?

    看看它的缺點:1.遵循自上而下的方法,語言比較複雜;2.僅僅是更適合實現特定系統或者是演算法核心/基礎。

    而Python呢?優勢更多:1.開發速度明顯比C++更快;2.有各種各樣的庫和工具;3.它面向物件;4.它還支援演算法測試。

  • 4 # 程式設計獅W3Cschool

    早起人工智慧概念還很模糊的時候,很多人也很不解,為什麼莫名其妙的,Python怎麼就成了開發人工智慧的第一語言呢?

    人工智慧為什麼不用C++

    事實上,用什麼程式語言跟人工智慧完全沒有關係,只要你願意,用C++也沒有問題。至於為什麼Python成為了人工智慧的程式語言,原因有很多,這裡簡單說一下。

    01

    谷歌的搜尋引擎源自Page和Brin的博士論文,當時他們的程式就是用Python寫的,當日他們兩就決定讓谷歌投入做AI時,首選的語言就是Python。在收購DeepMind之後,谷歌開始釋出大量的論文,放出的程式碼也基本上是基於Python的,所以自然而然……

    02

    這是由於Python的優點決定的,它具有多平臺相容性,程式碼簡潔、可讀性強,豐富的開源庫等等。

    C++在人工智慧方面毫無用處?

    恰恰相反,C++在人工智慧方面的用處很大。目前機器學習的底層框架和所以來的支援庫,幾乎都是在使用C++。只是相比之下,Python的需求量更大,並不代表C++就沒有市場了。

    如果你寫的是底層的庫,那麼C語言是最佳的選擇,如果是程式碼量巨大,且有大量底層庫支援,保證速度不至於慢到不能接受的程度,Python還是最佳的選擇。

    為什麼招聘的需求不同?

    再看一個例子,你就明白了。來自騰訊人工智慧職位的招聘。

    招聘崗位有:語言識別/合成研究員,機器學習研究員、自然語言處理研究員、計算機視覺研究員、語音識別開發工程師……

    閱讀一下這些崗位要求,你會發現一條几乎通用:至少精通一種技術語言,包括但不限於Java、C/C++、C#、Python等。

    另外,要麼就是要求你同時精通C++和Python。

    結合上面對C++和Python的闡述,你應該知道為什麼有些企業會招聘C++,有些企業會招Python了吧。

    程式語言,誰是核心?

    不妨再舉個例子,下圖是TIOBE程式語言排行榜:

    這個榜單被很多人解讀為“誰才是程式語言的老大”。這可能是最大的誤讀了,其實這個榜單更多的是反應各類程式語言的熱門程度,亦或是市場需求,僅此而已。

    每種程式語言,都有他們的優勢和劣勢,他們可能因為市場的需求而有了冷熱之分。如果你非得分出誰才是最重要的程式語言,我只能告訴你:

    “PHP是世界上最好的語言”

    ——摘自W3Cshool學員的回答

  • 5 # 犍為真人

    人工智慧,就是讓機器可以像人一樣思考問題。典型的場景有:影象識別、自然語言處理、語音處理、動態物體跟蹤、可運動的機器人,等等。

    智慧,就是人類可以很容易作出判斷,但是卻根本描述不清楚為什麼是這樣。比方說,一張人臉,人類盯上不超過一秒鐘,然後幾乎不需要思考,就立刻認出這是誰。但是人類卻根本無法用文字作出該臉特徵的描述。讀文章,有“語感”,聽音樂,有“樂感”。為什麼某首樂曲聽上去悲傷?感覺,樂感,真的說不清楚悲傷的原因。開車,也是講“感覺”。只有學駕照的時候,教練才教很多公式,教很多特殊點(雨刷鉚釘,右邊玻璃的右下角等等)。AlphaGo為什麼是人工智慧?對了,就是“棋感”。

    而早期的深藍下國際象棋,勝過人類,就不能叫智慧。因為它基本上是以窮舉為主,深藍的每一步操作都是精確可描述的,是“可知”的,是機器思維而不是人類思維。相反,AlphaGo就連開發者都搞不清楚這機器是怎麼運作的。它就是個“黑匣子”。它模擬的是人的“感覺”而不是一堆人類發明的精確圍棋演算法公式。感覺是無法用語言描述的。

    簡單算術運算也不是智慧,因為人類列算式計算的每一步都是可精確描述的。同樣電子計算器在算術運算時的每一個步驟同樣也是如此(雖然它用的是二進位制計算,數位電路,泰勒級數展開等與人類不太一樣的方法)。

    人工智慧要模擬人的“感覺”,就必須訓練,也可以叫做“學習”。比如讓它區分貓和狗,就給它幾萬張貓和狗的圖片,讓它自己去慢慢學習。在學習前,人類只需要告訴它某張圖是貓或是狗,其他資訊一概不用多說。比如完全沒有必要提醒它有鬍子的就是貓。

    從目前的技術來看,訓練是非常考驗技術和花費時間的。以致於大家一提到人工智慧,就是以為在說機器訓練(機器學習)。

    訓練是個反覆迭代的過程,就是說需要不斷地探索,此路不通,就換一條路,非常艱辛。現實中,往往是不斷地調整神經網路的引數,不斷地對比訓練結果。多數時候還要資料預處理,以及輔助傳統的機器學習、傳統影象處理、模式識別等技術。

    那麼,上述過程,誰最擅長?現在公認的就是Python。

    Python是解釋性語言而,弱型別,用起來很方便,開發效率大大高過C++、JAVA等語言,而且有很多現成的機器學習、深度學習、科學計算庫,這些都是它作為人工智慧語言的優勢。AlphaGo的頂層程式碼大部分是用的Python,AlphaGo的成功,也對Python起了很大的推動作用。

    資料的訓練還可以細分為兩類。一是前期的演算法探索和小樣本資料訓練,二是後期正式的大規模資料訓練。比如實驗的1萬個樣本,可能要訓練1個小時才能得到理想的網路。而最終的100萬個樣本時,可能就需要100個小時。這已經很長了。這時候,C++的作用就體現出來了。可以用C++花很多的人力成本投入去最佳化演算法。概括說來就是,前期用Python進行演算法探索,待演算法和相關引數確定,後期用C++重寫演算法實現生產環境的真實的正式的訓練。

    訓練是人工智慧的很難的一部分,但是絕對不是人工智慧的全部。人工智慧還包括前期的資料獲取、資料預處理和後期的實際應用。

    訓練得到的只是一個巨大的神經網路,有了它以後就可以預測了。預測所需要花的時間遠遠短於訓練。比如訓練花100個小時,而用訓練好後的網路預測可能只需要5秒。可別小看這5秒的短時間。我們仍然有必要最佳化,比如是否可以1秒就完成,0.1秒完成?試想,設計一個無人駕駛系統,那可是分秒必爭啊!稍微反應遲緩就可能釀成事故。

    這時候,C++的作用又一次體現出來了!

    這還沒完。人工智慧的載體可能會很精簡。比方說嵌入到人體,嵌入到汽車,這麼小的系統,不是Python的天下。還有機器人,是可以運動的,如何驅動機器動,這不還是C++的強項嘛。

    另外,還涉及到前期的資料採集和預處理。比如影象、音訊、影片,需要實時感知,包括必要的預處理(比如灰度化、關鍵部位快速定位)。這就要用到音訊影片的高效處理,資料通訊,物聯網等技術。這不還是C++的強項嗎?

    總之,在人工智慧開發的整個過程中,Python主要處理演算法模型部分,而具體的前期資料獲取和後期與外部裝置部分的互動則可以用C++來實現。

    說個最誇張的例子。假如我們已知X要預測Y,Python做的工作就是找到Y=aX+b這測關係式,特別是a和b的具體數值最值錢。而除此之外的所有工作,從資料採集,軟體架構設計,資料庫設計與讀寫,後臺運作,分散式處理一直到前端展示可能都是用的Python以外的技術(比如C++)來實現。Python的工作僅僅是得到a和b,僅此而已!

    不過,從目前來看,人工智慧最主要和最難的部分依然是由Python來實現的。

  • 6 # ohfaint

    這個主要看這個崗位招收的人員是需要進行哪個層次的程式設計工作。

    C++在繼承了C語言的優點的同時加入了面向物件的內容。所以C++語言不但可以構建效率較高的底層具體的演算法實現,又有良好的擴充套件性和程式碼重用性。所以一般在追求高效執行的底層演算法中,我們一般使用C或C++來進行構建。

    python語言作為一種解釋性語言,執行效率比較低。但是python上已經具有了大量構建好的人工智慧演算法庫。所以python語言更適於構建上層框架。這樣不但構建效率高,容易除錯。因此在上層演算法中通常使用python語言構建應用層框架。

    透過兩種語言的配合方式充分利用了兩種開發語言的長處和有點,也利於保持原有語言型別上所進行的原有開發。

    因此,在人工智慧崗位的招聘中,大一些的公司都會分開來進行招聘。需要底層演算法實現的招熟悉C或C++的人,需要高層演算法實現的招熟悉python的人。

  • 7 # 隔壁的老王說事

    平常訓練使用python,真正上線的時候用cpp。因為如果用python環境是個問題,一臺機器一臺機器的搭建paddle or tensorflow太麻煩了,況且效率也不高。將預測的程式碼寫成cpp的,只把依賴的庫複製出來放到每臺機器上就行了。

  • 8 # CuberFan

    py用來訓練、測試、驗證模型,c++用來部署模型。拿mxnet來說,開發的時候,用py-mxnet來訓練測試模型,當模型達到效能和速度需求後,用mxnet的c動態庫來deploy部署,可以編譯不同硬體平臺的動態庫。

  • 9 # GPS跟蹤器LED大燈

    演算法更重要,語言是次要的。python是膠水語言,演算法基本還是c、c++,你想用python寫演算法也可以,就是效率會差很多。

  • 10 # 吳大爺的日常

    這麼說吧,C++學精了,上手其他程式語言會簡單許多,有很多優勢,python主要是上手簡單,但是精通也不容易。程式語言也沒有哪個更重要,只有哪個更適合。人工智慧的開發的核心庫一般都也是C++寫的,只是提供了python程式語言介面,因為它更便捷。在開發過程中遇到效能調優的問題時還是會繞回到C++的。

  • 11 # 知乎霍華德

    這個問題我有答案,頂我上去。

    因為這兩個崗位要乾的活完全不一樣。

    第一個要求python和tensorflow說明整個工作主要在設計模型,訓練模型,最後可能的輸出形式是用模型離線算一批資料或者用GPU在伺服器部署;所以不需要太多的C/C++工程能力。

    第二個工作要求C/C++,特別有一條要在手機客戶端部署,這個要求就高很多了,不只是模型訓練,你還需要在手機上實現模型,手機上可沒有CUDA生態的GPU,主要是一些協處理器,沒法直接上tensorflow。所以此時,比較好的方案就是用C/C++來進行CPU程式設計實現模型。

  • 12 # 碼農視界

    C++是所有語言的基礎,現在很多程式語言都是由此衍生過來的,因為精通C++太難了,其語言的繁瑣性,很多人都在半路上就放棄了,所以才出現了之後的很多簡潔版的程式語言。

    所以就當前的學習趨勢來看,很多人都會選擇Python,不僅僅是因為Python具有強大的資料庫,對人工智慧技術有著更多的優勢,還因為相對於C++語言來說,是簡單容易入門,容易上手的!很多零基礎的同學也是可以學會的!

  • 13 # 軟體開發與運維

    C++屬於研發工,Python屬於裝配工。

    你要知道Python呼叫的那些庫都應該是C++寫的,沒有C++寫出基礎庫,那Python也無米可炊;

    當然,你讓研發工去搞裝配,不是不行,但浪費了,而且Python是個非常優秀的膠水語言。尤其在試驗過程中,可以降低成本。

    說實話,如果不求深入研發,Python用用已有的C++庫,夠了。

  • 14 # 雲和資料

    C++屬於研發工,Python屬於裝配工。

    你要知道Python呼叫的那些庫都應該是C++寫的,沒有C++寫出基礎庫,那Python也無米可炊;

    當然,你讓研發工去搞裝配,不是不行,但浪費了,而且Python是個非常優秀的膠水語言。尤其在試驗過程中,可以降低成本。

    說實話,如果不求深入研發,Python用用已有的C++庫,夠了

  • 15 # qwzx0001

    人工智慧崗位跟C++還是python沒關係,要求的員工是高學歷,有10年以上工作經驗,35以上的不要,結婚的不要,不能入股出資的不要

  • 中秋節和大豐收的關聯?
  • cf手遊中,能在商城中單獨購買M4死神嗎?