常见的激活函数

朋友们,如需转载请标明出处公众号:jack床长

新手请点击公众号里的“历史文章”从序言看起,否则你可能看不懂本篇文章

在讲人工智能之前,第一段我先讲讲其它的,讲一些我想讲的,讲一些大家需要知道的,讲一些对大家的人生有帮助的。毛主席时代虽然思想搞得有些极端,经济很差,但是那时候的人大部分被教育得思想很淳朴,正是因为大部分人都很淳朴老实,所以少部分不老实的人通过不道德的手段就很容易发财。这也是为什么社会上之前的富人很多都是没有文化而且素质极低的人。这也是为什么现在我们中国人遇见陌生人时第一反应是防备的原因,因为坑蒙拐骗的坏人很多。而我们国家也在发生变化,随着经济的发展,各方面都在走向正轨。可以看到,新一代富豪多数是读过书有文化的人。而且由于之前不老实的人太多,大家防备心都高了,所以坑蒙拐骗的人很难再发财了。新时代下好人努力的人将会发展的越来越好,小人没有实力的人只会一直生活在社会底层。遇见好人我们应该帮助他发展,遇见坏人我们应该阻止他们发展,让整个民族越来越好!

之前我们用的激活函数是sigmoid,它的图像和公式如下。

其实这个激活函数我们平时很少用。因为它有个升级版——tanh。tanh各方面都比sigmoid优秀一些。它的图像和公式如下。

从图上可以看出。tanh和sigmoid的形状是一样的。只不过是整体往下面移了一点。sigmoid的输出值是在0和1之间;tanh的是在-1和1之间。也就是说sigmoid的输出值的平均值是0.5,而tanh的平均值是0,这就是为什么tanh比sigmoid高效的原因——将这些靠近0的输出值传递给下一层神经元的话,下一层神经元会工作得更高效(我后面的课程再为大家解释为什么神经元会更喜欢靠近0的输入值)。

总之,tanh比sigmoid高效。但也有一个例外——sigmoid很适合用在二元分类神经网络的输出层。因为在二元分类问题中,结果值在0和1之间刚好可以表示预测的概率(例如为0.8时表示有80%的可能图像里有猫,为0时表示图像中完全不可能有猫)。所以我们可以在其它层使用tanh,在输出层使用sigmoid。

sigmoid和tanh都有一个共同的缺点——当输入数据的值比较大时,神经网络的学习速度就很慢。我们已经知道学习速度与偏导数的大小有关,偏导数就是斜率,斜率越大偏导数越大那么学习速度越快。通过观察sigmoid和tanh的图像可知——当输入值越来越大时,曲线的斜率越来越小。为了解决这个问题,研究者们创造了另一个激活函数——relu。

从图像可以看出,当输入值大于零时,relu的斜率是很高的;而当输入值小于零时,没有斜率。但在实际应用中,输入值一般都是大于零的。为了解决没有斜率的问题,人们又创造了另一个激活函数leaky relu。但是这个意义不是特别大,因为实际应用中输入值一般都大于零。

我们学了四个激活函数,sigmoid,tanh,relu,leaky relu。如何选择他们呢?其实对于不同的应用,对于不同的训练数据,适用的激活函数都是不同的。如果你想找到百分之百适合你的激活函数,你可以先用少量的训练数据一个一个的试。当然也有一些公认的选择规则。一般来说,relu是用的最多的。tanh各方面都比sigmoid优秀(除了在二元分类应用中的输出层)。

请大家加我的微信,之后会用微信向大家公布测试题答案和一些通知,以及统一回答大家遇到的常见问题,有项目也可以招集大家一起做。加我时请注明“人工智能”。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180803G0LFGS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券