标签: perceptron

实现感知器分类器

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

python nlp artificial-intelligence machine-learning perceptron

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

感知器阈值的重点是什么?

我很难看到阈值在单层感知器中的实际作用.无论阈值是多少,数据通常都是分开的.似乎较低的阈值更平等地划分数据; 这是它用于什么?

artificial-intelligence perceptron neural-network

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

神经网络:求解XOR

有人可以给我一个数学正确的解释,为什么多层感知器可以解决XOR问题?

我对感知器的解释如下:

具有两个输入的感知器 在此输入图像描述在此输入图像描述 具有以下线性函数,因此能够解决线性可分离问题,例如AND和OR.

在此输入图像描述

在此输入图像描述 是基本步骤功能.

我想到的方式是我用这两个部分代替 在此输入图像描述 用+号分隔为 在此输入图像描述在此输入图像描述 我明白了 在此输入图像描述这是一条线.通过应用步进函数,我得到关于输入的一个聚类.我将其解释为由该行分隔的空格之一.

因为MLP的功能仍然是线性的,我如何以数学方式解释这一点,更重要的是:为什么它仍然是线性的时能够解决XOR问题?是因为它插入多项式?

artificial-intelligence machine-learning perceptron neural-network

7
推荐指数
2
解决办法
1669
查看次数

在简单的感知器中正确的反向传播

给定简单的或门问题:

or_input = np.array([[0,0], [0,1], [1,0], [1,1]])
or_output = np.array([[0,1,1,1]]).T
Run Code Online (Sandbox Code Playgroud)

如果我们训练一个简单的单层感知器(不进行反向传播),则可以执行以下操作:

import numpy as np
np.random.seed(0)

def sigmoid(x): # Returns values that sums to one.
    return 1 / (1 + np.exp(-x))

def cost(predicted, truth):
    return (truth - predicted)**2

or_input = np.array([[0,0], [0,1], [1,0], [1,1]])
or_output = np.array([[0,1,1,1]]).T

# Define the shape of the weight vector.
num_data, input_dim = or_input.shape
# Define the shape of the output vector. 
output_dim = len(or_output.T)

num_epochs = 50 # No. of times to iterate.
learning_rate …
Run Code Online (Sandbox Code Playgroud)

python machine-learning perceptron backpropagation gradient-descent

7
推荐指数
1
解决办法
146
查看次数

OpenCV :: ML - 是否有可能告诉openCV我们要将哪些数据部分发送到哪个神经元?

所以这里有一个简单的例子 - 2个浮点数作为数据+ 1浮点数作为输出:

           Layer 1: 2 neurons (2 inputs)
           Layer 2: 3 neurons (hidden layer)
           Layer 3: 3 neurons (hidden layer)
           Layer 4: 1 neurons (1 output)
Run Code Online (Sandbox Code Playgroud)

我们用类似的东西创建AN

  cvSet1D(&neuralLayers1, 0, cvScalar(2));
   cvSet1D(&neuralLayers1, 1, cvScalar(3));
   cvSet1D(&neuralLayers1, 2, cvScalar(3));
   cvSet1D(&neuralLayers1, 3, cvScalar(1));
Run Code Online (Sandbox Code Playgroud)

而且我们只是高大的openCV来训练我们的网络.

我想知道我们是否有Nx2浮点数据+ 1浮点数作为输出我们想要第一个神经元作为输入第一行(N浮点数)和第二个神经元第二行(N浮点数据元素)我们需要添加什么我们的代码?

c c++ opencv perceptron neural-network

6
推荐指数
1
解决办法
673
查看次数

对算法选择的建议

我必须做一个项目,试图扫描车辆的形状,并检测它是什么类型的车辆,扫描将使用称为"车辆扫描仪"的传感器执行,他们只有50个光束,每个光束有接收器和发射如图所示:

在此输入图像描述

我从传感器得到每个光束的原始状态(阻挡或解锁),并且通过连续扫描,我们可以创建可能非常低分辨率的车辆图像.

我的问题是我可以使用什么算法/技术来检测和识别车辆的形状,我们想要计算车轮,如果可以的话,尝试确定这种形状是汽车,卡车或皮卡等.至少我们想要数轮子.

我正在考虑训练神经网络,但对于我可以使用的这种模式检测可能是一种更简单的方法,我不知道.任何其他建议/建议将不胜感激

algorithm pattern-matching perceptron feature-detection neural-network

6
推荐指数
2
解决办法
329
查看次数

Keras 修正多层感知器的输入形状

我正在尝试在 keras 中制作一个基本的 MLP 示例。我的输入数据有形状train_data.shape = (2000,75,75),我的测试数据有形状test_data.shape = (500,75,75)2000500是训练和测试数据的样本数(换句话说,数据的形状是(75,75),但有 2000 和 500 条训练和测试数据)。输出应该有两个类。

我不确定input_shape网络第一层的参数使用什么值。使用 keras 存储库中 mnist 示例中的代码,我有(更新):

from six.moves    import cPickle
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.utils  import np_utils
from keras.optimizers import RMSprop

# Globals
NUM_CLASSES = 2
NUM_EPOCHS  = 10
BATCH_SIZE  = 250

def loadData():
    fData = open('data.pkl','rb')
    fLabels = open('labels.pkl','rb')
    data = cPickle.load(fData)
    labels = cPickle.load(fLabels)

    train_data …
Run Code Online (Sandbox Code Playgroud)

python data-formats perceptron neural-network keras

6
推荐指数
1
解决办法
1906
查看次数

Python Scikit-learn 感知器输出概率

我正在使用 scikit-learn 的感知器算法进行二元分类。当使用库中的一些其他算法(RandomForestClassifer、LogisticRegression 等)时,我可以让model.predict_proba()算法输出每个示例获得正 (1) 的概率。有没有办法让感知器算法获得类似的输出?

我能得到的最接近的是model.decision_function(),它根据到超平面的有符号距离输出示例的置信度分数,但我不确定如何将这些置信度分数转换为我想要的概率数字。

model.predict()也只返回二进制值。

python classification perceptron neural-network scikit-learn

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

多层感知器,在 Python 中可视化决策边界(2D)

我已经为二元分类编写了多层感知。据我了解,一个隐藏层可以仅使用线作为决策边界来表示(每个隐藏神经元一条线)。这很有效,只需使用训练后的权重就可以轻松绘制。

但是,随着更多层的添加,我不确定使用什么方法,并且教科书很少处理可视化部分。我想知道,是否有直接的方法将权重矩阵从不同层转换到这个非线性决策边界(假设 2D 输入)?

非常感谢,

python visualization numpy perceptron neural-network

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

为什么单层感知器在没有归一化的情况下收敛如此之慢,即使边距很大?

这个问题是在我用其他人编写的一段代码(可以在这里找到)确认我的结果(可以在此处找到 Python Notebook )后完全重新编写的。这是我检测的代码,用于处理我的数据并计算迭代数直到收敛:

import numpy as np
from matplotlib import pyplot as plt

class Perceptron(object):
    """Implements a perceptron network"""
    def __init__(self, input_size, lr=0.1, epochs=1000000):
        self.W = np.zeros(input_size+1)
        #self.W = np.random.randn(input_size+1)
        # add one for bias
        self.epochs = epochs
        self.lr = lr

    def predict(self, x):
        z = self.W.T.dot(x)
        return [1 if self.W.T.dot(x) >=0 else 0]

    def fit(self, X, d):
        errors = []
        for epoch in range(self.epochs):
            if (epoch + 1) % 10000 == 0: print('Epoch',epoch + …
Run Code Online (Sandbox Code Playgroud)

python classification machine-learning perceptron

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