Как мы научили нейронку распознавать пол и возраст
Кажется, что это обычный алгоритм машинного обучения? Как бы не так
Cергей Николенко, директор по науке Neuromation, и Рауф Курбанов, старший научный сотрудник компании, рассказывают, как шла разработка технологии и почему это не так просто, как кажется на первый взгляд.
В феврале у нас вышла первая версия платформы, на которой мы используем вычислительные мощности от майнеров криптовалют для обучения моделей искусственного интеллекта. Пока доступна только альфа-версия платформы, но уже сейчас на ней есть много интересных моделей. В этой статье мы расскажем об одной такой модели, которая уже доступна на платформе: это самая простая нейронная архитектура из всех демо-моделей, но даже в этой сети найдётся немало трюков, о которых стоит поговорить подробнее. Итак, вперёд!
Интуитивно? Не думаю...
Исследователи искусственного интеллекта склонны подвергать сомнению природу интуитивного. Как только вы зададитесь вопросом, как компьютер может повторить то, что кажется простым для людей, вы заметите: то, что кажется «интуитивно понятным» для нас, может быть очень сложно формализовать. Наше визуальное восприятие человеческого возраста и пола — хороший пример такого тонкого качества.
Элиезер Юдковский — один из важнейших современных авторов для нас, AI-гиков. Юдковский известен как исследователь безопасности сильного искусственного интеллекта и автор самого популярного фанфика к «Гарри Поттеру», «Гарри Поттер и методы рационального мышления». Любопытно, что именно в Гарри Поттере появляется прекрасный пример для нашего тезиса, артефакт, который кажется интуитивно понятным:
Альбус Дамблдор провёл «Линию Возраста» вокруг «Кубка огня», чтобы к нему не смог приблизиться никто младше семнадцати лет. Магия Линии Возраста была настолько сильной, что даже зелье старения не могло обмануть её. Даже Юдковский не особенно вникал в механику Линии Возраста в свойственной ему дотошной манере, но сегодня мы попробуем, а заодно ещё и решим задачу определения пола по фотографии. Как обычно в компьютерном зрении, мы начнём со сверточных нейронных сетей.
Свёрточные нейронные сети
Нейронная сеть — это метод машинного обучения, который в некотором очень абстрактном смысле пытается моделировать то, как мозг обрабатывает информацию. Нейронная сеть состоит из простых обучаемых элементов — искусственных нейронов, или перцептронов. Во время обучения нейроны обучаются преобразовывать входные сигналы (скажем, изображение кошки) в соответствующие выходные сигналы (например, метку «кошка»), тем самым обучаясь автоматически распознавать и тех кошек, которых раньше никогда не видели.
В настоящее время практически всё компьютерное зрение основано на свёрточных нейронных сетях (convolutional neural networks, CNN). CNN — это многослойные (глубокие) нейронные сети, в которых каждый нейрон «видит» только очень маленькое «окно» выходов предыдущего уровня. Постепенно, слой за слоем, локальные функции становятся глобальными, и нейроны высоких уровней уже способны «видеть» большую часть исходного изображения. Вот как это работает в очень простой свёрточной архитектуре (см. этот пост, который мы всецело рекомендуем прочитать полностью):
В конце концов, после нескольких (иногда нескольких сотен) слоёв мы получаем глобальные функции, которые «смотрят» на всё исходное изображение, и теперь их можно комбинировать относительно просто, чтобы получить метки классов (например понять, является ли изображение собакой, кошкой, самосвалом или Гарри Поттером).
С технической точки зрения свёрточная нейронная сеть представляет собой нейронную сеть со свёрточными слоями, а свёрточный слой представляет собой преобразование, которое применяет определённое ядро (фильтр) к небольшому окну вокруг каждой точки входа.
Рассмотрим простой пример фильтра: обнаружение краёв в изображениях. В этом случае вход для такого фильтра — это изображение, где каждый пиксель определяется тремя числами: интенсивностью красного, зелёного и синего цветов. Мы строим специальное ядро, которое будет применяться к каждому пикселю изображения; выход представляет собой новый «образ», который показывает результаты этого ядра. В принципе, ядро здесь представляет собой небольшую матрицу. Вот как это работает:
Ядро скользит по каждому пикселю изображения, а выходное значение увеличивается всякий раз, когда есть край, резкая смена цветов. На рисунке выше мы видим, как после умножения этой маленькой матрицы на каждое окно 3x3 в изображении мы получаем очень хороший результат обнаружения краёв.
Если идея фильтров и ядер стала немного понятной, свёрточные слои в нейронных сетях тоже легко объяснить. Свёрточный слой — это по сути свёртка, как в примере обнаружения края выше, но теперь мы не задаём матрицу сами, а настраиваем, «натаскиваем» её в процессе обучения сети. Нам больше не нужно изобретать эти маленькие матрицы, потому что сети могут автоматически подбирать матрицы, которые извлекают признаки, важные для конкретной задачи.
Этапы работы модели
Оценка пола и возраста звучит как самая классическая задача машинного обучения: бинарная классификация для полов (боюсь углубляться в дискуссии на эту тему, но да, наши модели живут в бинарном мире) и регрессия для возраста. Но прежде чем мы сможем решить эти задачи, нам нужно найти лица на фотографии! Классификация не будет работать на картинке в целом, потому что на фотографии может быть, например, сразу несколько лиц. А значит, проблема оценки возраста и пола обычно разбивается на два этапа: сначала поиск лиц на фотографии, а затем оценка пола и возраста для каждого из них:
В модели, которую можно найти на нашей NeuroPlatform, эти шаги выполняются независимо, поэтому давайте и обсудим их по отдельности.
Поиск лиц
Поиск лица на фотографии — классическая задача в компьютерном зрении. Её решали вполне успешно ещё до революции глубокого обучения, в начале 2000-х годов, так называемым алгоритмом Виола-Джонса. Это было одно из самых известных применений каскадов Хаара в качестве признаков; но эти дни давно прошли...
Сегодня распознавание лиц не рассматривается как отдельная задача, требующая индивидуального подхода. Оно точно так же решается свёрточными нейронными сетями. Уже давно стало ясно, что CNN хорошо подходят для обнаружения объектов вообще, и поэтому современное решение классической задачи тоже, скорее всего, будет основано на CNN; так и получается.
Но в реальных проектах по машинному обучению надо учитывать и другие свойства модели, помимо качества результатов; было бы хорошо, чтобы модель была достаточно простой, а вывод в модели — достаточно быстрым.
Если более простой подход работает достаточно хорошо, возможно, не стоит вводить очень сложные модели, чтобы выиграть несколько процентных пунктов (напомните мне потом рассказать вам о результатах конкурса рекомендательных систем Netflix Prize Challenge). Поэтому в демо на NeuroPlatform мы используем более классический подход к обнаружению лиц, а свёрточные сети работают только для основной задачи распознавания возраста и пола. Но и в классическом компьютерном зрении есть о чём рассказать.
Наша модель обнаружения лица использует метод опорных векторов (SVM, классический метод машинного обучения; пожалуй, поля этой статьи слишком узки, так что просто оставим ссылку), который запускается на HOG + SIFT представлении изображения. Представления HOG и SIFT — это тщательно вручную подобранные функции, ставшие результатом многолетнего опыта в создании систем распознавания образов. Оказалось, что это представление хорошо работает с ядерными методами, в том числе и с методом опорных векторов.
Оценка возраста
Итак, предположим, что лицо мы на картинке нашли. Чтобы оценить возраст, мы применяем глубокую свёрточную нейронную сеть к этому самому лицу. Метод в нашем демо использует архитектуру так называемых «широких остаточных сетей» (Wide Residual Networks, WRN), одну из последних разработок в области распознавания образов, которая достигает лучших результатов быстрее, чем другие ведущие архитектуры. Давайте посмотрим, что такое остаточные сети и почему они так хорошо работают.
Проект ImageNet представляет собой большую базу данных изображений, предназначенную для использования в моделях компьютерного зрения. Революция глубокого обучения в приложении к компьютерному зрению началась в 2010 году именно с резкого продвижения в решении ImageNet Challenge. Результаты на ImageNet были признаны не только в академическом сообществе, но и на практике, а ImageNet стал и до сих пор остаётся самым популярным датасетом общего назначения в компьютерном зрении. Не вдаваясь в подробности, давайте просто посмотрим на график, сравнивающий победителей нескольких последних лет:
На графике горизонтальная ось показывает, насколько вычислительно сложна модель, круг указывает число параметров, а по вертикали показан собственно результат. Как видно, архитектуры ResNet (это и есть остаточные сети, residual networks) показывают отличные результаты, но при этом ещё и очень эффективны. В чём же их секрет?
Известно, что более глубокие нейронные сети теоретически могут работать лучше, чем более мелкие модели, они более выразительны. Но оптимизация в глубоких моделях — большая проблема: более глубокие модели труднее оптимизировать из-за особенностей того, как градиенты распространяются от верхних слоёв к нижним (надеюсь, в один прекрасный день мы подробно объясним всё это). Остаточные соединения — отличное решение этой проблемы: они добавляют «обходные» соединения, и поток градиента теперь способен «пропускать» лишние слои во время обратного распространения ошибки, что приводит к гораздо более быстрой сходимости и более качественному обучению:
А WRN, широкие остаточные сети, делают следующий шаг: их авторы тщательно изучили соотношение между шириной и глубиной нейросетевой архитектуры и подобрали максимально эффективную архитектуру с самой быстрой сходимостью.
Материалы по теме:
Системы распознавания лиц не различают азиатов. Как IT-компании с этим борются
Технологии вместо наркотиков: ученые создают «галлюциногенную машину»
ИИ научился определять суицидальные наклонности по снимкам мозга
Хорошие и плохие способы использовать машинное обучение в предвыборной кампании
-
Партнёрский материал Компании научились собирать данные. Принимать решения — нет: почему цифры не помогают сами по себе 21 июля 2026, 16:04
-
Личное «Сдаваться — путь слабого»: как живут модные бренды в 2026 году 15 августа 2026, 10:00
-
Бизнес «Такой вкусной сырной пенки нигде нет»: как эксперимент Фёдора Овчинникова превратился в сеть «Дринкит» 25 августа 2026, 18:45
-
Личное Бернар Арно. Как из семейного строительного бизнеса прийти к империи роскоши LVMH 24 августа 2026, 20:09
-
Бизнес Сначала скопировали McDonald’s, потом объявили ему войну: история Burger King 23 августа 2026, 10:00
-
Игры От музыкального лейбла до GTA VI: история Rockstar 22 августа 2026, 13:48
-
Бизнес Собрать, разобрать, выжить: история LEGO 22 августа 2026, 10:00
-
Автомобили Электромобили, роботы и Илон Маск: история Tesla 21 августа 2026, 11:26
-
Реклама Рекламодатели нарастили размещения в Telegram на 32% во II квартале — но на продвижение бренды тратят все меньше 26 августа 2026, 20:30
-
Бизнес «Группа Астра» отчиталась о финансовых результатах за II квартал 2026 года: выручка выросла вдвое — до 5 млрд ₽ 26 августа 2026, 20:00
-
Бизнес Apple представит iPhone 18 уже 9 сентября — впервые за 15 лет презентацию проведёт не Тим Кук 26 августа 2026, 19:29
-
Россия Концерт Канье Уэста в Санкт-Петербурге может состояться — организаторы ведут переговоры и не исключают перенос дат 26 августа 2026, 18:45
-
Автомобили АвтоВАЗ опроверг информацию о переносе старта производства Lada Azimut — выпуск машин начнется в сентябре в 2026-го 26 августа 2026, 18:30
-
Деньги Акции VK обновили исторический минимум — стоимость бумаг опустилась до 116,4 ₽ 26 августа 2026, 18:00
-
«Это болезненный удар для команды»: Rockstar прокомментировала утечки материалов новой GTA 6 26 августа 2026, 17:30
-
Автомобили Esteo представил в России три внедорожника и кроссовер — запас хода гибридов достигает 1180 км 26 августа 2026, 17:02





