2. 例子--深度学习

发布时间 2023-04-27 12:32:50作者: 大数据小白~

  构建一个简单的网络,先从线性函数开始:

1. 从输入----->输出的映射

 

 

 

 

 

 

 

 

图片(32*32*3=3072) 经过 f(xi|W)+b 映射 每个类别的得分

我们来解析一下这个映射函数:f(xi|W)=Wx+b

  a: x是输入的参数,在此例中就是图片像素点矩阵(32*32*3=3072),根据计算机的存储规则,可看成3072*1的矩阵;

  W: W 是权重矩阵,决定着分类边界的走势;

  b: 偏执,可以对决策边界做一个微调;

2. 要根据每次分类的结果调整权重矩阵W、偏执b,那如何衡量每次分类的分类结果呢?----构建损失函数

  a. Loosi = ∑j≠yi max (0, sj-syi+1),将分类得分大于正确分类得分的,想减后做一个累加,最后加的1相当于引入一个错误。

  一般损失函数的定义:损失函数 = 数据损失 + 正则化惩罚项

  loss = 1/N Ni=1 j≠yi max (0, f(xi;W)f(xi;W)yi+1) + λR(w)

  其中,R(w)=∑k l W2kl,我们总是希望模型不要太复杂,过拟合的模型是没用的。

3. softmax 分类器

  现实中,我们总希望输出图片后,输出的是一个关于类别判定的概率,而不是关于每个类别的得分,所以我们使用分类器

将得分换算成概率。

  a. 常用的分类器: ,z是关于每个类别的得分。

 

  b. 升级版,目的:我们希望突出类别之间的差距。

归一化:  where  

计算损失值:

 

  至此,我们通过前向传播,在给入一张图片后,计算出了图片属于的类别概率,当然当然,一开始我们的权重矩阵肯定不会那么准确

分类的类别不那么准确,所以我们怎么调整权重矩阵来让分类算法预测的准确率更高呢?

 

4.  反向传播(梯度下降法最常用)

  question1: 当我们得到了一个目标函数后,如何进行求解?直接求解?

  answer1: 常规套路:机器学习的套路就是我交给机器一堆数据,然后告诉它什么样的学习方式是对的
  question2: 如何优化?
  answer2: 一口吃不成个胖子,我们要静悄悄的一步步的完成迭代.

  事实上,并不是经过一次权重矩阵就能达到想要的效果,经过多层权重矩阵w后(不同的w关注的点不同),根据输出层结果的好坏,在反向传播,更新权重矩阵。一般用的方法就是梯度下降法。