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

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

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

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

-
精確率(Precision)
也叫查準率,模型預測對正類結果的預測越準確,查準率就越高

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

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