Создание простой нейросети

428
22 октября 2017, 19:10

Доброго времени суток. Допустим хочу сделать простую нейросеть для XOR:

X=0, У=0, О=0 | X=1, У=0, О=1 | Х=0, У=1, О=1 | Х=1, У=1, О=0

Я так понимаю, что 1,1 и 2,1 входные и им передается значение без изменения. После передачи сигналы далее, в каждом нейроне значение умножается на вес и т.д. В конце я должен сравнить выходы 1,3 и 2,3 и получить ответ, если это 1 ряд, то ответ 0, если 2 ответ 1. Для простоты пусть класс нейрон содержит вес на каждый вход (т.е. 2) и силу сигнала:

Class Neuron
    Public weight() As Double = {0, 0}
    Public power As Double = 0.0
End Class

Дальше создаем массив и получаем случайный вес, в пределах единицы:

Dim neural(2, 1) As Neuron
Dim rand As New Random
For I As Integer = 0 To 2 Step 1
    For J As Integer = 0 To 1 Step 1
        neural(I, J) = New Neuron
        neural(I, J).weight(0) = rand.NextDouble()
        neural(I, J).weight(1) = rand.NextDouble()
    Next
Next

Получаем входные значения:

neural(0, 0).power = Console.ReadLine()
neural(0, 1).power = Console.ReadLine()

Функция активации:

Function Sigmoid(ByRef int As Double) As Double
    Const e_sigmoid As Double = 2.71828
    Return (1 / (1 + (e_sigmoid ^ (-(int)))))
End Function

И простой код работы этой нейронной сети:

For I As Integer = 1 To 2 Step 1
    neural(I, 0).power = Sigmoid(((neural(I - 1, 0).power * neural(I, 0).weight(0)) + (neural(I - 1, 1).power * neural(I, 0).weight(1))))
    neural(I, 1).power = Sigmoid(((neural(I - 1, 0).power * neural(I, 1).weight(0)) + (neural(I - 1, 1).power * neural(I, 1).weight(1))))
Next

Вот у меня вопрос будет ли это работать и как её обучить? Примеры не важно на чем.

READ ALSO
Проблема с Unity (Input.GetTouch(0).phase and Input.GetTouch (1).phase)

Проблема с Unity (Input.GetTouch(0).phase and Input.GetTouch (1).phase)

Я чочу чтобы fan[0] и fan[1] вращалис независимы друг другаrot[0] и rot[1] панелы на которых расположыны fan[0] и fan[1]

297
Как разделить объекты на категории в массиве для передачи данных?

Как разделить объекты на категории в массиве для передачи данных?

Я бы хотел разделить обьекты по категориям например чтобы было так: [obj1: {

338
Вопрос в регулярных выражениях

Вопрос в регулярных выражениях

Есть строка 'HelloWorld'Необходимо найти количество слов

284
Как правильней использовать return c колбэком?

Как правильней использовать return c колбэком?

Как правильней всего использовать return с колбэк-функцей в javascript?

280