【深度学习】动手学深度学习——编码器-解码器

2023-11-13

参考资料:
https://zh.d2l.ai/chapter_recurrent-modern/encoder-decoder.html

1 深度学习简介

核心思想:用数据编程
机器学习:寻找适用不同问题的函数形式,以及如何使用数据来获取函数的参数
深度学习:机器学习中的一类函数,形式为多层神经网络。

赫布理论:神经通过正向强化来学习(感知机算法原型)
随机梯度下降:强化合理的,惩罚不合理的,获得好的网络参数

神经网络核心原则:

  • 交替使用线性单元和非线性单元,统称为层
  • 使用链式法则(反向传播)更新网络参数

核方法、决策树、概率图模型在数据和计算力少的时候好用

算力增长可以用于优化参数,使用非线性处理单元可以提高存储利用效率。

深度学习发展原因:

  • 丢弃法,解决过拟合(在网络中加入噪声)
  • 注意力机制,在不增加参数的情况下扩大记忆容量和复杂度(指针记忆中间状态)
  • 记忆网络和编码器-解释器,允许重复修改深度网络的内部状态(修改内存)
  • GAN网络,传统上关注找正确的概率分布和采样算法。GAN将采样替换成任意含有可微分参数的算法,这些参数被训练到使辨别器不能分别真实和生成的样本。可用任意算法来生成输出。
  • 分布式并行训练:随机梯度下降需要更小的批量
  • 深度学习框架,TensorFlow(Keras对TensorFlow进行了封装),pytorch
    在这里插入图片描述
    案例:
  • 搜索,个性化推荐,网页排序
  • 智能助手
  • 物体识别
  • 博弈
  • 自动驾驶
  • 深度学习在CV领域应用

特点

表征学习:关注自动找出表示数据的合适方式,使输入变为正确的输出
深度学习:具有多级表示的表征学习方法。从原始数据开始,通过简单的函数将该级的表示变换为更高级的表示。深度学习可看作由许多简单函数复合而成的函数

  • 深度学习自动找出每一级表示数据的合适方式
  • 端到端训练:没有特征提取阶段,用自动优化的逐级过滤器替代。
  • NLP中,词袋模型(将一个句子映射到一个词频向量,忽视单词排列顺序和标点符号)不适用,可用词嵌入模型。
  • 从含参数统计模型转向无参数模型:数据稀缺时,简化对现实的假设得到实用模型。数据充足时,用更好拟合现实的无参数模型替代。
  • 对非最优解的包容、对非凸非线性优化的使用

2 预备知识

用conda安装
创建虚拟环境:conda env create -f environment.yml
激活虚拟环境:conda deactivate

5 卷积神经网络

要求卷积核和偏差的参数
二维互相关运算
在这里插入图片描述
核数组又叫卷积核或过滤器
二维卷积层:将输入和卷积核做互相关后,加上一个标量偏差得到输出

通过数据学习核数组:输入数据X和输出数据Y,来学习核数组K
训练时通常先对卷积核随机初始化,使⽤平⽅误差来⽐较Y和卷积层的输出,计算梯度来更新权重(卷积核的参数)。

卷积运算:将核数组左右翻转再上下反转(旋转180度),再做互相关运算。

由于学习的是核数组的参数,不管使用互相关还是卷积,均能够得到想要的输出结果。后续卷积运算均指互相关运算。

特征图:二维卷积层输出的二维数组
感受野:特征图上单个元素(1个)在输入上的反向相关元素(9个)。更深的网络可增加单个元素的感受野

自然语言处理

10.9 编码器—解码器(seq2seq)

在自然语言处理中,输入输出都可以是不定长序列,此时可以用编码器—解码器(encoder-decoder)[1] 或者seq2seq模型 [2]。根据“编码器-解码器”架构的设计, 我们可以使用两个循环神经网络(分别叫做编码器和解码器)来设计一个序列到序列学习的模型。
在这里插入图片描述

编码器接受一个长度可变的序列作为输入, 并将其转换为具有固定形状的编码状态。
解码器将固定形状的编码状态映射到长度可变的序列

“编码器-解码器”架构是形成后续章节中不同序列转换模型的基础。
使⽤编码器—解码器将上述英语句⼦翻译成法语句⼦
使⽤编码器—解码器将上述英语句⼦翻译成法语句⼦

<eos>(end of sequence)表⽰序列的终⽌。
<bos>(beginning of sequence)表⽰序列的开始。

编码器的作⽤是把⼀个不定⻓的输⼊序列变换成⼀个定⻓的背景变量c,并在该背景变量中编码输⼊序列信息。编码器可以使⽤循环神经⽹络。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【深度学习】动手学深度学习——编码器-解码器 的相关文章

随机推荐

  • JSP( `EL表达式——获取数据` 和 `JSTL标签——展现数据`)(已被替代) 、 `MVC模式` 和 `三层架构`实现增删改查操作

    1 JSP 概述 JSP 全称 Java Server Pages Java 服务端页面 是一种动态的网页技术 其中既可以定义 HTML JS CSS等静态内容 还可以定义 Java代码的动态内容 也就是 JSP HTML Java JSP
  • 【Linux】Ubuntu开启root账户,以及后续连接MobaXterm

    一 开启root账户 1 首先在Ubuntu中打开终端 输入 sudo passwd root 完成root用户密码设置 效果如下图所示 2 输入下列代码 修改文件配置 sudo vim usr share lightdm lightdm
  • python脚本将json文件生成C语言结构体

    1 引言 以前用过python脚本根据excel生成相关C语言代码 其实本质就是文件的读写 主要是逻辑问题 这次尝试将json文件生成C语言的结构体 2 代码 这是一个json文件 生成这个结构体的本质是深度优先遍历 为了适应最复杂的情况
  • 很火的AI换脸怎么做的?方法其实非常简单

    网上很火的AI换脸是怎么做到的呢 将自己的脸部特征换到名人照片中 可以让我们看到自己和名人的组合效果如何 还可以将自己的脸部特征换到历史人物的照片中 看看自己是否有历史人物的气质 这种操作也非常有趣 看看自己是否适应不同的文化氛围 这也是一
  • 参加CSDN第六期编程竞赛感想

    CSDN编程竞赛报名地址 https edu csdn net contest detail 16 请不要删掉此地址 前言 背景 个人虽已经在IT行业工作多年 算法上是小白 没有多少积累 为了学习进步 自我提升 偶然机会看到CSDN举行的第
  • kubernetes 安装dns组件

    DNS 组件历史版本有skydns kube dns和coredns三个 k8s1 3版本之前使用skydns 之后的版本到1 17及之间的版本使用kube dns 目前主要使用coredns DNS组件用于解析k8s集群中service
  • excel+power query进行文本数据拆分和提取

    我的博客之前分享了pandas中文本数据的拆分和提取 由于数据量不大 我们也可以使用excel和它自带的插件power query进行同样的处理 原始数据如下 数据来源见此贴 登录爬取拉勾网2 0 Python selenium 数据准备
  • Python编程:安装自己编写的包

    前言 最近在跑人群计数代码时 有一些自己经常用到的代码 每次要用时再写一次总是很麻烦 所以想着把这部分常用的代码封装成库 以便于随时随地使用 做法 这里使用一种简易的方式 直接将自己编写的代码文件夹复制到python能够搜索到的位置 首先在
  • make -C $(LINUX_KERNEL_PATH) M=$(PWD) modules中的M选项

    新的内核模块编程中的make命令里有个M选项 如下 make C lib modules shell uname r build M PWD modules M PWD 意思是返回到当前目录继续读入 执行当前的Makefile 请参考 从
  • 软件、硬件版本号命名规范

    软件 硬件版本号命名规范 常见版本号规范示例如 v1 0 0 通用版本命名规范如下 主版本号 子版本号 修订版本号 日期 版本阶段 如v1 2 3 20201228 rc 主版本号 1 功能模块发生较大变动 如增加多个模块 整体架构改变 子
  • Linux基础篇大集合

    目录 一 基础篇 一 基本常识 1 linux的三种网络连接方式 2 虚拟机的克隆 3 虚拟机的快照 4 虚拟机的迁移和删除 二 目录结构 三 基本实操 1 远程连接Linux操作系统 2 vi vim编辑器 3 Linux关机重启 4 用
  • react+react-router 4.0+redux+antd 购物车实战项目

    前言 前些日子抽空学习了下react 因为近期忙着找工作 没时间写博客 今天我们就来看看用react全家桶 构建一个项目把 可能我学的也不是特别好 但是经过各种查资料 总算是能够构建出一个像模像样的栗子了 github地址 https gi
  • c++开发框架Qt6:构建系统CMake详解

    Qt自带集成开发环境 IDE 名为Qt Creator 它可以在Linux OS X和Windows上运行 并提供智能代码完成 语法高亮 集成帮助系统 调试器和剖析器集成 还集成了所有主要的版本控制系统 如git Bazaar 除了Qt C
  • 台式电脑显示配置100%请勿关闭计算机,Win7关机提示“配置Windows Update已完成30%请勿关闭计算机”怎么解决...

    重装了Win7旗舰版系统后 每次关机的时候桌面上都会显示一个 配置Windows Update的界面 提示请勿关闭计算机 每次停留好几分钟才能正常关机 导致什么情况引起的呢 出现配置Windows Update是因为系统开启了自动更新功能
  • 基于Vue的Excel文件预览(使用LuckyExcel、LuckySheet实现)

    目录 一 介绍 二 基本思路 三 安装 Luckyexcel Luckysheet CDN引入 本地引入 四 具体实现 1 首先需要一个页面 用于excel的预览展示 2 编写Excel解析渲染函数 openExcel url链接 文件名
  • Flutter 基础(五)Route 路由以及页面间传值

    Route 路由以及页面间传值 一种页面跳转机制 路由 Route 对应到 Android 就是 Intent Flutter 路由分两种 新建路由 注册路由 需要Route表示 Navigator进行管理 跳转页面 Navigator p
  • 区块链与征信

    1 为什么要将区块链应用在征信上 1 1 中国征信产业发展现状 图1 中国征信产业发展现状 1 2 区块链征信的可行性分析 首先 从个人层面来说 区块链能帮助我们确立自身的数据主权 生成自己的信用资产 这是个人信用生产的基础 也是我们将来的
  • 各种动态规划算法的C语言

    以下是常见的几种动态规划算法的C语言实例 01背包问题 include
  • ftp用户只能ftp

    test用户 usermod s sbin nologin test 锁定telnet usermod s bin bash test 解锁
  • 【深度学习】动手学深度学习——编码器-解码器

    参考资料 https zh d2l ai chapter recurrent modern encoder decoder html 1 深度学习简介 核心思想 用数据编程 机器学习 寻找适用不同问题的函数形式 以及如何使用数据来获取函数的