简述:⼈⼯神经⽹络(artificial neural network,ANN),简称神经⽹络(neural network,NN)。是⼀种模仿⽣物神经⽹络(动物的中枢神经系统,特别是⼤脑)的结构和功能的数学模型或计算模型,⽤于对函数进⾏估计或近似。
激活函数
非线性变换,将累加信号变换后输出,一般使用压缩函数。来限制振幅。作用:增强网络表达能力,非线性输出,没有激活函数就相当于矩阵相乘。一个神经网络中不一定只有一种激活函数,一般选择非线性激活函数,输出层激活函数取决于任务类型。
常见的隐含层激活函数:
后两个为现在常用的激活函数。
输出层激活函数:
恒等激活函数(回归问题)
Softmax激活函数(分类问题)
交叉熵损失就是多类别下的负平均对数似然函数。
万能近似定理
根据万能近似定理,对于具有线性输出层和至少一个使用“挤压”性质的激活函数的隐藏层组成的前馈神经网络,只要其隐藏层神经元的数量足够,它可以以任意的精度来近似任何从一个定义在实数空间中的有界闭集函数。即一个三层神经网络可以拟合任何决策函数。
梯度下降法(便于寻参)
确定了代价函数后,随机选取w 和b的初始值,应用迭代算法,来求取目标函数的局部极值
自动微分法(便于求导)
梯度计算可以通过⼿动求导(Manual Differentiation)得到每个参数的偏导数是难以完成的, 数值微分(NumericalDifferentiation)结果为近似值且计算量较大, 符号微分(Symbolic Differentiation)在复杂函数中性能表现也不
够好。
⾃动微分法 (Autodiff),包括前向⾃动微分法 (Forward-ModeAutodiff)和 反向⾃动微分法(Reverse-mode Autodiff),是⼀种⾼效求 解复杂函数梯度的⽅法。现代神经⽹络求解模型参数⼀般使⽤反向⾃动微分 法,它包含两个过程,⾸先从输⼊到输出计算节点的值,然后从输出到输⼊计算偏导数,利⽤导数的链式法则来得到最终的结果。
沿线相乘,分线相加
反向传播算法BP(结合寻参)
误差反向传播的简称,常与最优化方法(如梯度下降法)结合使用,对网络中的所有权重计算损失函数的梯度,反馈给最优化方法,来更新权值,来更新权重的最小化损失函数。
一般的神经网络
Wji 表示第m层的第j个与第m-1层的第i个的连接权重
跳出 极小值点
在进行梯度下降时,防止误差函数度达到局部最小值点而停止,缺失更好的选择。
- 以多组不同参数值初始化多个神经⽹络,取其中误差最⼩的解作为最早参数。(相当于从多个不同的初始点开始搜索)
- 使⽤“模拟退⽕”技术。模拟退⽕在每⼀步都以⼀定的概率接收⽐当前解更差的结果,从⽽有助于“跳出”局部极⼩。
- 使⽤随机梯度下降(或⼩批量梯度下降),可以加⼊随机因素,即便陷⼊极⼩点,它计算的梯度仍可能不为零。
正则化方法
参数范数惩罚
通常,仅对神经⽹络中的连接权重进⾏范数惩罚,惩罚偏置值可能导致⽋拟合,对每⼀层神经元分别进⾏正则化时寻找参数λ 的代价⽐较⼤,通常设置全局的λ
数据增强
增加数据数量或者添加假数据到训练集中,如在图像分类中的改变图像的对比度,亮度等。
权重衰减
随机梯度下降
提前停止
将训练集划分为验证集和估计集,使用估计集来进行模型参数的学习,使用验证集来对学习的模型进行代价计算,如果连续p次,得到的代价在增加,则停止并输出,如果期间存在代价减小,则更新代价,重新计数。