损失函数

什么是损失函数呢?
回答这个问题,我先先来了解一下全连接层的结构:
全连接层由输入层、隐藏层和输出层组成。

右边的第一层就是图像经过flatten之后的多维的1*1的数据,总共4096维。第二层就是全连接网络的隐藏层(省略了输入层),该层的神经元个数与输入数据的维度相等,每个神经元对应图像数据的每一维。第三层就是全连接层的输出层,该层的神经元个数等于分类的类别数。

全连接层的工作原理


图中的苹果是输入的图片,图片首先经过flatten编程x,输入到全接连层里,w就是全连接层,w的列数等于图像数据的维度,w的行数等于要分类的类别数。
拿w的每一行与x做矩阵乘法得到的结果再加上b对应行的值就等于右边框框对应行的值(即对应类别的得分)。
w中某个格子的值越大说明某个格子对结果的决定越重要,反之越不重要。
得分越高的类别,说明图像越属于该类,反之越不属于该类。
但我们发现这明明是苹果,怎么苹果类别的得分只有-96.8,而pear缺达到了437.9。说明模型将苹果判断为一个pear。说明模型不好。
那说明说明呢?
说明w中的值不好。
w对结果起到决定性的影响。
那w是怎么得来的呢?
刚开始的时候w中的值是随机生成的,而在训练的过程中进行不断地调整以使得判断结果更加符合真实值。
那回到上一个问题,模型不好,那到底有多不好呢?怎么来确定其不好的程度呢?
为此,我们来引入损失函数,损失函数是评判模型好坏的标志。
损失函数的定义其实有很多种,比如loss=sum(max(0,val-true_val))

例如:上面模型的loss=max(0,-96.8+96.8)+max(0,437.9+96.8)+max(0,61.95+96.8)

posted @ 2022-02-21 16:56  jimore  阅读(166)  评论(0编辑  收藏  举报