AI產(chǎn)品經(jīng)理必修課:機(jī)器學(xué)習(xí)算法入門
本文簡單介紹了機(jī)器學(xué)習(xí)的流程、算法分類及優(yōu)缺點(diǎn),適合希望入行AI的產(chǎn)品新人閱讀。
ML算法種類繁多,如果說監(jiān)督學(xué)習(xí)是上課,無監(jiān)督學(xué)習(xí)是自習(xí),那么強(qiáng)化學(xué)習(xí)是什么?
一、什么是機(jī)器學(xué)習(xí)
1. 含義
機(jī)器學(xué)習(xí)machine learning,是人工智能的分支,專門研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,其通過各種算法訓(xùn)練模型,并用這些模型對新問題進(jìn)行識別與預(yù)測。
本質(zhì)上機(jī)器學(xué)習(xí)是一種從數(shù)據(jù)或以往的經(jīng)驗(yàn)中提取模式,并以此優(yōu)化計(jì)算機(jī)程序的性能標(biāo)準(zhǔn)。
2. 解決什么問題
解決復(fù)雜規(guī)則的問題。如果簡單規(guī)則可以實(shí)現(xiàn),則沒必要借助機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)。
2009年ACM世界冠軍戴文淵加入百度的時(shí)候,百度所有的搜索、廣告都是基于1萬條的專家規(guī)則。借助于機(jī)器算法,戴文淵把百度廣告的規(guī)則從1萬條提升到了1000億條。與此相對應(yīng)的,百度的收入在四年內(nèi)提升了八倍。
3. 三個(gè)名詞之間的關(guān)系
人工智能>機(jī)器學(xué)習(xí)>深度學(xué)習(xí)
以機(jī)器學(xué)習(xí)算法是否應(yīng)用了神經(jīng)網(wǎng)絡(luò)作為區(qū)分標(biāo)準(zhǔn),應(yīng)用了多隱含層神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)就是深度學(xué)習(xí)。
4. 對AI產(chǎn)品經(jīng)理的要
(1)熟悉機(jī)器學(xué)習(xí)流程(詳見文章第三部分)
(2)了解機(jī)器學(xué)習(xí)可以解決的問題分類(詳見文章第四部分);
(3)了解算法的基本原理;
(4)了解工程實(shí)踐中算數(shù)據(jù)和計(jì)算資源三者間的依賴關(guān)系等。
二、機(jī)器學(xué)習(xí)的基礎(chǔ)
1. 機(jī)器學(xué)習(xí)的基礎(chǔ)——數(shù)據(jù)
人工智能產(chǎn)品由數(shù)據(jù)、算法、計(jì)算能力三部分組成,而數(shù)據(jù),是其中的基礎(chǔ)。
圖片來源:http://www.sohu.com/a/160316515_680198
全球頂尖人工智能科學(xué)家李飛飛的成功離不開ImageNet千萬級的數(shù)據(jù)集。
“ImageNet 讓 AI 領(lǐng)域發(fā)生的一個(gè)重大變化是,人們突然意識到構(gòu)建數(shù)據(jù)集這個(gè)苦活累活是 AI 研究的核心,”李飛飛說: “人們真的明白了,數(shù)據(jù)集跟算法一樣,對研究都至關(guān)重要。”“如果你只看 5 張貓的照片,那么你只知道這 5 個(gè)攝像機(jī)角度、照明條件和最多 5 種不同種類的貓。但是,如果你看過 500 張貓的照片,你就能從更多的例子中發(fā)現(xiàn)共同點(diǎn)。”
數(shù)據(jù)量多大為好?
- 千級別:基本要求,可以解決簡單手寫體數(shù)字識別問題,例如MNIST;
- 萬級別:一般要求,可以解決圖片分類問題,例如cifar-100;
- 千萬級:比較好,例如ImageNet,準(zhǔn)確率2%左右,超過了人類5.1%。
2. 數(shù)據(jù)的衡量
人工智能產(chǎn)品對數(shù)據(jù)除了有量的要求,還有質(zhì)的要求,衡量數(shù)據(jù)質(zhì)量的標(biāo)準(zhǔn)包括四個(gè)R:關(guān)聯(lián)度relevancy(首要因素)、可信性reliability(關(guān)鍵因素)、范圍range、時(shí)效性recency。
數(shù)據(jù)獲取地址:
- ICPSR:www.icpsr.umich.edu
- 美國政府開放數(shù)據(jù):www.data.gov
- 加州大學(xué)歐文分校:archive.ics.uci.edu/ml
- 數(shù)據(jù)堂:www.datatang.com
三、機(jī)器學(xué)習(xí)的流程
機(jī)器學(xué)習(xí)的流程可以劃分為以下幾個(gè)主要步驟:目標(biāo)定義、數(shù)據(jù)收集、數(shù)據(jù)預(yù)處理、模型訓(xùn)練、準(zhǔn)確率測試、調(diào)參、模型輸出。
圖片來源:https://research.fb.com/the-facebook-field-guide-to-machine-learning-video-series/
機(jī)器學(xué)習(xí)流程拆解:
1. 目標(biāo)定義
確認(rèn)機(jī)器學(xué)習(xí)要解決的問題本質(zhì)以及衡量的標(biāo)準(zhǔn)。
機(jī)器學(xué)習(xí)的目標(biāo)可以被分為:分類、回歸、聚類、異常檢測等。
2. 數(shù)據(jù)采集
原始數(shù)據(jù)作為機(jī)器學(xué)習(xí)過程中的輸入來源是從各種渠道中被采集而來的。
3. 數(shù)據(jù)預(yù)處理
普通數(shù)據(jù)挖掘中的預(yù)處理包括數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)削減、數(shù)據(jù)離散化。
深度學(xué)習(xí)數(shù)據(jù)預(yù)處理包含數(shù)據(jù)歸一化(包含樣本尺度歸一化、逐樣本的均值相減、標(biāo)準(zhǔn)化)和數(shù)據(jù)白化。需要將數(shù)據(jù)分為三種數(shù)據(jù)集,包括用來訓(xùn)練模型的訓(xùn)練集(training set),開發(fā)過程中用于調(diào)參(parameter tuning)的驗(yàn)證集(validation set)以及測試時(shí)所使用的測試集(test set)。
數(shù)據(jù)標(biāo)注的質(zhì)量對于算法的成功率至關(guān)重要。
4. 模型訓(xùn)練
模型訓(xùn)練流程:每當(dāng)有數(shù)據(jù)輸入,模型都會輸出預(yù)測結(jié)果,而預(yù)測結(jié)果會用來調(diào)整和更新W和B的集合,接著訓(xùn)練新的數(shù)據(jù),直到訓(xùn)練出可以預(yù)測出接近真實(shí)結(jié)果的模型。
5. 準(zhǔn)確率測試
用第三步數(shù)據(jù)預(yù)處理中準(zhǔn)備好的測試集對模型進(jìn)行測試。
6. 調(diào)參
參數(shù)可以分為兩類,一類是需要在訓(xùn)練(學(xué)習(xí))之前手動(dòng)設(shè)置的參數(shù),即超參數(shù)(hypeparameter),另外一類是通常不需要手動(dòng)設(shè)置、在訓(xùn)練過程中可以被自動(dòng)調(diào)整的參數(shù)(parameter)。
調(diào)參通常需要依賴經(jīng)驗(yàn)和靈感來探尋其最優(yōu)值,本質(zhì)上更接近藝術(shù)而非科學(xué),是考察算法工程師能力高低的重點(diǎn)環(huán)節(jié)。
7. 模型輸出
模型最終輸出應(yīng)用于實(shí)際應(yīng)用場景的接口或數(shù)據(jù)集。
四、算法分類
圖片來源:https://www.datasciencecentral.com/profiles/blogs/machine-learning-can-we-please-just-agree-what-this-means
機(jī)器學(xué)習(xí)囊括了多種算法,通常按照模型訓(xùn)練方式和解決任務(wù)的不同進(jìn)行分類。
1. 按照模型訓(xùn)練方式不同,可以分為
(1)監(jiān)督學(xué)習(xí)supervised learning
定義:監(jiān)督學(xué)習(xí)指系統(tǒng)通過對帶有標(biāo)記信息的訓(xùn)練樣本進(jìn)行學(xué)習(xí),以盡可能準(zhǔn)確地預(yù)測未知樣本的標(biāo)記信息。
常見的監(jiān)督學(xué)習(xí)類算法包括:人工神經(jīng)網(wǎng)絡(luò)artificial neural network、貝葉斯bayesian、決策樹decision tree、線性分類器linear classifier(svm支持向量機(jī))等。
(2)無監(jiān)督學(xué)習(xí)unsupervised learning
定義:無監(jiān)督學(xué)習(xí)指系統(tǒng)對沒有標(biāo)記信息的訓(xùn)練樣本進(jìn)行學(xué)習(xí),以發(fā)現(xiàn)數(shù)據(jù)中隱藏的結(jié)構(gòu)性知識。
常見的無監(jiān)督學(xué)習(xí)類算法包括:人工神經(jīng)網(wǎng)絡(luò)artificial neural network、關(guān)聯(lián)規(guī)則學(xué)習(xí)association rule learning、分層聚類hierarchical clustering、聚類分析cluster analysis、異常檢測anomaly detection等。
(3)半監(jiān)督學(xué)習(xí)semi-supervised learning
含義:半監(jiān)督學(xué)習(xí)指系統(tǒng)在學(xué)習(xí)時(shí)不僅有帶有標(biāo)記信息的訓(xùn)練樣本,還有部分標(biāo)記未知信息的訓(xùn)練樣本。
常見的半監(jiān)督學(xué)習(xí)算法包括:生成模型generative models、低密度分離low-density separation、基于圖形的方法graph-based methods、聯(lián)合訓(xùn)練co-training等。
(4)強(qiáng)化學(xué)習(xí)reinforcement learning
定義:強(qiáng)化學(xué)習(xí)指系統(tǒng)從不標(biāo)記信息,但是會在具有某種反饋信號(即瞬間獎(jiǎng)賞)的樣本中進(jìn)行學(xué)習(xí),以學(xué)到一種從狀態(tài)到動(dòng)作的映射來最大化累積獎(jiǎng)賞,這里的瞬時(shí)獎(jiǎng)賞可以看成對系統(tǒng)的某個(gè)狀態(tài)下執(zhí)行某個(gè)動(dòng)作的評價(jià)。
常見的強(qiáng)化學(xué)習(xí)算法包括:Q學(xué)習(xí)Q-learning、狀態(tài)-行動(dòng)-獎(jiǎng)勵(lì)-狀態(tài)-行動(dòng)state-action-reward-state-action,SARSA、DQN deep Q network、策略梯度算法policy gradients、基于模型強(qiáng)化學(xué)習(xí)model based RL、時(shí)序差分學(xué)習(xí)temporal different learning等。
(5)遷移學(xué)習(xí)transfer learning
定義:遷移學(xué)習(xí)指通過從已學(xué)習(xí)的相關(guān)任務(wù)中轉(zhuǎn)移知識來改進(jìn)學(xué)習(xí)的新任務(wù),雖然大多數(shù)機(jī)器學(xué)習(xí)算法都是為了解決單個(gè)任務(wù)而設(shè)計(jì)的,但是促進(jìn)遷移學(xué)習(xí)的算法的開發(fā)是機(jī)器學(xué)習(xí)社區(qū)持續(xù)關(guān)注的話題。
遷移學(xué)習(xí)對人類來說很常見,例如,我們可能會發(fā)現(xiàn)學(xué)習(xí)識別蘋果可能有助于識別梨,或者學(xué)習(xí)彈奏電子琴可能有助于學(xué)習(xí)鋼琴。
常見的遷移學(xué)習(xí)算法包括:歸納式遷移學(xué)習(xí)inductive transfer learning、直推式遷移學(xué)習(xí)transductive transfer learning、無監(jiān)督式遷移學(xué)習(xí)unsupervised transfer learning、傳遞式遷移學(xué)習(xí)transitive transfer learning等。
(6)深度學(xué)習(xí)deep learning
定義:深度學(xué)習(xí)是指多層的人工神經(jīng)網(wǎng)絡(luò)和訓(xùn)練它的方法。一層神經(jīng)網(wǎng)絡(luò)會把大量矩陣數(shù)字作為輸入,通過非線性激活方法取權(quán)重,再產(chǎn)生另一個(gè)數(shù)據(jù)集合作為輸出。
這就像生物神經(jīng)大腦的工作機(jī)理一樣,通過合適的矩陣數(shù)量,多層組織鏈接一起,形成神經(jīng)網(wǎng)絡(luò)“大腦”進(jìn)行精準(zhǔn)復(fù)雜的處理,就像人們識別物體標(biāo)注圖片一樣。
常見的深度學(xué)習(xí)算法包括:深度信念網(wǎng)絡(luò)deep belief machines、深度卷積神經(jīng)網(wǎng)絡(luò)deep convolutional neural networks、深度遞歸神經(jīng)網(wǎng)絡(luò)deep recurrent neural networks、深度波爾茲曼機(jī)deep boltzmann machine,DBM、棧式自動(dòng)編碼器stacked autoencoder、生成對抗網(wǎng)絡(luò)generative adversarial networks等。
遷移學(xué)習(xí)與半監(jiān)督學(xué)習(xí)的區(qū)別:遷移學(xué)習(xí)的初步模型是完整的,半監(jiān)督學(xué)習(xí)的已標(biāo)注部分無法形成完整的模型。
2. 按照解決任務(wù)的不同分類,可以分為
(1)二分類算法two-class classification,解決非黑即白的問題。
(2)多分類算法muti-class classification,解決不是非黑即白的多種分類問題。
(3)回歸算法regression,回歸問題通常被用來預(yù)測具體的數(shù)值而非分類。除了返回的結(jié)果不同,其他方法與分類問題類似。我們將定量輸出,或者連續(xù)變量預(yù)測稱為回歸;將定性輸出,或者離散變量預(yù)測稱為分類。
(4)聚類算法clustering,聚類的目標(biāo)是發(fā)現(xiàn)數(shù)據(jù)的潛在規(guī)律和結(jié)構(gòu)。聚類通常被用做描述和衡量不同數(shù)據(jù)源間的相似性,并把數(shù)據(jù)源分類到不同的簇中。
(5)異常檢測anomaly detection,異常檢測是指對數(shù)據(jù)中存在的不正常或非典型的分體進(jìn)行檢測和標(biāo)志,有時(shí)也稱為偏差檢測。異常檢測看起來和監(jiān)督學(xué)習(xí)問題非常相似,都是分類問題。都是對樣本的標(biāo)簽進(jìn)行預(yù)測和判斷,但是實(shí)際上兩者的區(qū)別非常大,因?yàn)楫惓z測中的正樣本(異常點(diǎn))非常小。
3. 對AI產(chǎn)品經(jīng)理的要求
產(chǎn)品經(jīng)理應(yīng)了解和掌握每種常見算法的基本邏輯、最佳使用場景以及每種算法對數(shù)據(jù)的需求。
這樣有助于:
- 建立必要的知識體系以與研發(fā)人員進(jìn)行良好的交流;
- 在團(tuán)隊(duì)需要的時(shí)候提供必要的幫助;
- 識別和評估產(chǎn)品迭代過程中的風(fēng)險(xiǎn)、成本、預(yù)期效果等。
五、各類算法的對比
1. 算法與學(xué)習(xí)過程的對比
- 監(jiān)督學(xué)習(xí)——上課:有求知欲的學(xué)生從老師那里獲取知識、信息,老師提供對錯(cuò)指示、告知最終答案的學(xué)習(xí)過程;
- 無監(jiān)督學(xué)習(xí)——自習(xí):沒有老師的情況下,學(xué)生自習(xí)的過程;
- 強(qiáng)化學(xué)習(xí)——自測:沒有老師提示的情況下,自己對預(yù)測的結(jié)果進(jìn)行評估的方法。
2. 算法適用場景的影響因素
- 業(yè)務(wù)核心問題;
- 數(shù)據(jù)大小、質(zhì)量;
- 計(jì)算時(shí)間要求;
- 算法精度要求。
3. 算法優(yōu)缺點(diǎn)及適用場景
注意:
(1)目前監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)是目前應(yīng)用范圍最廣且效果最好的機(jī)器學(xué)習(xí)方式。
(2)深度學(xué)習(xí)將在后續(xù)的文章中單獨(dú)介紹。
(3)半監(jiān)督學(xué)習(xí)依賴以下3個(gè)模型假設(shè)才能確保它良好的學(xué)習(xí)性能。
1)平滑假設(shè)(Smoothness Assumption)
位于稠密數(shù)據(jù)區(qū)域的兩個(gè)距離很近的樣例的類標(biāo)簽相似,當(dāng)兩個(gè)樣例北稀疏區(qū)域分開時(shí),它們的類標(biāo)簽趨于不同。
2)聚類假設(shè)(Cluster Assumption)
當(dāng)兩個(gè)樣例位于同一聚類簇時(shí),它們在很大的概率在有相同的類標(biāo)簽。這個(gè)假設(shè)的等價(jià)定義為低密度分類假設(shè)(Low Density Separation Assumption),即分類決策邊界應(yīng)該穿過稀疏數(shù)據(jù)區(qū)域,而避免將稠密數(shù)據(jù)區(qū)域的樣例劃分到?jīng)Q策邊界兩側(cè)。
3)流形假設(shè)(Manifold Assumption)
將高維數(shù)據(jù)嵌入到低維流形中,當(dāng)兩個(gè)樣例位于低維流形中的一個(gè)小局部鄰域內(nèi)時(shí),它們具有相似的類標(biāo)簽。
#參考資料#
(1)參考書籍:
- 《自然語言處理實(shí)踐—聊天機(jī)器人技術(shù)原理與應(yīng)用》,王昊奮,邵浩等
- 《人工智能產(chǎn)品經(jīng)理:人機(jī)對話系統(tǒng)設(shè)計(jì)邏輯探究》,朱鵬臻
- 《人工智能產(chǎn)品經(jīng)理:AI時(shí)代PM修煉手冊》,張競宇
- 《圖解機(jī)器學(xué)習(xí)》,杉山將
(2)相關(guān)網(wǎng)站
- https://www.stateoftheart.ai/
- https://www.stateof.ai/
- https://www.easyaihub.com/
- https://blog.csdn.net/daisy9212/article/details/49509899
- http://www.sohu.com/a/160316515_680198
- https://research.fb.com/the-facebook-field-guide-to-machine-learning-video-series/
- https://www.datasciencecentral.com/profiles/blogs/machine-learning-can-we-please-just-agree-what-this-means
- https://blog.csdn.net/weixin_42137700/article/details/87355812
本文由 @Alan 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議
你好,可以推薦幾本AI學(xué)習(xí)的入門書籍嗎