机器学习之深入理解机器学习常见算法:原理、公式与应用
机器学习之深入理解机器学习常见算法:原理、公式与应用
机器学习是一门让计算机自动从数据中学习规律的技术体系。常见的机器学习算法可以分为监督学习、无监督学习和深度学习三大类。本文将系统介绍每类中具有代表性的算法,并深入剖析其核心原理与数学基础。
一、监督学习(Supervised Learning)
监督学习依赖标注数据来训练模型,目标是学习一个从输入到输出的函数映射。其任务包括分类(预测类别)与回归(预测连续值)。
1. 线性回归(Linear Regression)
用于预测连续型变量,假设输入特征与输出之间存在线性关系。
模型公式:
y ^ = w 0 + w 1 x 1 + w 2 x 2 + ⋯ + w n x n = w T x + b \hat{y} = w_0 + w_1x_1 + w_2x_2 + \dots + w_nx_n = \mathbf{w}^T\mathbf{x} + b y^=w0+w1x1+w2x2+⋯+wnxn=wTx+b
损失函数(最小二乘法):
L ( w ) = 1 2 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 \mathcal{L}(\mathbf{w}) = \frac{1}{2m} \sum_{i=1}^m (\hat{y}^{(i)} - y^{(i)})^2 L(w)=2m1i=1∑m(y^(i)−y(i))2
其中 m m m 是样本数量, y ^ ( i ) \hat{y}^{(i)} y^(i) 是模型预测值, y ( i ) y^{(i)} y(i) 是真实值。
求解方式:最小化损失函数,常用梯度下降或解析解:
w = ( X T X ) − 1 X T y \mathbf{w} = (\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y} w=(XTX)−1XTy
2. 逻辑回归(Logistic Regression)
用于二分类问题,核心思想是将线性模型输出映射到概率空间。
模型公式:
P ( y = 1 ∣ x ) = σ ( w T x + b ) = 1 1 + e − ( w T x + b ) P(y=1|\mathbf{x}) = \sigma(\mathbf{w}^T\mathbf{x} + b) = \frac{1}{1 + e^{-(\mathbf{w}^T\mathbf{x} + b)}} P(y=1∣x)=σ(wTx+b)=1+e−(wTx+b)1
损失函数(对数似然):
L ( w ) = − 1 m ∑ i = 1 m [ y ( i ) log y ^ ( i ) + ( 1 − y ( i ) ) log ( 1 − y ^ ( i ) ) ] \mathcal{L}(\mathbf{w}) = - \frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log \hat{y}^{(i)} + (1 - y^{(i)}) \log (1 - \hat{y}^{(i)}) \right] L(w)=−m1i=1∑m[y(i)logy^(i)+(1−y(i))log(1−y^(i))]
3. 支持向量机(SVM)
SVM试图构造最大间隔超平面来分离不同类别。
线性SVM目标函数(硬间隔):
min w , b 1 2 ∥ w ∥ 2 s.t. y ( i ) ( w T x ( i ) + b ) ≥ 1 \min_{\mathbf{w}, b} \frac{1}{2} \|\mathbf{w}\|^2 \quad \text{s.t. } y^{(i)} (\mathbf{w}^T \mathbf{x}^{(i)} + b) \geq 1 w,bmin21∥w∥2s.t. y(i)(wTx(i)+b)≥1
软间隔引入松弛变量与惩罚项(带参数 C C C):
min w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ i s.t. y ( i ) ( w T x ( i ) + b ) ≥ 1 − ξ i , ξ i ≥ 0 \min_{\mathbf{w}, b, \boldsymbol{\xi}} \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_{i=1}^m \xi_i \quad \text{s.t. } y^{(i)} (\mathbf{w}^T \mathbf{x}^{(i)} + b) \geq 1 - \xi_i, \xi_i \geq 0 w,b,ξmin21∥w∥2+Ci=1∑mξis.t. y(i)(wTx(i)+b)≥1−ξi,ξi≥0
核函数扩展到非线性分类。
4. K近邻算法(KNN)
一种懒惰学习算法,无需训练过程。对新样本,计算与训练集中每个样本的距离,选出最近的 K K K 个邻居,根据其类别进行投票。
距离计算(欧氏距离):
d ( x , x ′ ) = ∑ i = 1 n ( x i − x i ′ ) 2 d(\mathbf{x}, \mathbf{x}') = \sqrt{\sum_{i=1}^n (x_i - x'_i)^2} d(x,x′)=i=1∑n(xi−xi′)2
优点:简单易实现,适用于小规模数据。
缺点:计算代价大,对噪声敏感。
5. 决策树(Decision Tree)
通过信息熵或基尼指数对特征进行分裂,从而构建分类或回归模型。
信息增益(ID3算法):
G a i n ( D , A ) = E n t ( D ) − ∑ v ∈ values ( A ) ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D, A) = Ent(D) - \sum_{v \in \text{values}(A)} \frac{|D_v|}{|D|} Ent(D_v) Gain(D,A)=Ent(D)−v∈values(A)∑∣D∣∣Dv∣Ent(Dv)
基尼指数(CART算法):
G i n i ( D ) = 1 − ∑ k = 1 K p k 2 Gini(D) = 1 - \sum_{k=1}^K p_k^2 Gini(D)=1−k=1∑Kpk2
6. 随机森林(Random Forest)
集成学习方法,通过构建多个决策树,使用投票(分类)或平均(回归)提高预测精度。
关键思想:
- 训练样本采用 bootstrap 抽样(有放回)
- 每棵树随机选取部分特征进行划分
优点:抗过拟合、性能稳定。
缺点:模型复杂,不易解释。
二、无监督学习(Unsupervised Learning)
无监督学习旨在从未标注数据中发现数据的结构、分布或潜在规律。
1. K-均值聚类(K-Means)
将数据分为 K K K 个簇,使得每个样本到其簇中心的距离最小。
目标函数:
min ∑ k = 1 K ∑ x i ∈ C k ∥ x i − μ k ∥ 2 \min \sum_{k=1}^K \sum_{\mathbf{x}_i \in C_k} \|\mathbf{x}_i - \boldsymbol{\mu}_k\|^2 mink=1∑Kxi∈Ck∑∥xi−μk∥2
其中 μ k \boldsymbol{\mu}_k μk 是第 k k k 个簇的均值中心。
算法步骤:
- 初始化 K K K 个中心
- 分配样本到最近中心
- 更新中心
- 重复直到收敛
2. 主成分分析(PCA)
一种降维算法,通过线性变换将原始数据映射到低维空间,同时保留最大方差。
目标函数:
最大化投影后的方差:
max w w T S w s.t. ∥ w ∥ = 1 \max_{\mathbf{w}} \mathbf{w}^T S \mathbf{w} \quad \text{s.t. } \|\mathbf{w}\|=1 wmaxwTSws.t. ∥w∥=1
其中 S S S 为样本协方差矩阵。
解法:选取协方差矩阵的前 k k k 个主特征向量。
三、深度学习(Deep Learning)
深度学习是基于人工神经网络的非线性建模方法,能自动提取高层特征,适用于复杂任务和大数据场景。
1. 人工神经网络(ANN)
由多个神经元组成,每个神经元为一个激活函数作用下的线性组合。
单个神经元:
a = σ ( w T x + b ) a = \sigma(\mathbf{w}^T\mathbf{x} + b) a=σ(wTx+b)
常见激活函数:
- Sigmoid: σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e−x1
- ReLU: f ( x ) = max ( 0 , x ) f(x) = \max(0, x) f(x)=max(0,x)
**反向传播(Backpropagation)**用于训练,通过链式法则更新权重以最小化损失函数。
2. 卷积神经网络(CNN)
专为图像任务设计,核心包括卷积层、池化层和全连接层。
- 卷积操作:
s ( i , j ) = ( X ∗ K ) ( i , j ) = ∑ m ∑ n X ( i + m , j + n ) K ( m , n ) s(i, j) = (\mathbf{X} * \mathbf{K})(i, j) = \sum_m \sum_n \mathbf{X}(i+m, j+n)\mathbf{K}(m, n) s(i,j)=(X∗K)(i,j)=m∑n∑X(i+m,j+n)K(m,n)
- 池化操作:最大池化或平均池化,降低特征维度、抑制过拟合
应用:图像分类、目标检测、医学图像分析等。
3. 循环神经网络(RNN)
适用于序列建模,具有时间记忆能力。
状态更新公式:
h t = tanh ( W h h t − 1 + W x x t + b ) h_t = \tanh(W_h h_{t-1} + W_x x_t + b) ht=tanh(Whht−1+Wxxt+b)
问题:传统RNN存在梯度消失,改进模型如LSTM和GRU被提出。
应用:文本生成、机器翻译、时间序列预测等。
总结
类型 | 算法 | 应用方向 |
---|---|---|
监督学习 | 线性/逻辑回归、SVM等 | 回归预测、分类识别 |
无监督学习 | K均值、PCA | 聚类分析、降维可视化 |
深度学习 | ANN、CNN、RNN | 图像、文本、语音处理等 |
选择合适的算法不仅要考虑数据类型和规模,也需结合任务目标和可解释性需求。