python神经网络(三)神经网络优化

  • 一、激活函数
    在这里插入图片描述

  • 损失函数
    -1.mse(mean squared error)均方误差

loss_mse = tf.reduce_mean(tf.square(y_ - y)

-2. ce(cross entropy)交叉熵
表示两个概率分布之间的距离。
交叉熵越大,两个概率分布距离越远,两个概率分布越相异。
交叉熵越小,两个概率分布距离越近,两个概率分布越相似。
在这里插入图片描述

ce = tf.reduce_mean(y_ * tf.log(tf.clip_by_value(y, 1e-12, 1.0)))
# y 小于1e-12为1e-12,否则大于1.0为1.0

在实际操作中,为了让前向传播的结果满足概率分布,即推测出的n分类的输出y1~yn(每个情况出现的可能性)每个都在[0,1]之间,且n个输出之和为1,引入softmax函数,将n个输出经过softmax函数,得到符合概率分布的分类结果:
在这里插入图片描述
在这里插入图片描述
在TensorFlow中,一般让模型的输出经过softmax函数,以获得输出分类的概率分布,再与标准答案对比,求出交叉熵,得到损失函数:

ce = tf.nn.sparse_softmax_cross_entropy_with_logits(logits = y, lables = tf.argmax(y_, 1))
cem = tf.reduce_mean(ce)
# 在工程实用中,可以直接用此两行替换上面一行求交叉熵的函数

-3.自定义

# e.g. 自定义分段函数
# greater函数结果为真时取前一个分段,否则取后一个
loss_selfdefine = tf.reduce_sum( tf.where( tf.greater(y, y_), COST*(y - y_), PROFIT*(y_ - y) ) )

猜你喜欢

转载自blog.csdn.net/petSym/article/details/83653478
今日推荐