AI產品經理的7堂必修課:必備的AI基礎知識
導語:隨著AI產品近年在市場上的熱門,AI產品經理也變得搶手了。然而入門AI產品經理除了基本的技能外,還必須具備基礎的AI知識。本篇文章,作者將向我們分享基礎的AI知識,助你入門了解AI行業。
一、三駕馬車
這些年大家都常常聽到人工智能有三大馬車,即:數據、算法和算力,其實這個是拆解任何一個人工智能項目或者是問題非常有效的方法,大家務必記住這三個要素,缺一不可,我們后面的實戰章節會拿來反復進行驗證使用。我們接下來就從基礎理論看看這三大要素的組成。
1. 數據的構成
數據:任何AI模型訓練都需要數據,AI深度學習模型不可能無中生有。包括我們人類的高等智能學習也需要有輸入,才能進行輸出,因此數據就是AI模型的重中之重。
數據按照用途可分為:訓練集(train set)、驗證集(validation set)和測試集(test set)。
其中訓練集占全部數據集的絕大部分,數量從萬級到千萬級甚至更多,且對于算法模型來說,一定是數據越多算法模型越好,即可以理解為算法跟人一樣“見多識廣”,見的數據多了自然模型更加魯棒和強大。
驗證集主要用來調整模型參數從而選擇最優模型,驗證集可以理解成我們學習時候的教參書,用來驗證我們是否對于所學習知識已經掌握;但是最終用來評價模型的好壞是測試集,這部分數據對于模型一定之前是”保密的”,可以理解對于模型要進行一次“考試”。
考試范圍包含之前訓練集的“知識點“,看看那其中訓練集:驗證集:測試集=6:2:2;驗證集并不是必須的,因此訓練集與測試集的比例一般為8:2。
數據按照來源可分為:公開數據集、自建數據集;
人工智能的快速發展與其開源的氛圍密不可分,很多大型的組織和機構都愿意把其最新的研究結果的數據開源,供其他人共同研究、推進學術進步。
比如海外的google dataset search、kaggle、data.gov(美國政府)、各種國內外的比賽賽事主辦方會開源數據集、包括有一些專業的公司做公開數據集的聚合業務。
對于自建數據集,分為兩部分:一是可以通過互聯網進行爬取,另一方面可以進行自行采集,除了組織周圍同事進行小規模數據采集、通過已有產品埋點回流數據,也可以通過找專業公司組織大規模的采集。
構建自建數據集,需要產品經理與算法同學一同構建數據集的規格specification,即通過分析拆解目標任務,對數據集的構成進行MECE(互相獨立、完全窮盡)的拆解,為了更好的拆解,建議大家可以通過構建思維導圖的方式來創建。如圖1:
人臉關鍵點數據集構建要求
構建完成數據集要求后,可以進行數據集的試采,通過試采一個完整的被試者,來預估采集項目的完整周期,如果時間遠遠超于預期時間,是否可以考慮簡化數據集的標準、多采集設備并行又或是減少采集人數規模、將數據采集項目分成兩期。
由于對于深度學習需要結構化的數據進行訓練,因此我們采集完的數據還要同步進行標注。數據標簽種類眾多,比如分類、拉框、注釋、標記(畫點)等等。標注之后的結構化數據輸入深度學習模型之中才可以進行訓練。
很多同學可能覺得這樣的操作前期成本太高了,是否可以不標注就進行訓練呢?比如最近大火的自監督學習,自監督學習的核心,在于如何自動為數據產生標簽。例如輸入一張圖片,把圖片隨機旋轉一個角度,然后把旋轉后的圖片作為輸入,隨機旋轉的角度作為標簽。
再例如,把輸入的圖片均勻分割成3*3的格子,每個格子里面的內容作為一個patch,隨機打亂patch的排列順序,然后用打亂順序的patch作為輸入,正確的排列順序作為label。類似這種自動產生的標注,完全無需人工參與。
但是目前大部分任務,還是需要人類標注(label)大量數據之后再送給機器進行學習。所以之前很多人提到人工智能中都是“人工”這種說法還是十分正確的。
但其實現在很多互聯網數據產生的過程中就自帶了標簽,比如說近些年很火的圖片社交網站Instagram,用戶上傳圖片、視頻的同時會增加很多#,#美食 #聚餐 #海灘等等,這些其實就是用戶自己手動為圖片或者視頻打標簽的過程,省去了統一再打一次標簽的過程,Instagram的后臺模型就可以利用每天用戶上傳分享的海量數據對圖片、場景進行分類、檢測、識別,甚至模型可以理解這張圖片代表了什么,看圖說話。
反之亦然,可以根據用戶的一句話組織相應的素材,一句話成片,圖文成片等。這里便是利用了眾包的思想,其實除了社交媒體之外,平常大家登陸網站輸入驗證碼的時候會讓大家選擇下面哪張圖片包含“自行車”?其實也是一個人工標簽不斷幫助模型訓練的過程。類似的思路大家可以借鑒并融入到自己產品的設計中。
2. 算法
首先定義一下人工智能、機器學習和深度學習之間的關系。
機器學習直接來源于早期的人工智能領域,機器學習可以定義為一種實現人工智能的方法,傳統的算法包括決策樹、聚類、貝葉斯分類、支持向量機、EM、Adaboost等等。從學習方法上來分,機器學習算法可以分為監督學習(如分類問題)、無監督學習(如聚類問題)、半監督學習、集成學習、深度學習和強化學習。
而深度學習是實現機器學習的技術,即人工智能>機器學習>深度學習,最初的深度學習是利用深度神經網絡來解決特征表達的一種學習過程。
深度神經網絡本身并不是一個全新的概念,可大致理解為包含多個隱含層的神經網絡結構。為了提高深層神經網絡的訓練效果,人們對神經元的連接方法和激活函數等方面做出相應的調整。
提到算法,我們先了解下計算機視覺任務的分類包括以下種類:
- 目標識別:物體識別是得到一個原始的圖像,任務是給出目標位置和識別物體屬于哪個類,另外還有人臉識別,行為識別等;
- 三維重建:攝像機標定,立體匹配;
- 圖像/視頻理解:根據給定圖像,給出描述文字等;
- 深度相機:RGB-D相機,例如手勢識別、骨骼跟蹤、增強現實等;
- 視覺導航:視覺SLAM,例如ORB-SLAM;
- 圖像分割:圖像分割是一項復雜的任務,目標是將每個像素映射到它的合法類,例如語義分割、實例分割。
而從深度學習來分類,更多的是基于模型的架構進行的區分,包括監督學習和無監督學習:
其中監督學習包括循環網絡RNN、CNN、DNN。
RNN適合應用跟序列有關系的任務,比如時間序列,預測股票行情,比如文本序列,其衍生的諸多變體在自然語言處理領域應用廣泛,其中LSTM更是在NLP領域鼎鼎大名。
CNN的C代表卷積,是一種很好對目標圖像降維的數學運算,主要用于提取特征,因此很多圖像分類任務應用較多。
DNN會在搜索中進行應用,可以對于轉化率進行預估,這個數據是互聯網產品應用頻率最高的一個指標,且其轉化率預估對應的輸入特征包含各個不同域的特征。
如用戶域,寶貝域,query域等,各種特征的維度都能高達千萬,甚至上億級別,如何在模型中處理超高維度的特征,成為了一個亟待解決的問題,如何考慮多維高階信息的同時兼顧計算量和效率,DNN是一個非常合適的方法。
深度神經網絡通過構造稀疏id特征的稠密向量表示,使得模型能有更好的泛化性,同時,為了讓模型能更好的擬合大促期間商品特征數據的劇烈變化,在深度網絡的最后一層增加商品id類特征,id組合特征和實時的統計量特征,使得整個網絡同時兼顧泛化性和實時性的特點。
無監督學習我們提一下最近非常火的GAN(生成對抗網絡),通過無監督學習同時訓練兩個模型,其內在的原理可以化身為西方的博弈論或者是東方的道家思想,我還記得我上信息對抗的第一節課老教授就講了《道德經》中的“反者道之動,弱者道之用”,這其中的內涵讀者可以細品。
簡單的說,GAN訓練兩個網絡:
- 生成網絡用于生成圖片使其與訓練數據相似
- 判別式網絡用于判斷生成網絡中得到的圖片是否是真的是訓練數據還是偽裝的數據。生成網絡一般有逆卷積層(deconvolutional layer)而判別網絡一般就是上文介紹的CNN。
具體方法可以參考下圖:
GAN網絡結構示例
3. 算力
深度學習算法根據模型的大小以及最后實際應用的場景會選擇部署在端側還是云側又或是端云結合的方案。
隨著智能手機不斷的發展,現在端側的算力也不斷提升,比如最新的高通驍龍888處理器,算力可以達到26TOPS,TOPS是算力的單位,即每秒鐘進行1T(10的12次方)次操作。
而大家還有印象的是幾年前的英偉達顯卡還是2000G算力,換算一下只是2TOPS左右,因此可以看到摩爾定律發展下的半導體制程的進步直接影響著深度學習的算力進步。
比如說自動駕駛,特斯拉的每臺汽車搭載一個超算中心,具備144TOPS的算力,可以實時處理運算各種復雜的路面情況,道路標識,檢測人物和各種車輛,這些是機器視覺的算法都依賴于強大的算力予以支持。
綜上,我們可知,端側的算力具備實時性好、安全性好(離線),但是很大程度上依賴于半導體處理的制程以及能效的利用。
比如說移動端設備手機上就不太可能配備一臺算力巨大的超算中心,最核心的一方面就是就是電量有限,算力越高相應的能耗也越高,再一點越大的能耗對應了著需要配備更大體積的電池和運算單元,無論如何這對于人們日常隨身攜帶的物品設定來講都不是十分合適;
因此人們就把這個算力單元放到了車上,尤其是新能源電車,有充沛的電力、足夠的空間、車身配備很多傳感器,平??梢砸贿叢杉瘮祿?,一邊輸入算力單元進行快速計算,同時還有一位經驗豐富的“人類老司機”進行教學。
平時我們開車的行為:打方向盤、踩剎車、加速、變道,下雨天怎么駕駛、夜間、雪天、霧霾天如何駕駛等等都是對于深度學習模型進行一次次人為“標注”監督訓練的過程,如此往復,車這個“智能體”就會不斷的迭代演進,直到可以替代人,完成自動駕駛。
而以上就是特斯拉AI高級總監Andrej Kaparthy在2019年的特斯拉發布會上提到“影子模式”(shadow mode),了解這背后原理的我當時不禁感嘆特斯拉將機器視覺和深度學習的能力發揮到極致,在商業模式上也十分巧妙,將數據、算力和算法在一臺車上就形成了閉環,關鍵是這個車還能進化,越開越”聰明”。
沿著這個思路想下去,如果說未來手機的算力和電力已經到天花板(因為重量一般在200g左右,屏幕尺寸6-7寸左右,算力上限和能耗上限可知),而車才是離我們最近的算力單元,那么未來真正了解你的是車,他可以存儲你日常行為的數據,具備強大的算力可以不斷優化模型,手機最后是否只是淪為一個車中心的延展傳感器,離你最近的那個。
這就很好解釋為什么蘋果以及國內的華為等手機大廠都選擇紛紛躬身入局,卷入“造車運動”。未來,如果不是特斯拉收編了手機,就是手機廠商顛覆了特斯拉,這么講的話,我更看好前者。
講完端側的算力,我們在看下云端的算力。云端一般指大型的服務器及其集群,也就是我們平常講的”機房”?;谏衔奶岬降捏w積和能效,云端是完全沒有這方面限制的,甚至可以理解成理論上算力無上限的算力平臺,只要機器夠多。云端常用來進行模型的訓練,而端測用來模型的部署與推理。
當然,云端也可以進行模型部署和推理,比如一些對于算力要求比較高的算法就會跑到云端,比如大家常用的語音助手,需要在聯網狀態下使用。云端優勢是算力強大、方便部署迭代,可以做到訓推一體,對于產品化來講非常的便捷無縫銜接,非常適合于互聯網的”快速迭代”模式。
但是缺點也比較顯著,比如對于網絡有強依賴性,安全和隱私保護一般。
且這個本質上就是一個暴力美學的過程,通過量變來引發質變,比如近年來廣受討論的GPT-3,他是一個具備1750億個參數的自然語言模型,該模型經過了45TB的數據進行預訓練,并且在不進行微調的情況下,可以在多個NLP基準上達到最先進的性能,訓練這個模型需要355個GPU年,耗費成本在百萬-千萬級別美金。
而能提供這些財力和算力的必須是頭部的大廠,不禁也感嘆連人工智能的世界、模型之間甚至更卷。
神經網絡之父Geoffrey Hinton在GPT-3出現后,曾這樣感慨:“生命、宇宙和萬物的答案,其實只是4.398萬億個參數而已。”
就像是《新約??馬太福音》中所說“凡有的,還要加倍給他使他多余;沒有的,要把他剩下的也奪走?!?/p>
講完云端模型,現在市面上還廣泛存在一種端云結合的部署方式,即取各家之所長,在端側模型進行預處理,再把復雜的任務需要大量運算的部分傳到云端,在云端計算完畢之后再返回到端側。
這種方式,有效的解決了信息隱私問題,因為上傳到云端的數據可以是經過特征提取之后的數據對于人類來講并沒有任何意義但是對于機器來講可以進行后續的計算。同時,也解決了云端模型不斷迭代而端側推理部分迭代較慢的不均衡問題。
端側模型、云端模型、端云結合模型我們在本書的第四章、第五章會結合實際案例進行講解。
二、常用用語
1. 泛化能力(generalization ability)
泛化能力是指機器學習算法對新鮮樣本的適應能力,簡而言之是在原有的數據集上添加新的數據集,通過訓練輸出一個合理的結果。學習的目的是學到隱含在數據背后的規律,對具有同一規律的學習集以外的數據,經過訓練的網絡也能給出合適的輸出,該能力稱為泛化能力。
2. 過擬合(over-fitting)
在機器學習中,模型的典型產出過程是由機器學習算法在訓練集上進行訓練,希望得到的模型能夠在訓練過程中不可見的驗證集上表現良好。而當引入相較數據集而言過多的參數時,或使用相較數據集而言過于復雜的模型時,則就出現了過擬合現象,違反了奧卡姆剃刀原則。
過擬合造成的一個惡果就包含上述所說的泛化能力較差。其反義詞是欠擬合(主要原因是數據量較少)。
3. 魯棒性(robustness)
魯棒性亦稱健壯性、穩健性、強健性,是系統的健壯性,它是在異常和危險情況下系統生存的關鍵,是指系統在一定(結構、大小)的參數攝動下,維持某些性能的特性。
4. 超參數(hyperparameter)
超參數是在開始學習過程之前設置值的參數(初始參數)。 相反,其他參數的值通過訓練得出。
5. 主干網絡(backbone)
主干網絡,用來做特征提取的網絡,代表網絡的一部分,一般是用于前端提取圖片信息,生成特征圖feature map,供后面的網絡使用。
6. 時期(epoch)
時期,一個完整的數據集通過了神經網絡一次并且返回了一次,這個過程稱為一個/次epoch。即,所有訓練樣本在神經網絡中都進行了一次正向傳播?FP(forward propagation)和一次反向傳播BP(back propagation) 。簡而言之,一個epoch就是將所有訓練樣本訓練一次的過程。
7. 組(batch)
batch size大小是一個超參數,用于定義在更新內部模型參數之前要處理的訓練數據集樣本量。訓練數據集可以分為一個或多個Batch(組)。
- 批量梯度下降:批量大小=訓練集的大小;
- 隨機梯度下降:批量大小= 1;
- 小批量梯度下降:1 <批量大小<訓練集的大小。
8. 階段(Stage)
階段,一般網絡分為one-stage和two-stage;即一個階段還是兩個階段;比如說一張圖片直接生成分類結果和bounding box,這個就是one-stage;
比如輸入一張圖片,先進行區域的建議,再將選擇的區域進行分類,則分為two-stage,整個任務由兩個網絡完成,下一個網絡的輸入是上一個網路輸出的結果;當然,根據實際任務的區別,也會有three-stage的整體網絡設計。
9. 準確率(Accuracy)
對于分類任務來講,我們對于分類結果有如下表示/定義。
那么準確率ACC=(TP+TN)/(TP+TN+FP+FN)。
10. 精確率(Precision)
P=TP/(TP+FP),表示被分為正例的示例中實際為正例的比例。
11. 召回率(Recall)
recall=TP/(TP+FN)。
12. 綜合評價指標(F-Measure)
P和R指標有時候會出現的矛盾的情況,這樣就需要綜合考慮他們,最常見的方法就是F-Measure(又稱為F-Score)。F-Measure是Precision和Recall加權調和平均:
F=(α^2+1)*P*R/α^2(P+R)
我們常用的是當α=1時,即為F1=2*P*R/(P+R);
13. ROC(Receiver Operating Characteristic)
ROC曲線是以假正率(FP_rate)和真正率(TP_rate)為軸的曲線,ROC曲線下面的面積我們叫做AUC,如下圖所示:
ROC曲線
(1)曲線與FP_rate軸圍成的面積(記作AUC)越大,說明性能越好,即圖上L2曲線對應的性能優于曲線L1對應的性能。即:曲線越靠近A點(左上方)性能越好,曲線越靠近B點(右下方)曲線性能越差。
(2)A點是最完美的performance點,B處是性能最差點。
(3)位于C-D線上的點說明算法性能和random猜測是一樣的–如C、D、E點。位于C-D之上(即曲線位于白色的三角形內)說明算法性能優于隨機猜測–如G點,位于C-D之下(即曲線位于灰色的三角形內)說明算法性能差于隨機猜測–如F點。
(4)雖然ROC曲線相比較于Precision和Recall等衡量指標更加合理,但是其在高不平衡數據條件下的的表現仍然過于理想,不能夠很好的展示實際情況。
14. GT基準(ground truth)
在有監督學習中,數據是有標注的,以(x, t)的形式出現,其中x是輸入數據,t是標注.正確的t標注是ground truth。而ground truth是人類按照一定標準進行定義的基準。
15. IOU(Intersection over Union)
- 1是ground-truth的bounding box(綠色框框)
- 2是預測的bounding box(紅色框框)IOU輸出為值在[0,1]之間的數字。
IOU = 兩個矩形交集的面積/兩個矩形的并集面積常用于目標檢測(物體、人臉、人體等等),來衡量模型檢測的精確率。
16. 特征(feature)
為了讓計算機掌握人類理解的知識需要構筑一個由簡單概念組成的多層連接網絡來定義復雜對象,計算機通過對這個網絡的迭代計算與訓練后,可以掌握這個對象的特征,這種方法叫做深度學習,網絡學習到的東西叫做特征。特征是一種數據的表達。
對于特征的要求是informative(富有信息量),discriminative(有區分性)和independent(獨立)的。
Feature有很多種特性和分類:Feature可以是Linear(線性),也可以是Non-linear(非線性)的;Feature可以是Fixed(固定的),也可以是Adaptive(自適應變化的),甚至feature都可以不是數字的(numerical)。
17. 損失函數(loss function)或者loss
損失函數是用來估量模型的預測值f(x)與真實值Y的不一致程度,它是一個非負實值函數,通常使用L(Y, f(x))來表示,損失函數越小,模型的魯棒性就越好。我們模型訓練的過程應該是一個loss function逐漸變小的過程,這樣模型才能不斷收斂。
作者:大仙河? 微信號 :大仙河知識學堂。專注分享關于人工智能產品、智能硬件、哲學的思考。
本文由 @大仙河? 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自Unsplash,基于 CC0 協議
專欄作家
大仙河,公眾號:大仙河知識學堂,人人都是產品經理專欄作家。7年AI產品相關經驗,專注AI產品化(元宇宙、數字人、全息通信等)領域,致力于構建人工智能學術和工業界的橋梁。
本文原創發布于人人都是產品經理,未經許可,禁止轉載。
本文為人人都是產品經理《原創激勵計劃》出品。
題圖來自Unsplash,基于CC0協議
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
普通產品經理表示好多都略懂, 轉型的路上該如何走
哇,這些全是我研究生搞得東西,想問除了這些想入坑AI產品還需要學什么呢(小白一個)
好文章~
現在是普通產品經理,想做AI產品經理,請問需要看些什么技術書籍來了解AI,簡單的好入門的適合沒有AI背景的產品經理看的技術書,有推薦的嗎?
如果真的要推薦一本書的話,產品經理進階:100個案例搞懂人工智能(博文視點出品)和華為的modelarts人工智能應用開發指南,還不錯;我當時在京東上買了AI產品經理相關的所有書籍 基本上對于整個行業有了初步的了解;當然平常在工作中也會自己總結歸納方法,沉淀在了我公眾號上的AI產品經理的歷史文章。此外,你可以看看一些ai相關的公眾號、機器之心/量子位等等,了解一些行業動態,同時拓展技術視角,這樣可以幫助從技術的維度進一步思考ai方面的問題
很干貨了,不過有些內容沒太看懂,還是需要真正實踐才能了解
作者你好,我想問一下AI產品經理是產品經理的一個方向嗎?我是AI研究方向的研究生,想就業做產品經理相關內容。
是的,你如果上招聘網上可以看到很多公司都在招聘ai產品經理。
這不就是我研究生研究的東西嗎
所以來做ai產品經理呀~