偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

AI開發(fā)者九問:10分鐘了解AI開發(fā)的基本過程

新聞 前端
AI模型本質是一個函數,想要找到這個函數準確的的表達式,僅憑邏輯是無法推導出來的,而是訓練出來的。

  [[413711]]

1、AI開發(fā)究竟在開發(fā)什么?

  • 一個硬件開發(fā)者的工作成果是一個布滿集成電路的服務器,開機就可以運行某種軟件。
  • 一個移動端開發(fā)者的工作成果可以是一個手機APP,包括了大量二進制數據,可被麒麟芯片直接運行。
  • 一個AI開發(fā)者的工作成果則是一個模型,模型本質上是一個函數:
  1. f(圖片) = "How are you" 
  2. f(貓圖片) = "Cat" 

無論這個函數有多么復雜,有多少個變量或者參數,AI開發(fā)都是試圖找出這個函數的表達式。

2、AI模型(函數)是怎么開發(fā)出來的?

AI模型本質是一個函數,想要找到這個函數準確的的表達式,僅憑邏輯是無法推導出來的,而是訓練出來的,我們喂給機器目前已有的數據,機器就會從這些數據里去找出一個最能滿足(專業(yè)術語稱為擬合)這些數據的函數,當有新的數據需要預測的時候,機器就可以通過這個函數去預測出這個新數據對應的結果是什么。

對于一個具備某種智能能力而言,一般具備以下要素:數據+算法+模型,開發(fā)的過程,就是不斷地用數據和算法使得模型越來越逼近真實情況,注意是逼近而非推導,這個過程稱為訓練。

3、AI模型的訓練過程是怎么樣的?

我們來用一個能夠區(qū)分貓和狗圖片的模型來幫助理解訓練的過程:“數據”就是我們需要準備大量標注過是“貓”還是“狗”的圖片;“算法”指的是構建模型時我們打算用淺層的網絡還是深層的,如果是深層的話我們要用多少層,每層有多少神經元、功能是什么等等,也就是網絡架構的設計,相當于我們確定了我們的預測函數應該大致結構是什么樣的。

我們用Y=f(W,X,b)來表示這一函數,X是已有的用來訓練的數據(貓和狗的圖片),Y是已有的圖片數據的標簽(該圖片是貓還是狗), W和b是什么意思呢?一開始,我們確實不知道,這兩個參數是需要機器學習后自己找出來的,找的過程也就是訓練的過程。

“模型”指的我們把數據帶入到算法中進行訓練,機器就會去不斷地學習,當機器找到最優(yōu)W和b后,我們就說這個模型是訓練成功了,這個時候我們的函數Y=f(W,X,b)就完全確定下來了

然后我們就可以在已有的數據集外給模型一張新的貓或狗的圖片,那模型就能通過函數Y=f(W,X,b)算出來這張圖的標簽究竟是貓還是狗,這就是推理。

簡單總結下:不管是最簡單的線性回歸模型、還是較復雜的擁有一億個參數的深度神經網絡模型,本質都是尋找一個能夠良好擬合目前已有數據的函數Y=f(W,X,b),并且我們希望這個函數在新的未知數據上也能夠表現良好。

4、AI為什么要強調大量數據?

因為只有數據量足夠大,模型才能夠學習到足夠多且準確的區(qū)分貓和狗的特征,才能在區(qū)分貓狗這個任務上,表現出足夠高的準確性;當然數據量不大的情況下,我們也可以訓練模型,不過在新數據集上預測出來的結果往往就會差很多。

假設識別貓的模型要非常準確,就需要各種光照條件、各種背景、各種花色的貓的照片,不僅要有波斯貓,還要有加菲貓,直到模型包含了我們能想到的各種貓的特征,一個人臉識別模型,大約需要幾百萬張照片,才能達到可用,著名的Imagenet數據集,大約包含了1400萬張圖片,極大地方便了開發(fā)者。

5、在AI開發(fā)過程中一個好的開發(fā)工具可以幫助開發(fā)者做什么?

假設沒有一個現成的開發(fā)平臺,首先你需要學會常用的AI開發(fā)語言python,python是整個過程并不耗精力的環(huán)節(jié),其次你需要學習傳統(tǒng)機器學習和深度學習相關算法,這塊算是花費最多精力和時間的環(huán)節(jié),然后盡可能去理解和推導算法,然后用python代碼去實現算法再訓練模型,代碼能力很重要,不然你的模型都建不起來。

然后你發(fā)現了一個開發(fā)框架,華為MindSpore或者谷歌Tensorflow,你會發(fā)現并不需要那么高的數學門檻,不是說要深刻理解算法才能更好訓練出好模型,模型損失函數優(yōu)化方法MindSpore/Tensorflow都內置好了,而且只需要簡單的調用就好了,如果說MindSpore/Tensorflow是可以把一個模型代碼量大大減少的框架,那么Keras就是讓模型代碼量可以少到驚人的框架,例如上面的貓狗分類器,15行代碼就可以搞定,幾十行代碼就把一個擁有著卷積層、池化層和全連接層的較高級優(yōu)化方法的深度學習網絡架構寫出來。

一個開發(fā)框架就像安卓框架為手機APP開發(fā)者提供的很多基礎功能,如果沒有這個框架,一個簡單的給好友發(fā)送圖片的功能,你需要直接和操作系統(tǒng)的各個底層功能模塊打交道了。

6、AI開發(fā),有了開發(fā)框架就夠了嗎?

當然不是,一個開發(fā)框架,只是幫開發(fā)者做了一些開發(fā)者沒必要實現的部分,或者實現起來代價太大的部分,一個完整的AI開發(fā)過程,從準備數據、數據預處理、數據標注、選擇算法、訓練、調參、部署,這和一個普通的APP開發(fā)的過程差不多。如同生產一輛汽車,一個自動化、高科技的總裝車間是必不可少的,但沖壓、涂裝車間也制約著汽車的生產效率,那么制約AI開發(fā)效率最頭痛的是什么,請看下一個問題。AI開發(fā)過程中最大的困難是什么?

7、AI開發(fā)過程中最大的困難是什么?

  • 要準備大量的數據,前面已經提過,更可怕的是數據標注,據統(tǒng)計,數據處理和標注環(huán)節(jié)大約占整個開發(fā)周期的70%。所謂標注,就是給數據打標簽,告訴機器一張圖片究竟是貓還是狗,標注是一件在AI開發(fā)者看來技術含量非常低的工作,已經屬于勞動密集型產業(yè),業(yè)界有大量的第三方公司,專門從事數據標注工作。以自動駕駛為例,車頭上的攝像機在實時拍攝車前的所有畫面,自動駕駛標注的過程要標注前車、障礙物、行人、信號燈、指示牌、指示線等等,這個過程如果完全依賴人工標注,自動駕駛將永遠難以商用。
  • 要反復迭代訓練,訓練并不是一蹴而就,要反復修改各種參數,使得模型的準確度逐步提升,這個過程,目前需要豐富的經驗,如果沒有充足的算力,訓練一次,等待三天,然后調參,再等待三天,如果要迭代20次,這個過程是很消耗人的意志。所以,即使不考慮成本因素,算力也是制約AI普及最大的問題。

8、怎么解決AI開發(fā)者的問題?

正如開發(fā)一個office軟件,不可能費事到用記事本敲代碼,你需要一個像visual studio一樣的集成開發(fā)環(huán)境,需要一個像Git一樣的代碼管理工具,同理,開發(fā)一個AI模型,你也需要一個集成開發(fā)環(huán)境,而且需要一個版本管理工具。

提供給開發(fā)者代碼編輯環(huán)境、語法檢查、編譯器等功能,一個AI的開發(fā)平臺,同樣也要能幫開發(fā)者標注數據、創(chuàng)建模型訓練作業(yè)、部署模型等功能,有了開發(fā)平臺,開發(fā)平臺要幫助開發(fā)者把所有苦活累活都干完,讓開發(fā)者聚焦在最核心的代碼和算法上。

當然,要提供給開發(fā)者易獲取、性能強、價格低的算力,提高模型訓練的迭代速度。

9、有沒有更快地提升AI開發(fā)速度的辦法?

當然有。從根本上提升開發(fā)效率,挖掘到最本質,只有兩個辦法:重用和自動化,否則只能一行一行代碼干起。

開發(fā)一個APP,可以從最基本的代碼寫起,可以復用開發(fā)者共享的開發(fā)包、函數等,華為云開源鏡像站有大量的java開發(fā)包,就是這個意思,也可以復用一個完整的APP,修改下界面配色,就變成了自己的APP,這是復用。要保障APP的質量,可以手工測試,也可以用自動化測試工具。如果這些都不想做,可以也可以用一個現成的工具,用可視化的方法生成一個APP,當然APP的風格只能從工具已有的模板中選取。開發(fā)者一直在試圖用各種辦法,降低開發(fā)的工作量。

AI開發(fā)也是一樣的。可以找現成的數據集、找現成的標注好的數據集,現成的算法和模型,用自動部署工具將模型部署到端邊云。當然,也可用自動學習功能,只要提供原始數據,由系統(tǒng)幫助開發(fā)者完成模型構建、算法選擇和自動訓練,開發(fā)者可以直接看到結果。最簡單的辦法,就是尋找一個已經訓練好的模型,在軟件中直接調用。

基于此,一個好的AI開發(fā)平臺,要從各個維度去提升開發(fā)效率,這些功能往往都是很多小細節(jié),算力強、訓練快,只是完成了必須的最基本的功能。

 

責任編輯:張燕妮 來源: 博客園精華區(qū)
相關推薦

2021-04-30 16:23:58

WebRTC實時音頻

2023-03-02 09:35:55

chatGPTOpenAI編程

2019-08-16 10:55:37

開發(fā)者技能AI

2018-06-03 08:00:24

AI開發(fā)深度學習語言

2024-10-30 15:42:39

2020-10-13 18:22:58

DevOps工具開發(fā)

2025-04-08 08:05:00

生成式AI網絡安全企業(yè)安全

2018-10-29 10:08:01

2021-05-17 20:13:50

數倉操作型數據庫

2015-11-10 09:26:24

51CTO云計算專題

2024-07-05 11:34:07

2024-07-08 10:51:16

2025-03-17 08:00:00

2024-03-28 12:32:18

JVM類加載構造器

2024-04-17 14:44:49

2025-05-24 14:36:43

2020-10-26 10:18:55

百度EasyDL

2014-03-28 16:03:03

移動開發(fā)跨平臺工具

2012-06-28 10:26:51

Silverlight

2024-02-22 07:37:37

對象JVM內存
點贊
收藏

51CTO技術棧公眾號