深度学习:损失函数

        神经网络以某个指标为线索寻找最优权重参数。神经网络学习中所用的指标称为损失函数(loss function)。这个损失函数可以使用任意函数,但一般用均方误差和交叉熵误差等。

1、均方误差

可有作为损失函数的函数有很多,但其中最有名的是均方误差(mean squared)。

        这里yk表示神经网络的输出,tk表示监督数据(训练数据),k表示数据的维数。

实现代码

def mean_squared_error(y,t):
    return 0.5 * np.sum((y - t)**2)

2、交叉熵误差

        log表示以e为底数的自然对数。yk是神经网络的输出,tk是正确解标签。并且,tk中只有正确解标签的索引为1,其他均为0。当对应解标签的输出较小,则交叉熵误差越大。

def cross_entropy_error(y,t):
    delta = 1e-7
    return -np.sum(t * np.log(y+delta))

这里加上一个微小值delta防治出现当np.log(0)的情况出现无穷大的值的情况。

3、mini-batch学习

前面两个都是针对单个数据的损失函数。如果要求所有训练数据的损失函数的总和,以交叉熵误差为例,可以写成下面的式子。

 假设数据有N个,tnk表示第n个数据的第k个元素的值。

神经网络的学习是从训练数据中选出一批数据(称为mini-batch),然后对每个mini_batch进行学习。这种学习方式称为mini-batch学习。

mini-batch用随机选择的小批量数据作为全体训练数据的近似值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值