标签: neural-network

偏差在神经网络中的作用

我知道梯度下降和反向传播定理.我没有得到的是:什么时候使用偏见很重要,你如何使用它?

例如,在映射AND函数时,当我使用2个输入和1个输出时,它不会给出正确的权重,但是,当我使用3个输入(其中1个是偏置)时,它会给出正确的权重.

artificial-intelligence machine-learning neural-network

750
推荐指数
18
解决办法
31万
查看次数

383
推荐指数
11
解决办法
19万
查看次数

人工神经网络相对于支持向量机有什么优势?

ANN(人工神经网络)和SVM(支持向量机)是监督机器学习和分类的两种流行策略.通常不清楚哪种方法对特定项目更好,而且我确定答案总是"它取决于".通常,使用两者的组合以及贝叶斯分类.

有关ANN与SVM的问题已经在Stackoverflow上提出了这些问题:

ANN和SVM分类

ANN,SVM和KNN在我的分类问题上有什么区别

支持向量机或人工神经网络进行文本处理?

在这个问题中,我想具体了解人工神经网络(特别是多层感知器)的哪些方面可能需要在SVM上使用?我问的原因是因为很容易回答相反的问题:支持向量机通常优于人工神经网络,因为它们避免了人工神经网络的两个主要缺点:

(1)人工神经网络通常会集中在局部最小值而不是全局最小值,这意味着它们有时基本上"错过了大局"(或者错过了树木的森林)

(2)如果训练时间过长,人工神经网络常常过度拟合,这意味着对于任何给定的模式,人工神经网络可能会开始将噪声视为模式的一部分.

SVM不会遇到这两个问题中的任何一个.然而,并不是很明显SVM应该是人工神经网络的完全替代品.那么人工神经网络对SVM有哪些具体优势可能使其适用于某些情况?我已经列出了SVM相对于ANN的特定优势,现在我想看一下ANN优势列表(如果有的话).

classification machine-learning svm neural-network

374
推荐指数
6
解决办法
12万
查看次数

在TensorFlow中单词logits的含义是什么?

在下面的TensorFlow函数中,我们必须在最后一层中提供人工神经元的激活.我明白了 但我不明白为什么它被称为logits?这不是一个数学函数吗?

loss_function = tf.nn.softmax_cross_entropy_with_logits(
     logits = last_layer,
     labels = target_output
)
Run Code Online (Sandbox Code Playgroud)

machine-learning neural-network deep-learning tensorflow cross-entropy

191
推荐指数
9
解决办法
8万
查看次数

Keras输入说明:input_shape,units,batch_size,dim等

对于任何Keras层(Layer类),可有人解释如何理解之间的区别input_shape,units,dim,等?

例如,doc说明了units指定图层的输出形状.

在神经网络的图像下面hidden layer1有4个单位.这是否直接转换为对象的units属性Layer?或者units在Keras中,隐藏层中每个权重的形状是否等于单位数?

简而言之,如何理解/可视化模型的属性 - 特别是图层 - 下面的图像? 在此输入图像描述

neural-network deep-learning keras keras-layer tensor

191
推荐指数
2
解决办法
9万
查看次数

如何解释机器学习模型的"损失"和"准确性"

当我使用Theano或Tensorflow训练我的神经网络时,他们将报告每个时期称为"损失"的变量.

我该如何解释这个变量?更高或更低的损失,或者它对我的神经网络的最终性能(准确性)意味着什么?

machine-learning mathematical-optimization neural-network deep-learning objective-function

174
推荐指数
3
解决办法
14万
查看次数

我在哪里调用Keras中的BatchNormalization函数?

如果我想在Keras中使用BatchNormalization函数,那么我是否只需要在开头调用它一次?

我为它阅读了这个文档:http://keras.io/layers/normalization/

我不知道我应该把它称之为什么.以下是我的代码试图使用它:

model = Sequential()
keras.layers.normalization.BatchNormalization(epsilon=1e-06, mode=0, momentum=0.9, weights=None)
model.add(Dense(64, input_dim=14, init='uniform'))
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(64, init='uniform'))
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(2, init='uniform'))
model.add(Activation('softmax'))

sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='binary_crossentropy', optimizer=sgd)
model.fit(X_train, y_train, nb_epoch=20, batch_size=16, show_accuracy=True, validation_split=0.2, verbose = 2)
Run Code Online (Sandbox Code Playgroud)

我问,因为如果我运行包含批量规范化的第二行的代码,如果我运行没有第二行的代码,我得到类似的输出.所以要么我没有在正确的位置调用该功能,要么我认为它没有那么大的差别.

python neural-network keras data-science batch-normalization

144
推荐指数
7
解决办法
14万
查看次数

在神经网络中,训练,验证和测试集之间有什么区别?

我正在使用这个库来实现学习代理.

我已经生成了培训案例,但我不确定验证和测试集是什么.
老师说:

70%应该是培训案例,10%是测试案例,其余20%应该是验证案例.

编辑

我有这个训练代码,但我不知道何时停止训练.

  def train(self, train, validation, N=0.3, M=0.1):
    # N: learning rate
    # M: momentum factor
    accuracy = list()
    while(True):
        error = 0.0
        for p in train:
            input, target = p
            self.update(input)
            error = error + self.backPropagate(target, N, M)
        print "validation"
        total = 0
        for p in validation:
            input, target = p
            output = self.update(input)
            total += sum([abs(target - output) for target, output in zip(target, output)]) #calculates sum of absolute diference between …
Run Code Online (Sandbox Code Playgroud)

artificial-intelligence neural-network

138
推荐指数
5
解决办法
15万
查看次数

为什么使用softmax而不是标准规范化?

在神经网络的输出层中,通常使用softmax函数来近似概率分布:

在此输入图像描述

由于指数,计算起来很昂贵.为什么不简单地执行Z变换以使所有输出都是正的,然后通过将所有输出除以所有输出的总和来归一化?

math neural-network softmax

136
推荐指数
9
解决办法
3万
查看次数

什么时候应该使用遗传算法而不是神经网络?

是否有一个经验法则(或一组例子)来确定何时使用遗传算法而不是神经网络(反之亦然)来解决问题?

我知道有些情况下你可以混合使用这两种方法,但我正在寻找这两种方法之间的高级别比较.

artificial-intelligence machine-learning neural-network genetic-algorithm

134
推荐指数
8
解决办法
7万
查看次数