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


作為人工智能產品經理,你不一定需要擁有研究生和博士學歷,但是你需要了解一定的技術基本概念,了解各種技術的優點缺點及其技術邊界。
就像你會騎自行車,但不必要自己造出一輛自行車,但是你還是需要知道自行車的基本運動原理,比如鏈條傳動。
本文作者將主要介紹:機器學習是什么?
掌握機器學習,對后續的神經網絡的理解將會更加容易。
理解機器學習沒有必要從這些復雜拗口的方式入手,從一個簡單易懂的概念去理解,也許會更事半功倍。筆者一直認為“機器學習是一種數據分析的方法”。
隨著互聯網的發展,數據量越來越多,而如何利用數據變現成為了企業最頭疼的問題。
其實,未經處理的原始數據其實是沒有太大使用價值的,有價值的數據是通過正確的分析技術,獲得更豐富的數據認知、更明確的場景洞察和更精準的數據畫像,能夠幫助決策,這時數據的意義才凸顯出來。而機器學習作用就是針對龐大的數據進行分析,挖掘其意義和價值的。


如圖,數據分析可分為如下四類:
- 現狀描述:根據現有數據,描述現實世界的現狀。
- 異常診斷:根據現有數據發現其中的異常,并且可以了解出現異常的原因是什么。
- 未來預測:以時間為維度,利用歷史數據查看數據的變化趨勢,,預測未來發生的概率。
- 行為規范:考慮如何改變現狀或未來的數據來滿足對未來的預期。
機器學習能做的也正是這四件事,機器學習可以通過對數據的學習描述現實世界,并洞察世界,并對未來世界的演化進行預測。
一、 傳統軟件和機器學習的邏輯差異
互聯網時代,產品經理的工作是針對現有業務進行分析,并根據該業務過程設計出合理的系統處理邏輯,開發工程師根據設計好業務處理邏輯進行產品實現。
所以,傳統軟件從輸入到輸出過程的運算是經過設計的、固定的、明確的。如圖所示,工程師的作用是設計過程,并讓數據按照設計好的過程進行處理。
人工智能產品與互聯網產品或傳統軟件產品不同,人工智能產品是根據已有數據自動化構建邏輯結構。人工智能產品通過機器學習算法反復從數據中進行學習,不需要告訴計算機業務邏輯,人工智能算法就可以找到隱含在其中的規律和意義。


人工智能系統則是將訓練數據(輸入數據+結果數據)放入人工智能算法中,得出一個模型,如圖所示,這個模型替代了由產品經理或需求分析師設計的軟件邏輯結構。
機器學習與傳統軟件方式的差異是非常大的,機器學習顛覆了原有的程序思路。
傳統的程序思路是人對數據已經有了分析,尋找到規律,通過輸入數據+規律驗證,得到最終結果;而機器學習無需人對數據本身的分析和判斷,而是將分析和判斷的工作全部交給了機器,輸入訓練數據后,機器根據算法找到隱含在數據中的規律,并可以將這些規律進行實際的應用。
二、機器學習的學習模式
根據訓練的方式不同,機器學習共有四大學習模式,分別是:有監督學習、無監督學習、半監督學習和強化學習。
這四種學習方式的根本區別在于對于數據內容不同,訓練模式不同。
- 監督學習:通過有標簽的數據進行訓練,得到一個模型,通過該模型對未知數據進行處理。
- 無監督學習:事先沒有任何訓練數據樣本,而是通過算法對數據進行分析建模,找到其中的規律。
- 半監督學習:半監督學習訓練中使用的數據,只有一部分是標記過的,而大部分是沒有標記的。
- 強化學習:強化學習也是使用未標記的數據,但是可以通過某種方法知道你是離正確答案越來越近還是越來越遠。
監督學習非常好理解,是按照人類制定的規范,通過機器學習不斷訓練以便于在這個規范下達到最優解,而為什么會出現非監督學習呢?未經訓練而進行自動化的建模會不會走了歪路?
舉個簡單的例子,就像有人對音樂一竅不通,但是通過多聽,不用太長時間,就可以分清楚古典、現代、爵士各個派別。同樣的,我們把不同時代,大量的、不同類型的音樂都交給機器,機器可以根據音頻中高中低音的運用、節奏中從中也找到音樂的特點,并完成分類,而無需我們提前告訴機器哪個音樂是什么類型。


機器學習可以解決的問題很多,但歸納來講可以分為:分類、回歸、聚類、降維等幾種,如圖4-4所示。
在解決這些問題的時候,有很多算法,常見的有監督學習算法,如支持向量機、K-近鄰算法、決策樹、樸素貝葉斯、邏輯回歸、線性回歸、神經網絡等。而像聚類、EM算法等都屬于無監督學習。各類算法的分類及應用領域如表所示。
- 分類(classification):給定一個樣本特征,我們要預測其對應的標記值,如果屬性值是離散的,那么這就是一個分類問題。
- 回歸(classification):給定一個樣本特征,我們要預測其對應的標記值,如果屬性值是連續的,那么這就是一個回歸問題。
- 聚類(clustering):給定一組樣本特征,我們沒有對應的標記值,而是想發掘這組樣本在空間的分布,比如分析哪些樣本離得近,哪些樣本離得遠,那么這就是一個聚類問題。
- 降維(dimensionality reduction):給定一組樣本特征,如果需要用維數低的子空間來表示原來高維的特征空間,那么這就是降維問題。
做為產品經理,筆者建議要對機器學習的學習模式有深入了解,并且了解各類學習模式主要用來做什么就可以了,也只有對這些內容有了解,才可以與工程師之間形成有效溝通。
1. 有監督學習
有監督學習是使用帶標簽的歷史數據進行訓練,得出模型,然后輸入新的數據,并根據模型得出解決方案。


如圖所示,有監督學習算法使用標記的數據集來生成模型,然后將此模型與新數據一起使用來驗證模型的準確性,或者使用實時數據將該模型應用于生產環境。
有監督學習需要有大量數據作為訓練數據,而如果手中有數據的時候,怎么劃分訓練數據和測試數據是比較頭疼的一件事。如果訓練數據太少,則模型可能不準確,而如果將太多的數據放在訓練上,則驗證數據可能會因為噪點太多而影響驗證。
一般情況下,建議訓練數據與測試數據采用6:4至8:2之間的比例是相對合適的。
1)有監督學習的過程:
通過用一個實例來說明一下有監督學習的過程,我們要做的功能是用戶通過上傳一張照片,系統識別這張照片是不是你本人。而你上傳的照片可能是全身照,也可能是半身照,或者照片中只有一個眼睛的特寫。
第一步、數據的生成和分類:首先要搜集足夠多的關于“你”的照片,全身、半身、正面、側面,只要有你的影像都存在一個組內,這一組叫做訓練集,用來進行訓練。
另外再準備一組照片,這類照片只有一部分有你的影像,另外一部分則是別人的照片。這一部分叫做驗證集,驗證集是用來檢驗訓練好的算法模型能否認出你。驗證集作為輸入,得到一些輸出,照片有你輸出為1,沒有你輸出則為0。
第二步、訓練:通過神經網絡進行訓練時,訓練集中的每一幅圖像都會作為神經網絡的輸入,經過神經網絡中每一層的神經元運算,進行特征提取,當計算完所有的神經元時,會得到最右邊的輸出,是1還是0。
第三步、驗證:至此,第一組中的數據已經全部用完。接下來我們會用第二組數據驗證訓練得到的模型的準確率。在這個過程中涉及到超參優化、選擇激活函數等。
第四步、封裝應用:一旦數據驗證的指標達到預期設定的指標后,模型就訓練好了??梢詫⒃撃P头庋b為接口,集成到軟件中。軟件通過界面與用戶交互,當用戶把照片上傳后,軟件會自動調用該接口完成計算,并將結果返回給軟件程序界面。
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根據強化信號和環境當前狀態再選擇下一個動作,選擇的原則是使受到正強化的概率增大。
選擇的動作不僅影響立即強化值,而且影響環境下一時刻的狀態及最終的強化值。
監督學習就像學生在考試,而旁邊站著一名指導教師,當學生每做完一道題,立刻老師就會告訴你做錯了或者做對了。
但現實世界是復雜的,很多實際問題是沒有標準答案的,只有那種回答是更合適的。強化學習的過程,就像就像我們訓練動物一樣,每次動物做了某件事后,需要訓練師及時給予反饋,而這種好與壞的反饋會影響到它下次行為方式。
人工智能的強化學習就是這樣,通過一次次的強化的過程使得,使得機器知道那種行為能夠得到最好的回報。正是由于強化學習這種實時反饋的特性,所以強化學習普遍會運用在機器人領域。
有監督學習和強化學習都會通過算法得到從輸入數據到輸出結果的一個關系映射,有監督式學習給出的是輸入和輸出之間的關系,可以告訴算法什么樣的輸入對應著什么樣的輸出。
而強化學習則給出的是反饋信息,用來判斷這個行為是好是壞。當然,強化學習給出的是反饋信息,所以整個過程是有延時的,有些時候需要經過多個過程后,才知道前面某個節點的選擇是否正確。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。