神经网络的本质就是通过参数与激活函数来拟合特征与目标之间的真实函数关系
两层神经网络可以无限逼近任意连续函数
线性不可分 → 隐藏层空间变换(矩阵和向量相乘)→ 线性可分
两个目标:①训练集上误差尽可能小(优化) ②测试集上表现也要好(泛化)
激活函数:由于线性函数的表达能力不足,激活函数用于加入非线性因素 (概念理解,常用函数)
训练
训练目的:优化问题,调参使模型尽可能逼近真实模型,即求损失函数极小值损失函数:y-真实目标和预测目标的差,x-模型参数
两种方法:①梯度下降算法 ②反向传播算法
反向传播是从数学中的链式法则得到启发,从输出层开始由后往前逐层计算梯度,更新权重,迭代优化(概念理解)
梯度问题:梯度弥散(消失)和梯度爆炸(概念理解)
多层神经网络(深度学习)
1、Deep?
①更深入的抽象特征表示
每一层都是上一层的更抽象表示,因此随着层数增加,得到更抽象的特征表示,以此得到更好的分类能力
②更强的函数模拟能力
随着层数增加,参数数量增加,其模拟的函数就可以更加复杂,可以有更多容量去模拟特征到目标间的真正函数
2、Overfitting?
多层神经网络重要问题:过拟合(概念理解)
对训练数据学习的太彻底,除了学到全局特征之外,还学到了细致的局部特征和噪声,以至于降低模型的泛化能力(对新鲜样本的适应能力)
两个原因:①训练数据不良好(不充分,和测试数据的特征分布不一致,局部特征明显;噪声多) ②模型过于复杂
解决方法:正则化(数据扩容,dropout,交叉检验...)