Implicit Neural Representations with Periodic Activation Functions
概
本文提出用\(\sin\)作为激活函数, 并分析该类型的网络应该如何初始化.
主要内容
本文研究如下的网络结构:
\]
即一个用sin作为激活函数的MLP.

为了说明使用sin作为激活函数的好处, 作者首先利用一个简单的例子作为说明, 设想如下的任务:
- \(\Phi\) 以位置坐标\((i, j)\)为输入, 输出\(\Phi(i, j) \in \mathbb{R}^3\)表示该像素点图片的r, g, b;
- \(\Phi\)以一个图片作为训练集, 假设该图片为\(f(i, j) \in \mathbb{R}^3, i = 1,2,\cdots, j = 1,2,\cdots, W\), 则训练集为\(\{(i, j, f(i, j))\}\), 共\(HW\)个坐标点及其对应的目标;
- 通过平方损失\(\tilde{\mathcal{L}} = \sum_i \sum_j \|\Phi(i, j) - f(i, j)\|^2\)训练网络.
上图给了一个例子(既然是灰度图, 我想这时\(\Phi(i, j) \in \mathbb{R}\)), 展示了用不同激活函数得到的\(\Phi(i, j)\)的图, 显然图和原图越接近, 说明拟合能力越强.
特别的, 作者还展示了\(\nabla f(x)\)和\(\Delta f(x)\) (分别用sobel算子和laplacian算子得到的) 和各自网络关于\((i, j)\)的梯度和二阶梯度的比较. 发现只有SIREN是高度一致的(一个很重要的原因是ReLU等分段连续函数二阶导为0).
初始化策略
作者希望每一层(除了第一层)的输入输出的分布是一致的, 这能够让堆叠网络层数变得容易, 加快收敛.
其策略是:
\]
其中\(n\)是输入\(x \in \mathbb{R}^n\)的维度.
但是, 因为\(\sin (wx+b)\)中的\(w\)可以看成是采样频率, 为了保证第一层的采样频率足够高(采样定理), 作者乘上了一个额外的系数:
\]
文中说\(w_0=30\)是一个不错的选择.
同时作者还发现, 该技巧应用于别的层一样有效, 所以干脆所有层都长上面那个样, 同时
\]
作者认为这么做有效是因为关于\(W\)的梯度也乘上了一个因子\(w_0\), 但同时分布不变.
其它的好处
SIREN对于包含梯度问题的处理尤为出色, 这或许应该归功于其导数依然是一个SIREN网络, 而如ReLU的一阶导为常数, 二阶导为0自然无法胜任.

类似的结构, 但是这一次, 假设只知道图片的\(\nabla f(i, j)\)或者\(\Delta f(i, j)\),由此通过
\]
或者
\]
来拟合, 则\(\Phi(i, j)\)依然输出和\(f(i, j)\)相近的结果(如上图左所示).
上图右则是逼近\(\alpha \nabla f_1 (i, j) + ( 1- \alpha) f_2 (i, j)\)
对两张图片进行混合, 得到的\(\Phi(i, j)\)恰为两张图片的融合.
SIREN的强大之处可见一斑.
Implicit Neural Representations with Periodic Activation Functions的更多相关文章
- [CS231n-CNN] Training Neural Networks Part 1 : activation functions, weight initialization, gradient flow, batch normalization | babysitting the learning process, hyperparameter optimization
课程主页:http://cs231n.stanford.edu/ Introduction to neural networks -Training Neural Network ________ ...
- Activation Functions
Sigmoid Sigmoids saturate and kill gradients. Sigmoid outputs are not zero-centered. Exponential fun ...
- Activation Functions and Their Derivatives
1. Sigmoid Function: when z=0,g'(z)=0.25 2. tanh Function: when x=0,tanh'(x)=1 3. Relu
- Activation functions on the Keras
sigmoid tanh tanh函数定义如下: 激活函数形状: ReLU 大家族 ReLU softmax 函数 softmax是一个函数,其主要用于输出节点的分类,它有一个特点,所以的值相加会等于 ...
- 《MATLAB Deep Learning:With Machine Learning,Neural Networks and Artificial Intelligence》选记
一.Training of a Single-Layer Neural Network 1 Delta Rule Consider a single-layer neural network, as ...
- Glossary Collection
目录 直接修饰用 间接强调用 (多为副词) 过渡用 特别的名词 动词 词组 各种介词 句子 摘要 引言 总结 正文 实验 直接修饰用 Word 含义 例句 近义词 nuanced adj. 微妙的:具 ...
- 深度学习材料:从感知机到深度网络A Deep Learning Tutorial: From Perceptrons to Deep Networks
In recent years, there’s been a resurgence in the field of Artificial Intelligence. It’s spread beyo ...
- TensorFlow 常用函数汇总
本文介绍了tensorflow的常用函数,源自网上整理. TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU.一般你不需要显式指定使用 CPU ...
- TensorFlow 常用函数与方法
摘要:本文主要对tf的一些常用概念与方法进行描述. tf函数 TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU.一般你不需要显式指定使用 CP ...
随机推荐
- 巩固javaweb的第二十三天
巩固内容: 调用验证方法 验证通常在表单提交之前进行,可以通过按钮的 onClick 事件,也可以通过 form 表单 的 onSubmit 事件来完成. 本章实例是通过 form 表单的 onSub ...
- Linux系统中安装软件方法总结
Linux系统中安装软件方法总结 [1]Linux系统中安装软件的几种方式 [2] Linux配置yum源(本地源和网络源) [3] SuSE下zypper源配置 [4] SUSE zypper 本地 ...
- 快速挂起VIM以及调出被挂起的VIM的方法
vim中开了多窗口后有时需要临时切出去执行shell指令,查看结果,在vim中用%很不方便查看结果,要切出去又要逐个小窗口:q,非常麻烦. 上网一查竟然有挂起的方法: 挂起:ctrl-z 调出:fg ...
- Lombok安装及Spring Boot集成Lombok
文章目录 Lombok有什么用 使用Lombok时需要注意的点 Lombok的安装 spring boot集成Lombok Lombok常用注解 @NonNull @Cleanup @Getter/@ ...
- CentOS 7.3安装完整开发环境
系统版本CentOS 7.3(1611) 安装开发环境1) 通过group安装 yum groups mark install "Development Tools" yum gr ...
- 微服务中心Eureka
一.简介 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS(AWS 是业务流程管理开发平台AWS Enterprise BPM Platform ...
- 【Linux】【Basis】进程
1. 维基百科:https://zh.wikipedia.org/wiki/%E8%A1%8C%E7%A8%8B 进程的类型: 终端:硬件设备,关联一个用户接口 与终端相关:通过终端启动 与终端无关: ...
- linux 让.net 控制台后台运行
命令 nohup 你的shell命令 & 例如 nohup dotnet MQTTClient.dll & 输入完成后,终端会有提示 这时再按下回车 回到shell命 ...
- Identity Server 4 从入门到落地(九)—— 客户端User和Role的解析
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- Sentry 开发者贡献指南 - 后端服务(Python/Go/Rust/NodeJS)
内容整理自官方开发文档 系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Map ...