前向和后向、激活、损失

1.前向计算

在这里插入图片描述
其中
w权重内容代表每个像素点所占的比重,有正数,有负数。
f(xi,w,b)代表猫、狗、船不同分类结果的得分值,那个类别得分值比较大,即结果属于那个类别
在这里插入图片描述
用权重参数和输入数据、偏移量的组合完成线性分类的操作,每个线性方程就代表一个分类。
损失函数:矫正该模型分类结果
在这里插入图片描述
其中
max(0,x-y+1):+1代表着容忍程度为:当前误差+1
其中正确分类cat 3.2 car 4.9 frog -3.1
右侧分别用max函数计算:max(0,用结果值-实际值+1)
car分类损失结果为0,car分类实际结果值比cat/frog都大,即分类正确
损失函数值:
在这里插入图片描述
最终的损失函数值为max函数的和,求均值(代表模型的损失函数与样本个数无关)。
过拟合:
样本在训练集上表达效果好,实际测试效果就不好了
在这里插入图片描述
当存在相同样本时,不同网络模型,计算的结果可能相同,但第二个w比第一个w更注重整体,w1可能会出现过拟合,因此使用w2,即在损失函数中添加正则惩罚项,一次调整权重W
在这里插入图片描述
当使用L2正则惩罚项:平方之后求和。 分别是1和1/4。即w1进行调整的幅度要更大
则最终的损失函数为:
在这里插入图片描述
层次越多,越能表达复杂的模型,越可能出现过拟合。(一层可看做线性,二层可看做二分类,三层可以看做三角形,。。。。),可用dropout(随机选择一部分)降低过拟合的风险。
softmax分类器:
softmax将模型结果的得分值转换为对应的概率:
在这里插入图片描述
在这里插入图片描述
输入可以任意得分函数,进行映射变换,得出某一个类别的概率值(0-1区间,相当于概率值)。即不同值有对应的不同概率值。以0.5为界限,可以做二分类问题。
sigmoid是softmax 的特殊情况
在这里插入图片描述
在这里插入图片描述
log函数:
在这里插入图片描述
此处
exp操作就是让大的值更大一些,小的值更小一些,从而将概率值差异化
归一化过程:将结果分别除以三个数的和,保证了结果为1
结果:cat的概率为0.13 car的概率为0.87 frog的概率为0.00
softmax函数就是先进行exp操作,再做归一化
softmax的的概率结果进行调整的损失函数,交叉熵损失函数:
取0-1区间的概率值,拿正确类别的概率值即cat的0.13,进行log函数计算求损失函数,概率值越接近于1,损失越接近于0,符合log函数,但是损失值是负值,不好衡量,所以
要为log函数添加负号,因此损失函数是-log(softmax)

max求损失与softmax:
在这里插入图片描述
softmax求出的损失比max计算会更有差异化
一范式距离:绝对值
交叉熵损失函数:衡量两个分别,衡量比率
距离公式:二范式距离(欧式距离)、余弦相似度(xy)/(||x||||y||)=cosA角度越小越相似

2.反向传播

学习率:一次学习更新多少,不应该过大,因为有可能越过最低点
损失函数的计算有很多方法,均方误差MSE是比较常用的方法之一

均方误差:
求前向传播计算结果与已知答案之差的平方再求平均
在这里插入图片描述
用 Tensorflow 函数表示:
loss = tf.reduce_mean(tf.square(y-y_))

tf.square()是对a里的每一个元素求平方
tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值

triplet loss (三元组损失函数)

Triplet loss用于训练差异性较小的样本,传统的分类是花鸟狗的大类别的识别,但是有些需求是要精确到个体级别,比如精确到哪个人的人脸识别

Triplet loss可以学到较好的人脸的embedding
为什么不使 用 softmax函数呢,softmax最终的类别数是确定的,而Triplet loss学到的是一个好的embedding,相似的图像在embedding空间里是相近的,可以判断是否是同一个人脸。

输入是一个三元组 <a, p, n>
a: anchor
p: positive, 与 a 是同一类别的样本
n: negative, 与 a 是不同类别的样本

Triplet Loss需要每个样本包含三张图片:
目标(Anchor)、正例(Positive)、反例(Negative)

在这里插入图片描述

最后模型效果:
如果两个图片是同一个人,那么它们的d就会很小,如果两个图片不是同一个人,它们的d会很大。

在这里插入图片描述
神经网络层过多,过拟合现象越容易出现

2.反向传播训练方法:

以减小 loss 值为优化目标,有梯度下降,moment 优化器,adm 优化器等优化方法
这三种优化方法分别是:
train_step = tf.train.GradientDescentOptimizer(0.001).minimize(loss)
train_step = tf.train.GMomentumOptimizer(0.001, 0.9).minimize(loss)
train_step = tf.train.AdamOptimizer(0.001).minimize(loss)

单分类:sigmoid
多分类:softmax

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值