人工智能需要會什么編程?
這個問題我想你問的一定不只是用什么語言,而是需要會什么方面的編程技術(shù)。其實編程在人工智能中只是一個輔助工具,從事人工智能是不需要你有十分過硬的編程技術(shù)的,但是既然人工智能是需要大量的運算和大量的數(shù)據(jù)的話,這種事情也只有計算機才能實現(xiàn),所以將人工智能模型建立和訓(xùn)練就需要靠代碼來實現(xiàn)。
代碼知識實現(xiàn)AI的工具,數(shù)學(xué)才是人工智能的核心。下面就人工智能需要的編程技能大概說明一下:
這里有一張人工智能深度學(xué)習(xí)技能需求圖分享給大家,這是我在上深度學(xué)習(xí)的課程時教材上面的,下面就根據(jù)這個圖來展開說明。
數(shù)據(jù)是人工智能的基礎(chǔ)和根本,沒有數(shù)據(jù)就像大廈沒有砂礫是建不起來的。數(shù)據(jù)來源可能有肯多,比如傳感器。那么你可能就需要會通過串口或者socket等其他網(wǎng)絡(luò)通訊編程將數(shù)據(jù)從傳感器中取出來。又或者,數(shù)據(jù)是存在數(shù)據(jù)庫比如mysql、redis、sqlite、oracle等,那么你可能就需要會從數(shù)據(jù)庫中獲取數(shù)據(jù),比如sql語句。又或者,數(shù)據(jù)是以文檔形式存放,那么你就需要會文檔的讀取。
有了數(shù)據(jù)后需要對數(shù)據(jù)進行處理,比如清洗、數(shù)據(jù)集成、數(shù)據(jù)歸約、特征提取、離散化等處理。那么你可能會用到matalab工具、pandas、numpy、Hadoop等成熟庫,還有數(shù)據(jù)可是話可能要用到的BI Tableau、Qlikview、PowrerBI等。
這個是人工智能的核心,智能模型的建立。它包括卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、生成式對抗網(wǎng)絡(luò)等。
常用的編程工具和編程庫是python、C#、C++等。以python為例,常用的庫有Keras、Tensorflow、PyTorch等,目前這三個是主流的,若你想從事AI建模的工作,那么著三個庫你是必須要會,是繞不開的
keras建立一個簡單的神經(jīng)網(wǎng)絡(luò)代碼:
建立并訓(xùn)練好的數(shù)據(jù)模型,你需要將之部署實用化,放置到項目中去,可以是app、可以是web、也可以是小程序,如果你需要從事這些方面的工作,那么你就需要具備相關(guān)的編程知識,比如app開發(fā)、web開發(fā)、系統(tǒng)運維等方面知識。
以上所列的編程技能并不代表一個人需要全會,上面提到的四個模塊,每個模塊都深不可測,個人只需要從事其中很小的一方面并專精就好,選擇自己想從事的模塊然后掌握相關(guān)技能就可以了。
至于編程語言,推薦Python。社區(qū)健壯、占有率高、好用、易用、發(fā)展迅猛。