理性看待機(jī)器學(xué)習(xí),不吹不黑萄涯。
本章對一些機(jī)器學(xué)習(xí)的術(shù)語進(jìn)行介紹,還將對一些常用的參數(shù)符號進(jìn)行解釋唆鸡,后文里不再贅述涝影。
1、輸入與輸出
在機(jī)器學(xué)習(xí)過程中争占,首先我們要喂給機(jī)器很多數(shù)據(jù)燃逻,然后機(jī)器根據(jù)一定的算法給出結(jié)果。這是一個包含了輸入和輸出的過程臂痕。
輸入:我們稱之為屬性值A(chǔ)ttributes伯襟,或稱之為特征Feature,統(tǒng)計(jì)學(xué)中稱之為變量Variable握童。為了統(tǒng)一概念姆怪,后續(xù)文章里對機(jī)器學(xué)習(xí)的輸入我們稱都其為特征。
輸出:最終需要預(yù)測的信息澡绩,稱其為目標(biāo)Target稽揭。
2、特征表現(xiàn)方式
比如一份體檢報告中肥卡,我們想預(yù)測一個人是男是女淀衣。這些體檢報告中的數(shù)據(jù)稱之為特征,其中可能包括身高召调、體重膨桥、腰圍,這三個變量唠叛,并為之設(shè)三個變量:x1只嚣、x2、x3艺沼。
注意下標(biāo)的方式册舞,為了以后的文章里統(tǒng)一概念,一般幾號特征就定義其下標(biāo)是多少障般。
比如调鲸,小明的體檢報告:用 x小明 來表示。
比如挽荡,小明的體重:用 x2小明 或 x體重小明 來表示藐石。
3、造物主的公式
終極目標(biāo):我們想要得到一個特征與目標(biāo)之間的映射:
理想公式 (造物主公式) f:特征值 → 目標(biāo)值
為了實(shí)現(xiàn)理想公式定拟,我們將大量的數(shù)據(jù)喂給機(jī)器于微,并指揮機(jī)器不斷學(xué)習(xí)和優(yōu)化。
輸入數(shù)據(jù):D={(x1,y1),(x2,y2),(x3,y3), …… ,(xn,yn)}(歷史記錄信息)
最終獲得了最優(yōu)性能假設(shè)公式 g:特征值 → 目標(biāo)值 (學(xué)習(xí)得到的最終公式)
最優(yōu)性能假設(shè)公式形成后,再輸入新的特征值便可直接獲得對應(yīng)的目標(biāo)值株依。尋找這種映射的過程是我們工作的核心內(nèi)容驱证。
然而事實(shí)上,我們真的得到理想公式了么恋腕?理想公式到底是什么抹锄?只有造物主才能百分百的確定。我們使用機(jī)器學(xué)習(xí)最后得到的算法荠藤,最多只能說是盡可能得去接近于造物主創(chuàng)造的映射公式祈远,我們做不到完美,只能靠機(jī)器學(xué)習(xí)去獲得一個最優(yōu)性能假設(shè)的公式商源。
再比如后續(xù)會提到機(jī)器學(xué)習(xí)模型調(diào)參的操作,不斷調(diào)整參數(shù)的過程就是為了找到一個更加優(yōu)秀的映射關(guān)系來解釋造物主公式的過程谋减。
所以牡彻,機(jī)器學(xué)習(xí)中無法獲得一個完美的造物主公式。
4出爹、機(jī)器學(xué)習(xí)概念
定義:對于某給定的 庄吼,在合理的
的前提下,某計(jì)算機(jī)程序可以自主學(xué)習(xí)任務(wù)T的
严就; 隨著提供合適总寻、優(yōu)質(zhì)、大量的經(jīng)驗(yàn)E梢为,該程序?qū)τ谌蝿?wù)T的性能逐步提高渐行。
例:蓋一個金茂大廈是我的 "任務(wù)T" 撕氧,一些用來檢驗(yàn)我蓋的樓像不像金茂大廈的方式稱為 “合理的性能度量P” 匪蝙,"經(jīng)驗(yàn)E" 是我們按照圖紙蓋樓的磚。當(dāng)磚足夠多的時候宙枷,不斷反復(fù)的蓋樓粟害,這張蓋樓的圖紙不斷優(yōu)化蕴忆,最后蓋出來的樓也越來越像金貿(mào)大廈。這張蓋樓的圖紙是最后的產(chǎn)物悲幅,即上文提到的 "最優(yōu)性能假設(shè)公式”套鹅。
從機(jī)器學(xué)習(xí)的概念轉(zhuǎn)化為實(shí)際的開發(fā)思路:
算法T:根據(jù)業(yè)務(wù)需要和數(shù)據(jù)特征,選擇則相關(guān)的算法汰具。
模型E:基于數(shù)據(jù)和算法構(gòu)建出來的模型卓鹿。
評估/測試(P):對模型進(jìn)行評估的策略。
機(jī)器學(xué)習(xí)步驟: 算法 → 模型 → 評估 → 算法
機(jī)器學(xué)習(xí)是人工智能的一個分支留荔。機(jī)器學(xué)習(xí)的思路是:根據(jù)大量的訓(xùn)練數(shù)據(jù)减牺,按照一定的方式來指導(dǎo)機(jī)器學(xué)習(xí);隨著機(jī)器訓(xùn)練次數(shù)的增加不斷得學(xué)習(xí)和改進(jìn),最終使得學(xué)習(xí)模型能夠用于預(yù)測相關(guān)問題的輸出拔疚。拿之前蓋樓的例子來說肥隆,我們要不斷得修改圖紙的內(nèi)容,使其越來越像金茂大廈稚失。
5栋艳、向量和矩陣
在機(jī)器學(xué)習(xí)中,如果定義了一個向量句各,那么一定是列向量吸占,多個列向量組成一個矩陣。
下圖是一個3行2列的矩陣凿宾,3行代表有3個體檢報告的樣本(維度是3)矾屯,2列代表每個體檢報告的樣本包含2個特征。
身高 | 體重 |
---|---|
175 | 70 |
160 | 58 |
85 | 77 |
將樣本數(shù)據(jù)傳入最優(yōu)性能假設(shè)公式進(jìn)行計(jì)算初厚,得出了目標(biāo)值:判斷樣本數(shù)據(jù)的所有者是男是女件蚕。1代表男,0代表女产禾。
身高 | 體重 | 目標(biāo) |
---|---|---|
175 | 70 | 1 |
160 | 58 | 0 |
85 | 77 | 1 |
x(i) 表示第i個樣本的x向量排作。即一個樣本的值 ,包含一組特征 (身高亚情,體重)
xi 表示x向量的第i維度的值妄痪。即一個特征的所有值(x2=體重向量)
6、魯棒性
Robwst楞件,翻譯成中文是穩(wěn)健性衫生、健壯性的意思。當(dāng)存在異常數(shù)據(jù)的時候土浸,算法也會擬合數(shù)據(jù)障簿。簡單的說,系統(tǒng)能夠識別出異常的數(shù)據(jù)栅迄,不會讓它影響到計(jì)算的結(jié)果站故。
魯棒性強(qiáng),意味著異常數(shù)據(jù)對系統(tǒng)的影響較小毅舆。魯棒性差西篓,意味著一旦出現(xiàn)了異常數(shù)據(jù),模型會去迎合這些異常數(shù)據(jù)憋活,使結(jié)果收到干擾岂津。
7、過擬合和欠擬合
算法太符合樣本的特征悦即,對于實(shí)際的數(shù)據(jù)特征反而無法擬合吮成。
拿之前體檢樣本的例子來說橱乱,如果有一天來體檢的全是女子籃球隊(duì)的,人人一米八粱甫、一米九的身高泳叠。算法如果太擬合這份樣本數(shù)據(jù),按照這樣去計(jì)算茶宵,那大街上就沒幾個男人了危纫。
算法不太符合樣本的數(shù)據(jù)特征。
如果本來計(jì)算的目標(biāo)就是想預(yù)測女籃的身高乌庶,但是算法結(jié)果中表明女籃平均身高是一米五种蝶、一米六的。這顯然低于普遍的女籃身高瞒大,這種現(xiàn)象稱為算法欠擬合螃征。
總體來說,過擬合是在訓(xùn)練集上表現(xiàn)出色透敌,但是在測試集上表現(xiàn)不好盯滚。而欠擬合在訓(xùn)練集上的表現(xiàn)就已經(jīng)不太好了,自然都不用拿測試集去驗(yàn)證了拙泽。
8、常見的應(yīng)用框架
scikit-learn(Python)
http://scikit-learn.org/stable/
后續(xù)文章主要介紹的是scikit-learn框架裸燎。
安裝scikit-learn的方法:
1顾瞻、 安裝Anaconda3
2、 打開Anaconda-Prompt
3德绿、 輸入pip install scikit-learn
4荷荤、導(dǎo)入該庫的指令 import sklearn
具體的安裝方法日后可以看我的AI-開發(fā)工具文集,里面會詳細(xì)介紹移稳。
以下兩種是基于大數(shù)據(jù)處理的框架蕴纳,暫時不作介紹。
Mahout(Hadoop个粱,基于MapReduce)
http://mahout.apache.org/
Spark MLlib
http://spark.apache.org/
9古毛、商業(yè)場景
模式識別、數(shù)據(jù)挖掘都许、統(tǒng)計(jì)學(xué)習(xí)
圖像識別稻薇、語音識別、自然語言處理
數(shù)據(jù)分析胶征、數(shù)據(jù)挖掘塞椎、機(jī)器學(xué)習(xí)之間的區(qū)別和聯(lián)系
對海量的數(shù)據(jù)進(jìn)行分析,并提取有用的信息睛低,以及形成結(jié)論案狠。是一種對數(shù)據(jù)詳細(xì)研究和概括的過程服傍。實(shí)際工作中可以幫助人們做出判斷,數(shù)據(jù)分析一般而言可以分為統(tǒng)計(jì)分析骂铁、探索性數(shù)據(jù)分析吹零、驗(yàn)證性數(shù)據(jù)分析三大類。
其中統(tǒng)計(jì)分析和驗(yàn)證性數(shù)據(jù)分析在機(jī)器學(xué)習(xí)中也會用到从铲。需要我們對數(shù)學(xué)統(tǒng)計(jì)中的概念有基本的認(rèn)知瘪校。比如中位數(shù)、方差名段、均值阱扬、特征值之間的協(xié)方差等等,都需要了解伸辟,對樣本的初步瀏覽過程就是探索性分析麻惶。驗(yàn)證性數(shù)據(jù)分析是對結(jié)果是否合理進(jìn)行分析,在機(jī)器學(xué)習(xí)中就是不斷地判斷模型的效果指標(biāo)是否在提升信夫。
一般值從大量數(shù)據(jù)中通過算法搜索隱藏于其中信息的過程窃蹋。通常通過統(tǒng)計(jì)、檢索静稻、機(jī)器學(xué)習(xí)警没、模式匹配等諸多方法來實(shí)現(xiàn)這個過程。
涉及面非常廣振湾,很多時候企業(yè)有數(shù)據(jù)卻不知道從何下手杀迹。數(shù)據(jù)挖掘就是從毫無頭緒的數(shù)據(jù)中大膽預(yù)測并分析出有價值的信息。
是數(shù)據(jù)分析和數(shù)據(jù)挖掘的一種比較常用押搪、比較好的手段树酪。
工作中會遇到一些坑:比如有些客戶提出做一些數(shù)據(jù)分析的需求,但是客戶不懂技術(shù)大州,給的數(shù)據(jù)又少又亂续语,很多時候還需要提醒客戶補(bǔ)充一些必要的數(shù)據(jù)。從客戶立場上來說厦画,數(shù)據(jù)即是金錢疮茄。客戶透露的數(shù)據(jù)越多根暑,損失就越大娃豹。因此做人工智能相關(guān)的工作非常考驗(yàn)工程師的溝通能力购裙,控制客戶的期望值懂版,充分告訴客戶我們分析的產(chǎn)物能夠?yàn)槠髽I(yè)提供哪些幫助、我們做的模型比別人好在哪里躏率。
10躯畴、機(jī)器學(xué)習(xí)分類
有目標(biāo)值民鼓,標(biāo)簽化訓(xùn)練數(shù)據(jù)。
判別式模型:對條件概率進(jìn)行建模蓬抄。線性回歸丰嘉、決策樹等。
生成式模型:對聯(lián)合分布概率進(jìn)行建模嚷缭。隱馬爾可夫饮亏、LDA等。
生成式模型適用面更廣阅爽,關(guān)注數(shù)據(jù)是如何產(chǎn)生的路幸,尋找的是數(shù)據(jù)的分布模型。
判別式模型更直接付翁,目標(biāo)性比較強(qiáng)简肴。只想看看某個條件的情況下的分布是什么樣的。關(guān)注的是數(shù)據(jù)的差異性百侧,尋找的是分類面砰识。
因此生成式的模型可以轉(zhuǎn)化成判別式的模型,反之則不行佣渴。在后文具體模型中進(jìn)一步細(xì)說辫狼,面試中考官有時會問某個模型屬于生成式還是判別式,記住這點(diǎn)即可辛润。
無目標(biāo)值膨处,為了推斷出數(shù)據(jù)的一些內(nèi)在結(jié)構(gòu),一種探索性分析的過程频蛔。
利用少量標(biāo)注樣本和大量未標(biāo)注樣本進(jìn)行訓(xùn)練和分類的問題灵迫。發(fā)展不是很完整秦叛,和流形學(xué)習(xí)有點(diǎn)關(guān)系晦溪,本文集不做討論。
機(jī)器學(xué)習(xí)能做的四件事 - 分類挣跋、回歸三圆、聚簇、降維
結(jié)語
很想直接進(jìn)入算法的部分避咆,但是覺得在深入介紹之前舟肉,我們還是要把鋪墊做做充分。
昨天就有人問我這次寫的文集是僅僅搞理論查库,還是會深入進(jìn)去研究路媚?我的回答是:落地。但是學(xué)習(xí)人工智能的過程和學(xué)習(xí)JAVA開發(fā)不同樊销,不是簡單看幾行代碼整慎,查兩幾份資料就能迅速入門的脏款。所以我花了點(diǎn)心思設(shè)計(jì)了幾個例子讓大家管中窺豹,對機(jī)器學(xué)習(xí)的工作有大概的理解裤园。也許有不貼切的地方撤师,但隨著日后的文章,從多個角度進(jìn)行分析拧揽,相信大家的認(rèn)知會越來越深刻剃盾。