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,:);
您可以从那里继续。
这是我第一次尝试机器学习,我可以随心所欲地实现代码。我有 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,:);
您可以从那里继续。