Как я могу уменьшить потери с моей моделью keras TensorFlow? - PullRequest
0 голосов
/ 03 июня 2019

Итак, у меня есть набор данных из примерно 140 000 выборок с 5 входами: скорость автомобиля, ускорение автомобиля, скорость ведущего автомобиля, собранного с помощью радара, расстояние ведущего автомобиля и ускорение ведущий автомобиль. Выходное значение составляет от 0 до 1, 0 - максимальный тормоз, а 1 - максимальное ускорение.

Я новичок в нейронных сетях, поэтому у меня возникают проблемы с оптимизацией моей модели, чтобы получить максимальную точность / потерю для этих данных. Я экспериментировал с изменением оптимизатора, функции активации, количества скрытых слоев, количества узлов в слоях и т. Д., Но ничто, по-видимому, не снижает потери со временем.

Вот моя текущая модель:

opt = keras.optimizers.Adam(lr=0.001, decay=1e-6)
model = Sequential()
model.add(Dense(5, activation="tanh", input_shape=(x_train.shape[1:])))
for i in range(40):
    model.add(Dense(60, activation="relu"))
model.add(Dense(1))

Я не слишком беспокоюсь о том, чтобы перенастроить свои данные прямо сейчас, так как я могу работать над этим позже, я просто пытаюсь запомнить данные, чтобы посмотреть, насколько низкими могут быть потери, просто чтобы посмотреть, смогу ли я улучшить Это. И прогнозируйте на данных, которые были обучены, чтобы убедиться, что он может вернуть правильный вывод. Однако самое низкое значение, которое я получил при проверке, составляет около 0.015, что определенно не возвращает текущий результат в моих тестах, оно примерно на 90%.

Есть что-то, что я делаю не так? Должен ли я увеличивать размер моей модели или уменьшать его? Ничто из того, что я пробовал, похоже не работает. Я также позаботился о том, чтобы нормализовать мои 5 входов и 1 выход независимо. Кажется, после нескольких эпох он ничего не изучает.

Спасибо, если кто-нибудь решит помочь мне с этой очень специфической проблемой.

1 Ответ

0 голосов
/ 04 июня 2019

Я бы хотел помочь, но там не так много информации.

Во-первых, какова цель сети?Трудно сказать, что вы пытаетесь уменьшить потери из .Какова ваша функция потери?Каковы ваши ярлыки?Это похоже на классический вопрос обучения с подкреплением, а не на традиционную контролируемую проблему обучения.Как структурированы данные?Я предполагаю, что они «работают» с какой-то оценкой?

Общая вещь, это, вероятно, слишком много слоев.

В большинстве случаев в сетях самое большое улучшение происходит с очисткойваши данные (что мы будем считать, хорошо) и возиться с вашей функцией потери.Лучше всего начать с простой модели и выяснить, нужно ли вам больше.

Также есть обучение усилению, но это хороший пример https://github.com/lexfridman/deeptraffic

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...