notes_1108

  2018-11-8 


  1. NN的输出是一个向量,包含对各个种类的输出值,最后一个层有多少个神经元,输出向量就有多少维,所以在求的时候是矩阵求梯度下降,Loss Function作用于一个矩阵

  2. NN为什么用非线性激活函数

    线性函数公式写出来之后 会发现 无论多少层,他都只能生成线性分类器(成为了感知机)
    无法去拟合绝大多数的真实情况
    而非线性的组合 就可以去逼近任何函数

  3. 关于梯度下降的算法
    一个训练样本的损失函数就是一个向量,有多少特征就有多少维
    ML算法中的代价函数通常可以分解成每个样本的代价函数的总和
    具体求和之后如何求导见1

    于是不使用batch的整体梯度下降需要计算($m$为训练集样本个数)。所有样本计算出最终结果来计算梯度。这样对显存的要求就极高(在大样本集上是不可能)

    如果使用minibatch,则变成(一个batch有$m’$个训练样本) 一个batch计算一个$g$来更新梯度

    然后使用如下的梯度下降算法估计梯度

    于是在一轮训练集中,要更新很多次梯度,目标去逼近整体更新梯度的方向
    在一轮中的几个批次,可能是局部梯度减小,整体损失变大,但是在一轮下来之后,会变成朝着整体减小的方向震荡前进

  4. CNN一个牛逼的地方就在于通过感受野和权值共享减少了神经网络需要训练的参数的个数,所谓权值共享就是同一个Feature Map中神经元权值共享,该Feature Map中的所有神经元使用同一个权值。因此参数个数与神经元的个数无关,只与卷积核的大小及Feature Map的个数相关。但是共有多少个连接个数就与神经元的个数相关了,神经元的个数也就是特征图的大小。

  5. 为什么用交叉熵作损失函数?每层怎么做计算
    https://blog.csdn.net/huwenxing0801/article/details/82791879
    对于分类问题,用交叉熵损失函数更好,因为交叉熵函数公式可知道,交叉熵只关心对正确类别的预测概率,因为只要其值足够大,就可以保证分类结果正确。
    对于回归问题,用平方差损失函数更好,它希望预测概率尽量完全等于标签概率。(比交叉熵损失函数严格很多)

  6. 前馈神经网络,如BP,RFN

    循环神经网络,RNN


且听风吟