Шаг 215.
Глубокое обучение на Python. Введение в глубокое обучение ... . Использование предварительно обученной модели (общие сведения)

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

    Типичным и эффективным подходом к глубокому обучению на небольших наборах изображений является использование предварительно обученной модели. Предварительно обученная модель - это сохраненная модель, прежде обученная на большом наборе данных, обычно в рамках масштабной задачи классификации изображений. Если исходный набор данных достаточно велик и достаточно обобщен, то пространственная иерархия признаков, изученных моделью, может с успехом выступать в роли обобщенной модели видимого мира и использоваться во многих задачах компьютерного зрения, даже если новые задачи будут связаны с совершенно иными классами, отличными от встречавшихся в оригинальной задаче. Например, можно обучить сеть на изображениях из ImageNet (где подавляющее большинство классов - животные и бытовые предметы) и затем использовать ее для идентификации чего-то иного, например предметов мебели на изображениях. Такая переносимость изученных признаков между разными задачами - главное преимущество глубокого обучения перед многими более старыми приемами поверхностного обучения, которое делает глубокое обучение очень эффективным инструментом для решения задач с малым объемом данных.

    Для нашего случая мы возьмем за основу сверточную нейронную сеть, обученную на наборе ImageNet (1,4 миллиона изображений, классифицированных по 1000 разных классов). Коллекция ImageNet содержит множество изображений разных животных, включая разновидности кошек и собак, а значит, можно рассчитывать, что модель, обученная на этой коллекции, прекрасно справится с задачей классификации изображений кошек и собак.

    Мы воспользуемся архитектурой VGG16, разработанной Кареном Симоняном и Эндрю Циссерманом в 2014 году.


Simonyan K., Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition // arXiv, 2014, https://arxiv.org/abs/1409.1556.
Хотя это довольно старая модель, сильно отставшая от актуального уровня и к тому же более тяжелая, чем многие современные варианты, мы выбрали ее, потому что ее архитектура похожа на примеры, представленные в предыдущих шагах, и вам будет проще понять ее без знакомства с какими-либо новыми понятиями. Возможно, это ваша первая встреча с одним из представителей всех этих моделей, названия которых вызывают дрожь, - VGG, ResNet, Inception, Xception и т. д.; но со временем вы привыкнете к ним, потому что они часто будут попадаться вам на пути, если вы продолжите заниматься применением глубокого обучения в распознавании образов.

    Есть два приема использования предварительно обученных сетей:

    Начнем с первого.

    На следующем шаге мы рассмотрим выделение признаков.




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