我正在努力创建一个带有反向传播的2层神经网络.NN应该从20001x17向量中获取其数据,该向量在每行中包含以下信息:
- 前16个单元格保存0到15之间的整数,这些整数作为变量来帮助我们确定在看到这些变量时我们要表达的26个字母中的哪一个.例如,如下的一系列16个值表示字母A:[2 8 4 5 2 7 5 3 1 6 0 8 2 7 2 7].
- 第17个单元格包含1到26之间的数字,表示我们想要的字母.1代表A,2代表B等.
NN的输出层由26个输出组成.每当NN被输入如上所述的输入时,它应该输出包含零的1x26向量,除了与输入值要表示的字母相对应的一个单元.例如,输出[1 0 0 ... 0]将是字母A,而[0 0 0 ... 1]将是字母Z.
在我提出代码之前一些重要的事情:我需要使用traingdm函数,隐藏的图层编号在21处是固定的(现在).
试着创建上面的概念我编写了以下matlab代码:
%%%%%%%%
%Start of code%
%%%%%%%%
%
%Initialize the input and target vectors
%
p = zeros(16,20001);
t = zeros(26,20001);
%
%Fill the input and training vectors from the dataset provided
%
for i=2:20001
for k=1:16
p(k,i-1) = data(i,k);
end
t(data(i,17),i-1) = 1;
end
net = newff(minmax(p),[21 26],{'logsig' 'logsig'},'traingdm');
y1 …Run Code Online (Sandbox Code Playgroud)