Perceptron - MatLab 严重混乱

Perceptron - MatLab Serious Confusion

这是我第一次尝试机器学习,我可以随心所欲地实现代码。我有 Matlab 访问权限,我认为这比 Python 更简单,而且我有实现 PLA 的伪代码。然而,代码的最后一部分绝对让我感到困惑,尽管它比我到目前为止在这里看到的代码更简单。它似乎要求使用未声明的变量。这就是我所拥有的。我会指出我被卡住的数字线。

1) w <- (n + 1) X m (matrix of small random nums)
2) I <- I augmented with col. of 1s
3) for 1 = 1 to 1000
4)    delta_W = (N + 1) X m (matrix of zeros) // weight changes
5)    for each pattern 1 <= j <= p
6)        Oj = (Ij * w) > 0 // j's are subscript/vector matrix product w/ threshold
7)        Dj = = Tj - Oj // diff. between target and actual
8)        w = w + Ij(transpose)*Dj // the learning rule

第 1 行到第 4 行已编码。 我的问题在第 5 行:"for each pattern mean" 是什么(即在代码中怎么说)。另外,他们对哪个j感兴趣,我在观察矩阵中有一个j,在目标矩阵中有一个j。另外,"p" 是从哪里来的(我有 i、j、m 和 n,但没有 p)?任何想法将不胜感激。

"for each pattern"指的是输入。他们所说的只是 运行 那个循环,其中 Ij 是感知器的输入。

要在 MATLAB 中编写,这实际上取决于您的数据的定向方式。我会将您的输入存储为 mXn 矩阵,其中 m 是输入的数量,n 是每个输入的大小。

假设我们的输入看起来像:

input = [1 5 -1;
         2 3 2;
         4 5 6;
         ...    ]

首先 'augment' 这带有一列用于偏置输入:

[r c] = size(input);
input = [input ones(r,1)];

然后,您的 for 循环将只是:

for inputNumber = 1:r
    pattern = input(inputNumber,:);

您可以从那里继续。