动手学深度学习Task1笔记

多层感知机

  1. 为什么要有多层感知机制

神经网络引入了隐藏层,却依然等价于一个单层神经网络。该问题的根源在于全连接层只是对数据做仿射变换,而多个仿射变换的叠加仍然是一个仿射变换。解决问题的一个方法是引入非线性变换,例如对隐藏变量使用按元素运算的非线性函数进行变换,然后再作为下一个全连接层的输入。这个非线性函数被称为激活函数。

  1. 常用激活函数有哪些
  • ReLU函数:ReLU函数只保留正数元素,并将负数元素清零
  • Sigmoid函数:sigmoid函数可以将元素的值变换到0和1之间
  • tanh函数:tanh(双曲正切)函数可以将元素的值变换到-1和1之间。当输入接近0时,tanh函数接近线性变换。虽然该函数的形状和sigmoid函数的形状很像,但tanh函数在坐标系的原点上对称。
  1. 怎么选择激活函数
    ReLu函数是一个通用的激活函数,目前在大多数情况下使用。但是,ReLU函数只能在隐藏层中使用。
    用于分类器时,sigmoid函数及其组合通常效果更好。由于梯度消失问题,有时要避免使用sigmoid和tanh函数。
    在神经网络层数较多的时候,最好使用ReLu函数,ReLu函数比较简单计算量少,而sigmoid和tanh函数计算量大很多。
    在选择激活函数的时候可以先选用ReLu函数如果效果不理想可以尝试其他激活函数。

线性回归

  1. 线性回归的基本要素
  • 模型:线性回归假设输出与各个输入之间是线性关系
  • 损失函数:我们需要衡量价格预测值与真实值之间的误差。通常我们会选取一个非负数作为误差,且数值越小表示误差越小。一个常用的选择是平方函数。
  • 优化函数(随机梯度下降):在求数值解的优化算法中,小批量随机梯度下降在深度学习中被广泛使用。它先选取一组模型参数的初始值,如随机选取;接下来对参数进行多次迭代,使每次迭代都可能降低损失函数的值。在每次迭代中,先随机均匀采样一个由固定数目训练数据样本所组成的小批量(mini-batch),然后求小批量中数据样本的平均损失有关模型参数的导数(梯度),最后用此结果与预先设定的一个正数的乘积作为模型参数在本次迭代的减小量。
  • 矢量计算:在模型训练或预测时,我们常常会同时处理多个数据样本并用到矢量计算。

Softmax

  1. 为什么需要Softmax
image

直接使用输出层的输出处理分类模型有两个问题:一方面,由于输出层的输出值的范围不确定,我们难以直观上判断这些值的意义。另一方面,由于真实标签是离散值,这些离散值与不确定范围的输出值之间的误差难以衡量。

  1. softmax运算符解决了以上两个问题。它通过下式将输出值变换成值为正且和为1的概率分布:

其中:

  1. 交叉熵损失函数
    想要预测分类结果正确,我们其实并不需要预测概率完全等于标签概率。而平方损失则过于严格。交叉熵(cross entropy)是一个更适合衡量两个概率分布差异的测量函数:

你可能感兴趣的:(动手学深度学习Task1笔记)