CNN强大的学习能力使其能拟合任意函数,然而这种网络架构无法对信号进行细致的建模,很难去表示信号在时域,空域的衍生信息。我们提出以「周期激活函数来表示隐式神经网络」,并「证明这些网络非常适合复杂的自然信号及其导数」。而在实验中也表明SIREN相较于其他激活函数对于音视频任务有更好的效果。
作者先关注于一个隐函数F,满足以下形式
我们的目标是「学习神经网络参数Φ」,将X进行映射,满足上述的约束方程
而大部分领域问题如3D形状表示,图像音视频处理都是以这个形式去存在
首先Φ需要「在X的连续域上定义」,使其可以模拟信号细节
其次Φ是需要「处处可微的」,我们才可以「得到解析解」(即通过梯度下降得到的近似解)
在以往的基于Relu激活的多层感知机模型,它「缺乏信号的模拟细节」
部分原因是来自「Relu的半线性特性」(因为其一半全为0)
而其他激活形如tanh,softplus,虽然能够表示高阶导数,但其导数性质并不好,且无法表现信号细节
我们目标是为了解决上述公式
我们可以把问题看作是「寻找一组约束,使得Φ相关的函数在该约束下满足为0」
即
为了寻找约束,我们可以「定义一个损失函数来去进行惩罚每个约束的偏差」
损失函数如下
其中「指示函数1Ωm(x) = 1 当x在约束域内,在约束域外则为0」
我们将「Φ函数转换为参数化的全连接神经网络」,并使用梯度下降来优化
我们提出了以「sin激活函数作为神经网络的周期激活」
格式如下
即权重矩阵W与X相乘,加上偏置B,再进行sin计算
SIREN的一个特性就在于,「sin函数求导后是cos,而cos函数可以看作是sin函数的相移(Π/2)」。
因此sin函数的导数继承了sin函数的特性,使其「能够监督复杂信号下的任意一个sin导数」
我们考虑一个简单的任务:拟合图像,以平方误差作为损失函数作为训练。由于SIREN能学习到高频细节,其信噪比要比Relu的多接近5dB
我们又可以进一步替换成
而反正弦分布的分布函数刚好满足
泊松方程公式如下
投射到我们常见的直角三维坐标系下,它的具体形式如下
泊松方程常用于静电学,物理学问题
在三维结构重建问题下,我们对比了ReLU和SIREN。
可以很明显看到SIREN相较于ReLU重构出更多的结构细节,而对于物体表面恢复更加平滑
亥姆霍兹方程是一个描述电磁波的微分方程,其公式如下
Δ表示哈密顿算子,k表示波数,A表示振幅
我们求解了以绿点为中心,均匀传播的亥姆霍兹方程
其中只有SIREN函数能很好的匹配原始结果,而其他激活函数均求解失败
我相信前人肯定有研究以sin作为激活函数,但因为初始化的问题导致模型效果不佳
作者通过相关公式推导,得到了一个初始化方式,并通过实验进一步调整网络第一层的初始化
该项目地址开源在「https://github.com/vsitzmann/siren」
其中「代码和论文公式有些不符合」,作者认为还需要再进行相关研究才能确定最后的初始化方式。
个人认为SIREN能解决上述两个问题,是因为「sin函数求导仍是sin的特性,进而能监督高阶导数」,在微分方程上能有很好的表现
另外这些实验都是「基于多层感知机」做的,是否能替代CNN中的ReLU激活函数这个仍需其它实验证明。
本文分享自 GiantPandaCV 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!