如何设置神经网络中神经元和网络层的数量?

​导

对于机器学习初学者而言,对这样两个问题会比较困惑:1) 给定神经网络,如何确定中间层数数?2)如何确定每个中间层的神经元数量?

神经网络模型有个重要的定理,就是万能逼近原理,它指的是存在一个足够大的网络能够达到我们所希望的任意精度。不过这个定理没有给出具体计算网络层数和神经元个数的方法。

真正了解哪种架构最有效以及最暴力的唯一方法是尝试所有架构,然后选择最佳架构。然而对于神经网络而言,这非常困难,因为每种模型都需要花费很多时间来训练。有种做法是先训练一个过大的模型,然后通过消除对网络没有太大贡献的权重来修剪模型。

实际上,没有通用的确定网络层数和神经元个数的方法。不过我们可以从下面两个略抽象的方面来间接探讨这个问题。

01

更深的网络模型

更深的网络模型意味着模型拥有更多的中间层(隐藏层)。它的作用是允许模型计算更复杂的特征。例如,在卷积神经网络中,模型前几层代表“低级”特征,例如边缘;最后几层代表“高级”特征,例如面部,身体部位等。对于非结构化数据而言(例如图像),较深的模型会充分挖掘数据的高层次复杂特征。

02

更宽的网络模型

模型层数多(更深)意味着可以创建更复杂的特征,模型更宽(单层神经元数量多)则意味着可以创建更多的特征。某些问题只需要提取数据简单的特征,不过会需要很多这样简单的特征,这样更宽的模型就会派上用场。通常,到网络末端的维度越来越窄,由于复杂的特征比简单的特征承载更多的信息,因此网络偏末端更需要体现模型的深度而不是宽度。

END

 

扫描关注实用AI客栈

获取最新AI资讯与实战案例

《如何设置神经网络中神经元和网络层的数量?》

 

    原文作者:upDiff
    原文地址: https://blog.csdn.net/dlhlSC/article/details/107300514
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞