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

21 Авг 2019 в 06:04
142 +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 Апр 2024 в 13:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир