标签: activation-function

由多个激活函数组成的神经网络

我正在使用 sknn 包来构建神经网络。为了优化我正在使用的数据集的神经网络参数,我使用了进化算法。由于该包允许我构建一个神经网络,其中每一层都有不同的激活函数,我想知道这是否是一个实用的选择,或者我是否应该每个网络只使用一个激活函数?在神经网络中具有多个激活函数对神经网络有害、没有损害还是有益?

另外,我应该拥有的每层神经元的最大数量是多少,我应该拥有的每个网络的最大层数是多少?

python neural-network scikits activation-function

5
推荐指数
1
解决办法
3973
查看次数

在 Keras 中舍入激活函数

我正在尝试创建一个激活函数以在我的 keras 模型中使用。

基本上,我想要的是一个只有两位小数的 sigmoid 函数。所以我试图像这样创建我自己的激活函数:

def mySigmoid(x):
    return np.around(K.sigmoid(x), decimals=2)
Run Code Online (Sandbox Code Playgroud)

进而:

get_custom_objects().update({'mySigmoid': Activation(mySigmoid)})
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,我这样做了。

有人可以帮帮我吗?

非常感谢

堆栈跟踪:

AttributeError                            Traceback (most recent call last)
<ipython-input-52-891a9f63ca56> in <module>()
      3 model.add(Dense(30, activation='softmax'))
      4 
----> 5 model.add(Dense(10, activation='mySigmoid'))
      6 model.summary()
      7 sgd = optimizers.SGD(lr=0.1, decay=1e-5, momentum=0.3, nesterov=True)

/usr/local/lib/python2.7/dist-packages/keras/models.pyc in add(self, layer)
    473                           output_shapes=[self.outputs[0]._keras_shape])
    474         else:
--> 475             output_tensor = layer(self.outputs[0])
    476             if isinstance(output_tensor, list):
    477                 raise TypeError('All layers in a Sequential model '

/usr/local/lib/python2.7/dist-packages/keras/engine/topology.pyc in __call__(self, inputs, **kwargs)
    600 
    601             # Actually call …
Run Code Online (Sandbox Code Playgroud)

python neural-network keras activation-function

5
推荐指数
1
解决办法
3899
查看次数

如何在Keras中使用categorical_hinge?

也许这是一个非常愚蠢的问题,但我找不到如何在Keras中使用categorical_hinge的示例。我进行分类,目标是shape(,1)[-1,0,1],所以我有3个类别。使用功能性API,我像这样设置了输出层:

输出=密集(1,名称='输出',激活='tanh',kernel_initializer ='lecun_normal')(output1)

然后我申请:

model.compile(optimizer = adam,损失= {'输出':'categorical_hinge'},指标= ['准确性'])

结果是该模型正在收敛,但精度接近0。我该怎么做?

keras activation-function loss-function keras-2

5
推荐指数
1
解决办法
2939
查看次数

Keras Functional API 中的高级激活层

使用 Keras 设置神经网络时,您可以使用Sequential模型或Functional API. 我的理解是前者易于设置和管理,并且作为层的线性堆栈运行,而函数式方法对于更复杂的架构非常有用,尤其是那些涉及共享内部层输出的架构。我个人喜欢使用函数式 API 来实现多功能性,但是,在使用 LeakyReLU 等高级激活层时遇到困难。当使用标准激活时,在顺序模型中可以写:

model = Sequential()
model.add(Dense(32, activation='relu', input_dim=100))
model.add(Dense(10, activation='softmax'))
model.compile(optimizer='rmsprop',
          loss='categorical_crossentropy',
          metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

类似地,在函数式 API 中,可以将上述内容写为:

inpt = Input(shape = (100,))
dense_1 = Dense(32, activation ='relu')(inpt)
out = Dense(10, activation ='softmax')(dense_2)
model = Model(inpt,out)
model.compile(optimizer='rmsprop',
          loss='categorical_crossentropy',
          metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

但是,当使用 LeakyReLU 和 PReLU 等高级激活时,在该顺序模型中,我们将它们编写为单独的层。例如:

model = Sequential()
model.add(Dense(32, input_dim=100))
model.add(LeakyReLU(alpha=0.1))
model.add(Dense(10, activation='softmax'))
model.compile(optimizer='rmsprop',
          loss='categorical_crossentropy',
          metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

现在,我假设在函数式 API 方法中执行等效操作:

inpt = Input(shape = (100,))
dense_1 = Dense(32)(inpt)
LR = LeakyReLU(alpha=0.1)(dense_1)
out = …
Run Code Online (Sandbox Code Playgroud)

neural-network keras activation-function

5
推荐指数
1
解决办法
3534
查看次数

张量流中是否有 logit 函数?

张量流中是否有logit函数,即sigmoid函数的逆函数?我已经搜索过谷歌,但没有找到任何。

machine-learning inverse neural-network tensorflow activation-function

5
推荐指数
2
解决办法
4138
查看次数

为什么 ReLU 用于神经网络的回归?

我正在关注带有 Keras 教程的官方 TensorFlow,但我被困在这里:预测房价:回归 - 创建模型

为什么将激活函数用于预测连续值的任务?

代码是:

def build_model():
    model = keras.Sequential([
        keras.layers.Dense(64, activation=tf.nn.relu, 
                   input_shape=(train_data.shape[1],)),
        keras.layers.Dense(64, activation=tf.nn.relu),
        keras.layers.Dense(1)
    ])

    optimizer = tf.train.RMSPropOptimizer(0.001)

    model.compile(loss='mse', optimizer=optimizer, metrics=['mae'])
    return model
Run Code Online (Sandbox Code Playgroud)

regression machine-learning neural-network keras activation-function

5
推荐指数
1
解决办法
4849
查看次数

为什么在神经网络中几乎每个激活函数都会在负输入值处饱和

这可能是一个非常基本/微不足道的问题。

对于负输入,

  1. ReLu 激活函数的输出为零
  2. Sigmoid 激活函数的输出为零
  3. Tanh 激活函数的输出为 -1

下面提到的是我的问题:

  1. 为什么上述所有激活函数都对负输入值饱和。
  2. 如果我们想预测负目标值,是否有任何激活函数。

谢谢你。

neural-network deep-learning keras activation-function

5
推荐指数
1
解决办法
3878
查看次数

如果我们不将激活应用于隐藏层并仅应用于前馈神经网络的输出层,该怎么办?

这里有隐藏的陷阱吗?即使是流行的ReLU也是max(0,x),我们将允许最大值传递并将负数剪辑为零.如果我们同时允许正值和负值,会出现什么问题?或者为什么我们在ReLU中将负值剪切为零.

artificial-intelligence machine-learning neural-network deep-learning activation-function

4
推荐指数
1
解决办法
1013
查看次数

用于时间序列预测的最佳激活函数是什么

我正在使用 Keras 的 Sequential 模型和 DENSE 层类型。我写了一个递归计算预测的函数,但预测结果还差得很远。我想知道用于我的数据的最佳激活函数是什么。目前我正在使用 hard_sigmoid 函数。输出数据值的范围为 5 到 25。输入数据的形状为 (6,1),输出数据为单个值。当我绘制预测时,它们永远不会减少。感谢您的帮助!!

# create and fit Multilayer Perceptron model
model = Sequential();
model.add(Dense(20, input_dim=look_back, activation='hard_sigmoid'))
model.add(Dense(16, activation='hard_sigmoid'))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(trainX, trainY, epochs=200, batch_size=2, verbose=0)

#function to predict using predicted values
numOfPredictions = 96;

for i in range(numOfPredictions):
    temp = [[origAndPredictions[i,0],origAndPredictions[i,1],origAndPredictions[i,2],origAndPredictions[i,3],origAndPredictions[i,4],origAndPredictions[i,5]]]
    temp = numpy.array(temp)
    temp1 = model.predict(temp)   
    predictions = numpy.append(predictions, temp1, axis=0)
    temp2 = []
    temp2 = [[origAndPredictions[i,1],origAndPredictions[i,2],origAndPredictions[i,3],origAndPredictions[i,4],origAndPredictions[i,5],predictions[i,0]]]
    temp2 = numpy.array(temp2)
    origAndPredictions = numpy.vstack((origAndPredictions, temp2))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

更新:我使用此代码来实现 swish。

from keras.backend …
Run Code Online (Sandbox Code Playgroud)

python neural-network sequential keras activation-function

4
推荐指数
1
解决办法
2926
查看次数

在张量流推理过程中如何获得神经元的激活?

我想具体知道如何让神经网络中的神经元被激活(激活函数后每个神经元的输出)

当我在 Tensorflow 2 中的模型推理过程中给出输入时,如何获得序列模型的所有神经元的激活?

neural-network tensorflow activation-function

4
推荐指数
1
解决办法
1433
查看次数