2017 hypernetworks 笔记

news2024/10/5 17:20:46

HYPERNETWORKS

这篇文章来自谷歌的一篇文章

Introduction

这篇文章中提出了一种方法:使用一个小网络(hypernetwork),小网络的作用是给一个larger network(main network)来生成权重,这个main network和其他文章的模型是一样的,即将一些原始的输入映射到一个期望的目标上。

hypernetwork的输入是权重的结构信息,注意这并没有原始数据的信息。

image-20230117190506901

这篇文章与HyperNEAT不一样

  1. 在HyperNEAT中,hypernetworks的输入是每一个权重对应的虚拟位置(virtual coordinates);而在这篇文章中, 输入是用来描述整个给定层weights的embedding vector,the input is an embedding vector that describes the entire weights of a given layer。

Our embedding vectors can be fifixed parameters that are also learned during end-to-end training, allowing approximate weight-sharing within a layer and across layers of the main network.

  • embedding vector 可以是静态的,也同样可以进行学习,权重更新的方式是通过在一个layer中进行权重共享,或者main network中进行跨层的权重共享。
  • embedding vector 还可以动态地生成,允许循环神经网络中的权重能够根据时间戳、输入序列而自适应。
  1. 这篇文章的方法使用end-to-end的方法进行训练,要更有效率:Most reported results using these methods, however, are in small scales, perhaps because they are both slow to train and require heuristics to be effificient. The main difference between our approach and HyperNEAT is that hypernetworks in our approach are trained end-to-end with gradient descent together with the main network, and therefore are more effificient.

Hypernetwork能够给LSTM生成非共享的参数,在一些LSTM的任务上超过了标准的LSTM;在一些图片分类的任务上,hypernet也能用来生成卷积神经网络中的参数,这个参数信息

MOTIVATION AND RELATED WORK

作者的motivation是这样的:

evolutionary computing: It is diffificult to directly operate in large search spaces consisting of millions of weight parameters, a more effificient method is to evolve a smaller network to generate the structure of weights for a larger network, so that the search is constrained within the much smaller weight space.

这篇文章的相关工作有三类:

  • HyperNEAT
    • Most reported results using these methods, however, are in small scales, perhaps because they are both slow to train and require heuristics to be effificient. The main difference between our approach and HyperNEAT is that hypernetworks in our approach are trained end-to-end with gradient descent together with the main network, and therefore are more effificient.
  • fast weights
  • Even before the work on HyperNEAT and DCT, Schmidhuber (1992; 1993) has suggested the concept of fast weights in which one network can produce context-dependent weight changes for a second network.
  • 作者强调,沿着fast weight的一些文章的主要贡献在于卷积神经网络,而这篇文章中的贡献在于循环神经网络:These studies however did not explore the use of this approach to recurrent networks, which is a main contribution of our work.

Methods

循环神经网络可以看做在层之间加上了一个权重共享,这使得LSTM不灵活、因为梯度消失变得难以学习。而卷积神经网络因为不需要在层之间贡献权重,所以更加灵活,只不过通过丢弃一些参数来实现了更高的深度。

在卷积神经网络中的设计

作者将为CNN设计的hypernet称为STATIC HYPERNETWORK

可以看下图的(2)等式,可以看到对于卷积神经网络,作者是通过2层的线性网络来实现的hypernet。第一层的作用是用来生成对应数量的卷积核(本质上是一些随机投影),第二层的作用是根据前面的投影来生成卷积核。

image-20230117205357554

相比于main network,这篇文章的方法具有更好的可学习参数。

image-20230117210236468

作者解释了一下,为啥使用two-layered hypernetwork:

  • 前人使用了two-layered
  • 使用two-layered要比one-layered的参数量要小

image-20230117210457575

如何解决在实践中,卷积核的大小不一致所产生的问题:

比如说在残差网络中,不同层的卷积核大小是不一致的,这篇文章所用的方法是「合成」

image-20230117211040929

在循环神经网络中设计的Hypernet

不同于CNN,循环神经网络的目的 the weights can vary across many timesteps.

当hypernet用于生成RNN的weights的时候,我们将这种方法称为HyperRNN,然后在每个时间步上,HyperRNN将输入input x t x_t xt, main RNN的hidden_state,然后生成一个向量 h ^ \hat{h} h^,这个向量用来生成同一个时间步上main RNN的参数 W h 和 b W_h和b Whb

下面红线划上的三个参数是需要HyperRNN生成的参数:

image-20230117222022906

可以看下面这张图片,其中橘色虚线部分表示的是通过 h ^ \hat{h} h^生成的RNN中参数的过程,因为在每个时间步上都进行了生成,所以实际上在RNN中,每一层的参数都不一样,即non-shared。

image-20230117222504246

在实际中,内存的使用会变得特别大,需要对上述方法进行一些修改:

image-20230117224847041

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

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

相关文章

结构型模式

1.代理模式 提供对象的替代品或其占位符。 代理控制着对于原对象的访问, 并允许在将请求提交给对象前后进行一些处理结构 抽象主题类:通过接口或抽象类声明真实主题和代理对象实现的业务方法真实主题类:实现抽象主题中的具体业务&#xff0c…

小程序API

小程序APIapi介绍api类型示例小程序api-网络请求示例合法域名npm基础应用核心步骤npm下载vant-weapp组件库核心步骤api介绍 小程序开发中,会使用到很多内置的功能,这些功能都被封装到小程序的api中了。比如 弹出提示框发送网络请求等上传文件、下载文件…

centos的官网下载和vm16虚拟机安装centos8【保姆级教程图解】

centos8的官网下载和vm16虚拟机安装centos8【保姆级图解】centos下载vm虚拟机安装centos可能出现的问题vcpu-0centos下载 centos官网:https://www.centos.org/ 进入官网后,点击Download 选择 Centos Stream 8 x86_64,并且点击进入 然后会出现国内的…

穿越寒冬 向新而行 | 智和信通2022年度年终总结大会圆满落幕

岁序更迭,新程再启,2022年在挑战与成就中谢幕。日迈月征,朝暮轮转,2023年在希望中启航。2023年1月13日,北京智和信通技术有限公司(以下简称“智和信通”)召开2022年度年终总结大会。会议全面总结…

Tp5 通过crontab 执行定时任务

声明:此处为ThInkCmf 为例:在主题中的command 中新建php文件如图在PHP文件中设置脚本名称及注释,并编写业务逻辑。protected $output ;/*** 作者:执着* 说明:定义脚本名称及添加注释* param setName:定义脚本名称* pa…

【Python百日进阶-数据分析】Day227 - plotly的子图

文章目录一、Plotly 图形工厂子图1.1 垂直图形工厂图表1.2 水平表格和图表1.3 垂直表格和图表二、表格和图表子图三、地理子图四、混合子图和 Plotly Express一、Plotly 图形工厂子图 Plotly 的 Python API 包含一个图形工厂模块,其中包含许多包装函数,…

可执行文件的装载

装载方式回顾一下操作系统的知识,程序执行的时候需要的指令和数级都必须在内存中时,程序才能正常运行,最简单的方式就是将指令和数级全部加载到内存中,这样肯定可以顺利执行,但这样的方式对内存大小来说是一个考验。因…

python中的socket网络编程

目录 一.服务端开发 1.什么是Socket网络编程 2.基于Socket完成服务端程序开发 步骤 演示 二.客户端开发 步骤 演示 一.服务端开发 1.什么是Socket网络编程 socket(简称套接字)是进程之间通信一个工具,好比现实生活中的插座,所有的家用电器要想工作都是基于…

Git系列:入门必备指令详解

Git系列:入门必备指令详解总览高频指令参考资料总览 常用指令使用流程如下图: workspace:工作区staging area:暂存区/缓存区local repository:版本库或本地仓库remote repository:远程仓库 ——引用自&…

线程学习笔记

线程 出现原因 MP3多个模块放在一个进程中,CPU处理能力,播放可能不连续;放在多个进程中,资源传递、进程维护等开销很大 进程相比于进程,地址空间直接共享 定义 线程是进程的执行流程,除了线程&#xf…

WPF之调用Iconfont

一、调用iconfont 1、首先再Iconfont中新建一个项目,注意修改font family 2、将在线的icon添加到项目中 3、下载安装包到本地 4、更改本地的fontfamily格式如下‘./路径文件夹名/#***’ ***是指再iconfont中的fontfamily 注意如果显示为口 可能是路径不对 如果…

数据结构——栈和队列

目录 一、栈(Stack) 1、定义 2、顺序结构模拟实现栈和常用方法 (1).栈的顺序存储 (2).基本方法 3、栈的链式结构与顺序结构对比 (1).对比 4、区分概念 (1&#x…

JavaScript 库之 vanilla-tilt(一个平滑的 3D 倾斜库)

JavaScript 库之 vanilla-tilt(一个平滑的 3D 倾斜库)参考获取vanilla-tilt特点使用示例使用1. data-tilt2. VanillaTilt.init()优先级示例配置选项其他参考 项目描述GitHub前往Vanilla-tilt.js前往 获取 Vanilla-tilt.jsGitHubnpm npm install vanil…

【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )

文章目录一、裁剪 lib 目录下的 jar 文件二、压缩 rt.jar 文件参考博客 : 精简jre1.8精简jre步骤裁剪JRE(嵌入式设备的java环境移植) 资源下载地址 ( 本篇博客的资源快照 , 不是最终版的裁剪效果 ) : https://download.csdn.net/download/han1202012/87389091 JRE 裁剪分为三…

Pytorch深度学习【十五】

微调 网络架构 一个神经网络一般可以分成两块 特征抽取将原始像素变成容易线性分割的特征线性分类器来做分类 微调 思路—将相同功能的网络及其参数直接进行迁移使用,而并不是通过重新学习,只改变部分层次即可 训练 是一个目标数据集上的正常训练任务…

老杨说运维 | 2023,浅谈智能运维趋势(二)

(文末附视频,一键观看精彩内容) 前言: 上文提到了智能运维现状中的变化趋势以及 上文提到了智能运维现状中的变化趋势以及过往误区,老杨认为智能运维的体系化建设还需从抓牢数据治理为起点,以终为始做好规…

miniconda虚拟环境安装使用jupyter notebook及相关

一、安装jupyter 1创建miniconda虚拟环境。(前面文章讲过了) 2在创建的虚拟环境下,conda install ipython jupyter 3在该环境下执行jupyter notebook。 注意:此时打开的jupyter notebook内核Python 3(ipykernel)对应该虚拟环境&am…

数据安全治理 1

数据安全治理应以数据为中心,多元化主体共同参与,兼顾发展与安全。 数据安全总体视图,包含了体系,维度,目标,实践。 制度建设 技术体系,如加密、脱敏等手段,进行数据全生命周期的管…

盘点:2022年豆瓣评分8.0以上的计算机书籍有哪些?

2022年已经结束 ,小编来盘点一下过去一年里出版的计算机图书里,有哪些计算机书籍是豆瓣评分8.0以上图书。 1、人工智能:现代方法(第4版)(上下册) ​ 系统性总结人工智能的方方面面,…

寒假每日一题2023——4261. 孤独的照片

写在前面 题目来源:AcWing 寒假每日一题2023活动 链接:https://www.acwing.com/problem/content/description/4264/ 题目 Farmer John 最近购入了 N 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛&#x…