【问题标题】:extreme architecture of neuron network神经元网络的极端结构
【发布时间】:2019-05-18 04:16:42
【问题描述】:
我有一个关于神经元网络的简单问题。众所周知,最好让网络更深而不是更宽。那么如果我将每个隐藏层都设置为一个神经元并将我的网络扩展得非常深,会发生什么?
之所以提出这个问题,是因为我今天做了一个关于 CNN 的讲座。我们使用 CNN 的原因是我们想要提取图像的特征并减少输入数据的维度。既然我们不断地让每一层的输入越来越小,为什么不只使用一个神经元让网络更深呢?还是会有不好的事情发生?
谢谢!
【问题讨论】:
标签:
neural-network
deep-learning
artificial-intelligence
【解决方案1】:
很明显,单神经元的例子是行不通的——否则,这就是我们要使用的。
CNN 中每一层的内核利用空间关系并使用 非线性 函数评估这些并列,这是 CNN 与简单线性组合 NN 的主要区别。如果没有这些非线性操作,CNN 层只是一种编程便利。
如果您立即将输入折叠为单个值,则在尝试编写构成输出评估的级联非线性时会遇到巨大问题。是的,理论上可能编写一个具有 28x28x3 输入和您想要的输出的函数 - 并在该函数中训练大量参数 - 但它非常 em> 代码混乱,几乎无法维护。
例如,假设尝试在单个函数中对整个所得税表格进行编码,这样输入是适用货币金额的整个范围、布尔状态信息、标量参数(例如,有多少孩子住在家里), ...并输出正确的付款或退款金额。有许多布尔方程可供应用、随税率变化的阶梯函数、各种类别的附加税或减免等。
现在,参数化该大规模计算中的所有常数系数。获取一些 10^6 的真实观察结果,并在仅输入和标签(税/退税金额)上训练您的模型。您不会得到 任何 中间结果来检查,只有最终数量。
这是可能的,但不容易编写、调试或维护。