当前位置: 首页 > news >正文

机器学习之深入理解机器学习常见算法:原理、公式与应用

机器学习之深入理解机器学习常见算法:原理、公式与应用

机器学习是一门让计算机自动从数据中学习规律的技术体系。常见的机器学习算法可以分为监督学习、无监督学习和深度学习三大类。本文将系统介绍每类中具有代表性的算法,并深入剖析其核心原理与数学基础。


一、监督学习(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=1m(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=1m[y(i)logy^(i)+(1y(i))log(1y^(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,bmin21w2s.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,ξmin21w2+Ci=1mξis.t. y(i)(wTx(i)+b)1ξi,ξi0

核函数扩展到非线性分类


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=1n(xixi)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)vvalues(A)DDvEnt(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)=1k=1Kpk2


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=1KxiCkxiμk2

其中 μ k \boldsymbol{\mu}_k μk 是第 k k k 个簇的均值中心。

算法步骤

  1. 初始化 K K K 个中心
  2. 分配样本到最近中心
  3. 更新中心
  4. 重复直到收敛

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+ex1
  • 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)=(XK)(i,j)=mnX(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(Whht1+Wxxt+b)

问题:传统RNN存在梯度消失,改进模型如LSTM和GRU被提出。

应用:文本生成、机器翻译、时间序列预测等。


总结

类型算法应用方向
监督学习线性/逻辑回归、SVM等回归预测、分类识别
无监督学习K均值、PCA聚类分析、降维可视化
深度学习ANN、CNN、RNN图像、文本、语音处理等

选择合适的算法不仅要考虑数据类型和规模,也需结合任务目标和可解释性需求。

相关文章:

  • Spring 中注入 Bean 有几种方式?
  • vue封装gsap自定义动画指令
  • 第三篇:MCP协议深度实践——从理论到生产级AI智能体系统
  • QRSuperResolutionNet:一种结构感知与识别增强的二维码图像超分辨率网络(附代码解析)
  • Markdown基础(1.2w字)
  • 实时通信RTC与传统直播的异同
  • 《波段操盘实战技法》速读笔记
  • 【QT】-信号传输数组跨线程段错误处理
  • VSCode主题设计大赛解析与实践指南
  • 数据结构与算法学习笔记(Acwing 提高课)----动态规划·树形DP
  • CSS 选择器全解析:分组选择器/嵌套选择器,从基础到高级
  • 【免费】酒店布草洗涤厂自动统计管理系统(1)——智能编程——仙盟创梦IDE
  • .NET 原生驾驭 AI 新基建实战系列(四):Qdrant ── 实时高效的向量搜索利器
  • 数据预处理的几种形式(转载)
  • 如何借助Hyper - V在Windows 10中构建安全软件测试环境
  • 高速PCB设计中圆弧布线是否必要
  • 还原Windows防火墙
  • Android studio初体验
  • 6个月Python学习计划 Day 14 - 异常处理基础( 补充学习)
  • 在 Android Studio 中使用 GitLab 添加图片到 README.md