前面几节已经讲了一些关于神经网络的事情。因为神经网络在机器学习中如此重要,所以我们需要一个单独的部分来总结我们之前所学的内容。
确定神经网络的结构
神经网络的结构无非是输入层、输出层加隐含层。有多少隐藏层?每一层有多少个神经元?输入层和输出层分别有多少个单元?
这些有多少?应该有多少人?在训练神经网络之前,必须回答这些问题。
首先,输入层的单元数是由你的自变量的维数决定的;
其次,输出层的单元数是由要分类的问题最终分成多少类决定的。
因此,神经网络结构的选择实质上是确定隐含层的数目和每个隐含层的单元数。
以3个输入单元和4个输出单元的神经网络为例。常见的隐藏层设置如下图所示。
根据分类的效果,隐层单元越多越好,但是神经元太多会使训练变慢,所以需要平衡。一般情况总结英语下,将隐含层的单元数设置为输入层的2~4倍为宜。隐藏层数为1、2和3。
神经网络训神经网络算法三大类练的一般步骤
步骤1,随机初始化权重;
第二步:实现前向传播算法,得到每个输入的激活函数;
步骤3:编码并计算代价函数神经网络控制;
第四步:实现反向传分类汇总播计算激活函数的偏导数。
码中的m是训练样本的个数。
第五步:用梯度测试验证计算反向传播偏导数的代码是否正确。如果正确,关闭梯度测试代码。
第六步:结合一些更好的算法来计算那些能使代价函数最小的参数。