python 神经网络归纳

CNN卷积神经网络

一个卷积神经网络主要由以下5层组成:

  • 数据输入层/ Input layer
  • 卷积计算层/ CONV layer
  • ReLU激励层 / ReLU layer
  • 池化层 / Pooling layer
  • 全连接层 / FC layer

1. 数据输入层

该层要做的处理主要是对原始图像数据进行预处理,其中包括:

  • 去均值:把输入数据各个维度都中心化为0,如下图所示,其目的就是把样本的中心拉回到坐标系原点上。
  • 归一化:幅度归一化到同样的范围,如下所示,即减少各维度数据取值范围的差异而带来的干扰,比如,我们有两个维度的特征A和B,A范围是0到10,而B范围是0到10000,如果直接使用这两个特征是有问题的,好的做法就是归一化,即A和B的数据都变为0到1的范围。
  • PCA/白化:用PCA降维;白化是对数据各个特征轴上的幅度归一化

2. 卷积计算层

这一层就是卷积神经网络最重要的一个层次,也是“卷积神经网络”的名字来源。
在这个卷积层,有两个关键操作:

  • 局部关联。每个神经元看做一个滤波器(filter)
  • 窗口(receptive field)滑动, filter对局部数据计算

先介绍卷积层遇到的几个名词:

  • 深度/depth(解释见下图)
  • 步幅/stride (窗口一次滑动的长度)
  • 填充值/zero-padding

激励层的实践经验:

①不要用sigmoid!不要用sigmoid!不要用sigmoid!
② 首先试RELU,因为快,但要小心点
③ 如果2失效,请用Leaky ReLU或者Maxout
④ 某些情况下tanh倒是有不错的结果,但是很少

参见 Geoffrey Hinton(即深度学习之父)的论文:Rectified Linear Units Improve Restricted Boltzmann Machines 墙裂推荐此论文! 现在上篇文章写的免费下载论文的方法就可以用上了。

4.池化层

池化层夹在连续的卷积层中间, 用于压缩数据和参数的量,减小过拟合。
简而言之,如果输入是图像的话,那么池化层的最主要作用就是压缩图像。

这里再展开叙述池化层的具体作用:

  1. 特征不变性,也就是我们在图像处理中经常提到的特征的尺度不变性,池化操作就是图像的resize,平时一张狗的图像被缩小了一倍我们还能认出这是一张狗的照片,这说明这张图像中仍保留着狗最重要的特征,我们一看就能判断图像中画的是一只狗,图像压缩时去掉的信息只是一些无关紧要的信息,而留下的信息则是具有尺度不变性的特征,是最能表达图像的特征。
  2. 特征降维,我们知道一幅图像含有的信息是很大的,特征也很多,但是有些信息对于我们做图像任务时没有太多用途或者有重复,我们可以把这类冗余信息去除,把最重要的特征抽取出来,这也是池化操作的一大作用。
  3. 在一定程度上防止过拟合,更方便优化。
  4. 5.全连接层

    两层之间所有神经元都有权重连接,通常全连接层在卷积神经网络尾部

  5. 总结:卷积通过卷积核进行特征提取,池化层进行压缩,最终转为全连接层进行汇总

RNN 循环神经网络

循环神经网络(RNN)知识入门 - 知乎

比较特殊的LSTM循环神经网络

RNN背后的想法是利用顺序信息。在传统的神经网络中,我们假设所有输入(和输出)彼此独立。但对于许多任务而言,这是一个非常糟糕的想法。如果你想预测句子中的下一个单词,那你最好知道它前面有哪些单词。RNN被称为"循环",因为它们对序列的每个元素执行相同的任务,输出取决于先前的计算。考虑RNN的另一种方式是它们有一个“记忆”,它可以捕获到目前为止计算的信息。理论上,RNN可以利用任意长序列中的信息,但实际上它们仅限于回顾几个步骤(稍后将详细介绍)。

长短期记忆(LSTM)模型可用来解决稳定性和梯度消失的问题。在这个模型中,常规的神经元被存储单元代替。存储单元中管理向单元移除或添加的结构叫门限,有三种:遗忘门、输入门、输出门,门限由Sigmoid激活函数和逐点乘法运算组成。前一个时间步长的隐藏状态被送到遗忘门、输入门和输出门。在前向计算过程中,输入门学习何时激活让当前输入传入存储单元,而输出门学习何时激活让当前隐藏层状态传出存储单元。

RNN在NLP的许多任务上取得巨大成功。主要的应用领域有:

  • 语言建模与生成文本(本文示例重点介绍)
    • 给定一系列单词,我们想要预测给定下一单词的概率
    • 能够预测下一个单词的副作用是我们得到一个生成模型,它允许我们通过从输出概率中抽样来生成新文本
    • 应用模式many to one
  • 机器翻译
    • 机器翻译类似于语言建模,因为我们的输入是源语言中的一系列单词(例如德语),我们希望以目标语言输出一系列单词(例如英语)
    • 应用模式many to many
  • 语音识别
    • 给定来自声波的声学信号的输入序列,我们可以预测一系列语音片段及其概率
    • 应用模式many to many

  • 生成图像描述
    • 与卷积神经网络一起,RNN已被用作模型的一部分,以生成未标记图像的描述
    • 应用模式one to many

RAN对抗神经网络

 生成对抗网络(GAN) - 知乎

(GAN):GAN包含有两个模型,一个是生成模型(generative model),一个是判别模型(discriminative model)。生成模型的任务是生成看起来自然真实的、和原始数据相似的实例。判别模型的任务是判断给定的实例看起来是自然真实的还是人为伪造的(真实实例来源于数据集,伪造实例来源于生成模型)。

这可以看做一种零和游戏。论文采用类比的手法通俗理解:生成模型像“一个造假团伙,试图生产和使用假币”,而判别模型像“检测假币的警察”。生成器(generator)试图欺骗判别器(discriminator),判别器则努力不被生成器欺骗。模型经过交替优化训练,两种模型都能得到提升,但最终我们要得到的是效果提升到很高很好的生成模型(造假团伙),这个生成模型(造假团伙)所生成的产品能达到真假难分的地步。

在这个过程中,我们想象有两类人:警察和罪犯。我们看看他们的之间互相冲突的目标:

  • 罪犯的目标:他的主要目标就是想出伪造货币的复杂方法,从而让警察无法区分假币和真币。
  • 警察的目标:他的主要目标就是想出辨别货币的复杂方法,这样就能够区分假币和真币。

随着这个过程不断继续,警察会想出越来越复杂的技术来鉴别假币,罪犯也会想出越来越复杂的技术来伪造货币。这就是 GAN 中“对抗过程”的基本理念。

GAN 充分利用“对抗过程”训练两个神经网络,这两个网络会互相博弈直至达到一种理想的平衡状态,我们这个例子中的警察和罪犯就相当于这两个神经网络。其中一个神经网络叫做生成器网络 G(Z),它会使用输入随机噪声数据,生成和已有数据集非常接近的数据;另一个神经网络叫鉴别器网络 D(X),它会以生成的数据作为输入,尝试鉴别出哪些是生成的数据,哪些是真实数据。鉴别器的核心是实现二元分类,输出的结果是输入数据来自真实数据集(和合成数据或虚假数据相对)的概率。

本文我们用 TensorFlow 实现了一种概念验证 GAN 模型,能从非常简单的数据分布中生成数据。在你自己练习时,建议将文中代码进行如下调整:

  • 对鉴别器更新之前和之后的情况进行可视化
  • 改变各个层级的激活函数,看看训练和生成样本的区别
  • 添加更多层以及不同类型的层,看看对训练时间和训练稳定性的影响
  • 调整代码以生成数据,包含来自两个不同曲线的数据
  • 调整以上代码,能够处理更复杂的数据,比如 MNIST,CIFAR-10,等等。

手把手教你理解和实现生成式对抗神经网络(GAN) - 知乎

对抗神经网络可用用在很多领域:图片生成,老照片上色,图片内容修改等等

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

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

相关文章

主流数据库体系结构

MySQL 我们通常所说的 MySQL 数据库服务器由一个实例(instance)以及一个数据库(database)组成。实例包括一组后台进程/线程和许多内存结构,用于管理数据库;数据库由一组磁盘文件组成,用于存储数…

基于FPGA的简易BPSK和QPSK

1、框图 2、顶层 3、m_generator M序列的生成,输出速率为500Kbps 4、S2P是串并转换模块 将1bit的m序列转换到50M时钟下的2bit M序列数据(就有4个象限); 5、my_pll是生成256M的时钟作为载波,因为sin和cos信号的…

论文阅读<MULTISCALE DOMAIN ADAPTIVE YOLO FOR CROSS-DOMAIN OBJECT DETECTION>

论文链接:https://arxiv.org/pdf/2106.01483v2.pdfhttps://arxiv.org/pdf/2106.01483v2.pdf 代码链接:GitHub - Mazin-Hnewa/MS-DAYOLO: Multiscale Domain Adaptive YOLO for Cross-Domain Object DetectionMultiscale Domain Adaptive YOLO for Cross…

Postgresql源码(118)elog/ereport报错跳转功能分析

1 日志接口 elog.c完成PG中日志的生产、记录工作,对外常用接口如下: 1.1 最常用的ereport和elog ereport(ERROR,(errcode(ERRCODE_UNDEFINED_TABLE),errmsg("relation \"%s\" does not exist",relation->relname)));elog(ERRO…

文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络

文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络 本周给大家分享文献的主题是生成对抗网络(Generative adversarial networks, GANs)在医学影像中的应用。文献…

JFreeChart 生成图表,并为图表标注特殊点、添加文本标识框

一、项目场景: Java使用JFreeChart库生成图片,主要场景为将具体的数据 可视化 生成曲线图等的图表。 本篇文章主要针对为数据集生成的图表添加特殊点及其标识框。具体包括两种场景:x轴为 时间戳 类型和普通 数值 类型。(y轴都为…

【ceph】pg down的处理流程

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

【AI美图】第09期效果图,AI人工智能汽车+摩托车系列图集

期待中的未来AI汽车 欢迎来到未来的世界,一个充满创新和无限可能的世界,这里有你从未见过的科技奇迹——AI汽车。 想象一下,你站在十字路口,繁忙的交通信号灯在你的视线中闪烁,汽车如潮水般涌来,但是&…

灰度化、二值化、边缘检测、轮廓检测

灰度化 定义 灰度图像是只含亮度信息,不含色彩信息的图像。灰度化处理是把彩色图像转换为灰度图像的过程,是图像处理中的基本操作。OpenCV 中彩色图像使用 BGR 格式。灰度图像中用 8bit 数字 0~255 表示灰度,如:0 表…

使用汇编和反汇编引擎写一个x86任意地址hook

最简单的Hook 刚开始学的时候,用的hook都是最基础的5字节hook,也不会使用hook框架,hook流程如下: 构建一个jmp指令跳转到你的函数(函数需定义为裸函数)保存被hook地址的至少5字节机器码,然后写入构建的jmp指令接着在…

Layui 2.9.2 列表商品展示页 用模板引擎 laytpl Ajax 读取json 数据 筛选数组 filter css 限制文体显示过长用。。。代替

全代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>软件管理器</title><meta name"renderer" content"webkit"><meta http-equiv"X-UA-Compatible" conten…

Flink系列之:Elasticsearch SQL 连接器

Flink系列之&#xff1a;Elasticsearch SQL 连接器 一、Elasticsearch SQL 连接器二、创建 Elasticsearch表三、连接器参数四、Key 处理五、动态索引六、数据类型映射 一、Elasticsearch SQL 连接器 Sink: BatchSink: Streaming Append & Upsert ModeElasticsearch 连接器…

Graylog配置日志保留策略

找了半天没找到说的清楚的&#xff0c;只能抠官方文档 graylog的归档&#xff08;日志持久化&#xff09;只有付费版才能用&#xff0c;所以日志只能存在es中 1.理解官方给出的几个概念 轮转策略 (Index Rotation Strategy): 轮转策略定义了何时创建新的索引以及何时关闭旧的索…

pytorch-模型预测概率值为负数

在进行ocr识别模型预测的时候&#xff0c;发现预测的结果是正确的&#xff0c;但是概率值是负数&#xff1a; net_out net(img) #torch.Size([70, 1, 41]) logit, preds net_out.max(2) #41是类别 需要对类别取最大值 preds preds.transpose(1, 0).contiguous().view(-1) …

Win10安装Gogs保姆级教程

什么是 Gogs? Gogs 是一款极易搭建的自助 Git 服务。 开发目的 Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发&#xff0c;并且支持 Go 语言支持的 所有平台&#xff0c;包括 Linux、Mac OS X…

微软官方出品:GPT大模型编排工具,支持C#、Python等多个语言版本

随着ChatGPT的火热&#xff0c;基于大模型开发应用已经成为新的风口。虽然目前的大型模型已经具备相当高的智能水平&#xff0c;但它们仍然无法完全实现业务流程的自动化&#xff0c;从而达到用户的目标。 微软官方开源的Semantic Kernel的AI编排工具&#xff0c;就可以很好的…

C语言struct,union内存对齐

测试环境&#xff1a; #include<stdio.h> int main(){//1字节对齐struct XXX{unsigned char ch;unsigned int in;unsigned short si;}__attribute__((packed));struct XXX xxx;printf("%zd\n",sizeof(xxx));//7#pragma pack(1)struct YYY{unsigned char ch;u…

057:vue组件方法中加载匿名函数

第057个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

CSS:元素显示模式与背景

CSS&#xff1a;元素显示模式与背景 元素显示模式什么是元素显示模式块级元素 block行内元素 inline行内块元素 inline-block元素显示模式对比元素显示模式转换 display 背景背景颜色 background-color背景图片 background-image背景平铺 background-repeat背景图片位置 backgr…

MIT6.5840-2023-Lab4B: Sharded K/V Service-Sharded K/V Server

实验内容 实现一个分片 k/v 存储系统&#xff0c;分片指如所有以“a”开头的键可能是一个分片&#xff0c;所有以 “b”开头的键可能是另一个分片。每个副本组仅处理几个分片的 Put、Append 操作&#xff0c;实现并行操作&#xff0c;系统总吞吐量&#xff08;单位时间的放入和…