После завершения первого урока онлайн-курса Deep Learning Fast.ai я решил заменить исходный набор данных собаки против кошек на один, содержащий фотографии двух сестер, в данном случае Тиффани и Иванки Трамп. Моей целью было использовать образец кода урока, в котором использовалась сверточная нейронная сеть (CNN), для создания бинарного классификатора изображений.

Для меня этот проект иллюстрирует одну из прелестей подхода Fast.ai к обучению глубокому обучению, заключающуюся в том, что большинство уроков содержат примеры кода, которые имеют функциональность plug-and-play. Вы можете легко использовать Урок 1 для создания классификатора с целью различения любых двух классов изображений. Например, классификатор, который научился бы различать вас и всех других рыжеволосых, вроде того, что Скотт Фогель обрисовал в общих чертах в этом посте.

Проект также свидетельствует о методологии обучения Целостный подход, популяризированной профессором Гарвардской школы образования Дэвидом Перкинсом, в которой основатели Fast.ai Джереми Ховард и Рэйчел Томас нашли вдохновение. , цель научить людей тому, как каждый урок решает реальную проблему, а не рисковать потерять учеников в кроличьих норах теории и мелочей. В соответствии с этим подходом, часть методики обучения Fast.ai заключается в том, чтобы брать образец кода каждого урока и делать его своим собственным, изменяя и превращая его в собственный проект.

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

Поскольку я не использовал распознавание лиц, мне было любопытно узнать, какие функции нейронная сеть отточит для каждого предмета. Для Тиффани это не было очевидным во время части процесса Исследовательский анализ данных, однако я заметил следующее в отношении изображений Иванки.

Одна из ярких черт Иванки - ее относительно длинная шея. CNN явно отточил это, поскольку три из четырех наиболее правильно обозначенных изображений Иванки отображают эту особенность.

Цифры, которые появляются над каждым из четырех снимков Иванки на изображении выше, позволяют нам увидеть наш двоичный классификатор в действии. Функция активации, которая используется на последнем уровне CNN, «сдвигает» метку вывода, которую она применяет к каждому изображению, по шкале от нуля до единицы. В нашем примере правильно помеченный Ivankas получит метку от нуля до 0,5, а правильно помеченный Tiffanys получит выходные метки больше 0,5, но меньше единицы.

Посмотрим на самых некорректных Иванок:

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

А теперь о Тиффани:

Изображение слева имеет немного низкое разрешение и довольно пиксельное. На изображении справа оба объекта находятся в одном кадре, Иванка стоит перед своей сестрой, поэтому неудивительно, что CNN запуталась.

Таким образом, в нашем тестовом наборе только 4 изображения из 94 были неправильно классифицированы. Это довольно впечатляюще на многих уровнях. Во-первых, учитывая относительно небольшой набор данных, который мы использовали. Обучающий набор, который мы использовали, содержал примерно 190 изображений каждого испытуемого, в то время как наш тестовый набор содержал 47 изображений каждой сестры. Для сравнения: исходный пример «Кошки против собак» содержит более 25 000 изображений!

Во-вторых, многие изображения содержат несколько объектов в одном кадре. В дальнейшем мы могли бы улучшить этот проект, включив классификацию нескольких объектов, которая позволит идентифицировать изображение как содержащее как Тиффани, так и Иванку. Учитывая тот факт, что мы не использовали ни распознавание лиц, ни многообъектную классификацию, достигнутый невероятно высокий уровень точности (95,7%) впечатляет.

И все это произошло после прохождения Первого Урока Fast.ai!