二次代价函数

                                                              tensorflow学习笔记——常用的代价函数

  • 其中,C表示代价函数,x表示样本,y表示实际值,a表示对应的输出值,n代表样本总数。
  • tensorflow学习笔记——常用的代价函数    
  • tensorflow学习笔记——常用的代价函数是**函数

这时,每一个样本的损失函数为:tensorflow学习笔记——常用的代价函数

假如我们使用梯度下降法来调整权值参数的大小,权值w和偏置值b的梯度如下:

                                                                 tensorflow学习笔记——常用的代价函数

                                                                 tensorflow学习笔记——常用的代价函数

可以看出,w和b的梯度根**函数的梯度成正比,**函数梯度越大,w和b的大小调整得越快,训练收敛得就越快。

#二次代价函数
loss = tf.reduce_mean(tf.square(y_data-y))

交叉熵代价函数

                                                        tensorflow学习笔记——常用的代价函数

  • 其中,C表示代价函数,x表示样本,y表示实际值,a表示对应的输出值,n代表样本总数。
  • tensorflow学习笔记——常用的代价函数    
  • tensorflow学习笔记——常用的代价函数是**函数

权值w和偏置值b的梯度如下:

                                                          tensorflow学习笔记——常用的代价函数

                                                          tensorflow学习笔记——常用的代价函数

如果使用sigmoid**函数,即有tensorflow学习笔记——常用的代价函数,带入化简得:

                                                                 tensorflow学习笔记——常用的代价函数

                                                                 tensorflow学习笔记——常用的代价函数

可以看出,w和b的梯度和预测值与真实值之差成正比,即预测值与真实值差距越大,w和b的大小调整得越快,训练收敛得就越快。和**函数的梯度无关。(注意这里是在只有一个**函数的情况下无关)

 

二次代价函数更适合于**函数为线性的情况,而交叉熵代价函数更适合于**函数为s型的情况。

TensorFlow中:

loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(labels,logits))#表示跟sigmoid搭配使用的交叉熵。

loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels,logits))#表示跟softmax搭配使用的交叉熵。

对数释然代价函数

常搭配softmax**函数使用,比较适合one-hot类型输出。

tensorflow学习笔记——常用的代价函数

相关文章: