GAN:对抗生成网络,前向传播和后巷传播的区别

目录

GAN:对抗生成网络

损失函数

判别器开始波动很大,先调整判别器

 生成样本和真实样本的统一:真假难辨​编辑

 文字专图片​编辑

 头像转表情包​编辑

 头像转3D​编辑

后向传播

1. 前向传播(forward)

2. 反向传播(backward):得到权重参数公式,寻找优路径

反向传播的四个基本方程

链式法则误差求和

 梯度下降权重参数更新​编辑


GAN:对抗生成网络

 

 

 

损失函数

 

判别器开始波动很大,先调整判别器

 生成样本和真实样本的统一:真假难辨

 

 

 图像数据集生成

 

 文字专图片

 头像转表情包

 头像转3D

 贝叶斯:后验

 

 

 

后向传播

 

 


前向传播:通过输入层输入,一路向前,通过输出层输出的一个结果。如图指的是1 、 x1、x2、xn、与权重(weights)相乘,并且加上偏置值b0,然后进行总的求和,同时通过激活函数激活之后算出结果。这个过程就是前向传播
反向传播:通过输出反向更新权重的过程。具体的说输出位置会产生一个模型的输出,通过这个输出以及原数据计算一个差值。将前向计算过程反过来计算。通过差值和学习率更新权重。

1. 前向传播(forward)

简单理解就是将上一层的输出作为下一层的输入,并计算下一层的输出,一直到运算到输出层为止。接下来我们用数学公式描述一下:

权重

偏置

设 wjkl 为 l−1 层第 k 个神经元到第 l 层第 j 个神经元的weight, bjl 为第 l 层第 j 个神经元的bias, ajl 为第第 l 层第 j 个神经元的激活值(激活函数的输出,保证模型的非线性)。

对于Layer 2的输出 a1(2) ,a2(2),a3(2),

a1(2)=σ(z1(2))=σ(w11(2)x1+w12(2)x2+w13(2)x3+b1(2))

a2(2)=σ(z2(2))=σ(w21(2)x1+w22(2)x2+w23(2)x3+b2(2))

a3(2)=σ(z3(2))=σ(w31(2)x1+w32(2)x2+w33(2)x3+b3(2))

对于Layer 3的输出a1(3),

a1(3)=σ(z1(3))=σ(w11(3)a1(2)+w12(3)a2(2)+w13(3)a3(2)+b1(3))

a2(3)=σ(z2(3))=σ(w21(3)a1(2)+w22(3)a2(2)+w23(3)a3(2)+b2(3))

从上面可以看出,使用代数法一个个的表示输出比较复杂,而如果使用矩阵法则比较的简洁。将上面的例子一般化,并写成矩阵乘法的形式,

z(l)=W(l)a(l−1)+b(l)

a(l)=σ(z(l))

其中 σ 为 激活函数,如Sigmoid,ReLU,PReLU等。

2. 反向传播(backward):得到权重参数公式,寻找优路径

实际上,反向传播仅指用于计算梯度的方法而另一种算法,例如随机梯度下降法,才是使用该梯度来进行学习。原则上反向传播可以计算任何函数的到导数

在了解反向传播算法之前,我们先简单介绍一下链式法则:

微积分中的链式法则(为了不与概率中的链式法则相混淆)用于计复合函数的导数。反向传播是一种计算链式法则的算法,使用高效的特定运输顺序。

设 x 是实数, f 和 g 是从实数映射到实数的函数。假设 y=g(x) 并且 z=f(g(x))=f(y) 。那么链式法则就是: dzdx=dzdydydx 。

反向传播算法的核心是代价函数 C 对网络中参数(各层的权重 W 和偏置 b )的偏导表达式 ∂C∂W 和∂C∂b。这些表达式描述了代价函数值C随权重W或偏置b变化而变化的程度。BP算法的简单理解:如果当前代价函数值距离预期值较远,那么我们通过调整权重W或偏置b的值使新的代价函数值更接近预期值(和预期值相差越大,则权重W或偏置b调整的幅度就越大)。一直重复该过程,直到最终的代价函数值在误差范围内,则算法停止。

BP算法可以告诉我们神经网络在每次迭代中,网络的参数是如何变化的,理解这个过程对于我们分析网络性能或优化过程是非常有帮助的,所以还是尽可能搞透这个点。

反向传播过程中要计算偏导表达式 ∂C/∂W 和∂C/∂b,我们先对代价函数做两个假设,以二次损失函数为例:

其中 n 为训练样本 x 的总数, y=y(x) 为期望的输出,即ground truth, L 为网络的层数, aL(x) 为网络的输出向量。

假设1:总的代价函数可以表示为单个样本的代价函数之和的平均:

 这个假设的意义在于,因为反向传播过程中我们只能计算单个训练样本的∂Cx/∂Wx 和∂C/∂b,在这个假设下,我们可以通过计算所有样本的平均来得到总体的∂C/∂W 和∂C/∂b。

假设2:代价函数可以表达为网络输出的函数 Loss=C(aL) ,比如单个样本 x 的二次代价函数可以写为:

反向传播的四个基本方程

权重W或偏置b的改变如何影响代价函数 C 是理解反向传播的关键。最终,这意味着我们需要计算出每个的∂C/∂Wjkl 和∂C/∂bjkl,在讨论基本方程之前,我们引入误差 δ 的概念,δjl表示第 l 层第 j 个神经元的误差

如上图所示,假设有个小恶魔在第 l 层第 j 个神经元捣蛋,他让这个神经元的权重输出变化了 Δzjl ,那么这个神经元的激活输出为 δ(zjl+Δzjl) ,然后这个误差向后逐层传播下去,导致最终的代价函数变化了 ∂C/∂zjlΔzjl 。现在这个小恶魔改过自新,它想帮助我们尽可能减小代价函数的值(使网络输出更符合预期)。假设 ∂C∂zjl 一开始是个很大的正值或者负值,小恶魔通过选择一个和 ∂C/∂zjl 方向相反的Δzjl使代价函数更小(这就是我们熟知的梯度下降法)。随着迭代的进行, ∂C/∂zjl 会逐渐趋向于0,那么Δzjl对于代价函数的改进效果就微乎其微了,这时小恶魔就一脸骄傲的告诉你:“俺已经找到了最优解了(局部最优)”。这启发我们可以用 ∂C/∂zjl 来衡量神经元的误差: δjl=∂C∂zjl 。

下面就来看看四个基本方程是怎么来的。

1. 输出层的误差方程

果上面的东西你看明白了,这个方程应该不难理解,等式右边第一项 ∂C∂ajL 衡量了代价函数随网络最终输出的变化快慢,而第二项 σ(1)(zjL) 则衡量了激活函数输出随 zjL 的变化快慢。当激活函数饱和,即 σ(1)(zjL)≈0 时,无论∂C∂ajL多大,最终 δjL≈0 ,输出神经元进入饱和区,停止学习。

方程中两项都很容易计算,如果代价函数为二次代价函数:

可以得到:

同理,对激活函数 σ(z) 求 zjL 的偏导即可求得 σ(1)(zjL) ,将它重写为矩阵形式:

⊙ 为Hadamard积,即矩阵的点积。

链式法则误差求和

 梯度下降权重参数更新

 

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

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

相关文章

Googel Earth Engine 配置Python 环境

1. 安装并配置python环境 此处不再赘述 2. 安装 earthengine-api pip install earthengine-api C:\Users\xixi>pip install earthengine-api Collecting earthengine-apiUsing cached earthengine_api-0.1.363-py3-none-any.whl Requirement already satisfied: google-c…

大模型技术实践(二)|关于Llama 2你需要知道的那些事儿

在上期文章中,我们简要回顾了Llama模型的概况,本期文章我们将详细探讨【关于Llama 2】,你需要知道的那些事儿。 01-Llama 2的性能有多好? 作为Meta新发布的SOTA开源大型语言模型,Llama 2是Llama模型的延续和升级。Ll…

Java“牵手”虾皮商品列表数据,关键词搜索虾皮(Shopee)商品数据接口,虾皮API申请指南

虾皮(SHOPEE)商城是一个网上批发购物平台,售卖各类商品,包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取虾皮商品列表和商品详情页面数据,您可以通过开放平台的接口或者直接访问虾皮商城的网页来获取商品详情…

QT中资源文件resourcefile的使用,使用API完成页面布局

QT中资源文件resourcefile的使用 之前添加图标的方法使用资源文件的方法创建资源文件资源文件添加前缀资源文件添加资源使用资源文件中的资源 使用API完成布局使用QHBoxLayout完成水平布局使用QVBoxLayout完成垂直布局使用QGridLayout完成网格布局 在Qt中引入资源文件好处在于他…

数据结构:二叉树及相关操作

文章目录 前言一、树的概念及结构1.什么是树2. 树的相关概念3.树的表示 二、二叉树概念及结构1.二叉树概念2.特殊的二叉树3.二叉树的性质4.二叉树的存储结构 三、平衡二叉树实现1.创建树和树的前中后遍历1.前中后遍历2.创建树且打印前中后遍历 2.转换为平衡二叉树和相关操作1.转…

解密长短时记忆网络(LSTM):从理论到PyTorch实战演示

目录 1. LSTM的背景人工神经网络的进化循环神经网络(RNN)的局限性LSTM的提出背景 2. LSTM的基础理论2.1 LSTM的数学原理遗忘门(Forget Gate)输入门(Input Gate)记忆单元(Cell State)…

软件测试技术分享丨遇到bug怎么分析?

为什么定位问题如此重要? 可以明确一个问题是不是真的“bug” 很多时候,我们找到了问题的原因,结果发现这根本不是bug。原因明确,误报就会降低 多个系统交互,可以明确指出是哪个系统的缺陷,防止“踢皮球…

vue3范围选择组件封装

个人项目地址: SubTopH前端开发个人站 (自己开发的前端功能和UI组件,一些有趣的小功能,感兴趣的伙伴可以访问,欢迎提出更好的想法,私信沟通,网站属于静态页面) SubTopH前端开发个人站…

react 11之 router6路由 (两种路由模式、两种路由跳转、两种传参与接收参数、嵌套路由,layout组件、路由懒加载)

目录 react路由1:安装和两种模式react路由2:两种路由跳转 ( 命令式与编程式)2-1 路由跳转-命令式2-2 路由跳转-编程式 - 函数组件2-2-1 app.jsx2-2-2 page / Home.jsx2-2-3 page / About.jsx2-2-4 效果 react路由3:函数…

mysql 8.0 窗口函数 之 分布函数 与 sql server (2017以后支持) 分布函数 一样

mysql 分布函数 percent_rank() :等级值 百分比cume_dist() :累积分布值 percent_rank() 计算方式 (rank-1)/(rows-1), 其中 rank 的值为使用RANK()函数产生的序号,rows 的值为当前…

进行Stable Diffusion的ai训练怎么选择显卡?

Stable Diffusion主要用于从文本生成图像,是人工智能技术在内容创作行业中不断发展的应用。要在本地计算机上运行Stable Diffusion,您需要一个强大的 GPU 来满足其繁重的要求。强大的 GPU 可以让您更快地生成图像,而具有大量 VRAM 的更强大的…

奥威BI数据可视化工具:个性化定制,打造独特大屏

每个人都有自己独特的审美,因此即使是做可视化大屏,也有很多人希望做出不一样的报表,用以缓解审美疲劳的同时提高报表浏览效率。因此这也催生出了数据可视化工具的个性化可视化大屏制作需求。 奥威BI数据可视化工具:个性化定制&a…

在Linux系统上安装和配置Redis数据库,无需公网IP即可实现远程连接的详细解析

文章目录 1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一个固定tcp地址4.2 配置固定TCP地址4.3 使用固定的tcp地址连接 Redis作为一款高速缓存的key value键值对的数据库,在…

消息队列——RabbitMQ(一)

MQ的相关概念 什么事mq MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中&#xff…

【Python爬虫案例】爬取大麦网任意城市的近期演出!

老规矩,先上结果: 含10个字段: 页码,演出标题,链接地址,演出时间,演出城市,演出地点,售价,演出类别,演出子类别,售票状态。 代码演示…

一款打工人必备的电脑端自律软件!!冲鸭打工人!!

你!有没有渴望进步!! 你!有没有渴望变强!!! 成为大佬!!!超越巨佬!!! 这就是一款为这样的你量身定做的程序:输入…

vue3 tailwindcss的使用

首先安装依赖: npm install -D tailwindcsslatest postcsslatest autoprefixerlatestnpm i -D unocss 然后vite.config.ts中 引入 import Unocss from unocss/viteexport default defineConfig({plugins: [Unocss(),],})终端执行: npx tailwindcss in…

【HTML】HTML面试知识梳理

目录 DOCTYPE(文章类型)head标签浏览器乱码的原因及解决常用的meta标签与SEOscript标签中defer和async的区别src&href区别HTML5有哪些更新语义化标签媒体标签表单进度条、度量器DOM查询Web存储Canvas和SVG拖放 (HTML5 drag API&#xff0…

跨平台图表:ChartDirector for .NET 7.1 Crack

什么是新的 ChartDirector for .NET 7.0 支持跨平台使用,但仅限于 .NET 6。这是因为在 .NET 7 中,Microsoft 停止了用于非 Windows 使用的 .NET 图形库 System.Drawing.Common。由于 ChartDirector for .NET 7.0 依赖于该库,因此它不再支持 .…

村口的人家排放污水,污水浸染了整个村子,怎么办

从前有一个很不错的村子里,村子里有很多户人家,随着生活水平越来越好,房子也修起来了,柏油马路也宽敞了,大家进出村子,都要走那条马路,要不就出不去。 目录 1. 修厕所 2. 村口的日家 3. 告诉…