博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
谷歌大脑的 Swish 激活函数与 ReLU 激活函数对比
阅读量:2440 次
发布时间:2019-05-10

本文共 1440 字,大约阅读时间需要 4 分钟。

作者:chen_h

微信号 & QQ:862251340
微信公众号:coderpai
简书地址:


最近谷歌大脑公布了一个新的激活函数,叫做 激活函数。这个函数非常的有趣,很多人都把它应用到一些小的神经网络和大的神经网络中去测试它的性能。所以,我也打算去 kaggle 上面测试一些这个函数的性能如何。

激活函数的数学公式非常的简单,即 f(x) = x * sigmoid(x) 。根据谷歌大脑的论文,该激活函数的性能比 ReLU 激活函数的性能要好很多。

我利用 Keras 实现的 ReLU 模型,在 kaggle 上面获得的分数是 0.99457。我保持所有的模型参数不变,只是把原来模型中的 ReLU 激活函数修改为 Swish 激活函数,该模型的正确率就可以达到 0.99671 。

编写 Swish 激活函数

在 keras 中还没有实现 Swith 激活函数。所以我们第一步就是需要去实现这个激活函数。下面的 3 行代码就可以实现这个功能:

from keras import backend as Kfrom keras.layers import Activationfrom keras.utils.generic_utils import get_custom_objectsdef swish(x):    return (K.sigmoid(x) * x)get_custom_objects().update({
'swish': Activation(swish )})

现在我们只需要将 激活函数添加到模型就行了。

model.add(Conv2D(filters = 32, kernel_size = (5,5),padding = ‘Same’,  activation =’swish’, input_shape = (28,28,1)))

但我们的最后一层还是采用原来的 sigmoid 激活函数。

精度比较

在正确率方面,我发现 Swish 激活函数的性能比 ReLU 激活函数好一点,在 kaggle 上面的排名大约可以排到 90 名。

时间比较

在我的 Geforce 940mx 上面,ReLU 激活函数比 Swish 激活函数快 10 秒左右。我知道可能 Swish 激活函数在计算 sigmoid 函数的时候比 ReLU 多浪费了 10 秒。

总结

在 kaggle 上面提交之后,我们的正确率只是多了 0.002 左右,排名大约在 90 名。但是我们每运行一个 epoch ,在 GPU 上面需要多花费 20% - 30% 的时间。刚刚我们使用的是最原始的 Swish 版本,还有另外一个版本,即 Swish_beta (f(x) = 2x*sigmoid(beta*x)) 。我希望这个激活函数比最原始的激活函数可以更加的高效。

参考资料

kaggle 代码,。

GitHub 代码,。
Swish 原始论文,。

如果你发现了任何的问题,或者有什么好的想法,请与我联系。


作者:chen_h

微信号 & QQ:862251340
简书地址:

CoderPai 是一个专注于算法实战的平台,从基础的算法到人工智能算法都有设计。如果你对算法实战感兴趣,请快快关注我们吧。加入AI实战微信群,AI实战QQ群,ACM算法微信群,ACM算法QQ群。长按或者扫描如下二维码,关注 “CoderPai” 微信号(coderpai)

这里写图片描述

这里写图片描述

你可能感兴趣的文章
ORACLE SQL性能优化系列 (二) (转)
查看>>
控件treeview的使用 (转)
查看>>
运用VC或Java对Office进行编程操作 (转)
查看>>
Linux Shell 裡一些很少用到卻很有用的指令 (转)
查看>>
第10章 模型管理视图 (转)
查看>>
第7章 活 动 视 图 (转)
查看>>
“管家婆”软件用于维修管理 (转)
查看>>
第13章 术 语 大 全 (8) (转)
查看>>
第13章 术 语 大 全 (9) (转)
查看>>
人月神话读书笔记(二) (转)
查看>>
附录 UML元模 (转)
查看>>
A Brief Look at C++ 中文版 (转)
查看>>
JBuilder Editor中光标不能正确定位问题的解决 (转)
查看>>
XML加ASP实现网页“本地化” (转)
查看>>
Java中的异步网络编程 (转)
查看>>
用于核心模式驱动程序的网络体系结构(1) (转)
查看>>
More Effective C++ 条款20 (转)
查看>>
一个程序员的爱恋 (转)
查看>>
足球战术->边锋之Decorator篇 (转)
查看>>
编写优质无错代码(1) (转)
查看>>