Задача шахматной доски - Matlab, нейронные сети - PullRequest
0 голосов
/ 05 апреля 2020

У меня проблема с нейронной сетью проекта. Эта сеть должна решить проблему шахматной доски, показанную на изображении № 1 .

x = [0 0 0 1 1 1 2 2 2]; % coordinate x - input
y = [0 1 2 0 1 2 0 1 2]; % coordinate y - input
p = [x; y]; % input matrix

d = [1 0 1 0 1 0 1 0 1]; % true value ( + its 1, o its 0)

Разделение области в первом слое (вертикальные и горизонтальные линии на рисунке). В конце дня я хочу ввести вектор p в нейронную сеть и получить ответ типа d.

Я нашел только одно решение (вы можете начать читать с% второго уровня).

figure
    hold on
    plotpv(p,d);
    %%% first layer
    %neuronx1
    neuronx1 = perceptron;
    neuronx1 = configure(neuronx1,minmax(p),1);
    neuronx1.iw{1,1} = [1 0];
    neuronx1.b{1} = -0.5;
    plotpc(neuronx1.iw{1,1},neuronx1.b{1})
        %neuronx2
    neuronx2 = perceptron;
    neuronx2 = configure(neuronx2,minmax(p),1);
    neuronx2.iw{1,1} = [1 0];
    neuronx2.b{1} = -1.5;
    plotpc(neuronx2.iw{1,1},neuronx2.b{1})
            %neurony1
    neurony1 = perceptron;
    neurony1 = configure(neurony1,minmax(p),1);
    neurony1.iw{1,1} = [0 1];
    neurony1.b{1} = -0.5;
    plotpc(neurony1.iw{1,1},neurony1.b{1})
                %neurony2
    neurony2 = perceptron;
    neurony2 = configure(neurony2,minmax(p),1);
    neurony2.iw{1,1} = [0 1];
    neurony2.b{1} = -1.5;
    plotpc(neurony2.iw{1,1},neurony2.b{1})

    wy1 = sim(neuronx1, p);
    wy2 = sim(neuronx2, p);
    wy3 = sim(neurony1, p);
    wy4 = sim(neurony2, p);
    p = [wy1; wy2; wy3; wy4];

    %%%%% second layer
    neuron1 = perceptron;
    neuron1 = train(neuron1, p, d);
    p = sim(neuron1, d);

    %%% third layer
    p = [p;d]; % including true value to input

    neuron2 = perceptron;
    neuron2 = train(neuron2, p, d);
    output = sim(neuron2, p) % output

Вывод, он показывает истинное значение, но, по моему мнению, использование действительного значения (d) как части ввода в третий слой - неправильная идея.

Не могли бы вы дать мне несколько советов или мнений по поводу использования истинного значения в качестве вход?

Это мой первый проект нейронной сети, спасибо в адвенсе.

...