d2l_第五章学习_Multilayer Perceptrons多层感知机

news2025/1/18 15:55:50

x.1 Hidden Layers

线性模型的基本假设是单调,即任何特征的增大都会导致模型的输出增大(权重正时,负值时亦)。但是现实中很多的关系并不仅仅是简单的线性关系,这个时候就需要引入非线性关系,而非线性关系由以下两个部分组成:Hidden Layer隐藏层和Activication Function激活函数。

联想Regression/LInear Regression和Classification/Softmax Regression,二者的简洁实现都是由一个LazyLinear线性层实现,而这时我们再增加一层线性层,就通过引入隐藏层,构成了Multilayer Perceptrons多层感知机(后简写MLP)。如下图是具有两层(输入层不单独算一层)的MLP。它的第一层具有 4 ∗ ( 5 + 1 ) = 24 4*(5+1)=24 4(5+1)=24个可学习的参数,第二层具有 5 ∗ ( 3 + 1 ) = 20 5*(3+1)=20 5(3+1)=20个可学习参数。

请添加图片描述

x.2 Activation Function

x.2.1 From Linear to Nonlinear

通过引入hidden layer,我们的仿射函数具有如下变化,由(5.1.1)->(5.1.2)

请添加图片描述

请添加图片描述

仿射函数的仿射函数还是仿射函数,所以并没有引入非线性性质。为了引入非线性性质还得加入激活函数,通过激活函数,一层叠加一层,生成更有表达能力的模型,并且我们注意到,通用近似定理讲述了:通过使用更深(而不是更广)的网络,可以更容易逼近许多函数。

请添加图片描述

x.2.2 常见Activation Function

x.2.2.1 ReLU

ReLU是最常用的激活函数并且具有很多变种形式,如He_normal也是针对LeakyReLU和ReLU进行的权重初始化工作。

ReLU具有良好的求导的性质:要么让参数消失,要么让参数通过。它的函数表达式如下:

请添加图片描述

图像如下:

请添加图片描述

导数图像如下:

请添加图片描述

x.2.2.2 Sigmoid

Sigmoid Function又称为Logistic Function,是在最早的神经网络中提出的,类似于一个阈值单元,档期输入低于某一个值时取0,高于某一阈值时取1。将范围从(-inf, inf)映射到(0, 1),函数表达,图像表达,导数图像表达如下:

请添加图片描述

请添加图片描述

请添加图片描述

x.2.2.3 Tanh

Tanh与sigmoid类似,只不过是将函数值映射从(0, 1)变成了(-1, 1)。它的函数表达式,函数图像和函数梯度图像如下所示:

请添加图片描述

请添加图片描述

请添加图片描述

x.3 MLP 复杂实现

复杂实现中可能要参考nn.Parameters函数接口,见https://blog.csdn.net/qq_43369406/article/details/131234557

x.4 MLP 简易实现

MLP的简单实现即使用Pytorch封装好的nn.LazyLinear线性层代替nn.Parameter自己定义的权重层。在这一过程中,你可能需要接触到nn.Sequentail这个API,参考https://blog.csdn.net/qq_43369406/article/details/129998217

x.5 Forwad Propagation 正向传播, Backward Propagation 反向传播和 Computational Graphs 计算图.

通过使用nn的子类定义模型model,model便是生成的计算图。使用正向传播计算输出。使用反向传播更新model的梯度矩阵。使用optimizer.step()更新model的权重矩阵。

参考 一文搞懂网络训练中一个epoch中到底做了什么+zero_grad可以放在backward后面吗(train.py)https://blog.csdn.net/qq_43369406/article/details/129740629

x.6 Vanishing and Exploding Gradients 梯度消失和梯度爆炸

由于链式法则的运用,梯度其实是多个数值相乘的结果,当连续乘以一个大于1或者小于1的数,其结果都是非常不稳定的。

请添加图片描述

由此引申出Vanishing Gradients梯度消失和Exploding Gradients梯度爆炸的问题。

x.6.1 Vanishing Gradients 梯度消失

常见的梯度消失,如当一个极其小或者大的数字经过sigmoid函数后,它的求导数就会很小,无线趋近于0,这便是梯度消失,如下:

请添加图片描述

x.6.2 Exploding Gradients 梯度爆炸

如一百个均值为0,方差为1的矩阵相乘,很容易出现大于1的元素。

x.7 模型初始化

常见的初始化有数据初始化和模型初始化,而数据初始化有归一化,标准化等;模型初始化则有he_normal等。我们需要知道的是数据决定了你的山长什么样,模型初始化决定了你从哪里开始走。如果你刚开始就从一个局部最优开始走那情况将非常糟糕。

请添加图片描述

x.8 dropout

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/663862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Verilog基础之七、译码器实现

目录 一、前言 二、工程实现 2.1 工程代码 2.2 仿真结果 2.3 参考 一、前言 ​译码器的实现为编码器的逆过程,以3-8译码器为例,真值表如下。 二、工程实现 ​实现同时使用for循环和case两种方式。 2.1 工程代码 module Decoder(in,out,out_case )…

【菜单折叠效果】这菜单效果千万别让领导看了,一不小心就升职加薪(附源码)

【写在前面】 上周想着冲一波粉丝量(周冲700),但是事与愿违,没办法我只能不断的督促自己多分享,多总结了,那么今天晚上我就好好整理了一篇常见后台管理系统的菜单收缩动态效果,主要是用于后台管…

基于深度学习的高精度打电话检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度打电话检测识别系统可用于日常生活中或野外来检测与定位打电话目标,利用深度学习算法可实现图片、视频、摄像头等方式的打电话目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检…

Web3通过ganache运行起一个本地虚拟区块链

通过文章 Web3开发准备工作 手把手带你创建自己的 MetaMask 账号大家简单的对网络 有了个比较模糊的概念 不同的网络连接这不同的区块链 那么 我们就要搞清楚 我们切换不同的网络 我们的数字资产是不一样的 在这里 我们需要先安装一个插件工具 ganache 我们先在本地创建一个文…

大学面试三分钟自我介绍七篇

大学面试三分钟自我介绍篇1 尊敬的领导: 您好! 首先对占用您的宝贵时间深表歉意。我叫__,是一名于__年7月毕业的全日制本科大学生。所学专业:中文系汉语言文学。 经过长期努力拼搏,今天我怀着满腔热血站在了人生的又一个起点。在这…

VMware14虚拟机安装Ubuntu16.04 LTS

VMware14虚拟机安装Ubuntu16.04 LTS 一、基本介绍二、vmware下安装ubuntu系统2.1 下载ubuntu客户端镜像2.2 安装及配置2.2.1 安装2.2.2 配置 三、ubuntu系统使用 回到目录   回到末尾 一、基本介绍 对于ubuntu而言,就是linux操作系统的具体,而linux对…

西安石油大学2023年第三届里奇杯编程大赛(初赛)

官方题解地址1v7w (郭毅佬!):https://www.cnblogs.com/1v7w/p/17437203.html A 签到 描述 你说得对,但是 “ 里奇杯 ” 是西安石油大学计算机协会举办的程序设计竞赛,比赛旨在激发同学们学习程序设计的热…

修罗论坛xiuno源码在线搭建

Xiuno BBS 是一款小巧、稳定、支持在大数据量下仍然保持高负载能力的轻论坛。它只有 20 多个表,源代码压缩后 1M 左右,运行速度非常快,处理单次请求在 0.01 秒级别,在有 APC、Yac、XCache 的环境下可以跑到 0.00x 秒,对…

基于物联网设计的酒驾检测系统(STM32+OneNet)

一、 设计说明 随着社会的发展和人们生活水平的提高,汽车已经成为人们出行的主要代步工具,与此同时,酒后驾车所引发的事故越来越多,对人们的生命安全带来了威胁。为了减少酒后驾车造成危险事故,本文设计了一款能够安装在车辆控制系统上的酒驾监测系统。 本系统主控芯片采…

TOGAF10®标准中文版--(阶段A — 架构愿景)方法

3.5.1 概述 阶段 A 从收到发起组织向架构组织发出的架构工作请求开始。 在TOGAF 标准 —EA能力和治理中讨论了确保公司管理层的适当认可和确认,以及直线管理层的支持和承诺所涉及的问题。 A阶段还定义了架构工作的范围内和范围外的内容以及必须处理的约束条件。在…

给httprunnermanager接口自动化测试平台加点功能(六)

文章目录 一、背景1.1、先看用例编辑/新增页面1.2、效果展示 二、思考三、总结 一、背景 这一讲,是想给维护用例信息留个缺口,咱们知道这个平台是基于httprunner框架开发的,那么在用例结构处可以发现,skip这个关键字,经…

我的创作纪念日_周年复盘

本文框架 前言机缘收获日常憧憬 前言 不知不觉又是一个特殊的纪念日,虽然工作很卷,生活很累,但也能在一次次文章发布及与读者的互动交流中不断充实自己,对于写文章也越来越成为自己的一个习惯,甚至一周不更都会生活感…

嵌入式软件测试笔记6 | 嵌入式软件测试中独立测试团队需要做哪些测试活动?

6 | 嵌入式软件测试中独立测试团队需要做哪些测试活动? 1 简介2 计划与控制阶段2.1 分配任务2.2 整体评审和研究2.3 建立测试基础2.4 确定测试策略2.5 设置组织2.6 列出测试交付清单2.7 指定基础设施2.8 组织管理和控制2.9 编制测试过程进度表2.10 整理测试计划2.11…

(UE4/UE5)Unreal Engine中使用HLOD

本教程将详细介绍在Unreal Engine的不同版本(4.20-4.24、4.25-4.26、5.2)中如何使用Hierarchical Level of Detail (HLOD)。注意,每个版本中使用HLOD的方法可能会有所不同。 一、预先生成LOD 步骤一:预先生成LOD打开UE4.21&…

深入理解cache对写好代码至关重要

CACHE的一致性 Cache的一致性有这么几个层面 1. 一个CPU的icache和dcache的同步问题 2. 多个CPU各自的cache同步问题 3. CPU与设备(其实也可能是个异构处理器,不过在Linux运行的CPU眼里,都是设备,都是DMA)的cache同…

商场开盲盒小程序软件

以下是商场开盲盒小程序软件可能具有的界面: 首页:展示热门盲盒产品、促销信息和优惠券等内容,提供快捷购物入口和搜索功能。 盲盒专柜或零售店铺列表:列出商场内所有盲盒专柜或零售店铺的地址和电话号码,帮助…

Typescript 中,这些类型工具真好用

你是否曾经用 TypeScript 写代码,然后意识到这个包没有导出我需要的类型,例如下面这段代码提示 Content 在 example 中不存在: import {getContent, Content} from example const content await getContent() function processContent(conte…

8.2 电压比较器(1)

电压比较器是对输入信号进行鉴幅与比较的电路,是组成非正弦波发生电路的基本单元电路,在测量和控制中有着相当广泛的应用。 一、概述 1、电压比较器的电压传输特性 电压比较器的输出电压 u O u_{\scriptscriptstyle O} uO​ 与输入电压 u I u_{\scr…

软件测试面试一周时间面了6家公司,最终收割3个Offer

上个月花了一周时间面了6家公司,最终收割3个Offer。通过这6次面试,得到的最宝贵的经验是:快刀斩乱麻。展开说就是:给自己一点点压力,在短时间内迅速面试、迅速反馈、迅速提高,然后迅速进入下一场面试。 以…