2016-12-23 5 views
2

В настоящее время я просто изучаю сети, предоставляемые tflearn (VGG.Net, GoogLeNet, ResNet и т. Д.) И применяя их к моему набору данных (128 * 128 одноканальное изображение, 925 изображений - до увеличения, 5058 изображений - после увеличения, два класса - раковые & не раковые).Работа с переустройством: расширение данных, перекрестная проверка, ротация-увеличение

  1. Проблема: большое несоответствие между точностью тренировки (~ 100%) и точностью проверки (~ 70%).

  2. Мой подход: 1) Уменьшение сложности модели за счет сокращения # сверточного ядра, 2) сокращение количества узлов в полностью подключенном слое, 3) увеличение скорости отсева в FC.

  3. Вопрос:

1) Может ли это более облегающие проблемы произошли -По крайней мере в какой-то градусов- недостаточным (обучение) набора данных? Я думаю, что если у меня будет намного больше (учебный) набор данных, это будет достаточно представлять распределение материнства (включая набор данных валидации), чтобы точность проверки была аналогична точности обучения.

2) Может ли перекрестная проверка помочь уменьшить несоответствие? Однако, если у меня есть набор тестов, который никогда не будет использоваться в качестве учебного набора, я думаю, что мой тест acc по-прежнему будет иметь большое отличие от обучения в соответствии с. Это верно?

3) Насколько я знаю, сдвиг-аугментация не обеспечивала бы новую информацию, поскольку свертка является инвариантной относительно сдвига. Как насчет ротации? (вращение перед нарезкой ROI, чтобы изображение не содержало нулей на границе)

Спасибо! : D

ответ

1
  1. Да
  2. Нет, если вы не измените размер вашего обучающего набора данных. Однако перекрестная проверка часто используется для использования большего количества ваших данных в качестве данных обучения.
  3. Вращение поможет только в том случае, если оно присутствует в наборе данных. Например, поворот на 180 ° может нанести ущерб.

Хорошие аугментаций для стандартных изображений можно найти в tensorflow CIFAR10 example:

  • tf.random_crop(reshaped_image, [height, width, 3])
  • tf.image.random_flip_left_right(distorted_image)
  • tf.image.random_brightness(distorted_image, max_delta=63)
  • tf.image.random_contrast(distorted_image, lower=0.2, upper=1.8)

Для борьбы с OV вы можете ввести регуляризацию; особенно Dropout (tf.nn.dropout).

Однако он не нуждается в переосмыслении. Также может случиться так, что распределение ваших тестовых данных отличается от ваших данных по обучению (но более вероятно, что переобучение).