我对神经元网络有一个简单的简单问题。众所周知,最好使网络更深而不是更宽。那么,如果我将每个隐藏层设置为一个神经元,并真正扩展我的网络,将会发生什么?
之所以提出这个问题,是因为我今天有一个关于CNN的演讲。我们使用CNN的原因是我们要提取图像特征并减小输入数据的尺寸。由于我们不断使每一层的输入越来越小,为什么不只使用一个神经元并使网络更深呢?还是会发生不好的事情?
谢谢!
答案 0 :(得分:0)
显然,单神经元示例不起作用-否则,这就是我们要使用的。
CNN中每一层的内核利用空间关系并使用非线性函数评估那些并置,这是CNN在简单线性组合NN上的主要区别。没有这些非线性运算,CNN层只是编程上的便利。
如果立即将输入折叠为单个值,则在尝试编写构成输出评估的级联非线性时会遇到巨大问题。是的,在理论上可能编写一个具有28x28x3输入和您想要的输出的函数,并在该函数中训练多个参数-但这非常<< / em>凌乱的代码,几乎无法维护。
例如,假设尝试在一个函数中编写整个所得税表格,以使输入内容是适用货币金额,布尔状态信息,标量参数(例如,家里有多少个孩子)的整个范围, ...并输出正确的付款或退款金额。有很多布尔方程可应用,税率变化的阶跃函数,各种附加税或减免等。
现在,在该大规模计算中将所有常数系数参数化。获取一些10 ^ 6的现实观察,并仅在 上输入和标记(税/退款金额)的模型进行训练。您没有任何中间结果要检查,仅 最后的金额。
可能,但不容易编写,调试或维护。