【深度学习】— 多层感知机介绍、 隐藏层、从线性到非线性、线性模型的局限性

【深度学习】— 多层感知机介绍

  • 4.1 多层感知机
    • 4.1.1 隐藏层
      • 线性模型的局限性
      • 引入隐藏层
  • 4.2 从线性到非线性
      • 线性组合的局限性
      • 引入非线性
      • 堆叠更多隐藏层

4.1 多层感知机

在第 3 节中,我们介绍了 softmax 回归,并实现了其从零开始的实现和基于高级 API 的实现,训练了分类器来识别 10 类服装图像。在此过程中,我们学习了如何处理数据、将输出转换为概率分布、并应用适当的损失函数来最小化损失。现在,我们将深入探索深度神经网络,这是本书的核心模型之一。

4.1.1 隐藏层

在 3.1.1 节中,我们介绍了仿射变换,它是一种带有偏置项的线性变换。回想一下 softmax 回归的模型架构,它通过单个仿射变换将输入直接映射到输出,再进行 softmax 操作。如果标签确实与输入相关,这种方法是足够的。但仿射变换的线性假设过于强烈。

线性模型的局限性

线性模型假设输入特征与输出之间的关系是单调的,例如收入增加会增加偿还贷款的概率,但这种关系不是线性的。处理这个问题的一种方法是对数据进行预处理,比如使用收入的对数作为特征。

然而,对于某些问题,线性模型的假设会完全失败。例如,分类图像中的猫和狗时,某个像素的强度并不能单独决定类别。图像的像素需要依赖上下文,像素之间的复杂交互使得线性模型难以处理。

引入隐藏层

为了解决线性模型的局限性,我们可以在网络中加入隐藏层,使其能够处理更复杂的函数关系。最简单的方法是堆叠多个全连接层,每一层的输出作为下一层的输入,最终生成输出。这种架构称为多层感知机(multilayer perceptron,MLP)。

下图展示了一个单隐藏层的多层感知机:
图4.1.1: 一个单隐藏层的多层感知机,具有5个隐藏单元
图4.1.1: 一个单隐藏层的多层感知机,具有5个隐藏单元

这个 MLP 有 4 个输入,3 个输出,隐藏层有 5 个隐藏单元。输入层不涉及计算,网络的计算只发生在隐藏层和输出层。这种网络共有 2 层,每层都是全连接的,每个输入都会影响隐藏层中的每个神经元,而隐藏层中的每个神经元又会影响输出层中的每个神经元。

然而,如 3.4.3 节所述,具有全连接层的 MLP 可能有大量参数,这会带来高计算成本。即使不改变输入或输出的大小,也需要在参数节约和模型效果之间进行权衡。

4.2 从线性到非线性

与之前的章节类似,我们使用矩阵 X ∈ R n × d \mathbf{X} \in \mathbb{R}^{n \times d} XRn×d 表示包含 n n n 个样本的小批量数据,其中每个样本有 d d d 个输入特征。对于具有 h h h 个隐藏单元的单隐藏层多层感知机(MLP),隐藏层的输出可以用 H ∈ R n × h \mathbf{H} \in \mathbb{R}^{n \times h} HRn×h 表示,称为隐藏表示(hidden representations)。隐藏层的权重和偏置分别为 W ( 1 ) ∈ R d × h \mathbf{W}^{(1)} \in \mathbb{R}^{d \times h} W(1)Rd×h b ( 1 ) ∈ R 1 × h \mathbf{b}^{(1)} \in \mathbb{R}^{1 \times h} b(1)R1×h,输出层的权重和偏置分别为 W ( 2 ) ∈ R h × q \mathbf{W}^{(2)} \in \mathbb{R}^{h \times q} W(2)Rh×q b ( 2 ) ∈ R 1 × q \mathbf{b}^{(2)} \in \mathbb{R}^{1 \times q} b(2)R1×q

单隐藏层多层感知机的输出 O ∈ R n × q \mathbf{O} \in \mathbb{R}^{n \times q} ORn×q 的计算如下:

在这里插入图片描述

线性组合的局限性

引入隐藏层后,模型需要跟踪和更新更多的参数。但这种设置并没有带来好处。原因在于隐藏单元是输入的仿射变换,而输出层也是对隐藏层的仿射变换。仿射变换的仿射变换仍然是仿射变换,这与原先的线性模型没有本质区别。

我们可以证明:对于任意权重值,可以将隐藏层合并为一个等价的单层模型,具有参数 W = W ( 1 ) W ( 2 ) \mathbf{W} = \mathbf{W}^{(1)}\mathbf{W}^{(2)} W=W(1)W(2) 和偏置 b = b ( 1 ) W ( 2 ) + b ( 2 ) \mathbf{b} = \mathbf{b}^{(1)}\mathbf{W}^{(2)} + \mathbf{b}^{(2)} b=b(1)W(2)+b(2),公式为:

在这里插入图片描述

引入非线性

为了让多层感知机的架构真正有效,我们需要在每个隐藏单元的仿射变换之后应用非线性激活函数(activation function) σ \sigma σ。激活函数的输出称为活性值(activations)。有了激活函数后,多层感知机就不再是简单的线性模型:

在这里插入图片描述

激活函数 σ \sigma σ 逐行作用于其输入,并且通常按元素操作,即它可以独立地计算每个活性值,无需查看其他隐藏单元的值。这样,非线性变换可以增强模型的表达能力。

堆叠更多隐藏层

为了构建更强大的模型,我们可以继续堆叠更多的隐藏层。例如:

H ( 1 ) = σ 1 ( X W ( 1 ) + b ( 1 ) ) , \mathbf{H}^{(1)} = \sigma_1(\mathbf{X}\mathbf{W}^{(1)} + \mathbf{b}^{(1)}), H(1)=σ1(XW(1)+b(1)),
H ( 2 ) = σ 2 ( H ( 1 ) W ( 2 ) + b ( 2 ) ) , \mathbf{H}^{(2)} = \sigma_2(\mathbf{H}^{(1)}\mathbf{W}^{(2)} + \mathbf{b}^{(2)}), H(2)=σ2(H(1)W(2)+b(2)),

每一层都可以增强模型的表达能力,使其能够捕捉到更复杂的函数关系。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在dblp官网下载外文文献

文章目录 零、dblp官网一、直接下载pdf二、Zotero 零、dblp官网 ①老域名:https://dblp.uni-trier.de/ ②简化域名:dblp.org 一、直接下载pdf 1.举例,搜索 image matching 2.直接点击红色的PDF按钮 (可能会因为卡,点了没反应。…

No.3 笔记 | Web安全基础:Web1.0 - 3.0 发展史

大家好!作为一个喜欢探索本质的INTP,我整理了一份简明易懂的Web安全笔记。希望能帮助你轻松掌握这个领域的核心知识。 这份笔记涵盖了Web发展的历程,从静态的Web 1.0到智能化的Web 3.0。我们将探讨URL和HTTP协议,揭示它们在网络中…

24-10-2-读书笔记(二十二)-《契诃夫文集》(一)上([俄] 契诃夫 [译] 汝龙)啊!真想生活。

文章目录 《契诃夫文集》(一)上([俄] 契诃夫 [译] 汝龙 )早期生活——塔甘罗格(人物家庭简介)学生时期——莫斯科(写作与学习)流浪时期——哈萨林(游历与流浪&#xff09…

Java中的封装、继承、多态

目录 封装 概念 包 继承 多态 向上转型 一、直接赋值 二、方法传参 三、返回值 向上转型注意事项 向下转型 格式 重写 重写和重载的区别 动态绑定 静态绑定和动态绑定 封装 概念 简单来说就是套壳屏蔽细节。 举例: 想要访问它们时需要一些“接口”…

Java项目实战II基于Java+Spring Boot+MySQL的大创管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者 一、前言 在当前创新创业氛围浓厚的背景下,大学生创新创业项目(简称“大创”&#xff0…

国内旅游:现状与未来趋势分析

在当今社会快速发展的背景下,国内旅游更是呈现出蓬勃的发展态势。中国,这片拥有悠久历史、灿烂文化和壮丽山河的广袤土地,为国内旅游的兴起与发展提供了得天独厚的条件。 本报告将借助 DataEase 强大的数据可视化分析能力,深入剖…

基于SpringBoot的学习资源共享平台

运行环境: jdk8tomcat9mysqlIntelliJ IDEAmavennodejs 设计选用前后端分离的单体架构方式 后端:SpringBootMybatis-PluslogbackElasticsearchRedisMySQLJwtsmtp阿里云OSS 前端:WebPackVueJsAnt Designaxios 主要模块:反馈管理、资源管理、…

【最新】微信小程序连接onenet——stm32+esp8266+onenet实现查看温湿度,控制单片机

微信小程序——stm32esp8266onenet实现查看温湿度,控制单片机 (最新已验证)stm32 新版 onenet dht11esp8266/01s mqtt物联网上报温湿度和控制单片机(保姆级教程) :↓↓👇 👇 👇 &#x1f447…

unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效、伤害等没有触发

UE5系列文章目录 文章目录 UE5系列文章目录前言一、问题分析二、解决方法1. 添加项目设置碰撞检测通道2.玩家角色碰撞设置3.怪物角色碰撞预设 最终效果 前言 在使用unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效…

(17)MATLAB使用伽马(gamma)分布生成Nakagami-m分布的方法1

文章目录 前言一、使用伽马分布生成Nakagami分布随机变量的方法一二、MATLAB仿真代码后续 前言 MATLAB在R2013a版本中引入Nakagami分布对象,可以用来生成Nakagami随机变量。但是在更早的MATLAB版本中,并没有可以直接生成 Nakagami分布的随机变量的内置的…

51单片机系列-按键检测原理

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 独立按键是检测低电平的。 下面我们来看一张对应的电路原理图: 在这张图当中,P1,P2,P3内部都上拉了电阻,但是P0没有&am…

一款基于.NET开发的简易高效的文件转换器

前言 今天大姚给大家分享一款基于.NET开发的免费(GPL-3.0 license)、简易、高效的文件转换器,允许用户通过Windows资源管理器的上下文菜单来转换和压缩一个或多个文件:FileConverter。 使用技术栈 ffmpeg:作为文件转换…

知识图谱入门——10:使用 spaCy 进行命名实体识别(NER)的进阶应用:基于词袋的实体识别与知识抽取

在构建知识图谱的过程中,如何准确地识别和提取实体是关键。spaCy 提供了强大的命名实体识别(NER)功能,我们可以结合自定义规则和工具来实现更精准的实体抽取。本文将详细探讨如何在 spaCy 中实现自定义实体抽取,包括使…

【Nacos 架构 原理】服务发现模块之Nacos注册中心服务数据模型

文章目录 服务(Service)和服务实例(Instance)定义服务服务元数据定义实例实例元数据持久化属性 集群定义集群 生命周期服务的生命周期实例的生命周期集群的生命周期元数据的生命周期 服务(Service)和服务实…

[Meachines] [Easy] Sea WonderCMS-XSS-RCE+System Monitor 命令注入

信息收集 IP AddressOpening Ports10.10.11.28TCP:22,80 $ nmap -p- 10.10.11.28 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 3072 e3:54:…

计算机视觉——图像修复综述篇

目录 1. Deterministic Image Inpainting 判别器图像修复 1.1. sigle-shot framework (1) Generators (2) training objects / Loss Functions 1.2. two-stage framework 2. Stochastic Image Inpainting 随机图像修复 2.1. VAE-based methods 2.2. GAN-based methods …

第 21 章 一条记录的多幅面孔——事务的隔离级别与 MVCC

21.1 事前准备 CREATE TABLE hero ( number INT, NAME VARCHAR ( 100 ), country VARCHAR ( 100 ), PRIMARY KEY ( number ) ) ENGINE INNODB CHARSET utf8;INSERT INTO hero VALUES ( 1, 刘备, 蜀 );21.2 事务隔离级别 在保证事务隔离性的前提下,使用不同的隔…

RTX4060+ubuntu22.04+cuda11.8.0+cuDNN8.6.0 如何根据显卡型号和系统配置cuda和cuDNN所需的安装环境

文章目录 🌕电脑原配置🌕安装cuda和cuDNN前的环境选择🌙cuDNN与CUDA tookit和nvidia driver的对应关系🌙cuda版本选择⭐查看自己的nvidia driver版本和最大支持的CUDA版本⭐最小支持版本 🌙查看11.8.0版本的cuda和ubun…

Redis:hash类型

Redis:hash类型 hash命令设置与读取HSETHGETHMGETHSETNX 哈希操作HEXISTSHDELHKEYSHVALSHGETALLHLENHINCRBYHINCRBYFLOAT 内部编码ziplisthashtable 目前主流的编程语言中,几乎都提供了哈希表相关的容器,Redis自然也会支持对应的内容&#xf…

数据结构之树(4)

摘要:本篇主要讲哈夫曼树、并查集、二叉排序树、平衡二叉树等,非常非常非常重要!!! 一、哈夫曼树 基于霍夫曼树,利用霍夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,…