图像数据
图像是像素点组成的矩阵,
[0-255]越小越暗越大越亮
RGB通道,彩色图。
32X32X3 彩色图
32X32X1 灰度图
线性分类:
得分函数:
像素点做一个转换,拉长。矩阵变成一个列向量。
对每一个像素点来说都有权重参数。使用神经网络的时候,W的shape是多大的必须明确给出。分类——分几类。
b参数,影响很小,有几个分类有几个b。
损失函数:
错误分类得分-正确得分>0
有损失,只对正数算有损失,对负数是没有损失的
所有损失加在一起 +1(可以容忍的范围区间)
-0.9本来不计损失,但是不在容忍范围之内,所以计算损失值。
通过损失值衡量权重参数是否达到标准。
在迭代的时候可能是一个batch一个batch的迭代的。
不一定我们是对一个数据计算损失函数,可能输入一批数据进行计算损失函数。
一次迭代样本不是一个的时候,我们要考虑样本个数,为了消除样本个数对损失函数的影响,我们需要除以样本个数。
消除样本个数对损失函数的影响
正则化:
得到相同结果的W,这里我们需要正则化惩罚项,我希望W模型越平稳越好。
4个像素点
W1X.T=W2X.T
结果相同,两种模型表达效果一样。正则化惩罚项λW^2。
W1只利用了一个像素点,但是对于W2来说,它利用了四个像素点,综合的考虑了每一个像素点的值,得到了一个更好的模型。所以对W1惩罚的更严重些。
损失函数=自身的损失值+正则化的损失值
softmax分类器:
每一个类别有一个明确的分值,我们将分值转换成概率。
softmax输出的是概率。
softmax是多分类的分类器。
e^x扩大数值,更好的进行分类任务,然后归一化,得分值转换成概率值。
正确类别概率越小,损失值越大。
LOSS值的不同
SVM loss:
对于上面的loss来说,它的结果是1.58。而下面的loss是0.452。上面的LOSS值有可能会等于0.
Softmax loss:
对于唯一的概率值,它得到的loss值永远会存在不会存在损失值为0的情况。
最优化:
归一化后就是一个概率的结果值了。sigmoid函数。
对于神经网络来说,无法求驻节,我们需要进行一个迭代优化的操作,最优化问题。
求得loss值后我们就可以进行最优化的操作了。
X->loss:这一系列过程称为前向传播过程,通常神经网络是由BP算法来求解的,BP算法主要是通过前向传播求得loss值,再经历反向传播,去优化loss参数。
梯度下降算法,每一次迭代,优化W参数,loss降低,达到优化作用。
epoch 是迭代完所有数据,
一次迭代是指跑完一个batch
学习率:
W不太好的时候,我们想要让它向好的方向学,一次学多大?就是用学习率额,更新多大。W-=ΔW+LR
学习率不能过大,通常为0.001、0.0001一次少走一些,多一些迭代。学习率影响非常大,不同的学习率会模型发生翻天覆地变化。学习率必须慎重。