科技

從產品經理向人工智慧產品經理進階|機器學習必備知識

以技術為主要驅動力的人工智慧時代,人工智慧產品經理一定需要學習人工智慧相關技術。本文筆者將與大家講述機器學習的相關知識。

作為人工智慧產品經理,你不一定需要擁有研究生和博士學歷,但是你需要了解一定的技術基本概念,瞭解各種技術的優點缺點及其技術邊界。

就像你會騎自行車,但不必要自己造出一輛自行車,但是你還是需要知道自行車的基本運動原理,比如鏈條傳動。

本文作者將主要介紹:機器學習是什麼?

掌握機器學習,對後續的神經網路的理解將會更加容易。

理解機器學習沒有必要從這些複雜拗口的方式入手,從一個簡單易懂的概念去理解,也許會更事半功倍。筆者一直認為“機器學習是一種資料分析的方法”。

隨著網際網路的發展,資料量越來越多,而如何利用資料變現成為了企業最頭疼的問題。

其實,未經處理的原始資料其實是沒有太大使用價值的,有價值的資料是通過正確的分析技術,獲得更豐富的資料認知、更明確的場景洞察和更精準的資料畫像,能夠幫助決策,這時資料的意義才凸顯出來。而機器學習作用就是針對龐大的資料進行分析,挖掘其意義和價值的。

如圖,資料分析可分為如下四類:

現狀描述:根據現有資料,描述現實世界的現狀。異常診斷:根據現有資料發現其中的異常,並且可以瞭解出現異常的原因是什麼。未來預測:以時間為維度,利用歷史資料檢視資料的變化趨勢,,預測未來發生的概率。行為規範:考慮如何改變現狀或未來的資料來滿足對未來的預期。機器學習能做的也正是這四件事,機器學習可以通過對資料的學習描述現實世界,並洞察世界,並對未來世界的演化進行預測。

一、 傳統軟體和機器學習的邏輯差異

網際網路時代,產品經理的工作是針對現有業務進行分析,並根據該業務過程設計出合理的系統處理邏輯,開發工程師根據設計好業務處理邏輯進行產品實現。

所以,傳統軟體從輸入到輸出過程的運算是經過設計的、固定的、明確的。如圖所示,工程師的作用是設計過程,並讓資料按照設計好的過程進行處理。

人工智慧產品與網際網路產品或傳統軟體產品不同,人工智慧產品是根據已有資料自動化構建邏輯結構。人工智慧產品通過機器學習演算法反覆從資料中進行學習,不需要告訴計算機業務邏輯,人工智慧演算法就可以找到隱含在其中的規律和意義。

人工智慧系統則是將訓練資料(輸入資料+結果資料)放入人工智慧演算法中,得出一個模型,如圖所示,這個模型替代了由產品經理或需求分析師設計的軟體邏輯結構。

機器學習與傳統軟體方式的差異是非常大的,機器學習顛覆了原有的程式思路。

傳統的程式思路是人對資料已經有了分析,尋找到規律,通過輸入資料+規律驗證,得到最終結果;而機器學習無需人對資料本身的分析和判斷,而是將分析和判斷的工作全部交給了機器,輸入訓練資料後,機器根據演算法找到隱含在資料中的規律,並可以將這些規律進行實際的應用。

二、機器學習的學習模式

根據訓練的方式不同,機器學習共有四大學習模式,分別是:有監督學習、無監督學習、半監督學習和強化學習。

這四種學習方式的根本區別在於對於資料內容不同,訓練模式不同。

監督學習:通過有標籤的資料進行訓練,得到一個模型,通過該模型對未知資料進行處理。無監督學習:事先沒有任何訓練資料樣本,而是通過演算法對資料進行分析建模,找到其中的規律。半監督學習:半監督學習訓練中使用的資料,只有一部分是標記過的,而大部分是沒有標記的。強化學習:強化學習也是使用未標記的資料,但是可以通過某種方法知道你是離正確答案越來越近還是越來越遠。監督學習非常好理解,是按照人類制定的規範,通過機器學習不斷訓練以便於在這個規範下達到最優解,而為什麼會出現非監督學習呢?未經訓練而進行自動化的建模會不會走了歪路?

舉個簡單的例子,就像有人對音樂一竅不通,但是通過多聽,不用太長時間,就可以分清楚古典、現代、爵士各個派別。同樣的,我們把不同時代,大量的、不同型別的音樂都交給機器,機器可以根據音訊中高中低音的運用、節奏中從中也找到音樂的特點,並完成分類,而無需我們提前告訴機器哪個音樂是什麼型別。

機器學習可以解決的問題很多,但歸納來講可以分為:分類、迴歸、聚類、降維等幾種,如圖4-4所示。

在解決這些問題的時候,有很多演算法,常見的有監督學習演算法,如支援向量機、K-近鄰演算法、決策樹、樸素貝葉斯、邏輯迴歸、線性迴歸、神經網路等。而像聚類、EM演算法等都屬於無監督學習。各類演算法的分類及應用領域如表所示。

分類(classification):給定一個樣本特徵,我們要預測其對應的標記值,如果屬性值是離散的,那麼這就是一個分類問題。迴歸(classification):給定一個樣本特徵,我們要預測其對應的標記值,如果屬性值是連續的,那麼這就是一個迴歸問題。聚類(clustering):給定一組樣本特徵,我們沒有對應的標記值,而是想發掘這組樣本在空間的分佈,比如分析哪些樣本離得近,哪些樣本離得遠,那麼這就是一個聚類問題。降維(dimensionality reduction):給定一組樣本特徵,如果需要用維數低的子空間來表示原來高維的特徵空間,那麼這就是降維問題。做為產品經理,筆者建議要對機器學習的學習模式有深入瞭解,並且瞭解各類學習模式主要用來做什麼就可以了,也只有對這些內容有了解,才可以與工程師之間形成有效溝通。

1. 有監督學習有監督學習是使用帶標籤的歷史資料進行訓練,得出模型,然後輸入新的資料,並根據模型得出解決方案。

如圖所示,有監督學習演算法使用標記的資料集來生成模型,然後將此模型與新資料一起使用來驗證模型的準確性,或者使用實時資料將該模型應用於生產環境。

有監督學習需要有大量資料作為訓練資料,而如果手中有資料的時候,怎麼劃分訓練資料和測試資料是比較頭疼的一件事。如果訓練資料太少,則模型可能不準確,而如果將太多的資料放在訓練上,則驗證資料可能會因為噪點太多而影響驗證。

一般情況下,建議訓練資料與測試資料採用6:4至8:2之間的比例是相對合適的。

1)有監督學習的過程:

通過用一個例項來說明一下有監督學習的過程,我們要做的功能是使用者通過上傳一張照片,系統識別這張照片是不是你本人。而你上傳的照片可能是全身照,也可能是半身照,或者照片中只有一個眼睛的特寫。

第一步、資料的生成和分類:首先要蒐集足夠多的關於“你”的照片,全身、半身、正面、側面,只要有你的影像都存在一個組內,這一組叫做訓練集,用來進行訓練。

另外再準備一組照片,這類照片只有一部分有你的影像,另外一部分則是別人的照片。這一部分叫做驗證集,驗證集是用來檢驗訓練好的演算法模型能否認出你。驗證集作為輸入,得到一些輸出,照片有你輸出為1,沒有你輸出則為0。

第二步、訓練:通過神經網路進行訓練時,訓練集中的每一幅影象都會作為神經網路的輸入,經過神經網路中每一層的神經元運算,進行特徵提取,當計算完所有的神經元時,會得到最右邊的輸出,是1還是0。

第三步、驗證:至此,第一組中的資料已經全部用完。接下來我們會用第二組資料驗證訓練得到的模型的準確率。在這個過程中涉及到超參優化、選擇啟用函式等。

第四步、封裝應用:一旦資料驗證的指標達到預期設定的指標後,模型就訓練好了。可以將該模型封裝為介面,整合到軟體中。軟體通過介面與使用者互動,當用戶把照片上傳後,軟體會自動呼叫該介面完成計算,並將結果返回給軟體程式介面。

2)一些經典的有監督學習演算法:

作為人工智慧產品經理不一定要會設計演算法,不一定要去具體實現演算法,但一定要懂得演算法的內容、特點、演算法能達到的目標。以下部分將介紹兩個有監督學習演算法,分別是SVM和樸素貝葉斯分類器,產品經理可選擇性閱讀。

SVM(支援向量機):

SVM是一種非常流行的有監督學習模型,可用於分類或者回歸,SVM可以有效的解決小樣本、非線性以及高緯模式識別的問題。所以,SVM的應用非常廣泛。我們先來假設一個二維空間裡有不同的圖形,如圖所示:

C1和C2是空間裡的兩個類別,C1是圓柱形,C2區域分佈的正方體,而中間的可以用一條斜線進行區分,斜線的斜率為W。該斜線就是分類函式,分類函式可以將兩個樣本完全分開,如果一個線性函式可以將樣本完全分開,那麼資料一般被稱為線性可分,否則叫做非線性可分。

分類函式在一維空間裡,是一個點,在二維空間裡是一條直線,在三維空間裡則是一個平面,當然還有更高維度或者無限維的分類函式,所以分類函式還有一個統稱叫做超平面。

聰明人自然會發現,在上圖的斜線其實是可以左右挪動的,如下圖所示:

SVM的目的就是尋找到一個超平面,可以使得樣本分成兩類,並且分類的間隔最大,這就是SVM的基本理論模型。

當然,如果世界上的物體分散都是這麼均勻並且有規則,很容易就能算出來結果,可是現實世界可並不是這樣的,現實世界往往是這如圖的情況,圓柱形和正方形是沒有規則的分散在這個平面中。

這種圖形想通過一個簡單函式分類,幾乎是不可能的事情。

於是科學家們提出了另外一個概念“核函式”。意思是說可以將樣本從原始空間,對映到一個更高維度的空間中,通過在高緯度空間中的映像劃分,最終完成線性劃分。

第一步:將二維空間升維為三維空間,如下圖所示。

第二步:把二維的樣本資料投射到在三維空間中,如下圖所示。

第三步:在三維空間中進行切割,如下圖所示。

第四步:再將切割後的超平面,對映到一個二維平面中,如下圖所示。

如此就完成了新的核函式。因為非線性的空間實在太複雜,你又不可能馬上知道哪個核函式最適合將非線性空間轉換為線性空間,所以SVMS通常會實施多個核函式來識別最佳選項。

2. 樸素貝葉斯分類器如果你的領導交給你一項分析任務,中等程度資料量,變數也較少,而且希望你儘快的完成資料預測,這時選擇樸素貝葉斯是一個較好途徑。

先來看一下什麼是貝葉斯定律:

換個表達形式會更容易理解:

如果我們要通過性別和體重來區分產品經理和程式設計師,這就是在求P(程式設計師|性別,體重)和P(產品經理|性別,體重)。

根據貝葉斯定律看:

P(職業|性別,體重)=P(性別|職業)P(職業)/P(體重)

除貝葉斯演算法外,還有樸素貝葉斯,樸素貝葉斯是在貝葉斯演算法的基礎上做了一個基本假設而來的演算法。

樸素貝葉斯假設了所有的資料的屬性都是獨立的,他們之間互不影響,也正是因為有這個假設,可以把很多複雜的問題進行簡單化。而且樸素貝葉斯也非常適合預測未知資料集,做一些資料預測。

上面的例子中,根據樸素貝葉斯可以認為性別和體重沒有關係,也就是P(體重|職業,性別)=P(體重|職業)。

P(性別,體重|職業)=P(性別|職業)×P(體重|職業)

樸素貝葉斯的優點是:

樸素貝葉斯簡單,容易理解;樸素貝葉斯效能高,計算速度快;樸素貝葉斯擅長資料預測;樸素貝葉斯對於訓練資料的要求量非常少;正是由於樸素貝葉斯的優點,所以在實時預測、多類預測中經常能看到樸素貝葉斯的身影。不僅如此,由於文字分類的變數型別多,型別之間也相對獨立,所以樸素貝葉斯在文字分類中得到了廣泛的應用,諸如垃圾郵件識別、網站內容識別、新聞推薦等。

三、無監督學習

針對沒有任何標記過的資料,通過演算法學習資料的分佈情況或者資料之間的關係稱為無監督學習。

無監督學習的目標是利用演算法探索隱藏在資料中的某種結構及特性,而這些結構和特性是人無法直接瞭解或人力無法做到的。由於資料沒有任何標籤,所以無監督學習的結果是否正確也很難評估。但是如果通過無監督學習對資料的分組,你可以瞭解到原始資料中無法預見的隱含資訊。

如果把學校裡的學習的學生稱為有監督學習的話,那麼沒有上學的孩子也能通過自身的觀察和對世界的理解進行學習,只不過他們學到的東西是隨性的、隨意的,但最終學習成什麼樣子也是也無法預測的。

人工智慧也是如此,2017年曾有個新聞:美國科學家制造的兩個人工智慧機器人,通過自學習創造了只有他們兩個能看得懂的語言。並且,這兩個機器人自己已經開始用只有他們自己能夠懂得的語言在進行交流,引起了人們極大恐慌,最後以銷燬而告終。

無監督學習在很多應用場景中都有實際的例子做驗證。

如果你開了一家制衣廠,生產衣服,但如何確定衣服的S、M、L碼?如果你同時擁有中國人的全部身高值,則可以通過無監督學習完成。

正是由於沒有人為標記,所以截止目前為止,無監督學習還達不到監督學習的準確性和有效性,所以無監督學習在人工智慧界一直被一些科學家們所詬病。但最近幾年,無監督學習又重新火熱起來,有些科學家甚至稱無監督學習才是人工智慧的未來。

無監督學習中目前最熱門的一個演算法是Ian Goodfellow提出的生成對抗網路——即GAN。

GAN原理是:將兩個神經網路相連,一個神經網路稱之為“生成器”,負責生成旨在嘗試欺騙另一個神經網路的資料,而另外的網路稱為“鑑別器”。通過兩個網路的對抗學習,實現了一些令人驚奇的結果,例如可以從文字字串或手繪草圖生成如照片版逼真圖片的人工智慧技術。

1. 判斷指標在人工智慧的評價指標通常有三種:準確率(Precision)、召回率(Recall)和精準率(Accuracy),在無監督學習中這三個指標非常重要,通常用這三個指標對無監督學習進行評價。

準確率:對於給定的測試資料集,分類器正確分類的樣本數與總樣本數之比。簡而言之,準確率就是查的準。就像警察抓小偷,抓到的每個人是不是都是小偷,抓到的10個人,有9個是小偷那麼準確率就是90%。召回率:對給定的測試資料集,分類器正確的找到所有正確分類樣本數。簡而言之,召回率就是查的全。就像警察抓小偷,有100個人,共有20個小偷,抓到了其中10個,則召回率為50%。精準率:表示識別對的比例。即好人被識別成好人,壞人被識別成壞人,就像警察抓小偷,有100個人,共有20個小偷,抓了10個,但其中有1個不是小偷,則精準率為90%。準確率、召回率、精準率是衡量人工智慧演算法的關鍵指標,這三個指標越高,表示演算法的適應性越好。

四、半監督學習

有監督學習是當我們有能力對資料進行標註,並針對標記資訊進行分類和迴歸時使用。

無監督的訓練是不包含標記資訊進行訓練,通常用來做聚類。但有些時候我們手中的資料往往是隻有一部分有標記但是並不是全部標記,那麼這時就可以使用半監督學習來完成。

筆者近些年在做的“全國政府網站監控專案”就是一個很好的例項:

該專案監測了全國9萬多個政府網站,24億個各級政府網站的頁面,如圖4-13所示,專案要做的是在這些網頁中發現其頁面是否存在異常,使用者對那些頁面更感興趣。

而多達幾十億的頁面,要進行所有頁面全部標註是不可能的,有標註的頁面只有幾萬個。如果直接將無標記的樣本集丟掉,使用傳統的有監督學習,不但可惜,而且會因為訓練樣本不足,而導致資料失真,影響機器學習效果,如何有效利用無標記資料成為需要探討的內容。

最簡單的辦法就是,對未標記的頁面打標籤,但隨之而來的巨大的人力耗費,如果一個人對一個頁面打標籤的時間是0.5分鐘,要對24億頁面打標籤,需要一個人365天無休息的打標籤,最終5400多年才能完成。

專案組採用了半監督學習的方法完成該工作,先使用有標記的樣本資料集訓練出一個學習器,然後基於該學習器對未標記的樣本進行預測。

對於預測的結果樣本進行分類,對於不確定性高的樣本以及分類置信度低的樣本進行二次打標籤,最後再將資料擴充至訓練集,重新的對學習器進行訓練,最終生成結果。

顯然,半監督學習本質上仍然屬於監督學習的一種,對於訓練資料的樣本進行了半自動化的處理,但是與完全的有監督學習相比,其學習成本大大降低。對於有監督學習和無監督學習的各類演算法,如果資料集符合半監督學習的特徵,則都可以採用半監督學習的方法。

五、強化學習

強化學習又稱:再勵學習、評價學習。

用標準的定義來描述強化學習的話,強化學習的目標是學習一個最優策略(Policy),可以讓本體(Agent)在特定環境(Environment)中,根據當前的狀態(State),做出行動(Action),從而獲得最大回報。強化學習經常會與監督學習和非監督學習混淆。

強化學習把學習看作試探評價過程,如圖所示,Agent選擇一個動作用於環境,環境接受該動作後狀態發生變化,同時產生一個強化的訊號,並將這個強化訊號反饋給Agent。Agent根據強化訊號和環境當前狀態再選擇下一個動作,選擇的原則是使受到正強化的概率增大。

選擇的動作不僅影響立即強化值,而且影響環境下一時刻的狀態及最終的強化值。

監督學習就像學生在考試,而旁邊站著一名指導教師,當學生每做完一道題,立刻老師就會告訴你做錯了或者做對了。

但現實世界是複雜的,很多實際問題是沒有標準答案的,只有那種回答是更合適的。強化學習的過程,就像就像我們訓練動物一樣,每次動物做了某件事後,需要訓練師及時給予反饋,而這種好與壞的反饋會影響到它下次行為方式。

人工智慧的強化學習就是這樣,通過一次次的強化的過程使得,使得機器知道那種行為能夠得到最好的回報。正是由於強化學習這種實時反饋的特性,所以強化學習普遍會運用在機器人領域。

有監督學習和強化學習都會通過演算法得到從輸入資料到輸出結果的一個關係對映,有監督式學習給出的是輸入和輸出之間的關係,可以告訴演算法什麼樣的輸入對應著什麼樣的輸出。

而強化學習則給出的是反饋資訊,用來判斷這個行為是好是壞。當然,強化學習給出的是反饋資訊,所以整個過程是有延時的,有些時候需要經過多個過程後,才知道前面某個節點的選擇是否正確。

本文由@壹赫 原創釋出於人人都是產品經理,未經許可,禁止轉載。

題圖來自Unspalsh, 基於CC0協議。

Reference:科技日報

看更多!請加入我們的粉絲團

轉載請附文章網址

不可錯過的話題