прямая связь полностью подключенная нейронная сеть | MATLAB - PullRequest
0 голосов
/ 08 ноября 2018

Последние 3 часа я потратил на попытки создать нейронную сеть с прямой связью в matlab, но безуспешно. Это действительно смущает меня сейчас.

Я пытаюсь создать следующую нейронную сеть:

  • Входной слой имеет 122 объекта / входа,
  • 1 скрытый слой с 25 скрытыми единицами,
  • 1 выходной слой (двоичная классификация),
  • Входной слой и скрытый слой имеют единицы смещения (общее представление см. На рисунке ниже)

enter image description here

Но из моего анализа функции network я не могу понять, как я собираюсь указать 25 скрытых единиц или нейронов в моем единственном скрытом слое, и как я могу сделать все нейроны входного слоя подключенными к этим скрытый отряд.

net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect);

Например, если я хочу создать нейронную сеть с 5 входами и 5 скрытыми блоками в скрытом слое (включая блоки смещения) и сделать его полностью подключенным. Я использую этот код:

net = network(5,1,1,[1 1 1 1 1],0,1);

которые выводят это:

enter image description here

Насколько я понимаю, мой код имеет следующие проблемы:

  • Нет входных данных смещения во входном слое
  • это не полностью подключенная сеть (как будто один нейрон подключен только к скрытому нейрону)

Итак, пожалуйста, я положил свои карты на стол, как я могу это сделать?

1 Ответ

0 голосов
/ 09 ноября 2018

Полагаю, вы путаете количество входов / слоев с их размером:

  • ваша сеть имеет ОДИН вход, размер которого составляет 122;
  • ваша сеть имеет ДВА слоя:
    • 1-й слой: скрытый слой с 25 узлами (W - это весовая матрица 25 на 122);
    • 2-й слой: выходной слой с 1 узлом (W - это матрица весов 1 на 25).

Следующий код делает то, что вы пытаетесь сделать:

% 1, 2: ONE input, TWO layers (one hidden layer and one output layer)
% [1; 1]: both 1st and 2nd layer have a bias node
% [1; 0]: the input is a source for the 1st layer
% [0 0; 1 0]: the 1st layer is a source for the 2nd layer
% [0 1]: the 2nd layer is a source for your output
net = network(1, 2, [1; 1], [1; 0], [0 0; 1 0], [0 1]);
net.inputs{1}.size = 122; % input size
net.layers{1}.size = 25; % hidden layer size
net.layers{2}.size = 1; % output layer size
net.view;

Что приводит к:

enter image description here

Попробуйте также help network, чтобы узнать, как установить диапазон входных данных, функции передачи и многое другое.

...