如何在多层网络的多个层中使用单个神经元层?
How do I use a single neuron layer in the multiple layers of a multilayer network?
在单层神经元之后放置一层多个神经元在概念上是错误的吗?如果是,我如何在多层网络的多个层中使用这个单个神经元层?
model = Sequential()
model.add(Input(shape=(10,))
model.add(Dense(1,activation='relu'))
model.add(Dense(5,activation='relu'))
我必须使用特殊图层吗?怎么样?
在我的应用中,单个神经元层是一个求和层,如下:
class sumLayer(Layer):
def __init__(self,**kwargs):
super(DefuzzyLayer, self).__init__(**kwargs)
def call(self, x_inputs):
xc = K.sum((x_inputs), axis=-1, keepdims=False)
return tf.reshape(xc,(tf.shape(x_inputs)[0],1))
在深度神经网络中有任何一个点绝对是不标准的,其中表示被折叠成一个数字。这造成了一个极端的信息瓶颈,因此,虽然理论上每个复杂的决定仍然可以被编码,但如果下一层需要以某种方式做出反应,那么下一层就很难学会对此进行推理 space这不是线上信号的非常简单的“阈值处理”。那么,它在概念上是“错误的”吗?不,它并没有真正影响代表权。 有风险吗?是的,这是有经验的从业者永远不会做的事情 除非有充分理解的理由这样做。
获得一些直觉:神经网络有效的核心原因之一是它们在 非常高维的 spaces 中运行,其中它们的简单仿射转换(神经元)可以实现令人惊讶的数据分离程度,但更重要的是 - 它们可以使用极其朴素的优化方法(梯度下降)进行训练。一旦降维,这些属性将完全消失。特别是在存在极端表征瓶颈的情况下,您 更有可能受到局部最小值 的影响,这是早期神经网络社区正在努力解决的问题(这个问题有点“神奇地”随着规模和维数上升;有一个完整的研究领域,例如神经切线内核提供数学 fundations/understanding 为什么在高维情况下会出现这种情况)。
在单层神经元之后放置一层多个神经元在概念上是错误的吗?如果是,我如何在多层网络的多个层中使用这个单个神经元层?
model = Sequential()
model.add(Input(shape=(10,))
model.add(Dense(1,activation='relu'))
model.add(Dense(5,activation='relu'))
我必须使用特殊图层吗?怎么样?
在我的应用中,单个神经元层是一个求和层,如下:
class sumLayer(Layer):
def __init__(self,**kwargs):
super(DefuzzyLayer, self).__init__(**kwargs)
def call(self, x_inputs):
xc = K.sum((x_inputs), axis=-1, keepdims=False)
return tf.reshape(xc,(tf.shape(x_inputs)[0],1))
在深度神经网络中有任何一个点绝对是不标准的,其中表示被折叠成一个数字。这造成了一个极端的信息瓶颈,因此,虽然理论上每个复杂的决定仍然可以被编码,但如果下一层需要以某种方式做出反应,那么下一层就很难学会对此进行推理 space这不是线上信号的非常简单的“阈值处理”。那么,它在概念上是“错误的”吗?不,它并没有真正影响代表权。 有风险吗?是的,这是有经验的从业者永远不会做的事情 除非有充分理解的理由这样做。
获得一些直觉:神经网络有效的核心原因之一是它们在 非常高维的 spaces 中运行,其中它们的简单仿射转换(神经元)可以实现令人惊讶的数据分离程度,但更重要的是 - 它们可以使用极其朴素的优化方法(梯度下降)进行训练。一旦降维,这些属性将完全消失。特别是在存在极端表征瓶颈的情况下,您 更有可能受到局部最小值 的影响,这是早期神经网络社区正在努力解决的问题(这个问题有点“神奇地”随着规模和维数上升;有一个完整的研究领域,例如神经切线内核提供数学 fundations/understanding 为什么在高维情况下会出现这种情况)。