前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习中激活函数的导数在不连续可导时的处理

深度学习中激活函数的导数在不连续可导时的处理

原创
作者头像
用户4363240
修改2019-12-19 10:09:12
2.9K0
修改2019-12-19 10:09:12
举报
文章被收录于专栏:VisonVisonVison

Q: 深度学习中激活函数在不连续可导时的导数怎么处理呢?

A: 激活函数不要求处处连续可导,在不连续可导处定义好该处的导数即可。

sigmoid函数是处处连续可导的。其他如ReLU,在0处不连续可导。实际上激活函数用ReLU的情况很多。


以caffe中的ReLU为例

在caffe中,给定输入x, ReLU层可以表述为:

f(x) = x, if x>0;

f(x) = negative_slope * x, if x <=0.

当negative_slop>0时,ReLU是leaky ReLU. negative_slope默认为0, 即标准ReLU。

如下图代码所示,Backward_cpu中bottom_data(即输入x)=0时,导数为negative_slope。

relu_layer.cpp
relu_layer.cpp

常见激活函数和导数

不连续可导处的导数值取derivative(x+)还是derivative(x-),不同框架如pytorch, caffe, tensorflow可能各有选择。

一些函数及其导数
一些函数及其导数

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 以caffe中的ReLU为例
  • 常见激活函数和导数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档