03
Май
2020

Улучшить результат нейронной сети на Python для решения линейного уравнения

Столкнулся с проблемой при написании нейронной сети на Питоне. Я выбрал себе цель достигнуть получения значения уравнения Y = Ax + B Где А, х и B - это входные данные, А Y выходные.

Загружаю нужные библиотеки

import numpy as np
from sklearn.neural_network import MLPRegressor

Задаю функцию, с помощью нее я буду формировать входные данные и выходные данные для обучения, то есть здесь будет теоретический(максимально достоверный результат), а не экспериментальный

def function(A,B,x):
    Y = A*x + B
    return Y

Здесь я с помощью функции рандома задаю A, B, x, то есть входные данные, их я буду далее вставлять в верхнюю функцию и высчитывать выходную Y.

x = np.random.randint(-100, 100, 10000)
A = np.random.randint(-100, 100, 10000)
B = np.random.randint(-100,100, 10000)

Получаю результат Y

Y  = function(A,B,x)

Для верной работы нейронной сети транспонирую входные данные

X = np.array([x,A,B]).T

Выбираю модель нейронной сети

mlp =  MLPRegressor(hidden_layer_sizes=(100, 100), tol=1e-2, max_iter=2000, random_state=0)

Произвожу обучение

mlp.fit(X, Y)

Теперь самое главное, я предсказываю данные

x_predict = np.array([15,2,3],dtype = int).reshape(1,-1)
mlp.predict(x_predict)

Для примера я взял х, А, В = 15, 2, 3. Очевидно, что ответ будет 33 Но нейронная сеть выдает следующий ответ

array([-25.81754109])

Когда я брал значения, для обучения в интервале (-20, 20), значения получались достаточно близкие, но когда использовал разброс в диапазоне (-100, 100), получается нелепость.

Следовательно: Как мне оптимизировать нейронную сеть? Стоит ли изменить модель или оставить, как есть, только поменяв параметры? Буду очень рад выслушать вашу критику и советы.

Источник: https://ru.stackoverflow.com/questions/1119797/%D0%A3%D0%BB%D1%83%D1%87%D1%88%D0%B8%D1%82%D1%8C-%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82-%D0%BD%D0%B5%D0%B9%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9-%D1%81%D0%B5%D1%82%D0%B8-%D0%BD%D0%B0-python-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE-%D1%83%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F

Тебе может это понравится...

Добавить комментарий