机器学习笔记(9)— 神经网络的参数初始化、架构选择、训练过程

本文主要介绍神经网络的参数初始化、架构选择、训练过程

1.神经网络的参数初始化

我们以下网络为例:
机器学习笔记(9)— 神经网络的参数初始化、架构选择、训练过程
在之前介绍回归时,我们设置为0,若在神经网络中设置参数也为0,那么:
机器学习笔记(9)— 神经网络的参数初始化、架构选择、训练过程
这意味着,每次使用梯度下降法,虽然把权值参数更新了,但是,每一个节点对于下一层网络的所有参数均是相同的。上一层网络把相同的函数输入了下一层网络,即下一层网络虽然有很多的节点,但是其实他们计算的函数都是相同的。这是高度冗余的现象。

为了避免这中情况,我们使用随机初始化设置所有的参数。在随机初始化时要注意,参数仍然是一个接近0的随机数。

2.架构选择

选择一个网络架构(包括层数,神经元个数等)。首先要确定你输入的特征个数,特征个数就是输入层的节点数。输出层的个数等于你需要分类的个数。隐藏层越多计算结果越精确,但是计算量增大,消耗更多的时间。常用的几个架构如下所示:
机器学习笔记(9)— 神经网络的参数初始化、架构选择、训练过程

3.神经网络的训练过程

1)根据上文的参数初始化,生成随机权重
2)使用前向传播得到每一个特征的目标函数
3)计算代价函数
4)使用反向传播计算偏导数项。
5)使用梯度检测计算偏导数项并且与反向传播得到的偏导数进行对比
6)使用梯度下降法(利用反向传播计算出来的偏导数)最小化代价函数