思维导图下载地址:https://download.csdn.net/download/zhiwei_bian/12741569
1、神经网络训练流程
前项传播 --> 获得输出 --> 获得损失 --> 后向传播 --> 更新参数
2、基本元素
1)、激活函数
1、对于多分类的情况,最后一层softmax。
2、其它深度学习层中多用relu。
3、二分类可以用sigmoid。
4、另外浅层神经网络也可以用tanh。
隐层激活函数多用:relu,tanh,sigmoid
输出层激活函数多用:sigmoid,softmax
a、relu
x,if x>=0
f(x) = ∫
0,if x<0
f(x) = max(0,x)
b、softmax
f(x)=e^x/Σe^x
c、sigmoid
f(x)=1/(1+x^-x)
d、tanh
f(x)=(e^x-e^-x)/(e^x+e^-x)
2)、损失函数
a、交叉熵
一、sigmoid_cross_entropy_with_logits
它对于输入的logits先通过sigmoid函数计算,载计算他们的交叉熵,但是他对交叉商的计算方式进行了优化,使得结果不至于溢出,它适用于每个类别相互独立但互不排除的情况;例如一幅图可以同时包含一条狗和一直大象,output不是一个数,而是一个batch中每个样本的loss,所以一般配合tf.reduce_mean(loss)使用
二、softmax_cross_entropy_with_logits
它对于输入的logits先通过softmax函数计算,再计算它们的交叉熵,但是它对交叉熵的计算方式进行了优化,使得结果不至于溢出,它适用于每个类别相互独立且排斥的情况,一幅图只能属于一类,而不能同时包含一条狗和一只大象,output不是一个数,而是一个batch中每个样本的loss,所以一般配合tf.reduce_mean(loss)使用
三、sparse_softmax_cross_entropy_with_logits
它对于输入的logits先通过softmax函数计算,再计算它们的交叉熵,但是它对交叉熵的计算方式进行了优化,使得结果不至于溢出,它适用于每个类别相互独立且排斥的情况,一幅图只能属于一类,而不能同时包含一条狗和一只大象 ,output不是一个数,而是一个batch中每个样本的loss,所以一般配合tf.reduce_mean(loss)使用
四、weighted_cross_entropy_with_logits
计算具有权重的sigmoid交叉熵sigmoid_cross_entropy_with_logits()
b、均方差
一、tf.square()与tf.reduce_mean()组合