Основы нейронной сети умножаются

Здравствуйте, я изучаю нейронную сеть. Нейрон хранит только значение между 1 или -1? я не могу дать значение 255 или 1024 как? я искал пример решателя функции XOR библиотеки Encog Java. Я хотел изменить XOR на Multiplier, изменив XOR_INPUT и XOR_IDEAL.

Вот местоположение источника: http://www.heatonresearch.com/wiki/Hello_World

я изменился

ОТ:

/**
 * The input necessary for XOR.
 */
public static double XOR_INPUT[][] = { { 0.0, 0.0 }, { 1.0, 0.0 },
        { 0.0, 1.0 }, { 1.0, 1.0 } };

/**
 * The ideal data necessary for XOR.
 */
public static double XOR_IDEAL[][] = { { 0.0 }, { 1.0 }, { 1.0 }, { 0.0 } };

TO:

/**
 * The input necessary for XOR.
 */
public static double XOR_INPUT[][] = { { 0.0, 0.0 }, { 1.0, 0.0 },
        { 1.0, 2.0 }, { 2.0, 4.0 } };

/**
 * The ideal data necessary for XOR.
 */
public static double XOR_IDEAL[][] = { { 0.0 }, { 1.0 }, { 2.0 }, { 8.0 } };

После изменения значения на эти. Я получил бесконечный цикл и выводит константу:

Epoch # 274107 Ошибка: 12,75

Epoch # 274108 Ошибка: 12,75

Epoch # 274109 Ошибка: 12,75

Epoch # 274110 Ошибка: 12,75

Эпоха # 274111 Ошибка: 12,75

Epoch # 274112 Ошибка: 12,75

Epoch # 274113 Ошибка: 12,75

Эпоха # 274114 Ошибка: 12,75

Epoch # 274115 Ошибка: 12,75

Эпоха #274116 Ошибка: 12,75

Эпоха # 274117 Ошибка: 12,75

Эпоха #274118 Ошибка: 12,75

Эпоха #274119 Ошибка: 12,75

Вот вопросы;

1-) это называется локальными минимумами?

2-) мне нужно установить значение между (0 и 1) или (-1 и 1) является обязательным?

3-) как я могу решить простую задачу решения умножения?

Благодарю.

1 ответ

Решение

Ваш выходной слой является сигмовидным, что означает, что он может представлять значения только от 0 до 1, поэтому невозможно обучить такую ​​сеть распознаванию чего-либо еще. Тем не менее, это не ошибка сети, вы должны масштабировать выходные данные так, чтобы они соответствовали этому интервалу, а затем и уменьшать масштаб.

Просто:

  • токовые выходы 0,1,2,8
  • мы предполагаем, что 8 является "максимальным" значением, и уменьшаем их на 8, получая: 0,1/8,1/4,1

Теперь вы тренируете свою сеть, и для получения оригинальных результатов просто умножьте значение на 8.

Помните, что простые нейронные сети не являются инструментами для символических вычислений. Если вы ищете модель, которая на самом деле найдет a*b Формула тогда читайте о symbolic function networks,

Другие вопросы по тегам