Шаг 209.
Глубокое обучение на Python. ... . Обучение сверточной нейронной сети с нуля на небольшом наборе данных (общие сведения)

    На этом шаге мы наметим план дальнейшего изложения.

    Необходимость обучения модели классификации изображений на очень небольшом объеме данных - обычная ситуация, с которой вы наверняка столкнетесь в своей практике, если будете заниматься распознаванием образов с помощью технологий компьютерного зрения на профессиональном уровне. Под небольшим объемом понимается от нескольких сотен до нескольких десятков тысяч изображений. В качестве практического примера рассмотрим классификацию изображений собак и кошек из набора данных, содержащего 5000 изображений (2500 кошек, 2500 собак). Мы будем использовать 2000 изображений для обучения, 1000 для проверки и 2000 для контроля.

    Далее рассматривается одна простая стратегия решения данной задачи: обучение новой модели с нуля при наличии небольшого объема исходных данных. Сначала мы обучим маленькую сверточную нейронную сеть на 2000 обучающих образцах без применения регуляризации, чтобы задать базовый уровень достижимого. Она даст нам точность классификации около 70% С этого момента начнет проявляться эффект переобучения. Затем вашему вниманию будет представлен эффективный способ уменьшения степени переобучения в распознавании образов - обогащение данных (data augmentation). С его помощью мы повысим точность классификации до 80-85%.

    К этому мы рассмотрим еще два важных приема глубокого обучения на небольших наборах данных:

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

    На следующем шаге мы рассмотрим целесообразность глубокого обучения для решения задач с небольшими наборами данных.




Предыдущий шаг Содержание Следующий шаг