tensorflow学习笔记——2——经典损失函数

转载自TensorFlow实战Google深度学习框架(第2版)

1.通过神经网络解决多分类问题最常用的方法是设置n个输出节点,其中n为类别的个数。对于每一个样例,神经网络可以得到一个n维数组作为输出结果。

2.如何判断一个输出向量和期望的向量有多接近呢?交叉熵(cross entropy)是常用的评判办法之一。交叉熵刻画了两个概率分布之间的距离,它是分类问题中使用比较广的一种损失函数。给定两个概率p和q,通过q来表示p的交叉熵为:

3.注意交叉熵刻画的是两个概率分布之间的距离,然而神经网络的输出却不一定是一个概率分布。概率分布刻画了不同事件发生的概率。当事件综述有限的情况下,概率分布函数 满足:

4.如何将神经网络前向传播的结果也变成概率分布?Softmax回归就是一个非常常用的方法。

5.Softmax回归本身可以作为一个学习算法来优化分类结果,但在TensorFlow中,Softmax回归的参数被去掉了,它只是一层 额外的处理层,将神经网络的输出变成一个概率分布。

6.假设原始的神经网络的输出为: ,那么经过Softmax回归处理之后的输出为:

tensorflow学习笔记——2——经典损失函数_第1张图片

7.从交叉熵的公式中可以看到交叉熵函数是不对称的() ,它刻画的是通过概率分布q来表达概率分布p的困难程度。因为正确答案是希望得到的结果,所以当交叉熵作为神经网络的损失函数时,p代表的是正确答案,q代表的是预测值。交叉熵代表的是两个概率分布的距离,也就是说交叉熵值越小,两个概率分布越接近。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

8.与分类问题不同,回归问题解决的是对具体问题的预测。这些问题需要预测的不是一个事先定义好的类别,而是一个任意实数。解决回归问题的神经网络一般只有一个输出节点,这个节点的输出值就是预测值。对于回归问题,最常用的损失函数是均方误差(MSE,mean squared error)。它的定义如下:

tensorflow学习笔记——2——经典损失函数_第2张图片

 其中为一个batch中第i个数据的正确答案,而为神经网络给出的预测值。

9.对于相同的神经网络,不同的损失函数会对训练得到的模型产生重要影响。

 

注释:均方误差也是分类问题中常用的一种损失函数。

你可能感兴趣的:(TensorFlow)