| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 神经网络中如何确定隐藏层的层数和大小 -> 正文阅读 |
|
[人工智能]神经网络中如何确定隐藏层的层数和大小 |
在前馈神经网络中,隐藏层的数量和层数的确定尚无依据,一般是由经验决定。 查阅了大量相关的文章之后我对其进行了综合梳理。 这里需要明确的一点是,这些只是根据经验提出的一些参考的方法,具体的层数和大小还是要在实际实验中进行验证。 在此之前我们还需要理解一点,就是当我们神经元足够多,隐藏层足够多的时候我们甚至能完美拟合所有的点,但是也会带来过拟合的问题。因此我们要把握一个适中的度。 二分类问题方法出自:Beginners Ask “How Many Hidden Layers/Neurons to Use in Artificial Neural Networks?”1 对于二分类比较好理解。但是我对这个方法持保留态度。 先看下边这两类,我们只需要一条斜线就可以完成映射。所以不需要隐藏层,直接
虽然从理论上说,层数越多拟合函数越强,但是实际上更深的层数可能会带来过拟合的问题,同时也会增加训练难度,使模型难以收敛。 隐藏层数量从上边我们可以得到一个结论:在神经网络中,当数据需要非线性分离的时候才需要隐藏层。
对于隐藏层的层数我找到一个说法: Table: Determining the Number of Hidden Layers3
翻译过来就是:
多分类如果二分类可以按照上述方法进行计算,那多分类如何搞? 现在比较常见的方法是根据输入层和输出层的大小进行估算。 现在假设:
常见的观点有隐藏层数量 h h h:
还有一些其他的观点但是我个人不太同意:
因为看了这么一个文章4,文中提到这MINST么一篇论文:SCALABLE MUTUAL INFORMATION ESTIMATION USING DEPENDENCE GRAPHS5 在下边两幅图中,都是使用ReLU做激活函数的神经网络,横坐标从右到左表示压缩率,最右边表示网络第一层,最左边表示网络最后一层,越往左表示压缩效果越好。可以看出隐藏层先增大后减小的压缩效果比逐渐减小的压缩效果更好。 由于文中使用MNIST做的实验,我们可以知道增大的过程中明显大于输入层的大小( 1024 > 28 ? 28 1024>28*28 1024>28?28),更大于输出层的类别数。 这不是个例,通常在CNN中都是使用先增大后减小的隐藏层数量,并且隐藏层的大小都大于
m
a
x
(
n
,
m
)
max(n,m)
max(n,m)。 我是萝莉安,我好忙。😢 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/21 3:37:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |