第二周作业:多层感知机

一、线性神经网络

     1、线性模型

权重决定了每个特征对我们预测值的影响。偏置是指当所有特征都取值为0时,预测值应该为多少。

 线性模型可以看做是单层神经网络,只有一个输入层和一个输出层

2、损失函数

损失函数能够量化目标的实际值与预测值之间的差距。通常我们会选择非负数作为损失,且数值越小表示损失越小,完美预测时的损失为0。回归问题中最常用的损失函数是平方误差函数。当样本ii的预测值为y^(i)y^(i),其相应的真实标签为y(i)y(i)时,平方误差可以定义为以下公式:

在训练模型时,寻找一组参数(w∗,b∗w∗,b∗),这组参数能最小化在所有训练样本上的总损失。

 3、softmax回归

 softmax回归本质上是分类问题:回归估计一个连续值,分类预测一个离散类别

 但是,一般的分类问题并不与类别之间的自然顺序有关。表示分类数据的简单方法为:独热编码(one-hot encoding)。独热编码是一个向量,它的分量和类别一样多。类别对应的分量设置为1,其他所有分量设置为0。

    具体独热编码这个回答里面写的比较清楚数据预处理:独热编码(One-Hot Encoding)和 LabelEncoder标签编码 - 程序员大本营

    为了估计所有可能类别的条件概率,我们需要一个有多个输出的模型,每个类别对应一个输出。 为了解决线性模型的分类问题,我们需要和输出一样多的仿射函数(affine function)。 每个输出对应于它自己的仿射函数。

   关于softmax和交叉熵损失的详细内容这个里面写的很清晰易懂

详解softmax函数以及相关求导过程 - 知乎

二、感知机

1、感知机

感知机是一个二分类模型,他的求解算法等价于使用批量大小为1的梯度下降,他不能和XOR函数

 

 如上图,要拟合的话只能是曲线,而感知机只能产生线性分割

2、多层感知机

 多层感知机通过隐藏层和激活函数来得到非线性模型

 隐藏层大小是超参数

 当我们想要将输出视作二分类问题的概率时,sigmoid仍然被广泛用作输出单元上的激活函数(可以将sigmoid视为softmax的特例)

 最受欢迎的选择是线性整流单元(Rectified linear unit,ReLU),因为它实现简单,同时在各种预测任务中表现良好。 ReLU提供了一种非常简单的非线性变换。通俗地说,ReLU函数通过将相应的激活值设为0来仅保留正元素并丢弃所有负元素。为了直观感受一下,我们可以画出函数的曲线图。正如从图中所看到,激活函数是分段线性的。

 使用ReLU的原因是,它求导表现得特别好:要么让参数消失,要么让参数通过。这使得优化表现得更好,并且ReLU减轻了困扰以往神经网络的梯度消失问题、

3、模型选择

训练数据集:训练模型参数

验证数据集:选择模型超参数

非大数据集上通常使用K折交叉验证

 

 4、欠拟合和过拟合

    训练误差和验证误差都很严重,但它们之间仅有一点差距。如果模型不能降低训练误差,这可能意味着模型过于简单(即表达能力不足),无法捕获试图学习的模式。因为训练和验证误差之间的泛化误差很小,有理由相信可以用一个更复杂的模型降低训练误差。这种现象被称为欠拟合。

   当训练误差明显低于验证误差时要小心,这表明严重的过拟合。

 

 模型容量是指拟合各种函数的能力,低容量的模型难以拟合训练数据,高容量的模型能记住所有的训练数据

 估计模型容量,给定一个模型,将由两个因素影响:参数的个数和参数值的选择范围

VC维:对于一个分类模型,VC等于一个最大的数据集的大小,不管如何给定标号,都存在一个模型对他进行完美的分类。他可以提供为什么一个模型好的理论依据(可以衡量训练误差和泛化误差之间的间隔)

 5、权重衰减

       权重衰减通过L2正则项使得模型参数不会过大,从而控制模型复杂度

       正则项权重是控制模型复杂度的超参数

 

 

 6、丢弃法

一个好的模型需要对输入数据的扰动鲁棒,丢弃法就是在层之间加入噪音,通常作用在隐藏全连接层的输出上

 

正则项只在训练中使用,他们影响模型参数的更新。

丢弃法将一些输出项随机置0来控制模型复杂度,丢弃概率是控制模型复杂度的超参数。

7、数值稳定性

梯度消失和梯度爆炸

梯度爆炸(gradient exploding)问题:参数更新过大,破坏了模型的稳定收敛。

 

梯度消失(gradient vanishing)问题:参数更新过小,在每次更新时几乎不会移动,导致无法学习。导致梯度消失问题的一个常见的原因是跟在每层的线性运算之后的激活函数σ。使用sigmoid函数作为激活函数,当它的输入很大或是很小时,sigmoid函数的梯度都会消失。此外,当反向传播通过许多层时,除非我们在刚刚好的地方,这些地方sigmoid函数的输入接近于零,否则整个乘积的梯度可能会消失。当我们的网络有很多层时,除非我们很小心,否则在某一层可能会切断梯度。因此,更稳定的ReLU系列函数较好。

当数值过大或者过小时会导致数值问题

常发生在深度模型中,因为其会对n个数累乘

感想和总结

这周学习的内容比较多,沐神的视频中对于一些数学的推理不是很详尽,所以理解的还不是很透彻,需要接下来再去看看深度学习的书籍,补充相关的知识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值