尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

《d2l Chapter4 多层感知机基础内容》

《d2l  Chapter4 多层感知机基础内容》
📅 发布时间:2026/6/19 21:45:43
通俗细节讲解多层感知机基础原理,以及实际运用,并附有Latex数学公式与细节代码实现

Chapter 4 : 多层感知机(MLP)


先看看这个原理简单的嵌套式的“双层”的线性回归

\[\mathbf{X} \in \mathbb{R}^{n \times d} \]

表示 \(n\) 个样品且每个样品有 \(d\) 个输入特征的小批量,\(\mathbf{H}\) 为隐藏层变量。
且 \(\mathbf{W}^{(1)} \in \mathbb{R}^{d \times h}\) , \(\mathbf{b}^{(1)} \in \mathbb{R}^{1 \times h}\) ,\(\mathbf{W}^{(2)} \in \mathbb{R}^{h \times q}\) ,\(\mathbf{b}^{(2)} \in \mathbb{R}^{1 \times q}\)
有:

\[\begin{split}\begin{aligned}\mathbf{H} & = \mathbf{X} \mathbf{W}^{(1)} + \mathbf{b}^{(1)}, \\\mathbf{O} & = \mathbf{H}\mathbf{W}^{(2)} + \mathbf{b}^{(2)}. \end{aligned}\end{split}\]

然而显然,这并没有什么用处,因为:

\[\mathbf{O} = (\mathbf{X} \mathbf{W}^{(1)} + \mathbf{b}^{(1)})\mathbf{W}^{(2)} + \mathbf{b}^{(2)} = \mathbf{X} \mathbf{W}^{(1)}\mathbf{W}^{(2)} + \mathbf{b}^{(1)} \mathbf{W}^{(2)} + \mathbf{b}^{(2)} = \mathbf{X} \mathbf{W} + \mathbf{b} \]

完全可以被一个 \(\mathbf{X}\) 完美替代,还不会添加性能开销。

为了发挥多层的真正实力用处,我们在仿射变换之后对每个隐藏单元应用非线性的激活函数 \(\sigma\)。
我们让

\[\begin{split}\begin{aligned}\mathbf{H} & = \sigma(\mathbf{X} \mathbf{W}^{(1)} + \mathbf{b}^{(1)}), \\\mathbf{O} & = \mathbf{H}\mathbf{W}^{(2)} + \mathbf{b}^{(2)}.\\ \end{aligned}\end{split} \]

激活函数的输出(例如\(\sigma(\cdot)\))被称为活性值
一般来说,有了激活函数,就不可能再将我们的多层感知机退化成线性模型

常见激活函数

\(ReLU\) 函数:

  • \(\operatorname{ReLU}(x) = \max(x, 0)\)
  • \(x=0\) 时认为导数为0
  • 还有变式:\(\operatorname{pReLU}(x) = \max(0, x) + \alpha \min(0, x)\)

\(sigmoid\) 函数:

  • 将输入变换为区间 \((0, 1)\) 上的输出$$\operatorname{sigmoid}(x) = \frac{1}{1 + \exp(-x)}$$
  • 导数如下$$\frac{d}{dx} \operatorname{sigmoid}(x) = \frac{\exp(-x)}{(1 + \exp(-x))^2} = \operatorname{sigmoid}(x)\left(1-\operatorname{sigmoid}(x)\right)$$

\(tanh\) 函数:

  • 双曲正切函数压缩至 \((-1,1)\)

\[\operatorname{tanh}(x) = \frac{1 - \exp(-2x)}{1 + \exp(-2x)}\]

  • 此外,存在关系式:$$\operatorname{tanh}(x) + 1 = 2 \operatorname{sigmoid}(2x)$$

简单模型(调用d2l函数)

import torch
from torch import nn
from d2l import torch as d2l
net = nn.Sequential(nn.Flatten(),nn.Linear(784, 256),nn.ReLU(),nn.Linear(256, 10))def init_weights(m):if type(m) == nn.Linear:nn.init.normal_(m.weight, std=0.01)net.apply(init_weights);
batch_size, lr, num_epochs = 256, 0.1, 10
loss = nn.CrossEntropyLoss(reduction='none')
trainer = torch.optim.SGD(net.parameters(), lr=lr)train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)

相关新闻

  • 实验3_CPP
  • longchain4j 学习系列(4)-mcp调用
  • Java 学习路线可按「基础→进阶→实战→架构」四阶段推进

最新新闻

  • 跨省寄快递省钱攻略 2026各家物流价格对比与技巧 - 快递物流资讯
  • 大模型单位换算与生活常识能力测评:一道洗车题的深度解析
  • 巴特沃斯滤波器实战:Python信号处理从原理到可视化
  • Draggabilly终极指南:三大核心配置让你的拖拽交互更智能
  • 2026洛阳防水补漏维修团队实测盘点TOP4:洛阳业主房屋渗漏修缮靠谱选择 - 宅安选房屋修缮
  • 深耕禅城防水领域 匠心守护安居|微顺虹防水:初心筑品质,服务护万家 - 徽顺虹

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号