神经网络原理

 神经网络原理

神经网络的主要用途在于分类,那么整个神经网络分类的原理是怎么样的?我们还是围绕着损失、优化这两块去说。神经网络输出结果如何分类?

神经网络解决多分类问题最常用的方法是设置n个输出节点,其中n为类别的个数。

任意事件发生的概率都在0和1之间,且总有某一个事件发生(概率的和为1)。如果将分类问题中“一个样例属于某一个类别”看成一个概率事件,那么训练数据的正确答案就符合一个概率分布。如何将神经网络前向传播得到的结果也变成概率分布呢?Softmax回归就是一个非常常用的方法。

一、softmax回归

Softmax回归将神经网络输出转换成概率结果

  • softmax特点

如何理解这个公式的作用呢?看一下计算案例

假设输出结果为:2.3, 4.1, 5.6
softmax的计算输出结果为:
y1_p = e^2.3/(e^2.3+e^4.1+e^5.6)
y1_p = e^4.1/(e^2.3+e^4.1+e^5.6)
y1_p = e^5.6/(e^2.3+e^4.1+e^5.6)

这样就把神经网络的输出也变成了一个概率输出

类似于逻辑回归当中的sigmoid函数,sigmoid输出的是某个类别的概率

想一想线性回归的损失函数以及逻辑回归的损失函数,那么如何去衡量神经网络预测的概率分布和真实答案的概率分布之间的距离?

二、交叉熵损失

1.公式

为了能够衡量距离,目标值需要进行one-hot编码,能与概率值一一对应,如下图

它的损失如何计算?

0log(0.10)+0log(0.05)+0log(0.15)+0log(0.10)+0log(0.05)+0log(0.20)+1log(0.10)+0log(0.05)+0log(0.10)+0log(0.10)

上述的结果为1log(0.10),那么为了减少这一个样本的损失。神经网络应该怎么做?所以会提高对应目标值为1的位置输出概率大小,由于softmax公式影响,其它的概率必定会减少。只要进行这样的调整就可以预测成功了!!!!!

  • 提高对应目标值为1的位置输出概率大小

2.损失大小

神经网络最后的损失为平均每个样本的损失大小。

  • 对所有样本的损失求和取其平均值

三、网络原理总结

训练过程中计算机会尝试一点点增大或减小每个参数,看其能如何减少相比于训练数据集的误差,以望能找到最优的权重、偏置参数组合

 

四、softmax、交叉熵损失API

  • tf.nn.softmax_cross_entropy_with_logits(labels=None, logits=None,name=None)
    • 计算logits和labels之间的交叉损失熵
    • labels:标签值(真实值)
    • logits:样本加权之后的值
    • return:返回损失值列表
  • tf.reduce_mean(input_tensor)
    • 计算张量的尺寸的元素平均值
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值