深度学习-part3(反向传播、GAN)

5. 反向传播

5.1 什么是反向传播?‍

通俗解释:类比几个人站成一排,第一个人看一幅画(输入数据),描述给第二个人(隐层)……依此类推,到最后一个人(输出)的时候,画出来的画肯定不能看了(误差较大)。

反向传播就是:把画拿给最后一个人看(求取误差),然后最后一个人就会告诉前面的人下次描述时需要注意哪里(权值修正)

一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。

目的是更新神经元参数,而神经元参数正是 z=wx+b 中的 (w,b).对参数的更新,利用损失值loss对参数的导数, 并沿着负梯度方向进行更新。

“正向传播”求损失,“反向传播”回传误差

5.2 反向传播是如何工作的?

1.输入层接收x

2.使用权重w对输入进行建模

3.每个隐藏层计算输出,数据在输出层准备就绪

4.实际输出和期望输出之间的差异称为误差

5.返回隐藏层并调整权重,以便在以后的运行中减少此错误

这个过程一直重复,直到我们得到所需的输出。训练阶段在监督下完成。一旦模型稳定下来,就可以用于生产。

5.3 为什么需要反向传播?

•反向传播快速、简单且易于实现

•没有要调整的参数

•不需要网络的先验知识

•模型不需要学习函数的特性

5.4 手推BP

推导:链式求导法则反复用

 

伪代码:

5.5 输入层到输出等变化

6.GAN

        生成式对抗网络,由一个生成器网络和一个判别器网络组成。判别器的训练目的是能够区分生成器的输出与来自训练集的真实图像,生成器的训练目的是欺骗判别器。值得注意的是,生成器从未直接见过训练集中的图像,它所知道的关于数据的信息都来自于判别器。

GAN 相关的技巧:

6.1 生成器

生成器:针对于D我们有标记为1和0的数据,因此我们可以对其进行训练。那么对于生成器,有x(也就是随机噪声z),那么y在哪里呢?对于生成器,我们的目的是使得其能够生成真实的图片,换句话说,我们是希望生成的图片能够骗过D。那么如何通过判别器来产生所谓的y??我们可以这样做:我们通过随机向量(噪声数据)经由生成网络产生一组假图片,我们将这些假图片都标记为 1(也就是说,人为的把假的图片当作真实的),然后将这些假图片输入到判别器中,判别器在对这些图片进行判别的时候,会发现这些图片是假的图片,然后给出低分,这样就产生了误差(因为标记的为1,但是判别器给了低分)。因此,在训练生成器的时候,这个网络是串接的。而在训练生成器的时候,一个很重要的操作就是保持判别器网络的参数不发生改变,只是把误差一直方向传播,传到生成网络那块后更新生成网络的参数,这样就完成了生成网络的训练了它将一个向量(来自潜在空间,训练过程中对其随机采样)转换为一张候选图像。GAN 常见的诸多问题之一,就是生成器“卡在”看似噪声的生成图像上。

在完成生成器的训练之后,我们又可以产生新的假的图片去对判别器进行训练。我们把这个过程称作为单独交替训练。同时要定义一个迭代次数,交替迭代到一定次数后停止即可。

一种可行的解决方案是在判别器和生成器中都使用 dropout。

6.2 判别器

        接下来开发 discriminator 模型,它接收一张候选图像(真实的或合成的)作为输入,并将其划分到这两个类别之一:“生成图像”或“来自训练集的真实图像”。

6.3 训练技巧

  • 输入规范化到(-1,1)之间,最后一层的激活函数使用tanh(BEGAN除外)
  • 使用wassertein GAN的损失函数
  • 如果有标签数据的话,尽量使用标签,也有人提出使用反转标签效果很好,另外使用标签平滑,单边标签平滑或者双边标签平滑
  • 使用mini-batch norm, 如果不用batch norm 可以使用instance norm 或者weight norm
  • 避免使用RELU和pooling层,减少稀疏梯度的可能性,可以使用leakrelu激活函数
  • 优化器尽量选择ADAM,学习率不要设置太大,初始1e-4可以参考,另外可以随着训练进行不断缩小学习率
  • 给D的网络层增加高斯噪声,相当于是一种正则

6.4 目标函数

6.5 算法流程

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

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

相关文章

EDI在汽车主机厂配送流程中的应用

汽车主机厂的汽车配送流程始于汽车 “生产结束 ” ,止于 “交付给经销商 ” 。在这个流程中,企业作为主机厂的下游供应商,与主机厂的物流服务供应商之间的信息交换将会变得十分重要。 配送流程:运输订单以及报告 汽车主机厂提供预…

Elasticsearch8.x版本Java客户端Elasticsearch Java API 如何并发修改

前言 并发控制,一般有两种方案,悲观锁和乐观锁,其中悲观锁是默认每次更新操作肯定会冲突,所以每次操作都要先获取锁,操作完毕再释放锁,适用于写比较多的场景。而乐观锁是默认每次更新操作都不会冲突&#…

完成系统支持Github三方登录

文章目录 1、需求2、在对接系统中完成客户端注册3、创建客户端应用4、CommonOAuth2Provider SpringSecurity OAuth2.0文档: https://docs.spring.io/spring-security/reference/servlet/oauth2/index.html 1、需求 对接Github,在自己系统实现支持Githu…

【C++初阶】第七站:string类的初识(万字详解、细节拉满)

前言: 📍本文知识点:string的初识 本专栏:C 目录 一、什么是STL 二、STL的六大组件 三、STL的缺陷 四、为什么学习string类? 五、标准库中的string类 1、string类(了解) 2、string类的常用接口说明(…

Trent电源设计那些事儿教学

本课程将深入探讨Trent电源设计的关键概念与技术。学生将学习功率电子器件和拓扑、电路保护、稳压技术以及EMI滤波等内容。通过理论和实践相结合的教学方式,帮助学员掌握Trent电源设计的原理与应用。 课程大小:12.5G 课程下载:https://down…

计算机网络——物理层(物理传输介质和物理层的设备)

计算机网络——物理层(物理传输介质和物理层的设备 物理传输介质导向性传输介质双绞线同轴电缆光纤 非导向性传输介质无线电波多径效应 微波地面微波通信ISM 频段 卫星通信 物理层设备中继器集线器中继器和集线器的区别 我们今天进入物理层的物理传输介质和物理层的…

idea项目配置文件中文乱码

问题: 解决方案:修改字符编码。在IntelliJ IDEA的设置中,依次选择File、Settings、Editor、File Encodings,将Global Encoding、Project Encoding、Default encoding for properties files设置为UTF-8 问题解决~~

超越想象的数据可视化:五大工具引领新潮流

在数据分析领域,数据可视化工具是每位分析师的得力助手。它们能够将复杂的数据转化为直观、易懂的图表和图像,帮助分析师快速洞察数据背后的规律与趋势。下面,我将从数据分析师的角度,为大家介绍五个常用的数据可视化工具。 一、…

基于Linux使用C语言实现简单的目录管理

在Linux下&#xff0c;需要实现某个目录下文件的遍历的时候&#xff0c;可以使用opendir&#xff0c;readdir&#xff0c;closedir这些接口。这些接口使用说明如下所示&#xff1a; 1).opendir DIR* opendir(const char * name); #include <sys/types.h> #include …

蓝桥杯练习02随机数生成器

随机数生成器 介绍 实际工作中随机数的使用特别多&#xff0c;比如随机抽奖、随机翻牌。通过随机数还能实现很多有趣的效果&#xff0c;比如随机改变元素的位置或颜色。 本题需要在已提供的基础项目中使用JS知识封装一个函数&#xff0c;该函数可以根据需要&#xff0c;生成指…

Javaweb学习记录(二)web开发入门(请求响应)

第一个基于springboot的web请求程序 通过创建一个带有springboot的spring项目&#xff0c;项目会自动生成一个程序启动类&#xff0c;该类启动时会启动该整个项目&#xff0c;而我们需要写一个web请求类&#xff0c;要求在本地浏览器上发送请求后&#xff0c;浏览器显示Hello&…

排序问题—java实现

冒泡排序 算法思想&#xff1a; 每次比较相邻元素&#xff0c;若逆序则交换位置&#xff0c;每一趟比较n-1次&#xff0c;确定一个最大值。故需比较n趟&#xff0c;来确定n个数的位置。 外循环来表示比较的趟数&#xff0c;每一趟确定一个最大数的位置内循环来表示相邻数字两…

如何在wps的excel表格里面使用动态gif图

1、新建excel表格&#xff0c;粘贴gif图到表格里面&#xff0c;鼠标右键选择超链接。 找到源文件&#xff0c; 鼠标放到图片上的时候&#xff0c;待有个小手图标&#xff0c;双击鼠标可以放大看到动态gif图。 这种方式需要确保链接的原始文件位置和名称不能变化&#xff01;&a…

阿里云发布 AI 编程助手 “通义灵码”——VSCode更强了 !!

文章目录 什么是 通义灵码&#xff08;TONGYI Lingma&#xff09; 快速体验“通义灵码” 什么是“通义灵码”&#xff08;TONGYI Lingma&#xff09; 通义灵码&#xff08;TONGYI Lingma&#xff09;&#xff0c;是阿里云出品的一款基于通义大模型的智能编码辅助工具&#xff…

创建一个electron-vite项目

前置条件&#xff1a;非常重要&#xff01;&#xff01;&#xff01; npm: npm create quick-start/electronlatest yarn: yarn create quick-start/electron 然后进入目录&#xff0c;下载包文件&#xff0c;运行项目 到以上步骤&#xff0c;你已经成功运行起来一个 electr…

从底层结构开始学习FPGA(0)----FPGA的硬件架构层次(BEL Site Tile FSR SLR Device)

系列目录与传送门 《从底层结构开始学习FPGA》目录与传送门 Xilinx的FPGA&#xff0c;从硬件架构的角度可以划分为6个层次&#xff0c;从底层到顶层依次是&#xff1a; BEL&#xff08;最底层单元&#xff09;SiteTileFSRSLRDevice&#xff08;FPGA芯片&#xff09; 接下来我…

论文解析:V3D: Video Diffusion Models are Effective 3DGenerators

摘要&#xff1a; 自动三维生成最近引起了广泛关注。最近的方法大大加快了生成速度&#xff0c;但由于模型容量有限或三维数据&#xff0c;生成的物体通常不够精细。在视频扩散模型最新进展的推动下&#xff0c;我们引入了 V3D&#xff0c;利用预训练视频扩散模型的世界模拟能…

力扣17. 电话号码的字母组合

Problem: 17. 电话号码的字母组合 文章目录 思路及解法复杂度Code 题目描述 思路及解法 1.将电话号码和对应的数组存入数组中创建映射关系&#xff1b; 2.编写&#xff0c;并调用回溯函数&#xff0c;当决策阶段等于digits的长度时&#xff0c;将当前的决策路径添加到结果集合中…

自学Python第二十九天-feapder框架创建爬虫

自学Python第二十九天-feapder框架创建爬虫 安装feapder 的设计架构feapder 框架的简单使用简单创建爬虫简单爬取数据简单的数据保存 中间件校验浏览器渲染使用浏览器渲染获取接口数据 feapder是一款上手简单&#xff0c;功能强大的 Python爬虫框架&#xff0c;内置 AirSpide…

linux安装WordPress问题汇总,老是提示无法连接到FTP服务器解决方案

最近在做一些建站相关的事情&#xff0c;遇到一些大大小小的问题都整理在这里 1.数据库密码和端口&#xff0c;千万要复杂一点&#xff0c;不要使用默认的3306端口 2.wordpress算是一个php应用吧&#xff0c;所以安装流程一般是 apache http/nginx——php——mysql——ftp &…