机器学习,神经网络中,自注意力跟卷积神经网络之间有什么样的差异或者关联?

如图 6.38a 所示,如果用自注意力来处理一张图像,假设红色框内的“1”是要考虑的像素,它会产生查询,其他像素产生

图 6.37 使用自注意力处理图像

。在做内积的时候,考虑的不是一个小的范围,而是整张图像的信息。如图 6.38b 所示,在
做卷积神经网络的时候,卷积神经网络会“画”出一个感受野(receptive field),每一个滤波
器(filter),每一个神经元,只考虑感受野范围里面的信息。所以如果我们比较卷积神经网络
跟自注意力会发现,卷积神经网络可以看作是一种简化版的自注意力,因为在做卷积神经网
络的时候,只考虑感受野里面的信息。而在做自注意力的时候,会考虑整张图像的信息
。在卷
积神经网络里面,我们要划定感受野。每一个神经元只考虑感受野里面的信息,而感受野的
大小是人决定的。而用自注意力去找出相关的像素,就好像是感受野是自动被学出来的,网
络自己决定感受野的形状
。网络决定说以这个像素为中心,哪些像素是真正需要考虑的,哪
些像素是相关的,所以感受野的范围不再是人工划定,而是让机器自己学出来。关于自注意
力跟卷积神经网络的关系,读者可以读论文 “On the Relationship between Self-attention and
Convolutional Layers”,这篇论文里面会用数学的方式严谨地告诉我们,卷积神经网络就是自
注意力的特例。

图 6.38 自注意力和卷积神经网络的区别

自注意力只要设定合适的参数,就可以做到跟卷积神经网络一模一样的事情。卷积神经网络的函数集(function set)与自注意力的函数集的关系如图 6.39 所示。所以自注意力是更
灵活的卷积神经网络,而卷积神经网络是受限制的自注意力。自注意力只要通过某些设计、某
些限制就会变成卷积神经网络。

图 6.39 卷积神经网络的函数集与自注意力的函数集的关系

既然卷积神经网络是自注意力的一个子集,说明自注意力更灵活。更灵活的模型需要更
多的数据。
如果数据不够,就有可能过拟合。而比较有限制的模型,它适合在数据少的时候使
用,它可能比较不会过拟合。如果限制设的好,也会有不错的结果。谷歌的论文 “An Image
is Worth 16x16 Words: Transformers for Image Recognition at Scale” 把自注意力应用在图
像上面,把一张图像拆成 16 × 16 个图像块(patch),它把每一个图像块就想像成是一个字
(word)。因为一般自注意力比较常用在自然语言处理上面,所以我们可以想像每一个图像块
就是一个字。如图 6.40 所示,横轴是训练的图像的量,对谷歌来说用的所谓的数据量比较少,
也是我们没有办法用的数据量。这边有 1000 万张图,是数据量比较小的设置(setting),数
据量比较大的设置呢,有 3 亿张图像。在这个实验里面,自注意力是浅蓝色的这一条线,卷
积神经网络是深灰色的这条线。随着数据量越来越多,自注意力的结果越来越好。最终在数据
量最多的时候,自注意力可以超过卷积神经网络,但在数据量少的时候,卷积神经网络是可以
比自注意力得到更好的结果的。自注意力的弹性比较大,所以需要比较多的训练数据,训练
数据少的时候就会过拟合。而卷积神经网络的弹性比较小,在训练数据少的时候结果比较好。
但训练数据多的时候,它没有办法从更大量的训练数据得到好处。这就是自注意力跟卷积神
经网络的比较。

下一篇:自注意力与循环神经网络对比

来源:李宏毅深度学习教程笔记 LeeDL_Tutorial_v.1.1.1.pdf 132M Page131-133

https://github.com/datawhalechina/leedl-tutorial


 

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

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

相关文章

代码的艺术-Writing Code Like a Pianist | 京东云技术团队

前言 如何评定一个系统的质量?什么样的系统或者软件可以称之为高质量?可以从三个角度来看,一是架构设计,例如技术选型、分布式系统中的数据一致性考虑等,二是项目管理,无论是敏捷开发还是瀑布式开发&#…

【SpringCloud微服务项目实战-mall4cloud项目(4)】——mall4cloud-rbac

mall4cloud-rbac角色权限访问控制模块 系统架构与模块介绍系统架构rbac模型介绍 相关代码权限校验接口代码 补充 代码地址 github地址 fork自github原始项目 gitee地址 fork自gitee原始项目 系统架构与模块介绍 系统架构 从图中可以看到,微服务集群中,…

基于Qt QSlider滑动条小项目

QSlider 是滑动条控件,滑动条可以在一个范围内拖动,并将其位置转换为整数 1. 属性和方法 QSlider 继承自 QAbstractSlider,它的绝大多数属性都是从 QAbstractSlider 继承而来的。 2.QSlider信号 - `valueChanged(int value)`: 当滑块的值改变时发出信号,传递当前滑块的值…

基于SVM+Webdriver的智能NBA常规赛与季后赛结果预测系统——机器学习算法应用(含python、ipynb工程源码)+所有数据集(三)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 特征提取3. 模型训练及评估1)常规赛预测模型2)季后赛模型创建 4. 模型训练准确率 相关其它博客工程源代码下载其它资料下载 前言 本项目使用了从NBA官方网站获得的数据&…

JOSEF约瑟 漏电继电器 JHOK-ZBG1 φ25mm AC220V 0.1A/0.1S 分体式

系列型号 JHOK-ZBG1 φ25mm漏电(剩余)继电器 JHOK-ZBG2 φ25mm漏电(剩余)继电器 JHOK-ZBG1 φ45mm漏电(剩余)继电器 JHOK-ZBG2 φ45mm 漏电(剩余)继电器 JHOK-ZBG1 φ100mm漏电&a…

猜数字游戏(Rust实现)

文章目录 游戏说明游戏效果展示游戏代码游戏代码详解生成神秘数字读取用户输入解析用户输入进行猜测比较 游戏说明 游戏说明 游戏运行逻辑如下: 随机生成一个1-100的数字作为神秘数字,并提示玩家进行猜测。如果玩家猜测的数字小于神秘数字,则…

初始web项目tomcat部署报错404

问题 简单地创建了一个web项目,结果一运行就404咧,真滴烦。。。接下来的项目也没法继续了 问题原因:缺少文件 其实造成这样问题的原因有不少,但在这里我是踩了一个坑。在出问题之前,我运行的其他项目都是可以跑的&…

2. 验证1101序列(Mealy)

题目要求: 用 M e a l y \rm Mealy Mealy型状态机验证 1101 1101 1101序列 题目描述: 使用状态机验证 1101 1101 1101序列,注意:允许重复子序列。 方法一: 去掉 M o o r e \rm Moore Moore的 s 4 s_4 s4​&#xff…

掌握.NET基础知识(一)

前言 本文将讲解一些.NET基础。NET基础是指在计算机编程中使用.NET框架所需要的基础知识..NET的认识: .NET是由微软开发的一个跨平台的应用程序开发框架。它包括一个运行时环境和一个面向对象的程序库,可以用于开发各种类型的应用程序,包括桌面应用程序、…

数据驱动娱乐的未来:揭秘爱奇艺如何利用Apache Spark实现个性化推荐和内容分析

Apache Spark 在爱奇艺的现状与应用 Apache Spark 是爱奇艺大数据平台的核心组件,被广泛应用于数据处理、数据同步和数据查询分析等关键场景。在数据处理方面,爱奇艺通过数据开发平台支持开发者提交 Spark Jar 包任务或 Spark SQL 任务,进行…

【JVM系列】- 类加载子系统与加载过程

类加载子系统与加载过程 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页 怒放吧德德 To记录领地 🌝分享学习心得,欢迎指正…

25.1 MySQL SELECT语句

1. SQL概述 1.1 SQL背景知识 1946年, 世界上诞生了第一台电脑, 而今借由这台电脑的发展, 互联网已经成为一个独立的世界. 在过去几十年里, 许多技术和产业在互联网的舞台上兴衰交替. 然而, 有一门技术却从未消失, 甚至日益强大, 那就是SQL.SQL(Structured Query Language&…

进化策略算法

前言 进化策略 (Evolution Strategy) 后面都简称 ES,其本质就是:种群通过交叉产生后代,我们只保留较好的父代和子代,一直这样迭代下去, 我们的保留方式是: 父代产生后代,然后将后代DNA和原来的…

02_单片机及开发板介绍

单片机简介 单片机,又称为微控制器(Microcontroller),是一种集成了微处理器核心、存储器、输入/输出接口及各种功能模块的集成电路芯片。它通常由中央处理器(CPU)、存储器、输入/输出接口以及各种外设组成&…

【Leetcode】 707. 设计链表

你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点…

保序回归与金融时序数据

保序回归在回归问题中的作用是通过拟合一个单调递增或递减的函数,来保持数据点的相对顺序特性。 一、保序回归的作用 主要用于以下情况: 1. 有序数据:当输入数据具有特定的顺序关系时,保序回归可以帮助保持这种顺序关系。例如&…

rust学习—— 控制流if 表达式

控制流 根据条件是否为真来决定是否执行某些代码,或根据条件是否为真来重复运行一段代码,是大部分编程语言的基本组成部分。Rust 代码中最常见的用来控制执行流的结构是 if 表达式和循环。 if 表达式 if 表达式允许根据条件执行不同的代码分支。你提供…

vue-cli脚手架创建项目时报错Error: command failed: npm install --loglevel error

项目背景 环境:vue-cli 5.x 在工程文件中,后端模块wms已经创建完成,现在想新建一个名为vue-web的前端模块 执行命令vue create vue-web时, 报错Error: command failed: npm install --loglevel error 问题分析及解决 排查过程…

Linux性能优化--使用性能工具发现问题

9.0 概述 本章主要介绍综合运用之前提出的性能工具来缩小性能问题产生原因的范围。阅读本章后,你将能够: 启动行为异常的系统,使用Linux性能工具追踪行为异常的内核函数或应用程序。启动行为异常的应用程序,使用Linux性能工具追…

centos 7.9 源码安装htop

1.下载源码 wget http://sourceforge.net/projects/htop/files/latest/download 2.上传到tmp目录,并解压 tar xvzf htop-1.0.2.tar.gz mv htop-1.0.2 /opt/ 进入到 cd /opt/htop-1.0.2/ 3.编译并安装 ./configure && make && make install 4.…