1. 程式人生 > >AI產品經理相關概念

AI產品經理相關概念

轉的文章

先說一下,你閱讀本文可以得到什麼。你能得到AI的理論知識框架;你能學習到如何成為一個AI產品經理並且瞭解到AI產品經理如何在工作中發揮作用,以及AI產品經理需要從哪些方面鍛鍊能力。最重要的是,通過本文,一切都特別快(手打滑稽)。

PS:目前只針對弱人工智慧(我喜歡簡稱,此處我們簡稱為“弱智”)進行學習。

首先我們必須要掌握的是AI的專業知識框架,然後瞭解AI的市場情況,最後要明白AI產品經理的工作流程及在專案的價值體現。本文致力於讓完全沒有學習過AI的朋友可以輕鬆讀懂,獲取乾貨。即使你不能完整理解AI也沒關係,最起碼看完本文之後你可以完美裝13,文末會有特別的裝13技巧送給你。

一、AI是什麼

1. AI的定義

凡是通過機器學習,實現機器替代人力的技術,就是AI。機器學習是什麼呢?機器學習是由AI科學家研發的演算法模型,通過資料灌輸,學習資料中的規律並總結,即模型內自動生成能表達(輸入、輸出)資料之間對映關係的特定演算法。這整個過程就是機器學習。

AI模型是個“中介軟體”,不能直接與使用者完成互動,所以AI還是需要藉助傳統的應用程式,應用程式直接與使用者進行互動,同時提交輸入資料給模型,模型處理後返回輸出資料給應用程式,應用程式再轉化為合適的呈現方式反饋給使用者。

AI解決方案比網際網路解決方案有什麼優勢:再也不需要去歸納總結知識和規律,然後進行越來越複雜的程式設計,只需要用資料餵養機器,讓機器完成所有工作。而且傳統的網際網路解決方案遇到需要求變時,是個頭痛的事,因為直接讓工程師對程式、演算法進行修改的過程中會需要考慮很多既有程式帶來的限制及改動後的未知風險(同時也容易造成人力成本更高),而AI模型是可以遷移、疊加利用的,所以需求變化時,少了很多既有積累的東西帶來的問題。

2. AI的根基

AI的根基從數學理論開始,數學理論(包括:線性代數、概率論、統計學、微積分)的基礎上我們得以有機器學習理論,機器學習理論(包括:監督學習、無監督學習、強化學習、遷移學習、深度學習)的基礎上我們得以有基礎技術,基礎技術(包括:機器學習ML、深度學習DL、語音識別ASR、語音合成TTS、計算機視覺CV、機器視覺MV、自然語言理解NLU、自然語言處理NLP、專家系統)的基礎上AI應用得以實現。

特別提醒:不僅是數學理論,物理理論也是AI的根基。在更深度的AI建模等理論需求中,很多所謂的“數學理論”其實原型來自於“物理理論”。比如熵的概念,比如多維空間的概念,都是出於物理學中的概念。

3. 機器學習理論詳解及演算法模型介紹

關於模型演算法的結果導向理解:

  • 對資料進行分類;
  • 找到輸入資料與輸出資料之間的規律。

機器學習方式有多種,每種機器學習方式又有多種演算法。機器學習方式可以配合利用,且各種演算法模型也可以結合利用。

機器學習的抽象流程是:

  • 訓練機器階段,讓模型對輸入資料進行分類,且找到規律;
  • 測試階段,資料進入模型時,模型對資料進行分類,每一個測試資料都歸類到訓練資料類別中對應的一個類別,然後根據訓練找到的規律計算出輸出值(即答案);
  • 欠擬合或者過擬合的情況下,要清洗訓練資料、調整引數以及重複訓練;達到最佳擬合後,機器學習完成。

3.1 監督學習

通俗解釋:準備好許多組問題和對應答案,然後對機器說:當你看到這個問題的時候,你就告訴人家這個答案。多次重複這樣的訓練,然後機器從每一次的訓練問題和對應答案中找到了其中的規律(即演算法)。然後你跟你朋友吹噓說,我的機器機靈得跟猴似的,不信你問它問題。你這位朋友開始提一大堆問題,提的問題大可以跟你訓練的問題不同,機器人只是根據自己之前總結的規律推測出答案給對方。如果發現機器人說出的答案中錯誤太多,那你就要修理修理它,再重新用更豐富的有標記答案的問題訓練一番,直到你的機器被人提問時回答準確率特別高,達到你的期望了。這時候你就可以放心的跟你朋友炫耀:我的機器機靈得跟猴似的。

專業解釋:準備樣本(樣本通常準備兩組:訓練資料和測試資料),先將訓練資料(即標記樣本)給到機器,同時提供標準答案(有答案的樣本資料屬於“標記樣本”),機器儘量從訓練資料中找到因變數和自變數之間的關係,讓自己推測的答案儘量跟標準答案靠近。訓練過程中機器嘗試生成我們需要的演算法,這個演算法就是我們要機器學習出來的結果。然後我們給機器測試樣本(測試資料),不提供標準答案,看機器推理出答案的準確率怎麼樣,如果準確率太低(欠擬合),那我們就要調整模型的引數,並且再訓練機器,接著又用測試資料測試,直到機器達到了我們期望的準確率。

抽象一個最簡單的邏輯公式:線性代數y=kx。我們提供n組x值及對應y值作為訓練資料,模型經過計算推測出k值(推測出k值這個過程我們叫做“迴歸”),然後我們再用m組測試資料,但是此時只輸入x值,看機器得出的y值是否跟我們已知的正確答案y值是否相同。當有多個緯度的特徵時,應該抽象公式應該是y=kx1+kx2+kx3,或者y=k1x1+k2x2+k3x3。當然還有可能要考慮其他一些引數,此時公式應該為y=kx1+kx2+kx3+b,或y=k1x1+k2x2+k3x3+b。引數b是我們的AI工程師可以直接調整的,以便讓機器訓練的結果最接近我們想要的結果。

監督學習的演算法分類:

(1)KNN臨近演算法

在訓練階段時,機器將訓練資料進行分類(根據資料的feature,即資料的特徵)。(邏輯推理出,在某些情況下模型可以找出來的資料之間的對映不止一條,即可能每一類資料會有一個對映關係。)當測試資料輸入時,機器會根據輸入資料的特徵判斷該輸入資料跟哪一類的訓練資料為同一類,在此判斷基礎上,機器便決定用哪一個對映關係來推測當下輸入測試資料對應的輸出資料(即答案)。機器是如何判斷測試時的輸入資料更接近哪一類訓練資料的呢?用數學邏輯解釋就是,模型內是一個多維空間,有一個多維座標,每一緯是一個特徵,當一個訓練資料輸入時,該資料坐落在座標上某一點,訓練資料量大了之後,模型裡的座標上有無數點。當測試資料輸入後,根據測試資料的特徵在座標上為它找到一個點,機器會找與該點歐式距離最近的點(訓練資料的點)是哪一個,並且將該點視為與找到的距離最近的訓練資料的點為同一類。

舉個栗子:Mary喜歡玩探探,在她眼裡,探探裡的男銀分3類。第一類是不喜歡,左劃;第二類是喜歡,右劃;第三類是超級喜歡,點星星。第一類男銀的共同點是單眼皮、低鼻樑、禿頂、穿安踏;第二類的共同點是雙眼皮、高鼻樑、茂密的頭髮,穿西裝;第三類的共同點是帶名牌手錶,照片旁邊有一輛跑車。AI瞭解Mary後,開始為Mary把關。當AI看到一個男銀上探探,就會看這個男銀是否單眼皮,鼻樑接近於高還是低,頭髮多少,著裝幼稚還是成熟,然後將這個男銀為第一類或者第二類,第一類的直接幫Mary劃掉,第二類的直接幫Mary點喜歡。還有,當AI看到一個男銀帶名牌表,有豪車,直接幫Mary點一個超級喜歡。然後Mary不用那麼累地全部都要點一遍,AI幫她選的人她都挺滿意,她一臉的滿足。

(2)決策樹ID3演算法

基於“決策樹”的理論的一種演算法。根據資料特徵進行分支,直到不可再分支,此時決策樹成形,資料也被分出一類來,成形的一個決策樹表現了這一類資料的所有特徵。

示意圖(Jennifer去相親):

該決策樹形成後(一條分枝將特徵消化完之後),我們視滿足該條分枝上所有特徵的為同一類人(即我們分出了一類資料)。憑經驗推測,這類人就是Jennifer最後選擇的結婚物件。(如果你不知道我指的是哪一條,那你這輩子一定都找不到老婆)

決策樹ID3演算法與KNN演算法的區別在於:KNN演算法需要始終儲存並持續使用所有訓練資料,決策樹ID3演算法完成決策樹之後,可以不再儲存所有的訓練資料了(可以清清記憶體),只需要將決策樹模型保留下來,便可以對新資料進行高準確率地分類。

(3)logistic邏輯迴歸演算法

當特徵和結果不滿足線性時(函式大於一次方時),就可以用邏輯迴歸演算法。邏輯迴歸是一個非線性模型,它的因變數(x)跟線性迴歸函式不相同。邏輯迴歸同樣用來解決分類問題,呈二項分佈(示意圖1),它只輸出兩種結果,0或1(實際情況是輸出為0~0.5,或0.5~1,小於0.5取值0,大於等於0.5取值1),0和1分別代表兩個類別。作為產品經理,我們不需要去理解模型內部是怎麼回事(反正我目前也沒看懂模型內部到底怎麼回事),我們只需要瞭解,當特徵和結果,即X與Y之間的關係不滿足線性關係(函式大於一次方),就可以利用邏輯迴歸演算法,演算法得出的值約等於1或約等於0,約等於1時該輸入資料屬於一類,約等於0時該輸入資料屬於另一類。或許以後在實戰中,你的AI工程師搭檔會跟你講解,看了這篇文章,你在聽你的AI工程師解釋的時候不會茫然吧。

邏輯迴歸的基礎公式:

示意圖1:

(4)支援向量機SVM

主要優勢就是可以判斷到分類是否正確。

先給大家舉一個例,當我們要分割一個平面,會用一條線,即分割二維資料用一維資料;如果我們要分割一個立體空間,會用一個面,即分割三維資料用二維資料。理解例子後,就可以理解SVM的原理了。

SVM的原理就是用一個N-1維的“分割超平面”線性分開N維空間,而所有資料都在這個空間內各為一點。每一次分割超平面開始切分,都在將空間內的資料分為兩部分(假設為A、B兩邊),模型的目的就是讓分出來的兩部分資料是兩個類別,我們要理解在A這邊的每個資料點到分割超平面的距離為正值,那麼另一邊(B那邊)的資料點到分割超平面的距離就一定為負值(我們把分割超平面看作是臨介面吧,或者看作是“海平面”,兩邊的點朝著臨介面直線出發時,方向是相對的,這樣解釋大家就能明白為什麼說一邊為正值另一邊就為負值了)。

當模型計算所有特徵相同的資料各自到分割超平面的距離時,若都為正值(我們預設這些特徵相同的資料所佔邊是A邊),那麼分割正確,我們就知道空間內所有資料被準確無誤地分為兩類了。若發現有出現負值的,那一定是有至少一個數據站錯邊了,換一種說法是我們這個分割超平面分割得不對,分割超平面就會重新分割,直到分割完全正確。因為理論上講,分割超平面是一個多維空間的任意維度的“面”,它可以在資料任何分佈的情況下都剛好把不同類(不同特徵)的資料一分為二,保證它的分割不會讓任意一個數據“站錯邊”。

借用幾張經典示意圖幫助理解:

這只是一個簡單示意圖,但是我們要發揮空間想象力,如果不能看起來是一條直線分割兩邊,那就讓看起來是一條曲線的分割超平面分割兩邊,但是這條曲線其實不是曲線,它是一個多維面。(這個多維空間真的燒腦,我記得網上有個很經典的10分鐘理解多維空間的視訊,大家可以去搜一搜)

(5)樸素貝葉斯分類演算法

首先說明一點:KNN演算法、決策樹ID3演算法、logistic迴歸演算法、SVM都是屬於判別方法,而樸素貝葉斯演算法是屬於生成方法。樸素貝葉斯演算法的邏輯是:每一個訓練資料輸入時,計算該資料被分到每一個類別的概率,最後視概率最大的那一個為該輸入資料的類別。跟邏輯迴歸一樣,作為產品經理,大家只要記住巨集觀邏輯就好了(手打調皮)。

公式:

3.2 無監督學習

通俗解釋:你準備一大堆問題丟給你的機器,每一個問題都不告訴它答案,叫它自己把問題分類了。它開始識別所有問題分別都是什麼特徵,然後開始將這些問題分類,比如A類、B類、C類。分類好了之後,你又對你朋友炫耀:我的機器機靈得跟猴似的,不信你問它問題。然後你朋友問它: “女朋友說自己感冒了應該怎麼回覆她?”機器想了想,發現這個問題跟自己歸類的A類問題一樣,於是它就隨口用A類問題裡的一個代表性問題作為回答:“女朋友說自己大姨媽來了該怎麼回覆,你就怎麼回覆。”你的朋友覺得機器是理解了他的問題,但是他還是不知道該怎麼回覆女朋友啊,失望的走了。這個時候你發現你的機器回答方式不好呀,於是你告訴機器,不要用問題回答問題,你順便給了他的A類問題一個統一答案,就是“多喝熱水”。然後你叫你朋友再問一次機器,你朋友又來問了一次機器:“女朋友說自己感冒了我該怎麼回覆。”機器馬上回答:“叫她多喝熱水呀。”你朋友一聽,恍然大悟,開開心心地走了。

專業解釋:機器學習是否有監督,就看訓練時輸入的資料是否有標籤(標籤即標註輸入資料對應的答案)。無監督學習即訓練時輸入資料無標籤,無監督學習利用聚類演算法。無監督學習不利用“迴歸”方式找到規律。其他的跟監督學習基本相同。

(1)K-聚類(聚類演算法)

K-means聚類是一種向量量化的方法,給定一組向量,K-means演算法將這些資料組織成k個子集,使得每個向量屬於最近的均值所在的子集。在特徵學習中,K-means演算法可以將一些沒有標籤的輸入資料進行聚類,然後使每個類別的“質心”來生成新的特徵。

換種說法就是:K個子集中每個子集都計算出一個均值,每個均值在空間裡都為一個“質心”,根據輸入資料的特徵及特徵值為它找到一個點,這個點最接近哪個“質心”,我們就視該資料屬於哪個子集,即與該子集所有資料為同一類。

(2)主成分分析法

容我偷個懶,這個我自己還未真正學習懂,所以就不寫了,後面出現未具體解釋的東西都是我還未學習明白的內容。爭取只寫我真正自己學懂的東西,怕未完全明白的基礎上寫的東西容易出現誤導。但是我會在接下來的學習中把餘下的AI知識都學好,並儘量再發文跟大家分享。

3.3 半監督學習

半監督學習其實就是監督學習和非監督學習的方法合併利用,訓練資料有一部分是有標籤的,有一部分是無標籤的,通常無標籤的資料量比有標籤的資料量大很多。

半監督學習的好處是:

  • 降低打標籤的人工成本的情況下讓模型可以得到很好的優化;
  • 大量的沒辦法打標籤的資料得以被利用起來,保證訓練資料的量,從而讓訓練結果更佳。

狹義上【半監督學習】要分為transductive SVM、inductive SVM、Co-training、label propagation;我們可以嘗試用另外一種方法分類【半監督學習】,即“分類半監督”、“聚類半監督”。

  • 分類半監督--舉例說明就是先用標籤資料進行訓練,然後加入無標籤資料訓練,無標籤資料輸入時,會根據資料特徵及特徵值,看該資料與有標籤資料分類中哪一類更接近(支援向量機SVM的方法就可以幫助找到最接近哪一類),就視為該類資料;或者是,看該資料與有標籤資料哪一個最接近(KNN的方法就可以找到最接近的那個資料),則把該無標籤資料替換為該標籤資料。
  • 聚類半監督–通常是在有標籤資料的“標籤不確定”的情況下利用(比如這個輸入資料的答案可能是xxx),“聚類半監督”就是重點先完成資料的分類,然後嘗試根據標籤資料訓練提供的標籤預測結果。
  • S3VM演算法
  • S4VM演算法
  • CS4VM演算法
  • TSVM演算法

3.4 強化學習

通俗解釋:你準備一大堆問題,每個問題有多個答案選項,其中只有一個選項是正確答案。手裡拿著皮鞭,讓你的機器一個個問題的從選項裡挑答案回答,回答正確了,你就溫柔的默默它的頭,回答錯誤了,你就抽它丫的。所有問題都回答完了之後,再重複一次所有問題。然後你就發現,你的機器每一次重複,正確率都提高一些,直到最後正確率達到你的期望值了,這時候機器基本也從撫摸和抽打中找到了每一個問題的正確答案。機器通過一次次去猜測問題和答案之間的規律(即演算法),一次次更新規律,最後也找到了最準確那條規律(最佳演算法),這時,它機靈得跟猴一樣。(當然實際過程裡,只需要獎勵機制就夠了,但是你想同時給懲罰機制,也可以的。)

專業解釋:我自己的理解,把強化學習理論分一和二,其中一是完全按照馬爾科夫決策過程的理論,需要理解環境,在每一步動作時都得到一個反饋並計算下一步該怎麼動作更好;二是不需要理解環境,只需要在執行完之後接收環境反饋的訊號,然後它才明白之前的動作好不好,下次會堅持或改變同樣情況下要執行的動作。

(1)強化學習理論一

agent(下文會講agent是什麼,此處可以理解為機器本身)需要理解環境、分析環境,並且要推測出完成一個動作得到獎勵的概率。該理論完全滿足馬爾科夫決策。馬爾可夫的核心:在一個狀態下,可以採取一些動作,每一個動作都有一個“轉化狀態”且可以得出對應“轉化狀態”的概率(或該“轉化狀態”能獲取獎勵的概率)。而強化學習的目標就是學習怎樣讓每一次行動都是為了達到最有價值的“轉化狀態”上。

  • model based(演算法:Qleaning, Sarsa, Policy Gradients):理解真實環境,建立一個模擬環境的模型,有想象能力,根據想象預判結果,最後選擇想象中結果最好的那一種作為參考進行下一步。
  • policy based(演算法:Policy Gradients,  Actor-critic):通過感官分析環境,推測出下一步要進行的各種動作的概率,取概率最大的作為實際行動的參考。
  • value based(演算法:Qleaning, Sarsa):推測出所有動作的價值,根據價值最高的作為實際動作的參考。
  • On policy(演算法:Sarsa,  Sarsa lambda):必須親自參與
  • Off policy(演算法:Qleaning,  Deep-Q-Network):可親自參與;也可以不親自參與,通過觀看其他人或機器,對其他人或機器進行模仿。

(2)強化學習理論二

agent不需要理解環境、分析環境時,做出決策,該決策正確時獎勵,錯誤時不獎勵或懲罰。agent不會在動作時去計算是否得到獎勵的概率。

強化學習中的4個要素:agent(一個智慧體,可以為一個演算法模型,或直接理解成機器本身)、environment(環境,環境對於agent是獨立的,它可以是一個硬體裝置、強化學習之外的某種機器學習模型等,它的任務就是當action結束後用它的方式給agent一個訊號)、action(動作)、reward(獎勵)。

agent能夠執行多種action,但它每次只能選擇一個action來執行,agent任意執一個action來改變當前狀態,一個action被執行後,environment會通過觀測得出一個observation,這個observation會被agent接收,同時會出現一個reward也會被agent接收(這個reward也來自於environment,environment可以通過推測或直接判斷action結束時達到的效果是否是AI工程師想要的效果來決定這個reward是正值還是負值,當然負值相當於是“懲罰”了)。

agent在執行action時並不會知道結果會怎樣,當agent接收到environment的observation時,agent仍然是一無所知的(因為agent不理解environment),但由於environment同時反饋reward,agent才知道執行的action好還是不好。agent會記住這次reward是正值還是負值,以後的action都會參考這次記憶。強化學習理論二對比一的區別就是:二並非在每一步都計算一個概率(所以二並非完全符合馬爾科夫決策)。

  • model free(演算法:Qleaning, Sarsa, Policy Gradients):不理解環境,等待環境反饋,根據反饋進行下一步。
  • Monte-carlo update(演算法:Policy Gradients,  Monte-carlo leaning):等待所有過程結束,事後總結所有轉折點
  • Temporal difference update(演算法:Qleaning, Sarsa):過程中每一步都總結一下
  • On policy(演算法:Sarsa,  Sarsa lambda):必須親自參與
  • Off policy(演算法:Qleaning,  Deep-Q-Network):可親自參與;也可以不親自參與,通過觀看其他人或機器,對其他人或機器進行模仿。

強化學習不糾結於找出一條規律/演算法,它只關心結果輸出時能否得到獎勵。之前提到的機器學習都是解決分類問題,而強化學習是解決“決策”問題。

3.5 遷移學習

通俗解釋:當你的機器用以上幾種方式中任何一種方式學習完之後,你叫你的機器把學習後找到的規律(演算法)寫在它的筆記本上。然後換一種學習方式,讓它繼續學習,叫它用第二種方法學習的時候要看筆記本,把新學到的知識也寫上去,但是不能跟原筆記衝突,也不能修改原筆記。連續用多種方法讓你的機器學習,它肯定比猴更機靈。

專業解釋:將一個已經開發過的任務模型(源域)重複利用,作為第二個任務模型(目標域)的起點。深度學習中會經常用到遷移學習,遷移時(複用時),可以全部使用或部分使用第一個模型(源任務模型),當然這取決於第一個模型的建模邏輯是否允許。遷移學習是特別好的降低(獲取樣本資料、打標籤)成本的方法。

(1)樣本遷移法

看看目標域的樣本資料跟源域中訓練資料哪部分相似,把目標域中這部分樣本資料的特徵值照著相似的源域中的樣本資料的特徵值調整,儘量調到一樣,然後再把調過的資料權重值提高。這個方法是最簡單的遷移學習方法,不過人工去調,如果經驗不足,容易造成極大誤差。

(2)特徵遷移法

找到源域同目標域的資料中的共同特徵,將這些共同特徵的資料都放到同一個座標空間裡,形成一個數據分佈。這樣就可以得到一個數據量更大且更優質的模型空間。(之前提到很多模型演算法對輸入資料分類時都要依靠模型裡虛擬的空間,這個空間的質量越好,分類效果越好)。

(3)模型遷移法

源域的整個模型都遷移到目標域。最完整的遷移,但是可能會因為源域模型的特有的那些對目標域來說沒有的資料、特徵、特徵值等,在目標域中反而會有干擾效果(類似與“過擬合”)。

(4)關係遷移法

當兩個域相似時,可以直接將源域的邏輯網路關係在目標域中進行應用。比如我們將人的大腦神經網路的邏輯關係遷移到AI神經網路中,因為從邏輯上這兩者我們覺得是一樣的。

3.6 深度學習

深度學習可以理解為是多個簡單模型組合起來,實現多層神經網路,每層神經網路(也可以叫做神經元)處理一次資料,然後傳遞到下一層繼續處理。這種多層的結構比起淺層學習的模型優勢在於,可以提取出資料特徵(無需人工提取)。“深度”並沒有絕對的定義,語音識別的模型中4層神經網路就算深了,但在影象識別的模型中,20層也不算很深。

(1)DNN深度神經網路

深度神經網路是深度學習最基礎的神經網路。有很多層(每一層為一個神經元)從上往下排列,每一個層相互連線。有個缺點就是,正因為每一層之間連線起來,出現了引數數量膨脹問題(因為每一層涉及到一個演算法,每一個演算法都有自己的各種引數),這樣的情況下容易過擬合(實現了局部最佳但整體擬合不佳)。

(2)CNN卷積神經網路

卷積神經網路有“卷積核”,這個“卷積核”可以作為介質連線神經元,用“卷積核”連線神經元時就不需要每一層都連線了。

(3)RNN迴圈神經網路

因為DNN還有一個缺點,無法對時間序列上發生的變化進行建模,如果在語音識別、自然語言處理等應用中使用AI模型時,資料的時間順序影響很大。所以RNN就出現了,RNN能彌補DNN的缺點,可以在時間序列上發生的變化進行建模。

4. 重要的關鍵詞解釋

4.1 擬合

擬合是用來形容訓練結束後效果好壞的。

(1)欠擬合

當訓練資料少、資料質量差的時候,訓練出來的模型質量就差(或者說損失函式過大),這時進行測試的時候,就會出現誤差大,即“欠擬合”狀況。

(2)過擬合

在訓練階段,反覆用同樣的訓練資料進行訓練,可以讓訓練效果變得更好(損失函式小),但同時機器會因為要達到最好的訓練效果,將訓練資料中不重要的特徵或只有訓練資料才有的某些特徵進行利用得太重或開始學習不需要的細節,也就是說機器對訓練資料太過依賴,最後就會出現在訓練資料上表現特別好,但在其他資料上表現不佳。這樣的情況叫做“過擬合“。

(3)最佳擬合

欠擬合、過擬合都不是我們需要的。我們要的是最佳擬合。所以我們在訓練機器時要注意平衡。最佳點在哪裡呢?最佳點在訓練的損失函式還在減小,而測試的損失函式在減小之後突然開始增大的該點上。此時我們就達到了“最佳擬合”。

4.2 泛化性

訓練好的模型在其他資料上的表現好壞用泛化性形容。在其他資料上表現越好,泛化性越高。

4.3 損失函式

用於評估“不準確”的程度,它是衡量模型估算值和真實值差距的標準。損失函式(loss)越小,則模型的估算值和真實值的差距越小,通常情況下我們要把loss降到最低。

4.4 夏農熵

形容資訊量大小。機器學習中重要是用於衡量特徵的數量多少。一個數據的特徵越多,說明我們可以從這個資料中獲得的資訊越多,也就可以說夏農熵高。順便提一下,決策樹的生成過程,就是降低夏農熵的過程。

4.5 標籤

指給資料標記的答案。標記好答案的資料叫做“標籤資料”。

4.6 特徵值

特徵(feature)的值。比如房子有特徵(feature):空間、價格。它的特徵值:(空間)200平方米、(價格)1500萬。一般在機器學習的監督學習中,我們需要對訓練資料進行特徵提取的處理,即標記好每個資料有哪些特徵和對應特徵值。

當特徵值損失的情況:

在實際的機器學習過程中,有時候會發生資料缺失的問題,比如一個數據有X個特徵,但是由於意外發生,我們只得到部分(小於X)特徵的值,在這種情況下,為了不浪費整個樣本資源,且可以順利的繼續機器學習,我們需要有一些彌補措施:

  1. 認為設定某些特徵的特徵值(根據經驗),然後利用;
  2. 找到相似的另一組樣本,用另一組樣本的特徵平均值代替缺失的特徵值;
  3. 用其他的機器學習模型專門針對缺失的特徵值進行學習然後利用該模型找出缺失特徵值;
  4. 使用已有特徵值的均值來替代未知特徵值;
  5. 在機器學習過程中用一些方法,讓機器忽略已缺失特徵值的資料。

4.7 類別

物以類聚人以群分,特徵相同的資料就是同一類別。機器學習中特別重要的一個步驟就是利用演算法將資料分類(學習演算法裡邊會提到多種實現資料分類的演算法),機器會盡量將所有輸入資料進行分類,分類的邏輯就是通過資料的“特徵”,特徵接近的資料會被機器認為是同一類別的資料。

4.8 分類&聚類

分類是目前最簡單也是效果最好的一類演算法(比如KNN、決策樹ID3、logistic迴歸、SVM等都屬於分類演算法)。分類演算法的前提條件是訓練資料必須帶有標籤。

聚類是目前相對分類更復雜同時效果更差的一類演算法(無監督學習就是用聚類演算法)。聚類演算法的優勢是可以訓練資料不需要標籤。表面上看來分類演算法比聚類演算法好用很多,那我們還要用聚類演算法的理由是什麼呢?其實,在實際情況下,訓練機器時,要給資料打標籤是個人工消耗極大的工作,不僅工作量大,很多時候對資料打準確的標籤難度也大。

4.9 決策樹

根據資料的特徵值對資料進行不斷分支,直到不可再分支(附 決策樹形象圖)。決策樹的每一次對資料分支,就消耗一個特徵值。當所有特徵值消耗完後,決策樹成形。決策樹的每一個節點,即每一次對特徵分支時,通常以yes/no的判斷形式進行劃分(所以才叫“決策樹”嘛)。

決策樹幫助機器對資料進行分類(根據特徵,決策樹的分裂點即特徵分別點),決策樹形成後,滿足一條分枝上所有分裂點條件的為同一類資料。要注意的是,有時候決策樹分枝太長,會導致過擬合。因為決策樹很可能把訓練資料中不太有代表性的特徵放在分裂點上,這樣形成的決策樹不適應與訓練資料之外的資料了。如果出現這種情況,需要“剪枝”,枝越長,說明模型可能越依賴訓練資料,在枝的長短上,要做一個平衡,平衡的原則請參考本文提到的“欠擬合”與“過擬合”的關鍵詞解釋。

我們用最簡單的決策樹二叉樹抽象示意圖來表達我們招聘產品經理時的一個面試判斷過程:

有時候分裂點上有數值判斷,這些數值都叫做“閾值”。在決策樹中,對閾值的使用越合理,訓練形成的決策樹效果越好,用在資料上越精確。請檢視簡化決策樹示意圖2:

4.10 知識圖譜

知識圖譜是模擬物理世界的實物與實物之間的關係,知識圖譜呈現為無限擴散的類網狀結構。它的結構組成為“實體”–“關係”–“實體”,以及“實體”–“屬性”–“值”。知識圖譜使得AI找到一個資訊時,同時也獲得了更多跟跟這個資訊相關的其他資訊。希望大家可以具體去看知識圖譜相關書籍,該知識還是相對容易看明白的。

知識圖譜簡化示意圖:

其中“老狼–女朋友–斯嘉麗約翰遜”,就是實體–關係–實體,“老狼–生日–3月29”和“斯嘉麗約翰遜–罩杯–D”就是實體–屬性–值。舉一個利用知識圖譜的常見栗子:當有人問AI:“老狼有女朋友嗎?”AI有自然語言處理的支撐,就可以識別到這個人在向它提問,且在詢問老狼的女朋友這件事。同時有知識圖譜的支撐,AI就可以準確回答:“老狼有個叫斯嘉麗約翰遜的女朋友,是個D罩杯的美女呢。”

5. 基礎技術

5.1 語音識別(ASR)

一句話定義就是:將人類聲音轉化成文字的過程。

按識別範圍分類為“封閉域識別”和“開放域識別”。

  • 封閉域識別:在預先指定的字/詞集合內進行識別。如此可將聲學模型和語音模型進行剪裁,識別引擎的計算量也變低。可以將引擎封裝於嵌入式晶片或本地化SDK,脫離雲端,且不會影響識別率;
  • 開放域識別:在整個語言大集合中識別。引擎計算量大,直接封裝到嵌入式晶片或本地SDK中,耗能高且識別效果差,所以一般都只以雲端形式提供。(更詳細的介紹可看文末分享的腦圖)

5.2 計算機視覺(CV)

一句話定義:計算機對生物視覺的模擬。通過採集圖片、視訊進行處理,以獲取相應場景的三維資訊。

計算機視覺的三步驟為成像、早期視覺、識別理解。其中成像原理跟相機原理相同,成像質量受光照影響、模糊、噪聲、解析度的影響,我們需要去找到好的方法來解決光照、模糊等問題。早期視覺又有影象分割(將特定影像分割成“區域內部屬性一致”而“區域間不一致”的技術)、邊緣求取(找到影象中的亮度變化劇烈的畫素點構成的集合,即找出輪廓)、運動及深度估計三種方法。識別理解是最後一步,即把一張圖片對應到一個文字或標籤(根據機器找到的對映關係得出輸出)。

計算機視覺的三種應用介紹:人臉識別、多目標跟蹤、光學符號識別。

  • 人臉識別的技術流程:人臉採集–人臉檢測–影象預處理–特徵提取–人臉匹配與識別。在實際流程當中,每一個環節都有對應的注意事項,詳情請看老狼在文末準備的腦圖。
  • 多目標追蹤的技術流程:影象採集–影象預處理–基於深度學習的多目標檢測識別–多目標跟蹤–輸出結果。在實際流程當中,每一個環節都有對應的注意事項,詳情請看老狼在文末準備的腦圖。
  • 光學符號識別的技術流程:影象採集–影象預處理–特徵提取–文字定位–光學識別。在實際流程當中,每一個環節都有對應的注意事項,詳情請看老狼在文末準備的腦圖。

5.3 自然語言處理(NLP)

一句話定義:自然語言處理(NLP)是指機器理解並解釋人類寫作、說話方式的能力。

NLP又包含NLU(自然語言理解)、NLG(自然語言生成)。自然語言處理中最重要的3個環節是分詞、鎖定關鍵詞、文字相似度計算。因為目前機器的語言識別其實都是基於對詞的識別,任何句子進行自然語言處理時第一步都是要分詞,比如:“我是產品經理”,分詞後變成“我-是-產品-經理”。分詞之後,要找到“關鍵詞”,“關鍵詞”是提供重要資訊、最多資訊的詞,比如在“我是產品經理”句子被分詞後,機器會選擇“產品”、“經理”為該句子“關鍵詞”。文字相似度有歐氏距離、曼哈頓距離等演算法,詳情看老狼的腦圖。

6. 技術分層

從技術實現的效果的角度將AI技術進行分層:

  • 認知,通過收集、解析資訊對世界和環境進行認知。包括圖片處理技術、語音識別、自然語言識別技術。
  • 預測行為和結果。比如在使用者行為研究的基礎上根據對使用者當前行為的識別,預測使用者下一步想做什麼,然後主動滿足使用者。
  • 確定實現的方式和路徑。比如AI代替醫生給病人看病,得出病症和治病方案。

7. AI的常用語言及框架

市場上有的AI框架包括TensorFlow、Caffe、Torch、Theano等等,目前大部分工程師利用的是Tensorflow。AI程式設計可以利用多種計算機語言,目前最常用的是C++和python。

想要實操練習的小夥伴,到Google官方網站,按照官方的教程安裝TensorFlow,安裝好之後,你就可以用它提供的多個API來訓練機器學習模型了。

8. AI的價值

網際網路的價值在於降低成本、提高效率;而AI 可以替代人力,讓成本直接為0,其蘊含的市場價值比網際網路技術的市場價值更高。

二、AI的邊界

要理解AI的邊界,就必須從AI三要素切入。三要素分別為演算法、計算力、資料。我們通過對已有模型演算法的理解,計算力的認知以及對可獲取資料的判斷,就可以推測出我們落地時可實現哪些,以及可實現到什麼程度。

有一個巨集觀判斷邊界的快捷法,叫做“1秒法則”:當前的AI可以實現到處理人1秒內可以想到答案的問題。而且這個問題還得滿足以下特點:大規模、重複性、限定領域。

三、AI的市場情況

1. AI應用分類

關鍵性應用:需要演算法準確度在99.9999%以上的應用。比如無人駕駛汽車、手術機器人等。

非關鍵性應用:只需要演算法準確度在99%或95%以上的應用。例如人臉識別、廣告推送等。

關鍵性應用對演算法要求極高,需要特別優秀的AI演算法專家來推動實現。非關鍵性應用對演算法要求相對低,藉助開源演算法即可以進行落地。關鍵性應用的關鍵角色是AI演算法專家(AI 科學家)、非關鍵性應用的關鍵角色則是AI PM 。

2. AI的市場化

由於雲端計算解決了計算力的問題,又有開源演算法以及Google等公司開放的框架可利用,很多AI產品的落地條件只剩下找到資料了。而一些有資料積累的網際網路公司在這一點上具備先發優勢,比如百度、阿里、騰訊,都開始搶奪下一個商業風口(AI)了。百度已經是all in AI 了,目前百度的無人汽車駕駛已經初見成效,離大規模商品化不遠。阿里利用AI為自己的服務進行各種升級,比如人臉識別、人臉解鎖等等,現在阿里佈局的新零售線下無人超市等必不可缺AI支援。騰訊的計算機識別相關軟體已經成熟並等待深度商業化。另外一些小一點且針對領域相對垂直的網際網路公司,如喜馬拉雅、美團等,都開始為自己的應用或服務AI 賦能。(此處針對非關鍵性應用介紹)

過去多年網際網路的發展很好地打下了資料基礎,網際網路應用是很好的資料採取埠。產品經理要負責AI產品的時候同樣需要多花心思設計應用的資料採集體系,使得可更高效地採集資料,且採集資料更便於形成優質樣本。

順便說下短期市場趨勢——專家系統。“專家系統”也是AI模型裡很重要的一部分,我們可以簡單理解為“專家系統”就是針對一個專業領域進行專業知識的訓練而獲得的模型,“專家系統”其實就是機器複製行業專家的專業能力,並替代其完成工作。比如醫療專家系統AI、股票專家系統AI。前者是替代醫生進行診斷看病並輸出結果,後者是替代股票專家幫使用者分析股市及推薦股票。“專家系統”的訓練要依靠行業專家或專家總結的專業知識,行業專家要參與訓練和測試效果。目前市場裡某些領域的“專家系統”已經相當成熟了,“專家系統”也是最容易直接創造商業價值的AI。目前大公司的AI框架所開放的API已經足夠訓練成熟的“專家系統”,只需要滿足條件:1)有專家知識;2)有足夠多的優質資料。

3. 硬體&軟體

AI的產品可以分為硬體AI(包括硬軟結合AI)、軟體AI。其中硬體AI產品的落地成本更高、風險更大、週期更長,所以目前市場資本對軟體AI公司更偏好一些,拿到投資的這類公司的量也多一些。2018年開始後的兩三年內,亮相市場的AI產品應該大量都是軟體類,甚至說大量的AI產品就來自於移動網際網路產品的升級(AI賦能)。比如美團外賣app已經加了AI機器人服務功能,還有微軟識花等純AI的app…

4. AI市場的人才需求

目前人才需求是市場第一需求。人才包括新興崗位:AI演算法科學家、AI工程師、人工智慧訓練師、AI產品經理、資料標註專員。涉及到關鍵性應用時,AI演算法科學家、AI工程師是最稀缺且第一需求人才;涉及到非關鍵性應用時,AI產品經理為最稀缺且第一需求人才。

目前市場在嘗試各行各領域的AI產品,但由於AI產品經理的匱乏,大部分進展過慢或難以開展。市場需要更多的合格的AI產品經理,合格的AI產品經理需要對AI認知全面且懂得如何與實際的市場需求相聯絡,同時還需要有對新的需求場景的開發、摸索(所以AI產品經理還是得具備行業經驗,對行業理解深刻)。

四、AI專案中的分工

1. AI科學家

崗位職責:

研究機器學習演算法、AI模型(通常只有關鍵性應用的專案才會需要AI科學家)。

2. AI工程師

崗位職責:

利用模型進行程式設計,負責調整模型引數,以及資料訓練的操作。

3. AI訓練師

(1)崗位職責

通過分析產品需求及相關資料,制定資料標註規則,提高資料標註工作質量和效率,同時累積細分領域通用資料。

(2)崗位需求背景

  • 資料標註是AI專案中最重要的環節之一。一般情況下需要由資料標註員來完成資料標註(即給訓練資料打標籤),但是資料標註員對資料的理解的不同會造成標註質量差異大,導致整個標註工作的效率和效果都不好。
  • AI公司在其細分領域可能累積了大量資料,但是由於缺少對資料的正確管理,使得這些資料難以沉澱、複用,使用一次之後難以再發揮價值。所以AI訓練師成為了必要。

(3)具體工作內容

  • 通過聚類演算法、標註分析等方式,以及憑藉對行業的理解,從資料中結合行業場景提取特徵。輸出表達清晰準確的資料標註規則。
  • 輔助AI工程師的工作,並進行資料驗收。參與核心指標的制定以及指標監督。日常跟蹤資料。(偏向於運營的工作)
  • 根據細分領域的資料應用需求,從已有資料中挑選符合要求的通用資料,形成資料沉澱、積累。
  • 提出細化的資料需求,以及提出產品優化建議。該工作需要和AI產品經理進行大量溝通
  • 分配資料標註員的工作,對資料標註員的工作進行培訓、指導。以及驗收資料(檢查資料標註員工作結果)。該工作需要和資料標註員進行大量溝通。

(4)兩個側重方向

AI訓練師有兩個側重方向:

  • 一是重前期的資料探勘工作及輔助AI工程師的工作,保證產品落地;
  • 二是重後期的產品運營,提升產品體驗。根據不同專案的需求而定側重方向。

(5)能力模型

  • 資料能力——會使用科學的資料獲取方法,能利用excel之類的資料處理工具。
  • 行業背景——熟悉公司行業領域知識,以及資料特點(比如語言、影象)。
  • 分析能力——基於產品資料需求,提煉問題特徵,輸出優化方案。
  • 溝通能力——能通俗易懂的闡釋專業術語,與各崗位同事交流都能切換頻道。
  • AI技術理解力——特別是跟AI工程師交流時能釐清AI概念,並判斷技術邊界(能不能做,能做到什麼程度)。
  • AI行業理解力——具備AI行業知識框架。

4. AI產品經理

(1)崗位職責

理解行業及使用者,收集/挖掘需求、分析需求,做出產品戰略規劃,並設計產品解決方案、分析最佳的AI解決方案(比如用什麼AI技術、哪一個模型),與AI訓練師溝通、AI工程師溝通,完成產品demo,推動產品上線,跟蹤資料,做出產品優化方案。

(2)崗位需求背景

無論在哪個領域,做產品都需要產品經理。只不過在AI領域,需要對AI行業知識理解深刻的產品經理,這樣的產品經理具備邊界判斷的能力以及判斷最佳解決方案的能力,我們把這樣的產品經理叫AI產品經理。

(3)具體工作內容

  • 調研行業,理解行業業務,收集或挖掘行業需求;
  • 深刻理解需求,分析目標使用者,輸出使用者畫像;
  • 定位產品,制定產品戰略(結合對市場發展趨勢、競品等的理解);
  • 找出解決需求的方案,並轉化為AI產品;選擇最佳AI解決方案(帶著需求和產品規劃與AI工程師、AI訓練師深度溝通),並判斷落地可行性及可實現程度;參與制定資料標註規則;
  • 設計產品,輸出產品demo及各種文件(流程圖、PRD等);
  • 向AI訓練師收集產品優化建議;
  • 優化產品;
  • 評估產品,計劃開發(UI設計及開發)階段、週期。制定驗收標準;
  • 驗收產品,與運營對接,上線。

(4)能力模型

  • AI技術理解力——跟AI工程師交流時能釐清AI概念,判斷技術邊界(能不能做,能做到什麼程度);能結合產品體驗,做好互動設計,使得AI部分的表現形式最佳;瞭解需要什麼樣的資料,甚至設計最佳資料採集功能,使應用可以更好的採集高質量資料,累積以備利用。
  • AI行業理解力(加創造力)——具備AI行業知識框架。能結合系統的AI知識展開邏輯性的思維發散,考慮AI帶來的新行業的可能性。
  • 傳統網際網路產品經理的通用能力

5. 資料標註員

(1)崗位職責

負責給資料打標籤的執行工作。

(2)崗位需求背景

資料標註是個工作量極大的工作,且專業度要求不高。

(3)具體工作內容

  • 按照規則預訓練,評估規則及工時;
  • 按規則完成要求的資料標籤;
  • 交付已標註資料。

PS:AI產品經理和AI訓練師具備類似的能力模型,只是工作側重點不同,AI訓練師負責更細分的資料工作。目前市場上的AI訓練師大部分來自產品經理的轉型。而AI 產品經理可以直接兼顧AI訓練師的職責,即不需要AI訓練師,只要AI產品經理。

五、PM對網際網路產品AI升級

很多移動網際網路的產品都可以進行AI升級,所以建議產品經理們進行AI學習,可以為自己的產品進行AI賦能。(此處我們只針對於分關鍵性應用進行討論,即不需要AI科學家的崗位,只需要懂得利用開源框架和模型即可。)

1. 用AI解決方案代替傳統的演算法解決方案

舉例:新聞app的智慧推薦功能

例如,以前今日頭條的智慧推薦功能是基於對使用者行為路徑的研究得出的使用者模型,根據使用者的過去行為產生的資料,對使用者當下想看的或喜歡的內容進行預測並推送。概括講就是通過研究先找到使用者行為跟使用者喜歡之間的對映關係,然後根據對映關係寫好演算法。

該解決方案的缺陷是:

  1. 找到準確的對映關係難度大,並且很可能遺漏很多規律;
  2. 需要對使用者體驗進行優化就需要更新演算法,工作量大,且優化週期偏長;
  3. 產品體驗跟演算法工程師的技術能力直接相關,並非每一個公司都有足夠優秀的演算法工程師。

用AI方案替代:直接利用資料進行訓練,讓模型在學習的過程中自己找到對映關係,然後接入應用。優點是:

  1. 可以找到人未能總結出的一些規律,效果可能出乎意料;
  2. AI自己時時刻刻通過資料進行自我升級;
  3. 即使沒有演算法工程師,也可以實現智慧推送效果。

2. 在原app上新增AI功能

舉例:外賣app

利用AI增加個性化介面功能——讓app呼叫AI模型,利用使用者資料對AI模型進行訓練,讓AI找到不同行為的使用者分別有什麼點餐習慣或者說屬於什麼使用者行為模型。當用戶進入app時,根據使用者之前的行為資料,展示介面定製化呈現。

利用AI幫助使用者更快做出更佳選擇——使用者進入外賣app時,可以直接語音提問:

  • 今天哪些店鋪活動中?
  • 有什麼粵菜新店?
  • ……

經過語音識別、語音合成、專家系統訓練的AI會迅速得出答案並回複用戶,同時帶上鍊接。如此使用者就可以快速完成下單。(其實AI對移動網際網路的升級有更多方式,這個需要靠產品經理對業務、使用者需求有足夠深度的理解並挖掘出來)。

六、AI產品經理需要參與、推動的重要流程

(1)分析使用者需求,找到痛點並思考用什麼樣的AI方案進行解決

(2)設計產品的後臺資料採集功能,保證資料的採集更方便機器學習時利用(設計產品時,要分析出機器學習時需要的資料量、資料型別以及資料特徵)

(3)與AI訓練師溝通制定資料標註規則

(4)與AI工程師進行交流,告知AI工程師需要的AI模型,預期效果,以及與客戶端的資料互動需求。與使用者端工程師進行交流,告知AI如何與客戶端進行資料互動

(5)設計客戶端,推動客戶端開發實現

(6)資料訓練機器

準備樣本資料(訓練資料和測試資料)–為訓練資料打標籤–輸入帶標籤的訓練資料–輸入測試資料–檢視擬合度,或調整模型引數–迴圈訓練直至達到最佳擬合。

(7)檢查訓練後的AI模型是否滿足需求。若不滿足,與AI工程師共同分析問題並找出解決方案

(8)將成型的AI產品面對“使用者角色”測試,無問題後上線正式運營

好了,要轉型做一個AI產品經理的快學習指南就先到這裡了,文末會有知識結構的腦圖下載地址,以及參考文獻、推薦閱讀書籍。希望大家看完老狼的分享後,腦裡可形成一個學習大綱,有了清晰的學習思路。

還有一個特別重要的事!如果你看完老狼的分享,還是對AI一無所知,為了讓你沒有白花時間看這篇文章,老狼告訴你一個特別的裝13技巧,當大家都在各種拿AI吹水的時候,你點上一支香菸,45度擡頭,看著那一縷青煙,輕描淡寫地說道:其實AI很簡單,它不過是一個函式。