1.1、概念關(guān)系
-
人工智能(Artificial Intelligence)
- 知識推理
- 邏輯規(guī)劃
- 機(jī)器人
機(jī)器學(xué)習(xí)(Machine Learning)
-
深度學(xué)習(xí)(Deep Learning)
從機(jī)器學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)子算法分支發(fā)展出來的一系列成果
1.2、需求層次
- 設(shè)計需求層次
- 調(diào)用需求層次
- 數(shù)學(xué)需求層次
Scikit-Learn說明文檔中的數(shù)學(xué)表達(dá)式
1.3、基本原理
機(jī)器學(xué)習(xí)的意向主要工作就叫作"訓(xùn)練模型",比"訓(xùn)練"表達(dá)更準(zhǔn)確的詞,叫做“擬合”。擬合是機(jī)器學(xué)習(xí)的主要工作。
1.3.1、算法模型和損失函數(shù)
算法模型輸出一個數(shù)值,損失函數(shù)經(jīng)過計算,回饋一個偏差結(jié)果,算法模型是根據(jù)這個偏差結(jié)果進(jìn)行調(diào)整,在輸出一個數(shù)值,周而復(fù)始,直到正確為止。這就是機(jī)器學(xué)習(xí)的學(xué)習(xí)過程,這個過程稱作擬合。
1.3.2、欠擬合和過擬合
-
欠擬合
學(xué)的還不像,算法模型的預(yù)測準(zhǔn)確性不夠
-
過擬合
算法模型的泛化性不好。算法模型通常通過具體的數(shù)據(jù)集進(jìn)行訓(xùn)練,這些數(shù)據(jù)集成為訓(xùn)練集。
但是由于采集方法等一些外部因素的硬性存在,訓(xùn)練集數(shù)據(jù)的分布情況(也就是一些統(tǒng)計指標(biāo))可能與真實(shí)環(huán)境的分布情況略有不同,如果算法模型太注重細(xì)節(jié),反而會導(dǎo)致真正用于真實(shí)環(huán)境中時預(yù)測精度下降。
1.4、機(jī)器學(xué)習(xí)的基本概念
1.4.1、術(shù)語介紹
-
常用術(shù)語
-
模型(model)
機(jī)器學(xué)習(xí)的核心概念,機(jī)器學(xué)習(xí)的量大組成部分是<u>模型</u>和<u>數(shù)據(jù)集</u>
-
數(shù)據(jù)集
有些文獻(xiàn)又將數(shù)據(jù)集分為<u>訓(xùn)練集</u>和<u>測試集</u>
-
數(shù)據(jù)
數(shù)據(jù)集就是數(shù)據(jù)的集合,一條數(shù)據(jù)稱為一個樣本(sample),形式類似于一維數(shù)組,樣本通常包含多個特征(Feature)
- 如果是用于分類問題的數(shù)據(jù)集,還會包含類別(Class Lablel)
- 如果是用于回歸問題的數(shù)據(jù)集,還會包含一個連續(xù)型的數(shù)值
-
特征
某個對象的幾個記錄的維度。例如個人信息表,特征就是這張表里的空格,如名字,性別,出生日期,籍貫等。
數(shù)據(jù)類型類似一維數(shù)組,特征就是數(shù)值的值
-
向量
可以理解為向量就是該類算法所對應(yīng)的數(shù)據(jù)結(jié)構(gòu),一條樣本數(shù)據(jù)就是以一個向量的形式輸入模型的。
一條監(jiān)督學(xué)習(xí)數(shù)據(jù)的向量形式如下:
[特征值x1值,特征值x2值, ..., Y1值] -
矩陣
可以將矩陣看做事向量組成的數(shù)組,形式上非常接近二維數(shù)組。
-

-
常用函數(shù)
-
假設(shè)函數(shù)(Hypothesis Function)
用H(x)表示
-
損失函數(shù)(Loss Function)
用L(x)表示,x是假設(shè)函數(shù)的預(yù)測結(jié)果。函數(shù)返回值越大,表示結(jié)果偏差越大
-
成本函數(shù)(Cost Function)
用J(x)表示,x也是假設(shè)函數(shù)的預(yù)測結(jié)果。返回值越大,表示結(jié)果偏差越大
區(qū)分損失函數(shù)和成本函數(shù)的關(guān)鍵在于對象,損失函數(shù)是針對單個樣本,成本函數(shù)則是針對整個數(shù)據(jù)集。也就是說,損失函數(shù)求得的總和就是成本函數(shù)。成本函數(shù)是由損失函數(shù)計算得到的
在實(shí)際計算中,可以選擇令成本函數(shù)為損失函數(shù)值的總和,也可以令成本函數(shù)是損失函數(shù)值的平均值。
-
1.4.2、機(jī)器學(xué)習(xí)的基本模式
要開始進(jìn)行機(jī)器學(xué)習(xí),至少需要準(zhǔn)備三樣?xùn)|西:
- 數(shù)據(jù)
- 假設(shè)函數(shù)
- 損失函數(shù)
將數(shù)據(jù)"喂"給假設(shè)函數(shù),假設(shè)函數(shù)會"吐"出一個結(jié)果,這僅僅是個預(yù)測結(jié)果, 需要使用損失函數(shù)對預(yù)測結(jié)果進(jìn)行評估,一邊告訴我們它與真實(shí)情況到底差了多少。

但是僅僅知道差了多少并沒有什么用,然后就會根據(jù)損失函數(shù)的返回結(jié)果,用一個名為<u>優(yōu)化方法</u>的過程來調(diào)整假設(shè)函數(shù)
1.4.3、優(yōu)化方法
- 假設(shè)函數(shù)對輸入數(shù)據(jù)產(chǎn)生期望的輸出,即預(yù)測值
- 損失函數(shù)則通過比較預(yù)測值和實(shí)際值算出損失值
- 損失函數(shù)把損失值告訴優(yōu)化方法,優(yōu)化方法告訴假設(shè)函數(shù)如果調(diào)整參數(shù)
優(yōu)化方法可能會比較簡單,例如:
新參數(shù)值 = 舊參數(shù)值 - 損失值
這種方法比較簡單,只有在極特殊的情況下使用,不過也有專門的優(yōu)化方法,例如:
- 牛頓法
- 擬牛頓法
- 共軌梯度法
梯度下降(Gradient Descent)法是機(jī)器學(xué)習(xí)中常用的一種優(yōu)化方法,梯度是微積分學(xué)的術(shù)語。某個函數(shù)在某點(diǎn)的梯度指向該函數(shù)取得最大值的方向,那么它的反方向自然就是取的最小值的方向。
- 首先由梯度確定方向
- 當(dāng)損失值比較大時,梯度會比較大,假設(shè)函數(shù)的參數(shù)更新幅度也會更大一些
- 隨著損失值慢慢變小,梯度也隨之慢慢變小,假設(shè)函數(shù)的參數(shù)更新幅度也會更小
如果樣本數(shù)量龐大,完成一次完整的梯度下降需要很長時間,在實(shí)際工作中會根據(jù)情況調(diào)整每次參與損失計算的樣本數(shù)量。
-
批量梯度下降(Batch Gradient Descent)
每次迭代都是用全部樣本
-
隨機(jī)梯度下降(Stochastic Gradient Descent)
每次迭代只使用一個樣本
1.4.3、機(jī)器學(xué)習(xí)問題分類

1.6、常見的機(jī)器學(xué)習(xí)算法
-
線性回歸算法
最基本的機(jī)器學(xué)習(xí)算法,使用線性方法解決回歸問題
-
Logistic回歸算法
其思想核心依然是線性方法,但是加了Logistic函數(shù),讓其具有解決分類問題的能力
-
KNN分類算法
不依賴數(shù)學(xué)或統(tǒng)計模型,通過"找最近鄰"的思想解決分類問題,其核心思想和區(qū)塊鏈技術(shù)中的共識機(jī)制有著深遠(yuǎn)的關(guān)系
-
樸素貝葉斯分類算法
認(rèn)為結(jié)果不是確定性的而是概率性的,眼前所見的不過是概率最大的結(jié)果。用來解決分類算法
決策樹分類算法
-
支持向量機(jī)分類算法
使用數(shù)學(xué)將線性不可分的數(shù)據(jù)點(diǎn)映射成線性可分,再用最簡單的線性方法來解決問題
K-means聚類算法
-
神經(jīng)網(wǎng)絡(luò)分類算法
神經(jīng)網(wǎng)絡(luò)就是由許多神經(jīng)元連接所構(gòu)成的網(wǎng)絡(luò),很多人認(rèn)為該算法是一種仿生算法,模仿的對象正是我們的大腦。神經(jīng)網(wǎng)絡(luò)分類算法是當(dāng)下熱門的深度學(xué)習(xí)算法的起點(diǎn)
1.7、機(jī)器學(xué)習(xí)算法的性能衡量指標(biāo)
機(jī)器學(xué)習(xí)算法尊層NFL定律,即所有的機(jī)器學(xué)習(xí)算法中,并不存在最厲害的算法。
在分類問題中,將機(jī)器學(xué)習(xí)模型的預(yù)測與實(shí)際情況進(jìn)行對比后,結(jié)果可以分為四種:
-
TP
True Positive,預(yù)測結(jié)果為正類,且與事實(shí)符合,即事實(shí)為正類
-
TN
True Negitive,預(yù)測結(jié)果為負(fù)類,且與事實(shí)符合,即事實(shí)為負(fù)類
-
FP
Flase Positive,預(yù)測結(jié)果為正類,但與事實(shí)不符,即事實(shí)為負(fù)類
-
FN
Flase Negitive,預(yù)測結(jié)果為負(fù)類,但與事實(shí)不符,即事實(shí)為正類
有了結(jié)果分類,就可以計算指標(biāo)了,常用的指標(biāo)有三個:
-
準(zhǔn)確率(Accuracy)
模型猜對了的結(jié)果在全部結(jié)果中的占比

-
精確率(Precision)
也叫查準(zhǔn)率,模型預(yù)測對正類結(jié)果的預(yù)測越準(zhǔn)確,查準(zhǔn)率就越高

-
召回率(Recall)
也叫查全率,在全部正類中,模型能正確找出來多少

1.8、數(shù)據(jù)對算法結(jié)果的影響
1.8.1、數(shù)據(jù)決定了算法的能力上限
數(shù)據(jù)決定了模型能夠達(dá)到的上限,而算法只是逼近這個極限
1.8.2、特征工程
統(tǒng)計時也可以有多種維度,這些統(tǒng)計維度就是前面所介紹的組成一條樣本數(shù)據(jù)的多個特征
機(jī)器學(xué)習(xí)模型正式從這些特征中進(jìn)行學(xué)習(xí),特征有多少價值,機(jī)器才能學(xué)多少價值。