标签: perceptron

多层感知器(MLP)架构:选择隐藏层数和隐藏层大小的标准?

如果我们有10个特征向量,那么我们可以在输入层有10个神经节点.如果我们有5个输出类,那么我们可以在输出层有5个节点.但是选择MLP中隐藏层数的标准是什么以及有多少神经节点1个隐藏层中的节点?

machine-learning perceptron neural-network deep-learning

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

感知器学习算法不收敛到0

这是我在ANSI C中的感知器实现:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

float randomFloat()
{
    srand(time(NULL));
    float r = (float)rand() / (float)RAND_MAX;
    return r;
}

int calculateOutput(float weights[], float x, float y)
{
    float sum = x * weights[0] + y * weights[1];
    return (sum >= 0) ? 1 : -1;
}

int main(int argc, char *argv[])
{
    // X, Y coordinates of the training set.
    float x[208], y[208];

    // Training set outputs.
    int outputs[208];

    int i = 0; // iterator

    FILE *fp;

    if …
Run Code Online (Sandbox Code Playgroud)

c algorithm machine-learning perceptron neural-network

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

为什么权重向量与神经网络中的决策平面正交

我是神经网络的初学者.我正在学习感知器.我的问题是为什么权重向量垂直于决策边界(超平面)?我提到了很多书,但都提到重量向量与决策边界垂直,但没有人说为什么?

任何人都可以给我一本书的解释或参考吗?

artificial-intelligence machine-learning perceptron biological-neural-network neural-network

31
推荐指数
3
解决办法
1万
查看次数

使用TensorFlow对不平衡数据进行培训

情况:

当我的训练数据在2个标签之间的标签分布不平衡时,我想知道如何最佳地使用TensorFlow.例如,假设MNIST教程被简化为仅区分1和0,其中我们可用的所有图像都是1或0.当我们有大约50%的每种类型的图像进行训练和测试时,这很容易使用提供的TensorFlow教程进行训练.但是,我们的数据中有90%的图像是0,只有10%是1的情况呢?我观察到,在这种情况下,TensorFlow会定期将我的整个测试集预测为0,实现90%无意义的准确性.

我曾经取得过一些成功的策略是选择随机批次进行训练,这些训练的均匀分布为0和1.这种方法确保我仍然可以使用我的所有训练数据并产生不错的结果,准确率低于90%,但是更有用的分类器.由于在这种情况下准确性对我来说有些无用,我选择的度量通常是ROC曲线下面积(AUROC),这会产生相当高于.50的结果.

问题:

(1)我所描述的策略是否是对不平衡数据进行培训的可接受或最佳方式,还是有可能更好的方法?

(2)由于精度度量在不平衡数据的情况下不那么有用,是否有另一个度量可以通过改变成本函数来最大化?我当然可以计算AUROC训练后的训练,但我可以训练以最大化AUROC吗?

(3)我是否可以对我的成本函数进行其他改动以改善不平衡数据的结果?目前,我正在使用TensorFlow教程中给出的默认建议:

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y))
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)
Run Code Online (Sandbox Code Playgroud)

我听说这可能是通过加大小标签类的错误分类的成本来实现的,但我不确定如何做到这一点.

machine-learning perceptron neural-network deep-learning tensorflow

27
推荐指数
2
解决办法
1万
查看次数

感知器学习算法的参数调整

我试图找出如何调整感知器算法的参数以使其在看不见的数据上表现相对较好时遇到了一些问题.

我已经实现了一个验证工作的感知算法,我想找出一种方法,通过它我可以调整迭代的数量和感知的学习速度.这是我感兴趣的两个参数.

我知道感知器的学习速率不会影响算法是否收敛和完成.我正试图掌握如何改变n.它太快了,它会在很多地方摆动,而且太低而且需要更长的时间.

至于迭代次数,我不完全确定如何确定理想数.

无论如何,任何帮助将不胜感激.谢谢.

performance machine-learning perceptron deep-learning

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

感知器的几何表示(人工神经网络)

我正在Geoffrey Hinton教授神经网络课程(不是最新的).

我对体重空间有一个非常基本的疑问. https://d396qusza40orc.cloudfront.net/neuralnets/lecture_slides%2Flec2.pdf Page 18. 在此输入图像描述

如果我有一个权重向量(偏差为0)为[w1 = 1,w2 = 2],训练案例为{1,2,-1}和{2,1,1},我猜{1,2}和{2,1}是输入向量.它如何以几何形式表示?

我无法想象它?为什么训练案例给出了一个将重量空间分成2的平面?有人可以在3维坐标轴上解释这个吗?

以下是ppt的文字:

1.重量空间每重量一个维度.

2.空间中的一个点对所有权重都有特定的设置.

3.假设我们已经消除了阈值,每个超平面可以通过原点表示为超平面.

我怀疑是在上面的第三点.请帮助我理解.

machine-learning perceptron neural-network

11
推荐指数
3
解决办法
3099
查看次数

感知器重量更新规则的直觉

我无法理解感知器的重量更新规则:

w(t + 1)= w(t)+ y(t)x(t).

假设我们有一个线性可分的数据集.

  • w是一组权重[w0,w1,w2,...],其中w0是偏差.
  • x是一组输入参数[x0,x1,x2,...],其中x0固定为1以适应偏差.

在迭代t,其中t = 0,1,2,...,

  • w(t)是迭代t的权重集.
  • x(t)是错误分类的训练示例.
  • y(t)x(t)的目标输出(-1或1).

为什么此更新规则会在正确的方向上移动边界?

algorithm machine-learning perceptron

11
推荐指数
1
解决办法
7663
查看次数

感知器可以用来检测手写数字吗?

假设我有一个小位图,其中包含一个手写的数字(0..9).

是否可以使用(双层)感知器检测数字?

除了使用神经网络之外,还有其他可能从位图中检测单个数字吗?

ocr pattern-recognition artificial-intelligence perceptron neural-network

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

实现感知器分类器

嗨,我对Python和NLP都很陌生.我需要实现一个感知器分类器.我搜索了一些网站,但没有找到足够的信息.现在我有很多文件,我根据类别(体育,娱乐等)分组.我还列出了这些文档中最常用的单词及其频率.在一个特定的网站上有人说我必须有一些接受x和w参数的决策函数.x显然是某种向量(我不知道w是什么).但我不知道如何使用我所拥有的信息来构建感知器算法以及如何使用它来对我的文档进行分类.你有什么想法吗?谢谢 :)

python nlp artificial-intelligence machine-learning perceptron

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

如何使用线性感知器中的权重向量绘制线条?

我理解以下内容:

在2D空间中,每个数据点都有2个特征:x和y.2D空间中的权重向量包含3个值[bias,w0,w1],可以将其重写为[w0,w1,w2].为了计算它与权重向量之间的点积,每个数据点需要一个人工坐标[1,x,y].

用于更新每个错误分类点的权重向量的学习规则是w:= w + yn*xn

我的问题是:你如何从权重向量w = [A,B,C]中得出两个点来绘制决策边界?

我理解A + Bx + Cy = 0是一般形式的线性方程(A,B,C可以从权重向量中获取)但我不知道如何绘制它.

提前致谢.

classification machine-learning perceptron

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