machine-learning - 周期性激活函数
问题描述
为什么像 sin(x)、cos(x) 这样的周期函数在神经网络中不用作激活函数?
relu = max(0, f(x)) is used
但
f(x) = sin(x) is not used
解决方案
从我的角度来看,问题是这些函数为许多输入提供相同的输出,如果神经元获得输入 0,1 输出将与
0,1 + 2kpi
所以你的神经元会对大范围的输入值做出完全相同的反应。普通的 relu 剪辑负值,仅此而已。Sigmoid 或双曲正切剪裁了大值和小值,但 sin 或 cosine 为您提供了 0,1 的值;0,1 + 2pi;0,1 + 4pi 和 0,5 完全不同的东西;0,5 + 2pi;0,5 + 4pi...
如果神经元饱和并且值大或小以一些常数响应是有道理的,但是认为神经元对 pi/2 和 999 + pi/2 的响应相同对我来说似乎很糟糕,因为下一层的神经元也会将这些结果视为相同,但来源完全不同(pi/2 vs 999 + pi/2)。
推荐阅读
- java - 在Java中修改arraylist对象
- ruby-on-rails - 可以使用 axios 请求从 Rails 端点获取 zip 文件吗?
- c++ - 在字符串中查找符号索引
- reactjs - React js:同步运行具有共同关注点的效果(useEffect)
- python - 如何在python中的另一个json中获取json值?
- javascript - Laravel 7 - 未捕获的 ReferenceError:Dropzone 未定义
- jquery - 如何检测循环中的最后一个 ajax 调用?
- python - 如何将 spyder 连接到 postgres 数据库?
- c# - Xamarin Forms 升级后无法转换错误
- javascript - application/x-www-form-urlencoded 和 multipart/form-data 是客户端在向服务器发送数据时唯一处理的两种特殊内容类型吗?