机器学习基础

机器学习是一个很宽泛的概念,从训练数据中学到知识用到真实数据中就可称为机器学习。

训练数据不同,训练的方式和达到的效果就不同,由此有了监督学习、无监督学习、半监督学习的区别

类型 定义
监督学习 通过带标签的训练数据学习输入(特征)到输出(标签)的映射关系。
无监督学习 无标签数据中发现隐藏模式或结构
半监督学习 结合少量标注数据和大量未标注数据进行训练,提升模型性能

监督学习(Supervised Learning)

定义:通过带标签的训练数据学习输入(特征)到输出(标签)的映射关系。

任务类型

  • 分类:输出为离散类别(如垃圾邮件检测)。
  • 回归:输出为连续值(如房价预测)。

具体实现
垃圾邮件检测:
训练过程:邮件内容原文->提取文本特征->文本特征+标签->模型训练
使用过程:邮件内容原文->提取文本特征->模型做分类->分类结果标签

关键点:要注意,输入的原文并不是文本特征,需要经过文本特征提取这一步操作,将原始文本转化为模型可理解的数值表示,本质是用数字描述文本的统计或语义信息。
示例:
原文:”免费赢取华为手机”
文本特征提取模型:词袋模型(Bag of Words, BoW):将文本视为单词的集合,忽略顺序和语法,统计每个词出现的频率。
词典:[“免费”, “赢取”, “华为”,”手机”, “点击”](根据所有邮件构建)
特征向量:[1, 1, 1, 1, 0](对应词典中词的出现次数)
输出类别标签:0:正常邮件,1:垃圾邮件

房价预测:
训练过程:房子属性信息+房价->模型训练
使用过程:房子属性信息->模型->预测的房价

常见算法

  • 线性回归:通过最小化预测值与真实值的平方误差求解线性关系参数
  • 逻辑回归:在线性回归基础上加Sigmoid函数,将输出压缩到[0,1]
  • 支持向量机(SVM):寻找最大间隔超平面分离两类数据,常用于高维数据分类
  • 决策树:通过一系列if-else规则递归划分数据,选择最优分类依据特征
  • 随机森林:多决策树,通过投票(分类)或平均(回归)提高泛化能力

无监督学习(Unsupervised Learning)

定义:从无标签数据中发现隐藏模式或结构。

任务类型

  • 聚类:将数据分组(如客户分群,图像分隔)。
  • 降维:减少数据维度(去除代表性弱的特征)。

常见算法

  • K 均值聚类:K-means,最小化簇内方差
  • 层次聚类:展示数据多层次聚类关系,关注层级关系
  • 主成分分析(PCA降维):高维数据投影低维空间,只保留主成分达到降维效果

半监督学习(Semi-Supervised Learning)

定义:结合少量标注数据和大量未标注数据进行训练,提升模型性能。
场景:你有1000张未标注的猫狗图片,只有50张标注了(25猫,25狗)
过程:

  1. 先用50张标注数据训练初步模型
  2. 用初步模型对1000张无标签样本预测,筛选置信度高预测结果(例如模型非常确定一张图是狗),将这些数据伪标签加入训练集
  3. 重新训练模型,迭代优化

应用场景:标注成本高时(如医学图像分类)。
医学图像中还可以这样用:

  1. 有50张标注的病例照片,训练初步模型
  2. 给50张病例照片加上模糊、旋转等,并打上同样标签
  3. 使用初步模型进一步训练,要求最小化标签误差
    这样训练出的模型会具有更高的鲁棒性,例如抗噪声、旋转。

强化学习(Reinforcement Learning)

定义:智能体(Agent)通过与环境交互,根据环境反馈(奖励或惩罚)调整策略以最大化累积奖励,从而找出最佳策略。

不久前北京举办的机器人马拉松中就用到了强化学习,输入地面环境,自行调整关节角度,稳定行走加分奖励,摔倒减分惩罚,通过很多次的试错探索出地面稳定行走的最优动作调整策略。

核心要素:环境,奖励,惩罚,评价,试错

适用场景:需要与环境动态交互、且难以获得大量标注数据的场景(如自动驾驶、游戏AI)。

深度学习基础

神经网络基础

神经网络的基本单元是神经元

神经元结构

生物学中神经元具备的结构给了人们启发,应用在计算机领域的神经网络:

功能 生物神经元 人工神经元
接收其他神经元电信号 树突 输入和权重
信号整合 细胞体 加权求和
输出动作电位到其他神经元 轴突 经过激活函数后输出
信号强度 神经递质释放量 权重大小
超阈值触发动作电位 神经递质阈值 激活函数

反向传播:模拟生物神经元的突触可塑性,通过梯度下降调整权重
损失函数:量化模型误差,权重更新的依据

神经网络

单个神经元解决问题的能力有限,将多个神经元级联,前一级神经元的输出作为后一级神经元的输入,同一级的神经元扩充数量,形成网状结构。

神经元中:y = f(wx+b)
神经网络中:y = f(w1x1+w2x2+…+wnxn+b) = f(WX+b)
f(x)为激活函数,通过让激活函数参与引入非线性。

这就是一个简单的神经网络模型构成的基本过程,同理不论多么复杂的神经网络,它们都具有输入 → 加权求和 → 激活函数 → 输出这样的基本结构。

激活函数

激活函数的作用对应神经元在接受到刺激后是兴奋还是抑制,用在神经网络中主要目的是解决线性不可分问题。

  • Sigmoid:将输入映射到 (0,1),适用于二分类。:垃圾邮件分类中,输出 0.8 表示“80%概率是垃圾邮件”。
  • ReLU:解决梯度消失问题,加速收敛。:图像识别中,ReLU能快速过滤掉无关像素(负值归零)。
  • Softmax:多分类输出概率归一化。:输出为概率分布(所有类别概率和为1,如MNIST手写数字识别(10分类))。
  • tanh:将输入映射到 [-1,1],具有零均值特性

梯度下降

通过计算损失函数对参数的梯度,迭代更新参数以最小化损失。

目标函数更新方式:
θ = θ - αΔJ(θ)
通过负梯度方向迭代更新参数θ,损失函数 J(θ)。

α:学习率(步长)。

∇J(θ):损失函数对参数的梯度。

步长太大会反复横跳不易收敛,步长太小导致收敛慢

卷积神经网络(CNN)

专为网格数据(如图像、视频)设计,关注局部特征,通过局部连接和权值共享减少参数量。

核心内容

  • 卷积层:使用滤波器卷积提取局部特征,也称为底层卷积
  • 池化层:降低维度,也称为中层卷积
  • 全连接层:分类
  • 应用场景:图像识别、目标检测

真实案例:人脸识别

  1. 底层卷积层:检测边缘、色块 → 输出“眼睛边缘”“嘴唇曲线”等低级特征。
  2. 中层卷积层:组合低级特征 → 输出“左眼”“鼻子”等部件。
  3. 高层全连接层:组合部件 → 判断是否是“人脸”。
步骤 作用 类比
卷积层 用滤波器提取局部特征 用放大镜找图案碎片
ReLU 去掉无关信息(负值) 扔掉模糊的碎片
池化层 压缩数据,保留关键特征 把碎片拼成关键部分
全连接层 综合所有特征分类 判断拼图是不是人脸

循环神经网络(RNN)

  • 特点:通过隐藏状态传递时序信息,使网络具有“记忆”功能。
    核心是“记忆”,每个时间步处理一个输入,并更新内部状态,输出取决于当前输入和之前的状态
    例如:
    x1 = “我” → h1 = 编码“我”
    x2 = “爱” → h2 = 编码“我爱”
    x3 = “吃” → h3 = 编码“我爱吃”
    xn代表n时间的输入,hn代表n时间携带的记忆

时序包含时间和顺序
例子:
字符集文本生成,给定前面字符,预测下一个字符
时间序列异常检测,检测服务器CPU使用率的异常点

LSTM(长短期记忆网络)

LSTM 通过门控机制控制信息的遗忘、更新和输出,解决RNN中长依赖问题和梯度爆炸梯度消失问题。

  • 应用场景:文本生成、机器翻译。
场景 RNN 的表现 LSTM 的表现
长句子翻译 忘记主语,动词单复数错误 保持主语一致性(如“cat→was”)
股票价格预测 忽略早期关键趋势信号 识别长期趋势(如季度周期)
文本生成 前后文矛盾(如角色突然消失) 维持角色和剧情连贯性

直观类比
RNN:像短期记忆差的人,读完长文章后只记得最后几句。
LSTM:像做笔记的学霸,用笔记(门控)选择只记录关键信息,次要信息不予记忆。

测试填空题

  1. 监督学习与无监督学习最明显的区别是监督学习的训练数据包含________(标签/特征)。
  2. 无监督学习中,将数据分为不同组的任务称为________(聚类/降维)。
  3. 在强化学习中,智能体通过最大化________(奖励/损失)来优化策略。
  4. CNN 中用于提取图像局部特征的层是________(卷积层/全连接层)。
  5. LSTM 通过________(门控机制/池化操作)解决长序列梯度消失问题。
  6. ReLU 激活函数的数学表达式为________(max(0, x)/1/(1+e^{-x}))。
  7. 梯度下降算法中,控制参数更新步长的超参数是________(学习率/批量大小)。
  8. 半监督学习通常结合少量________数据与大量未标注数据(标注/噪声)。
  9. 在多分类任务中,输出层通常使用________激活函数(Softmax/Sigmoid)。
  10. RNN 的隐藏状态设计使其擅长处理________数据(时序/图像)。

拓展

Q: 线性回归能用来解决非线性问题吗?
A: 线性回归可通过多项式扩展或基函数变换拟合高次函数,本质是将非线性问题转化为线性特征空间中的问题,但仍基于最小化平方误差的线性框架

Q:监督学习和无监督学习最大的区别是什么?
A:监督学习需要数据带有明确的标签(如分类中的类别、回归中的数值),模型学习从输入到标签的映射;而无监督学习没有标签,模型的目标是发现数据本身的模式,例如聚类或降维。

Q:半监督学习为什么比纯监督学习效果更好?
A:半监督学习通过利用大量未标注数据中的潜在信息(如数据分布、相似性),补充少量标注数据的不足,从而提升模型对数据整体结构的理解。例如,在图像分类中,未标注数据可以帮助模型学习更鲁棒的特征。

Q: 监督学习的常用算法?
A:

  • 线性回归: 线性关系y = wX + b,通过最小化预测值与真实值的平方误差(MSE)求解参数 w 和 b。
  • 逻辑回归:在线性回归基础上加Sigmoid函数,将输出压缩到 (0,1),表示概率
  • 支持向量机(SVM):寻找一个最大间隔超平面分离两类数据,支持向量是离分界面最近的样本点。常用于高维数据分类
  • 决策树:通过一系列if-else规则递归划分数据,关键在选择最优分类依据特征
  • 随机森林:构建多棵决策树,通过投票(分类)或平均(回归)提高泛化能力。每棵树用随机样本+随机特征训练。

Q: 自监督学习是什么?
自监督属于广义的无监督学习:两者都不依赖人工标注,但自监督通过构造伪标签模拟监督任务。
自监督常用于预训练:例如,用自监督任务(如预测缺失词)预训练BERT,再用少量标注数据微调下游任务(如文本分类)。

Q: 无监督学习常用算法?

  • K 均值聚类:将数据划分为K个簇,使得每个样本到其所属簇中心的距离最小
  • 层次聚类:将数据按照相似度逐层合并(或分裂),最终形成一棵树状图(Dendrogram),可以自由决定分多少组。适用于需要分析层次结构时(如生物基因聚类、文档主题分级)。
  • 主成分分析(PCA):通过正交变换将高维数据投影到低维空间,保留最大方差(即最重要特征),例如将语文、数学、物理三门课成绩降维成二维主成分文科、理科

Q:强化学习和监督学习中的“奖励”与“标签”有何不同?
A:监督学习的标签是静态的、明确的答案(如“这张图片是猫”),而强化学习的奖励是动态的、延迟的反馈信号(如“机器人移动后获得+1分”),模型需要通过试错学习最大化累积奖励。

Q:CNN为什么适合处理图像数据?
A:CNN的卷积层通过局部感受和权值共享,能够自动提取图像的局部特征(如边缘、纹理),且对平移、缩放具有一定不变性。池化层进一步降低计算量并增强鲁棒性。

Q:RNN和LSTM的区别是什么?为什么LSTM能解决长序列问题?
A:传统RNN的隐藏状态在长序列中容易梯度消失/爆炸,导致无法记住长期依赖。LSTM通过门控机制(遗忘门、输入门、输出门)控制信息的流动,选择性保留或丢弃信息,从而缓解这一问题。

Q:激活函数为什么不能都用线性函数(如f(x)=x)?
A:若全部使用线性激活函数,多层神经网络的输出仍然是输入的线性组合,等价于单层网络,无法拟合非线性关系。非线性的激活函数(如ReLU)使神经网络具备强大的非线性表达能力。

Q:梯度下降中为什么要用学习率(Learning Rate)?如何选择合适的学习率?
A:学习率控制参数更新的步长。步长过大会震荡不收敛,过小则收敛缓慢。可通过网格搜索、学习率衰减(如指数衰减)或自适应优化器(如Adam)自动调整。

Q:为什么训练神经网络需要批量(Batch)?Batch Size越大越好吗?
A:批量训练能利用矩阵运算加速计算,同时引入噪声提升泛化性。但Batch Size过大会占用更多内存,且可能陷入局部最优。一般根据硬件条件平衡,常用32/64/128。

Q:过拟合是什么?如何解决?
A:过拟合是模型在训练集上表现好,但在测试集上差,通常因为模型复杂度过高或数据量不足。解决方法包括:增加数据量、正则化(L1/L2)、Dropout、早停(Early Stopping)等。

Q:无监督学习在实际中有哪些应用?
A:典型应用包括:客户分群(如电商用户行为聚类)、异常检测(如信用卡欺诈识别)、推荐系统(通过降维分析用户兴趣)

Q:什么时候该用强化学习而不是监督学习?
A:当问题需要与环境动态交互、且难以获得大量标注数据时(如自动驾驶、游戏AI)。强化学习通过试错学习策略,而监督学习依赖静态标签。

Q:深度学习模型是不是层数越多越好?
A:并非如此。层数增加可能带来梯度消失/爆炸、过拟合、计算成本高等问题。需根据任务复杂度、数据量、硬件条件选择合适深度,残差连接(ResNet)等技术可缓解深层网络训练困难。

Q:未来机器学习的发展趋势是什么?
A:可能方向包括:更高效的小样本学习(如元学习)、自监督与无监督结合的通用模型、模型可解释性与伦理问题研究

测试题答案

  1. 标签
  2. 聚类
  3. 奖励
  4. 卷积层
  5. 门控机制
  6. max(0, x)
  7. 学习率
  8. 标注
  9. Softmax
  10. 时序