Implicit Neural Representations with Periodic Activation Functions
文章目录
- 概
- 主要内容
- 初始化策略
- 其它的好处
Sitzmann V., Martel J. N. P., Bergman A. W., Lindell D. B., Wetzstein G. Implicit neural representations with periodic activation functions. Advances in Neural Information Processing Systems (NIPS), 2020.
概
本文提出用sin\sinsin作为激活函数, 并分析该类型的网络应该如何初始化.
主要内容
本文研究如下的网络结构:
Φ(x)=Wn(ϕn−1∘ϕn−2∘⋯∘ϕ0)(x),xi→ϕi(xi)=sin(Wixi+bi).\Phi(x) = W_n (\phi_{n-1} \circ \phi_{n-2}\circ \cdots \circ \phi_0)(x), x_i \rightarrow \phi_i(x_i) = \sin (W_i x_i + b_i). Φ(x)=Wn(ϕn−1∘ϕn−2∘⋯∘ϕ0)(x),xi→ϕi(xi)=sin(Wixi+bi).
即一个用sin作为激活函数的MLP.
为了说明使用sin作为激活函数的好处, 作者首先利用一个简单的例子作为说明, 设想如下的任务:
- Φ\PhiΦ 以位置坐标(i,j)(i, j)(i,j)为输入, 输出Φ(i,j)∈R3\Phi(i, j) \in \mathbb{R}^3Φ(i,j)∈R3表示该像素点图片的r, g, b;
- Φ\PhiΦ以一个图片作为训练集, 假设该图片为f(i,j)∈R3,i=1,2,⋯,j=1,2,⋯,Wf(i, j) \in \mathbb{R}^3, i = 1,2,\cdots, j = 1,2,\cdots, Wf(i,j)∈R3,i=1,2,⋯,j=1,2,⋯,W, 则训练集为{(i,j,f(i,j))}\{(i, j, f(i, j))\}{(i,j,f(i,j))}, 共HWHWHW个坐标点及其对应的目标;
- 通过平方损失L~=∑i∑j∥Φ(i,j)−f(i,j)∥2\tilde{\mathcal{L}} = \sum_i \sum_j \|\Phi(i, j) - f(i, j)\|^2L~=∑i∑j∥Φ(i,j)−f(i,j)∥2训练网络.
上图给了一个例子(既然是灰度图, 我想这时Φ(i,j)∈R\Phi(i, j) \in \mathbb{R}Φ(i,j)∈R), 展示了用不同激活函数得到的Φ(i,j)\Phi(i, j)Φ(i,j)的图, 显然图和原图越接近, 说明拟合能力越强.
特别的, 作者还展示了∇f(x)\nabla f(x)∇f(x)和Δf(x)\Delta f(x)Δf(x) (分别用sobel算子和laplacian算子得到的) 和各自网络关于(i,j)(i, j)(i,j)的梯度和二阶梯度的比较. 发现只有SIREN是高度一致的(一个很重要的原因是ReLU等分段连续函数二阶导为0).
初始化策略
作者希望每一层(除了第一层)的输入输出的分布是一致的, 这能够让堆叠网络层数变得容易, 加快收敛.
其策略是:
wi∼U(−6/n,6/n),w_i \sim \mathcal{U}(-\sqrt{6 / n}, \sqrt{6 / n}), wi∼U(−6/n,6/n),
其中nnn是输入x∈Rnx \in \mathbb{R}^nx∈Rn的维度.
但是, 因为sin(wx+b)\sin (wx+b)sin(wx+b)中的www可以看成是采样频率, 为了保证第一层的采样频率足够高(采样定理), 作者乘上了一个额外的系数:
sin(w0⋅Wx+b),\sin (w_0 \cdot W x + b), sin(w0⋅Wx+b),
文中说w0=30w_0=30w0=30是一个不错的选择.
同时作者还发现, 该技巧应用于别的层一样有效, 所以干脆所有层都长上面那个样, 同时
wi∼U(−6/w02n,6/w02n).w_i \sim \mathcal{U}(-\sqrt{6 / w_0^2n}, \sqrt{6 / w_0^2n}). wi∼U(−6/w02n,6/w02n).
作者认为这么做有效是因为关于WWW的梯度也乘上了一个因子w0w_0w0, 但同时分布不变.
其它的好处
SIREN对于包含梯度问题的处理尤为出色, 这或许应该归功于其导数依然是一个SIREN网络, 而如ReLU的一阶导为常数, 二阶导为0自然无法胜任.
类似的结构, 但是这一次, 假设只知道图片的∇f(i,j)\nabla f(i, j)∇f(i,j)或者Δf(i,j)\Delta f(i, j)Δf(i,j),由此通过
∥∇Φ(i,j)−∇f(i,j)∥2,\|\nabla \Phi(i, j) - \nabla f(i, j)\|^2, ∥∇Φ(i,j)−∇f(i,j)∥2,
或者
∥ΔΦ(i,j)−Δf(i,j)∥2,\|\Delta \Phi(i, j) - \Delta f(i, j)\|^2, ∥ΔΦ(i,j)−Δf(i,j)∥2,
来拟合, 则Φ(i,j)\Phi(i, j)Φ(i,j)依然输出和f(i,j)f(i, j)f(i,j)相近的结果(如上图左所示).
上图右则是逼近α∇f1(i,j)+(1−α)f2(i,j)\alpha \nabla f_1 (i, j) + ( 1- \alpha) f_2 (i, j)α∇f1(i,j)+(1−α)f2(i,j)
对两张图片进行混合, 得到的Φ(i,j)\Phi(i, j)Φ(i,j)恰为两张图片的融合.
SIREN的强大之处可见一斑.
Implicit Neural Representations with Periodic Activation Functions相关推荐
- #Paper Reading# Implicit Neural Representations with Periodic Activation Functions
论文题目: Implicit Neural Representations with Periodic Activation Functions 论文地址: https://arxiv.org/abs ...
- 隐式神经表示一:神经网络拟合图像Implicit Neural Representations with Periodic Activation Functions
文章目录 1. Implicit Neural Representations with Periodic Activation Functions 0. 什么是隐式神经表示 1. 了解SineLay ...
- 概述:隐式神经表示(Implicit Neural Representations,INRs)
隐式神经表示(Implicit Neural Representations,INRs) 1 简介 1.1 传统的隐式表示 1.1.1 代数表示 1.1.2 函数表示 1.1.3 水平集表示(leve ...
- 论文阅读:(arXiv 2022) MINER: Multiscale Implicit Neural Representations
MINER: Multiscale Implicit Neural Representations (arXiv 2022) Paper:https://arxiv.org/abs/2202.0353 ...
- [CVPR2022]ImFace: A Nonlinear 3D Morphable Face Model with Implicit Neural Representations
标题:ImFace: A Nonlinear 3D Morphable Face Model with Implicit Neural Representations 链接:https://arxiv ...
- Machine learning of neural representations of suicide and emotion concepts identifies suicidal youth
Machine learning of neural representations of suicide and emotion concepts identifies suicidal youth ...
- 1. 激活函数(Activation functions)
1.1 激活函数(Activation functions) 选择激活函数的经验法则 如果输出是0.1值(二分类问题),则输出层选择sigmoid函数,然后其它的所有单元都选择Relu函数. 这是很多 ...
- BNB 网络缝合Revisiting Model Stitching to Compare Neural Representations
读NIPS2021论文 Revisiting Model Stitching to Compare Neural Representations 目录 摘要 配图 局限 未来工作 摘要 文章重新研究和 ...
- 激活函数(Activation Functions)
神经网络结构的输出为所有输入的加权和,这导致整个神经网络是一个线性模型.如果将每一个神经元的输出通过一个非线性函数,那么整个神经网络的模型也就不再是线性的了,使得神经网络可以更好地解决较为复杂的问题. ...
- Pytorch专题实战——激活函数(Activation Functions)
文章目录 1.激活函数的两种用法 1.1.softmax激活函数 1.2.sigmoid激活函数 1.3.tanh激活函数 1.4.relu激活函数 1.5.leaky_relu激活函数 2.用激活函 ...
最新文章
- Android 开发者必知的开发资源
- python 的回调函数
- cmd写java程序_用cmd写一个最简单的Java程序
- 团队-团队编程项目作业名称-需求分析
- Nginx-常见服务器的对比
- JS的Date.setMonth()方法坑
- MIUI V5的私密短信功能
- 关于PHP在企业级开发领域的访谈——企业级开发,PHP准备好了吗?
- java jxl读取xlsx_Java添加、读取Excel公式
- struts2的package和result的标签的属性
- 本科毕业论文降低查重率小技巧
- 物理与数学的崩溃关系
- 资源下载类网站源码 第二版本分享
- 2MSL的特点及意义
- Excel的单元格设置下拉选项并填充颜色
- sql子表求和在总表中显示,并参与搜索
- 微信引流的万能方法 微信引流的万能方法
- 微信人工客服电话号码是多少
- Hive的核心概念以及建库建表语句
- 梅科尔工作室-王宣-鸿蒙笔记1
热门文章
- photo的复数是photos
- Instance Segmentation by Jointly Optimizing Spatial Embeddings and Clustering Bandwidth【论文解读】
- WEB打印控件Lodop(V6.x)使用说明及样例
- (转)2016年对冲基金经理“封神榜”
- Ribbon负载均衡分析
- 分门别类刷leetcode——栈、队列、堆(C++实现)
- python爬虫豆瓣TOP250电影信息并写入数据库
- 系统架构设计师考点全纪要(自己整理,本人一次稳过)
- 基于asp.net车辆管理调度系统的设计与实现
- A Game of Thrones(40)