研一机器学习课程,外教布置的作业。当时写代码、实验结果分析的水平真是“青涩”啊......
一. 题目:
Implement a classifier for characters L and I using the discrete perceptron learning algorithm. You may use any implementation.
Specifications:
· Use a 3 x 3 binary matrix representation.
· Your neural network should have one neuron.
What happens when the letters are “noisy”?
二. 解答
分析:用3*3矩阵表示L和I,每个字母都有多种表示方式。注意考虑多方向、字母粗细。
每个样本都是9维(每个dim是0或者1),w也是9维。
1. Code(using MATLAB)
% initialization
% train data: training set L-X1 (10 data); train set I-X2 (6data)
% test data: test set L-T1 (5 data); test set I-T2 (5 data)
% noisy data: 1 noise L-N1; 1 noise I-N2
n=0.05; %step size
w=ones(size(X1,1),1);
wt=2*w;
temp=w;
j=0;
%while loop
while (wt-w)'*(wt-w)>0.0001 % wt: 本次iteration训练后所得,w: 上一次iteration结果。若相差很小,就结束循环。
j=j+1; %--iteration