目录
neural network with softmax output
training details训练细节
模型训练步骤
第一,确定模型
第二,确定loss和cost
这里,其中loss是单个样本的损失计算公式,它是模型输出和真实标签ground truth label的函数。其中,cost function是整个训练集的loss的均值。
第三,训练优化
使用梯度下降
梯度下降过程中,最重要的是J对w或J对b的偏导计算,这一步在tensorflow或pytorch中,是通过back propagation后向传播计算的。
激活函数
选择激活函数
输出层选择
根据情况,二分类问题选择sigmod,输出全为正数,选择relu,输出有正有负,选择线性激活函数
隐藏层优先选择Relu函数
第一,relu函数简单,计算也简单
第二,relu函数的图像左边flat扁平,右边不flat。sigmod函数左边和右边都是flat的。在梯度下降过程中,在一些flat的地方,梯度下降可能会慢。
为什么需要激活函数
softmax
softmax通常来讲是激活函数,但是softmax函数要与交叉熵损失函数一起使用来避免数值溢出的问题。我们调用交叉熵损失函数时(entropy),框架会在entropy之前自动为我们添加softmax函数。
多分类问题
neural network with softmax output
改进的softmax实现
·
x1=2.0/10000
print(f"{x1:.18f}")
x2=1+(1/10000)-(1-1/10000)
print(f"{x2:.18f}")
不同的计算方法,结果会不一样。
z是中间值logit,把最后的sigmod激活函数改成了linear激活函数,sigmod激活函数通过from_logits=True这个参数实现。
通过直接使用z计算,而不是中间值a,可以减少计算误差。
除了精度,与之间一样