原文:https://www.jianshu.com/p/5329ad3561ea
后面可以看下这篇文章:https://www.cnblogs.com/lliuye/p/9486500.html
一、激活函数
激活函数是每一层神经网络之后用的非线性函数,因为神经网络本身是线型的,利用激活函数可以使之实现非线性。
激活函数主要有四个: sigmoid, tanh, RELU, Leaky RELU. 还有一位博主将softmax 也加了进来。也有一定的道理,因为这五个小兄弟都是将一个K?维的向量映射为另一个K?维的向量。
接下来的话照搬这个知乎专栏
1. sigmoid
sigmoid函数及其导数
sigmoid函数会导致梯度消失(gradient vanishing)。
2. tanh
非线性激活函数,y的值是-1-1,TensorFlow对应的是tf.nn.tanh(x,name=None)
tanh
3. ReLU
f(x)=max(0,x),tensorflow中对应的是tf.nn.relu(features,name=None)
这个函数的优点是处理后的数据具有更好额稀疏性,只有最大数值与0.
5. leaky ReLU
leaky ReLU
5. softmax
Softmax的使得映射后的元素之和为1,通常用在分类任务最后一层。
二、梯度下降
梯度下降是神经网络优化的方法,令输出逼近目标值。
三、损失函数
这篇博文讲述了
均值平方差
就是mse,均方误差越小,表明模型越好,
交叉熵
表现预测输入样本属于某一类的概率,越小,预测的效果越准
损失函数的选取取决于输入标签数据的的类型,如果输入的是实数,无界的值,那么就应该使永平方差,如果输入的标签是位矢量,使用交叉熵可能会更合适。
tensorflow 中常见的loss函数
均值平方差,就是tf.reduce_mean(tf.pow(tf.sub(logits,outputs),2.0))
交叉熵:主要有sigmoid函数,softmax函数