Loading

深度学习

准备的一些机器学习里比较基础的问题,希望面试的时候用得上吧。(我永远爱ECNU)

神经网络、深度学习、深度神经网络

  • 机器学习:机器学习是通过对数据建模,并进行预测和分类的一个学科。其三要素为:模型、策略和算法。

  • 神经网络:神经网络是一类机器学习模型。

  • 深度神经网络:是包括较多隐藏层的神经网络。

  • 深度学习:是机器学习的一个领域,目前发展比较火热。

CNN中1x1卷积核的作用

理解卷积神经网络中的通道—channel

  • 引入非线性操作

    输出的结果需要经过 ReLU 进行非线性转换 。所以这里也会使整个模型相对更加的复杂,提升网络的表达能力。

  • 改变通道(channel)

    通过改变卷积核的个数,来改变数据(width, height, channel)channel的大小。

  • 数据融合

    比如在resnet中,我们在进行残差计算时数据channel可能不一样,这时候就需要用1x1的卷积核来改变数据channel,使数据在各个维度上进行匹配,从而使得数据可以相加。

  • 减少计算量

    在inception网络中,每次进行卷积运算之前都会先进行一次1x1的卷积操作这样可以减少计算量。

    卷积操作计算公式:(k * k) * Cin * M * M * Cout.

    即:一次卷积核操作 * 特征图点数 * 通道数

过拟合、欠拟合

  • 欠拟合:

    模型在测试集上的表现不佳,即模型的复杂度低。

  • 解决:神经网络经过一定时间的训练之后基本上就不会再出现欠拟合了,如果仍然存在我们可以考虑增加网络复杂度或者增加数据的特征。

  • 过拟合:

    选择的模型包含的参数过多,复杂度过高,对已知的数据拟合的很好但是对未知的数据拟合的很差。

  • 解决:首先在选择模型时我们可以通过交叉验证(cross validation)来选择一个误差最小的模型;同时我们还可以在训练模型时通过正则化等方法降低模型的复杂度。

  • 正则化:

    L1和L2正则化:是机器学习中比较常用的方法,通过约束学习参数w的范数,从而使得模型复杂度降低。一般的方法是利用拉格朗日乘数法的概念,在损失函数后加上一项正则项。

    权重衰减:在采用随机梯度下降优化算法时效果和L2正则化相同。

    dropout:在训练神经网络时,我们在更新每一层的隐藏层的参数时,可以随机丢弃一部分神经元来避免过拟合。

网络退化

  • 网络退化并不是过拟合,过拟合是指~,网络退化是模型在训练数据集和测试集上面的表现都不好。

  • 通常网络退化是由神经网络层数过多引起的(会造成梯度爆炸、消失;过拟合等问题)

  • 解决方法:resnet中提出的残差连接的概念,首先我们知道,我们在训练网络时,网络层数越高理论上效果至少不会比层数较低时表现得更差(因为最后面的几层神经网络可以全都是identity mapping)。但事实上网络层数过深就会造成网络退化。为了解决这个问题,resnet中显式的构造出了一个identity mapping—让每层神经网络学习f(x):= H(x) - x,(其中x是上一层神经网络的输出,H(x)是这一层要学习的函数)最后该层神经网络的输出等价于上一层神经网络的输出x和这一层神经网络学习残差的输出之和。

损失函数

posted @ 2022-03-26 17:43  王子春  阅读(25)  评论(0编辑  收藏  举报