激活函数及其梯度
阈值函数:神经元机制不是简单的各个输入的加权求和,它存在阈值响应机制,只有在阈值大于某个值是它才会输出,而且输出的电压值是固定的
神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数)
为了解决单层感知机的激活函数激活阶梯函数不可导问题
提出了连续光滑的函数Sigmoid/Logistic来模拟生物上神经元的机制
sigmoid函数求导
该函数使用非常多,主要由于该函数是光滑可导,且值压缩在(0,1)之间
例如:概率prob的值是属于[0, 1]之间的,故使用sigmoid函数压缩;
像素值RGB范围是(0,255),也使用sigmoid函数来压缩到(0,1)范围内
严重缺陷
在Z为无穷时,sigmoid函数的导数处于无限接近于0的状态,当其利用梯度下降来求全局最小值时,Y’ = Y - lr * 梯度(导数),则Y’就会等于Y,Y参数会长时间得不到更新,会造成梯度离散现象
tf.sigmoid
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']= '2'
x