AI基础 笔记

文章目录

在图书馆翻到一本结构比较清晰的ai入门介绍书。华为公司的教材《人工智能技术》,翻阅后受益匪浅,遂整理如下,以备后用

人工智能 概述

人类智能

人类智能 分为8个范畴 :

  • 语言
  • 逻辑
  • 数学
  • 空间
  • 身体-动觉
  • 音乐
  • 人际
  • 内省
  • 自然探索

AI 分类:

弱人工智能:专能,特定领域

强人工智能:通用人工智能,AGI,达到人类水平

超人工智能:超越人类

发展关键里程

  • 图灵游戏 预言 人工智能 概念
  • 1956 达特茅斯会议 提出 人工智能
  • 机器学习:ibm Athur Samuel 西洋跳棋程序
  • 模式识别:感知器被提出
  • 模式匹配:聊天程序 Eliza 自然语言处理 开端
  • LISP语言 初代AI开发语言
  • 多层神经网络 ,反向传播 等算法出现
  • 感知机无法解决 异或 XOR问题,引发质疑,第一次 AI低谷期
  • 多层感知器 解决 异或问题
  • BP 促进 神经网络发展
  • XCON 专家系统 兴起 掀起AI繁荣
  • LISP 硬件销售市场崩溃,第二次AI低谷
  • LICE 能利用和互联网增加数据集,优化内容 的 聊天机器人
  • 1996 深蓝 战胜 卡斯帕罗夫
  • 2006 Geoffrey Hinton 开启 深度学习时代
  • 2011 Watson 答题竞赛 战胜人类
  • 深度学习开始占据主流,ImageNet 识别率霸榜
  • 2016 AlphaGo 战胜人类

AI 三大学派

  • 符号主义:强调符号推理
  • 连接主义:强调神经元 模拟人脑工作模式
  • 行为主义:强调 环境交互,感知-动作

机器学习

对于某类任务 T 和 性能度量 P,一个计算机程序在T上以P衡量的性能随着 经验 E 而 自我完善,那么 我们就称这个计算机程序在从 经验 E 学习

经过训练的计算机程序 称为 模型

机器学习适用的主要场景:

  • 规则十分复杂 或 无法描述,如 人脸识别 语音识别
  • 数据分布本身随时间变化,需要程序不停重新适应

问题规模足够小,或者复杂度不高的情况下,人工规则 即可解决,不必使用机器学习

机器学习在做什么

机器学习算法的本质 是 函数拟合

设 f 为目标函数,提供 x - f(x) 数据集,机器学习的目的 是构造一个 g(x) 与 f(x) 在 x 范围内尽可能地接近,并通过 误差的 均值 方差 来评判 拟合效果如何

x 形式:标量 - 向量 - 矩阵 - 张量

机器学习解决的问题:分类、回归、聚类 等

分类

监督学习

输入:特征(X)

输出:标签(Y)

呈现 属性 之间的映射关系

标签值连续 - 回归 值域可以为无穷集合

标签值离散 - 分类 类别集合由训练集决定,类别个数为 K

无监督学习

呈现 样本内在相似性

聚类

半监督学习

监督学习的全部样本需要标注

部分样本标注 + 聚类,在少量样本标注的条件下 得到结果,降低人工成本

强化学习

多步骤决策

奖励函数

强化学习系统 核心:模型 + 环境

模型 产生行动 - 行动 对环境 产生影响

机器学习基础流程

数据收集 - 数据清洗 - 特征选择 - 模型构建(训练) - 模型评估(测试)-模型部署与整合

数据收集

训练集:测试集 = 4 : 1

数据预处理:

  • 数据清洗:
    • 数据过滤
    • 处理缺失值
    • 处理错误或异常值
    • 合并多数据源数据
    • 数据汇总
  • 降维:防止维度爆炸
  • 标准化:统一量纲,降低训练难度

特征选择

  • 过滤法

评估每个特征与 目标属性的相关性,使用统计度量 为每个特征评分

评估特征和目标的相关性方法 Pearson相关系数,卡方(Chi-square)系数 互信息(mutual information

遍历所有特征 - 选择最佳特征子集 - 学习算法 - 性能评估

  • 包装器法

使用预测模型 对 特征子集评分,模型是评估特征子集的工具,模型预测越准,则特征组合越应该保留

递归消除法

遍历所有特征 - 每个特征子集,使用学习算法 生成一个模型 - 模型评估 - 选择最佳特征子集

  • 嵌入法

特征选择作为模型训练的一部分,在训练中 动态学习如何进行特征选择

正则化方法(惩罚方法): 岭(Ridge)回归,Lasso回归

模型构建(训练)

模型评估

  • 泛化能力:模型适用于新样本的能力

避免过拟合,欠拟合

简化模型,提前结束训练(早停机制),随机失活(Dropout),权重衰减 (Weight decay)

模型容量:拟合各种函数的能力,复杂度

选择适合问题的模型容量

泛化误差

总误差 = 偏差^2 + 方差 + 不可消解的误差

方差:预测结果在均值附近偏移的程度

偏差:预测结果均值与正确值的差异

不可消解误差:模型不完美以及数据有限 导致的误差

回归模型评价指标:

平均绝对误差 MAE

均方误差 MSE

相关系数 R^2

分类模型评价指标:混淆矩阵

准确率: (TP + TN) / (P + N)

查全率: TP / P

查准率: TP / (TP + FP)

可解释性

预测速率

模型部署

模型调参

  • 参数
    从数据学习中获得。模型的组成部分
  • 超参数
    模型的外部配置,人工设定

模型训练 指 参数优化 通过 梯度下降 算法完成

超参数优化 依据训练结果 采用 搜索算法 完成

梯度下降

将当前位置 负梯度方向作为搜索方向
w k + 1 = w k − η ∇ f w k ( x ) w_{k+1} = w_k - \eta\nabla{f_{wk}(x)} wk+1=wk−η∇fwk(x)
η \eta η 为学习率, w k w_k wk为 模型 第k次迭代的参数,f为目标函数(通常是损失函数 loss)

训练终止条件:

  • 目标函数值的变化非常小, 称为 算法收敛
  • 达到最大迭代次数

注 :当目标函数非凸时,梯度下降算法可能会随不同初值 收敛至不同结果

梯度下降变种:

  • 批量梯度下降(BGD):使用所有样本在当前点的梯度均值对权重参数进行更新
  • 随机梯度下降(SGD):随机选取某一样本,使用该样本在该点的梯度进行参数更新
  • 小批量梯度下降(MBGD):每次选取n个样本的梯度均值 更新参数

超参数搜索

由于测试集不参与训练,为验证超参数效果,在训练集中划分 验证集,做超参数搜索

  • 网格搜索:穷举
  • 随机搜索:粗调 + 精调

交叉验证

k-折交叉验证 训练集分为 k 组,轮流做验证集 避免验证集划分的偶然性

ML常见算法

机器学习
监督学习
无监督学习
分类
回归
聚类
其他
逻辑回归
SVM
决策树
KNN
朴素贝叶斯
神经网络
线性回归
随机森林
GBDT
xgboost
K-means
层次聚类
密度聚类
关联规则
PCA
GMM

线性回归 Linear Regression

h ( x ) = w T x + b y = h ( x ) + ϵ ϵ ∼ N ( 0 , σ 2 ) h(x) = w^Tx + b \\ y = h(x) + \epsilon \\ \epsilon \sim N(0, \sigma^2) h(x)=wTx+by=h(x)+ϵϵ∼N(0,σ2)

扩展

多项式回归
h ( x ) = w 1 x + w 2 x 2 + . . . + w n x n + b h(x) = w_1x + w_2x^2 + ... + w_nx^n + b h(x)=w1x+w2x2+...+wnxn+b

n 为超参数

逻辑回归 Logic Regression

分类模型
h ( x ) = P ( Y = 1 ∣ X ) = g ( w T x + b ) g ( x ) = 1 1 + e x p ( − x ) h(x) = P(Y = 1 | X ) = g(w^Tx + b) \\ g(x) = \frac{1}{1 + exp(-x)} h(x)=P(Y=1∣X)=g(wTx+b)g(x)=1+exp(−x)1

w表示 权重,b称为 偏置

线性函数值 通过 Sigmoid 计算,结果与阈值t进行比较,获得分类结果

阈值 t 为超参数

扩展:

Softmax 回归:k 分类, 结果为 k 维向量,表示样本所属各个类别的概率分布,和为1

决策树 DT Decision Tree

每个节点表示一个特征属性上的测试,每个分支 表示这个特征属性在该值域上的输出,每个叶子 为一个类别

树的构造(属性的选择):

按所有特征属性进行划分,对所有划分的结果集进行纯度比较,选择纯度最高的属性 作为分割数据集的依据

决策树构造算法:ID3, C4.5, CART

纯度量化指标:

p k p_k pk 为 样本属于类别 k 的概率,K表示总的类别数

  • 信息熵

H ( X ) = − ∑ k = 1 K p k log ⁡ 2 p k H(X) = -\sum_{k=1}^Kp_k\log_2p_k H(X)=−k=1∑Kpklog2pk

  • 基尼系数

G i n i = 1 − ∑ k = 1 K p k 2 Gini = 1 - \sum_{k = 1}^Kp_k^2 Gini=1−k=1∑Kpk2

纯度差异越大,说明对某个特征进行判断越有利于类别划分

决策树构建过程:

  1. 特征选择

    选择特征作为当前节点的分裂标准

    不同标准 产生不同 决策树算法

  2. 决策树生成

    根据所选特征,自上而下递归生成子节点,直到数据集不可分,停止决策树生长

  3. 剪枝

    缩小树的规模,抑制过拟合

    分为 预剪枝 后剪枝

决策树模型是可解释的

支持向量机 SVM Support Vector Machine

定义在特征空间上的间隔最大的线性分类器

求解凸二次线性规划的最优算法

直线可以将数据分割到不同类别中

可以找到多条直线分割数据

在符合上述条件的直线中找到一条,使离直线最近的点 尽可能远离这条线

线性可分数据集:线性SVM

非线性数据集:核函数 非线性SVM

核函数:线性核函数,多项式核函数,sigmoid核函数 高斯核函数

K近邻算法 KNN K Nearest Neighbor

如果一个样本在特征空间中的K个最相似(特征空间中最近邻)的样本中的大多数属于某一类别,那么该样本也属于这个类别

K为超参数

分类:多数表决

回归:均值法

计算量大,需要遍历所有样本 才能 待测样本的K个最近邻

朴素贝叶斯 Naive Bayes

贝叶斯定理

特征独立假设

集成学习

聚类

代表算法:K-均值聚类,层次聚类

深度学习

传统机器学习,特征人工选定

特征个数越多,外界输入信息越多,模型表达能力越强

特征数增加,算法复杂度提升,搜索空间增大,训练数据在特征空间中变得稀疏,影响相似性判断,此之谓 维度爆炸

深度学习 寻求一种自动提取特征的方法

深度神经网络

感知器的堆叠

结构和功能上 对 人脑 的抽象

感知器算法

X 为 输入,W 为 权重, w0 为 偏置(b)
X = x 0 , x 1 , . . . , x n T W = w 0 , w 1 , . . . , w n T n e t = W T X = ∑ i = 0 n w i x i x 0 = 1 , w 0 = b \boldsymbol X = x_0, x_1, ... , x_n^T \\ \boldsymbol W = w_0, w_1, ..., w_n^T \\ net = \boldsymbol W^T \boldsymbol X = \sum_{i = 0}^n w_ix_i \\ x_0 = 1, w_0 = b X=x0,x1,...,xnTW=w0,w1,...,wnTnet=WTX=i=0∑nwixix0=1,w0=b

回归问题,net 为 感知器输出

分类问题,net 需要经过激活函数 sgn(net)

感知器本质上是一种线性模型,只能处理线性问题,无法处理非线性数据,对于 XOR 无法运算

多层感知机,前馈神经网络,可实现非线性处理能力

隐藏层增加,非线性能力增强

训练法则

损失函数

机器学习模型训练的核心 是 损失函数,描述目标分类的错误

损失函数反映 感知器 目标输出 与 实际输出 之间的误差

常用 损失函数:

均方误差(主要用于 回归问题)
J ( w ) = 1 2 n ∑ x ∈ X , d ∈ D ( t d − o d ) 2 J(\boldsymbol w) = \frac1{2n} \sum_{x\in X, d \in D} (t_d - o_d)^2 J(w)=2n1x∈X,d∈D∑(td−od)2

交叉熵误差 (主要用于 分类问题)

J ( w ) = − 1 n ∑ x ∈ X , d ∈ D ( t d ln ⁡ o d + ( 1 − t d ) ln ⁡ ( 1 − o d ) ) J(\boldsymbol w) = -\frac1n \sum_{x\in X, d \in D} (t_d \ln o_d + (1 - t_d) \ln (1 - o_d)) J(w)=−n1x∈X,d∈D∑(tdlnod+(1−td)ln(1−od))

x 为 模型参数,X 为训练集,n为X大小,D 为 输出层神经元集合,t为目标输出,o为实际输出

损失函数随w改变

训练模型的目标 是 搜索使损失函数最小的权值向量

使用梯度下降方法 更新 参数 以 使损失函数 达到最小

梯度下降算法

梯度

∇ f ( x 1 , x 2 , . . . , x n ) = ∂ f ∂ x 1 , ∂ f ∂ x 2 , . . . ∂ f ∂ x n T ∣ x \nabla f(x_1, x_2, ..., x_n ) = \left \\frac {\\partial f} {\\partial x_1}, \\frac {\\partial f} {\\partial x_2}, ... \\frac {\\partial f} {\\partial x_n} \\right^T \Bigg |_x \\ ∇f(x1,x2,...,xn)=∂x1∂f,∂x2∂f,...∂xn∂fT x

梯度下降
δ w = ∑ ∂ J ∂ w ∣ x w = w − η δ w \delta w = \sum \frac{\partial J} {\partial w} \bigg |_x \\ w = w - \eta \delta w δw=∑∂w∂J xw=w−ηδw

常见梯度下降:

批量梯度下降 BGD

随机梯度下降 SGD

小批量梯度下降 MBGD

反向传播

误差是逐层累积的

将误差从最后一层开始向前传递求取

每一层只知道当前层 的导数,逐层求当前层权重调整,以及前一层偏差,向前传导,直到第一层

激活函数 Activation Function

在感知器后附加的运算,将非线性特征引入神经网络

Sigmoid

在反向传播算法中,容易导致 梯度消失

softsign

ReLU (Rectified Linear Unit)

Softplus

正则化

降低泛化误差

参数惩罚

对目标函数 J 添加 参数惩罚项 Z(w) 来限制模型的学习能力
J ˉ ( w ) = J ( w ) + a Z ( w ) \bar J(w) = J(w) + a Z(w) Jˉ(w)=J(w)+aZ(w)

a 为 非负惩罚系数,超参数

一般只对 模型参数 w 添加约束,不对偏置项 添加约束

  • L1正则化 Lasso 回归

    L1 范数 向量中 全部元素绝对值之和

  • L2 正则化 岭回归 Ridge

    L2 范数 欧几里得距离 模长

数据集扩充

防止过拟合最有效的方法 是 增加训练集

训练集越大,过拟合概率越小

噪声注入 标签平滑

Dropout

训练过程中 随机丢弃部分神经元的输出,被丢弃的神经元参数 不参与更新

相当于 构造出一系列子网络 进行 集成学习

提前停止训练

定时对验证集进行测试,当验证集损失函数开始上升,提前停止训练,避免过拟合

把握好 早停 的阈值设计,有可能损失函数只是波动一下 还会继续下降

优化器

梯度下降算法 有各种 改进版本

不同梯度下降算法被封装成独立的对象,称为 优化器

常见优化器":SGD优化器,动量优化器,Nesterov,Adagrad, Adadelta, RMSprop, Adam, Adamax, Nadam 等

  • 动量优化器

d ( n ) = − η ∇ w J + a d ( n − 1 ) d(n) = -\eta \nabla_w J + a d(n - 1) d(n)=−η∇wJ+ad(n−1)

  • Adagrad
  • RMSprop
  • Adam

神经网络类型

卷积神经网络 CNN Convolution Neural Network

卷积:对图像(或 特征图)和 滤波矩阵(滤波器 卷积核)做内积

图像 是 神经网络的输入 RGB 0-255 像素亮度

特征图 是 卷积层 + 池化层 的输出 值由神经元计算获得,不受限制

  • 卷积层 convolution layer

卷积层可以有多个卷积核,不同卷积核 提取不同特征

每个卷积核 对 卷积层 所有神经元 共用

卷积核通过 反向传播 优化

卷积运算 除了点乘 也含有 偏置 bias

卷积层内所有卷积核 尺寸相同,特征图尺寸相同

卷积层输出特征图往往需要激活 通常用 relu

  • 池化层 pooling layer

合并附近单元,减小特征图尺寸,降维

通过设置池化窗口尺寸和步长,将任意尺寸的输入 映射到 固定尺寸的输出

最大池化层:取区域最大值

平均池化层:取区域均值

池化层没有参数

通常 卷积 与 池化 交替进行

  • 全连接层 fully connected layer

cnn的输出

特征图向量化

循环神经网络 RNN Recurrent Neural Network

通过隐藏层节点周期性连接,捕捉序列化数据中的动态信息

可以保存序列化数据中的上下文状态

时间序列上 有所延拓

本时刻的记忆单元和下一时刻的记忆单元 可以相连

处理序列有关场景 音视频 句子 等

时序反向传播 back propagation through time BPTT

BP算法在时间序列上的拓展

记忆单元在 t 时刻的误差 = 隐藏层在 t 时刻传播来的分量 + 记忆单元 在 t -1 时刻 传播来的分量

两种分量的计算方法 与 BP 相同

反向遍历所有时间节点后,得到 每个参数 U V W 的 T 个 梯度,T个梯度之和即为 U V W 总梯度,再应用 梯度下降求解

对单个神经元,t时刻的状态 对其后的影响有限,RNN 长时间的记忆信息 会 衰减

长短期记忆网络 LSTM long short term memory

lstm块 输入门 遗忘门 输出门 选择性记忆

变体 GRU 模型 Gate Recurrent Unit

生成对抗网络 GAN Generative Adversarial Network

同时训练 生成器G 和 判别器D 两者博弈

判别器的目标 是 判断一个样本是真的 还是 G 生成的

生成器的目标 是 生成一个 D 无法分辨的样本

生成器输入z 为 噪声

判别器输入 为 生成器输出 和 真实图像

目标函数
G = m i n G m a x D E x log ⁡ D ( x ) + E z log ⁡ ( 1 − D ( G ( z ) ) ) G = min_Gmax_DE_x\\log D(x) + E_z\\log (1 - D(G(z))) G=minGmaxDExlogD(x)+Ezlog(1−D(G(z)))

判别器的目标是 最大化 目标函数

生成器的目标是 最小化 目标函数 只与目标函数第二项 有关

一般训练过程 交替训练 G D 直到 D(G(z)) 稳定在 0.5 左右,达到 纳什均衡

常见问题

数据不平衡

分类任务,各种类的样本数目可能不均匀,极端情况下,可能影响模型性能

  • 随机欠采样

随机删除 数量足够的 类别 的样本

  • 随机过采样

复制现有样本

  • 合成少数过采样
    从少数类别中 选取子集,合成新样本

梯度消失与 梯度爆炸

反向传播公式

δ 1 = δ 3 f 2 ′ ( o 1 ) w 3 f 1 ′ ( o 0 ) w 2 \delta_1 = \delta_3 f^{\prime}_2(o_1) w_3 f^{\prime}_1(o_0) w_2 δ1=δ3f2′(o1)w3f1′(o0)w2

网络太深,多项连乘,权值更新可能不稳定

应对方法:预训练,使用ReLU激活函数,使用LSTM 使用参差模块,梯度剪切 等

过拟合

获取更多数据,数据增强

调整参数,简化模型,正则化 等

补充

epoch, batch, iteration, episode

在机器学习和深度学习的训练过程中,episode、epoch、batch 和 iteration 是描述不同训练阶段和数据处理方式的关键概念,它们的关系如下:

  • Epoch(轮次)‌

    一个 epoch 指的是将整个训练数据集完整地输入模型进行训练一次的过程。例如,如果训练集有 10,000 张图片,那么一个 epoch 就表示这 10,000 张图片都参与了模型的一次完整学习。训练通常会持续多个 epoch。

  • Batch(批次)‌

    由于内存限制,通常不会一次将所有数据输入模型。Batch 指的是在一次前向传播和反向传播过程中所使用的数据子集。例如,可以将 10,000 张图片分成 100 个 batch,每个 batch 包含 100 张图片。

  • Iteration(迭代)‌

    一次 iteration 是指完成一个 batch 数据的前向传播和反向传播,并更新一次模型参数的过程。一个 epoch 所包含的 iteration 次数等于训练数据被划分成的 batch 数量。沿用上面的例子,一个 epoch 包含 100 个 iteration。

  • Episode(回合)‌

    这个术语主要用于强化学习和序列任务中,特指智能体与环境从初始状态交互直到达到终止状态(如游戏结束)的一个完整序列。它更侧重于任务情节的完整性,而非数据集的遍历。

核心关系总结:‌

在监督学习中,训练过程通常由多个 ‌epoch‌ 构成。

每个 ‌epoch‌ 包含多次 ‌iteration‌。

每次 ‌iteration‌ 处理一个 ‌batch‌ 的数据,并更新一次模型参数。

Episode‌ 是强化学习等任务中的特有概念,与 epoch 有相似之处(都表示一个完整周期),但衡量对象不同。

集成学习

构建并结合多个机器学习器来完成学习任务

个体学习器

  • 同质:基学习器
  • 异质:组件学习器件

集成形式

  • bagging

弱学习器之间没有依赖关系,可并行生成运行,最终采用集合策略

代表算法:随机森林

减小方差,抑制过拟合

  • boosting

得到首个弱学习器后,针对其误差较大部分,未改善误差表现,训练第二个学习器,以此类推,顺序构建学习器

由于boost特性,无法并行,只能串行训练

代表算法:adaboost, 梯度提升树(GBDT)

减小偏差,容易造成过拟合

  • stacking

以第一层学习器的输出 作为特征,输入第二层学习器进行学习训练

贝叶斯定理

相关推荐
Titan20248 分钟前
MySQL访问个人学习笔记
笔记·学习·mysql
IT_陈寒24 分钟前
SpringBoot自动配置差点让我加班到凌晨
前端·人工智能·后端
yumgpkpm37 分钟前
Acceldata ODP(Open Data Platform)3.3.6.4(RHEL9)保姆级完整安装手册
大数据·人工智能·hive·hadoop·kafka·hbase·cloudera
程序员cxuan39 分钟前
腾讯又来一王炸,开源版 WorkBuddy 太夯了!
人工智能·后端·程序员
邓工说电1 小时前
智慧断路器安全吗?数据加密、离线保护与合规认证全解读
大数据·数据库·人工智能·智能断路器·炜晔科技
阿里云大数据AI技术1 小时前
Lance 数据检索怎么选,当然阿里云 Milvus 向量湖
人工智能
出海客1 小时前
跨境电商多语言客服知识库怎么建:资料结构、检索边界与人工升级
大数据·人工智能
xsd202411181 小时前
从自主导航到视觉读表:一台工业巡检机器人的全栈技术链路拆解
人工智能
袁哥大话安全1 小时前
巡隐WEBSHELL扫描软件
人工智能·安全·web
深圳老胡1 小时前
STM32CubeMX 生成 CMake 工程,用 VSCode 编译与调试的完整流程
笔记·stm32·单片机·代码规范