Машинное обучение - моделирование CNN, чтобы определить, является ли изображение «чем-то» или «не» чем-то - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь создать CNN, чтобы играть в онлайн игру. Эта игра, если быть точным:

https://www.gameeapp.com/game-bot/ibBTDViUP

Я собрал изображения и метки для каждого изображения. Эти метки сообщают сети, что нужно нажимать SPACE (выход 1) или ничего не делать (вывод 0).

Я тренирую сеть, используя Keras, вот так:

history = model.fit_generator(
        train_generator,
        steps_per_epoch=2000 // batch_size,
        epochs=3,
        validation_data=validation_generator,
        validation_steps=800 // batch_size)

Сеть выглядит так:

model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(275, 208, 1)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation('sigmoid'))

model.compile(loss='binary_crossentropy',
              optimizer='rmsprop',
              metrics=['accuracy'])

Дело в том. В большинстве случаев сеть всегда выдает 1 или всегда ноль, даже если изображения полностью не связаны с игровыми изображениями.

Правильно ли я моделирую эту проблему?

Как я могу сделать так, чтобы сеть могла идентифицировать себя так, чтобы "не делать" ничего.

Пожалуйста, дайте мне знать, если вопрос не ясен, и заранее спасибо!

1 Ответ

0 голосов
/ 24 августа 2018

Вы хотите выполнить классификацию двоичных изображений (двоичные: есть - нет), и я думаю, что ваша сеть выглядит хорошо.В Классификация двоичных изображений с CNN - лучшие практики для выбора "отрицательного" набора данных? - это общие советы для обучения сетей классификации двоичных изображений.В https://medium.com/@kylepob61392/airplane-image-classification-using-a-keras-cnn-22be506fdb53 приведено полное руководство по настройке сети классификации изображений в кератах.я не уверен насчет обучения, возможно использую обычный model.fit() как в https://medium.com/@kylepob61392/airplane-image-classification-using-a-keras-cnn-22be506fdb53

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