个人笔记:实用机器学习(b站李沐)3.5~3.7
2026/7/26 14:12:55 网站建设 项目流程

3.4多层感知机
手工特征工程到学习特征的范式转变:将特征工程的过程也纳入端到端的学习框架中,让模型从原始数据中自动学习最优的表示(representation),而不是依赖人工设计的特征。

数据与计算需求:神经网络通常需要更多的训练数据和更强的计算能力

架构多样性:针对不同数据结构设计的网络架构:

1.多层感知机 (MLP):处理结构化,表格数据

2.卷积神经网络 (CNN):处理图像等网格数据

3.循环神经网络 (RNN):处理序列,时序数据

4.注意力机制 (Attention):处理长距离依赖关系

先验知识融入:通过架构设计(如 CNN 的局部连接、RNN 的时序建模)将领域知识编码进网络结构


dense层:全连接层

线性回归可以看成是,有1个输出的全连接层

引入非线性因素(线性局限性):激活函数


有一个隐藏层的MLP:

(可以拓展到多个隐藏层)
这里的Activation为激活函数处理,实心dense层为隐藏层
代码示例:



卷积神经网络(全连接层->卷积层):
在处理图像问题时:


局部链接+权值共享:用极少的参数,通过在图像上滑动扫描,实现了对任意位置局部模式的检测

一个简单的单通道卷积的实现:


卷积对位置仍然敏感

虽然卷积通过权重共享实现了平移不变性,但这种不变性是有限的:

输入中模式的平移或旋转 -> 输出中模式的相似平移和旋转

换句话说,卷积特征图仍然精确记录了特征的位置信息。如果物体稍微移动,特征响应的位置也会跟着移动。对于分类任务,我们希望模型完全不关心物体的精确位置。(增加鲁棒性)


池化层(Pooling Layer):
在卷积输出后的 k×k 窗口内计算 均值(mean) 或 最大值(max)
实现降维和增强位置的鲁棒性




循环神经网络RNN:
假如说我们需要一个语言预测模型来判断下一个word,如果使用MLP输入为hello可以预测下一个为world,但如果输入world是否会预测下一个是!,因为没有上一个时序的信息hello,

MLP问题的输入的维度是确定的不能hello world这样变换的输入,这样就需要我们的时序模型RNN了。


隐藏状态:我们认为隐藏状态包括了过去时间的所有信息(维度确定)

concat操作:将隐藏状态和当前状态合并

通过隐藏状态在时间步之间传递信息,让模型"记住"序列的历史上下文,从而处理变长序列数据。同一组参数在每个时间步复用,既减少了参数量,又实现了对任意长度序列的建模

一个简单的RNN模型结构:

简单 RNN 有一个致命缺陷:长期依赖问题(Long-term Dependency)

序列很长时,早期的信息在传递过程中逐渐衰减,爆炸

例如:"我出生在中国,...,所以我会说____",中间隔了很多词,"中国"这个信息很难传递到填空位置

解决的两种方法:

两种门(单独的参数去学习)的效果:
选择性记忆:重要的历史信息可以长期保留

选择性遗忘:不相关的信息被及时清除



双向RNN:
可以得到前后两个方向的信息:既能根据过去也能依靠未来。

输出:两个方向的隐藏状态拼接或融合

前提:能够拿到整个信息的内容(完形填空)


Deep RNN通过堆叠多层提取层次化的时序特征

模型选择的核心原则:让模型结构与数据的内在结构相匹配。


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询