今天聊聊人工神经网络模型(Artifical Neural Network ANN):一种模仿生物神经网络结构和功能的计算模型.相关概念:单个神经元接收输入信号,加权求和过后传给激活函数.许多个神经元组成了层,多个层之间的全连接组成了神经网络,深度学习所说的"深"也就是神经网络的层数很多,这也就是隐藏层,也就是所说的"黑箱",神经网络底层利用激活函数(对每层的输出数据进行变换,引入非线性因素,让模型能够拟合任意曲线)将接收的连续信息转换为非线性输出,与真实值比较,引入损失函数.这就是前向传播的过程.反向传播就是利用梯度下降法,更新,迭代参数的过程.参数初始化过程:对模型赋予初始参数,以便模型在后续优化的过程中持续进行.理论上是初始参数随便给,但是参数的选择会直接影响模型训练的复杂度,就是选对参数,可以让模型少走"弯路"常见的初始化参数方有:uniform_()
,normal_(),zeros_(),ones_(),constant_(),xvaier_uniform_(),xvaier_normal_(),kaiming_uniform(),
kaiming_normal_().至于选择哪种?先看模型的层数.如果隐藏层不太深,建议选tanh为激活函数,此时选择xvaier初始化方法较为妥当.如果隐藏层太深.选择tanh和sigmoid都会让梯度消失.此时选择Relu激活函数效果较好,也能缓解大模型的幻觉问题.这时选择kaiming初始化方法妥当.不论是xvaier还是kaiming初始化都兼顾了前向传播和反向传播的参数变化问题.在输出层二分类分体选用sigmoid激活函数,多分类选用softmax激活函数.