神经网络构建与训练:从架构选择到高效训练策略
1. 神经网络架构的选择与比较
1.1 额外隐藏层的优势
在构建神经网络时,尝试不同的架构是很有必要的。例如改变层数、神经元数量以及权重初始化方式等。虽然理论上单层网络可以近似任何函数,但所需的神经元数量可能非常庞大,导致模型实用性降低。而且,能够近似函数并不意味着网络能够学会实现它,可能受限于神经元数量或所需时间。
实际上,具有更多层的网络通常只需要较少的神经元就能达到相同的效果,并且对未知数据的泛化能力更好。更多层的网络还能让网络学习输入的不同方面,比如在图像识别中,一层可以学习识别垂直边缘,另一层学习识别水平边缘。在预测波士顿地区房屋售价的例子中,多层网络可以揭示特征与价格之间更复杂的关系,第一层可能揭示基本关系,如大房子价格更高;第二层可能揭示更复杂的关系,如大但卫生间少的房子售价低。
1.2 比较不同网络
构建具有大量层或神经元的神经网络并不难,但容易迷失在众多可能的模型中,不知道哪些值得尝试。当已有一个达到一定准确率的网络,想尝试不同模型时,可以先增加隐藏层的神经元数量。通过绘制不同神经元数量下成本函数随迭代次数的下降情况,可以发现从1个神经元增加到5个时,收敛速度明显加快,但继续增加神经元数量,效果提升不大。
比较网络不能仅看神经元数量,还需考虑可学习参数的数量。每层的可学习参数数量 (Q[l]) 由矩阵 (W[l]) 的元素总数 (n_l n_{l - 1})(其中 (n_0 = n_x))加上偏置数量 (n_l) 得到,即 (Q[l] = n_l n_{l - 1} + n_l = n_l (n_{l - 1} + 1))。整个网络的可学习参数总数