Как конвертировать мое плавающее число, чтобы кормить мою нейронную сеть? - PullRequest
0 голосов
/ 11 декабря 2010

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

Предполагается, что у нас есть 4 плавающих числа minus1, plus1, minus2, plus2

if (minus2>plus2) and (minus1<plus1) then return 1
else if (minus2<plus2) and (minus1>plus1) then return -1
else return 0

Но вот мои проблемы:

  1. Как мне прокормить мою сеть такими номерами: 63,8990, -165,177, 1,33001 или 0,98401?

  2. Как мне выбрать количество входов, так как у меня есть 4 числа, но я не знаю, стоит ли мне использовать только 4 входа или сначала преобразовать все в биты и выбрать количество входов в соответствии с номерами связанных бит?

  3. Учитывая 3 типа выходных данных (1, -1,0), если мне нужно 3 нейрона в моем выходном слое, каждый из которых представляет определенный тип ответа, или, может быть, я должен обучить сеть, чтобы изучать отдельно каждый вид ответ (1 для первой сети, -1 для второй и 0 для последней)?

Заранее всем спасибо за четкое чтение, и ваша помощь высоко ценится

Stephane

Ответы [ 2 ]

1 голос
/ 11 декабря 2010

Вопрос немного расплывчатый.Я буду интерпретировать это как:

Вы пытаетесь реализовать функцию f(m1, p1, m2, p2) (определение, данное в этом предложении if), используя нейронные сети.

Для (1) вам необходимоПодумайте, как вы представляете сеть, на что влияет тип сети, которую вы используете.

Для (2), чтобы обучить сеть, вам нужно будет использовать истинные значения (то есть экземпляры m1, p1, m2, p2, and f(m1, p1, m2, p2)).

Для (3) на самом деле у вас нет 3 типов выходов.Скорее у вас есть 3 возможных выхода.Конечно, можно обучить 3 сети реагировать, когда ответом является конкретный выход, но вы также можете (при наличии соответствующего типа сети) добиться того же с сетью с одним выходом.

0 голосов
/ 06 января 2011

1) Я не уверен, что имеет значение, какие номера вы используете для подачи своего NN (нейронная сеть [или персептрон]). Это означает, что вы можете заставить 4 входных узла принимать число с плавающей запятой со знаком (или десятичное число со знаком, если оно доступно). Таким образом, вы можете иметь все входные данные, принимающие данные одного типа для обработки. Поскольку вы умножите входные данные на взвешенное значение, вы, скорее всего, в любом случае получите значение с плавающей запятой или десятичное значение в пределах NN.

2) Я бы сказал, что, поскольку у вас есть 4 точки данных, то 4 входа в NN являются хорошей отправной точкой!

3) Что касается выходных данных, вполне возможно иметь один выходной узел для всего NN. Чтобы использовать эту схему, должна быть пороговая функция, которая принимает окончательный вывод из NN и преобразует его в пригодные для использования значения. в вашем примере я бы предложил, чтобы все, что ниже -0,5, вы классифицировали как -1, любой выход между -0,5 и +0,5 вы классифицировали как 0, а все, что выше +0,5, вы классифицировали бы как 1.

, например

Value           | Output
----------------|----------
< -0.5          | -1
-0.5 < x < +0.5 | 0
x > +0.5        | +1 
...