深度学习:损失函数

        神经网络以某个指标为线索寻找最优权重参数。神经网络学习中所用的指标称为损失函数(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用随机选择的小批量数据作为全体训练数据的近似值。

posted @   破忒头头  阅读(402)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示