Как обучить на ошибке? Здравствуйте.
У меня есть 3 коэффициента. С помощью них производится вычисление одного параметра. Параметр должен стремиться к 300. В итоге я могу вычислить ошибку, на сколько не правильные коэффициенты: ошибка = 300 - параметр
Мне нужно подобрать коэффициенты с помощью машинного обучения. Сейчас сделал так, чтобы генерились данные в следующем формате:К1 К2 К3 ОШИБКА
1 2 3 300
Где к1, к2 и к3 - коэффициенты.
И так 2000 строчек. Дальше я вызываю функцию, в которой генерирую новые коэффициенты на базе этой таблицы. И потом на базе этих коэффициентов опять получаю 2к данных, вызываю функцию и т.д. Таким образом произойдёт обучение, после N итераций, по сути, коэффициенты будут лучше.
В этой функции и весь вопрос - как лучше её сделать? Не знаю, что использовать даже из машинного обучения, не подскажите? Буду благодарен

21 Авг 2019 в 06:04
122 +1
0
Ответы
1

Здравствуйте! Для решения вашей задачи вы можете использовать метод градиентного спуска в машинном обучении. Этот метод позволяет оптимизировать параметры модели (в вашем случае - коэффициенты) путем минимизации ошибки.

Вы можете создать модель, которая принимает значения коэффициентов К1, К2, К3 и возвращает параметр, который должен стремиться к 300. Затем вы можете использовать функцию ошибки (например, Mean Squared Error) и градиентный спуск для обновления коэффициентов и минимизации ошибки.

Примерно так это может выглядеть на Python с использованием библиотеки TensorFlow:

import tensorflow as tf
# Создание модели
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(3,))
])
# Оптимизатор
optimizer = tf.keras.optimizers.Adam(learning_rate=0.001)
# Функция ошибки
def loss(target_y, predicted_y):
return tf.reduce_mean(tf.square(target_y - predicted_y))
# Обучение модели
for i in range(num_iterations):
with tf.GradientTape() as tape:
predicted_y = model(X_train)
current_loss = loss(y_train, predicted_y)
gradients = tape.gradient(current_loss, model.trainable_variables)
optimizer.apply_gradients(zip(gradients, model.trainable_variables))
# Получение коэффициентов
coefficients = model.get_weights()[0]

Обучив ваши данные с помощью этого метода, вы сможете получить оптимальные коэффициенты для вычисления параметра, который стремится к 300. Надеюсь, это поможет вам решить вашу задачу! Если у вас есть дополнительные вопросы, не стесняйтесь задавать.

20 Апр в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир