Learnly

Как обучают модели компьютерного зрения

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

Учёба через пробу и поправку

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

Представь, как учишься бросать дартс с завязанными глазами, а друг после каждого броска говорит, куда попал: «выше, левее». Сам дротик ты не видишь, но по подсказкам понемногу нащупываешь верное движение. Машина учится так же: каждый промах на учебной картинке это подсказка «бери чуть правее», и после миллионов бросков она начинает попадать. Аналогия хромает в том, что тебе хватит вечера, а машине нужны миллионы повторений и горы примеров.

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

Почему не начинают с нуля

Теперь главный секрет современного обучения. Учить систему с чистого листа долго и дорого, и сегодня так почти не делают.

Вместо этого берут ту самую базовую модель из прошлого урока, которая уже видела миллионы картинок и в общих чертах знает, как выглядит мир. И дальше её лишь слегка доучивают под свою узкую задачу на небольшом числе своих примеров. Этот приём называют дообучением (по-английски fine-tuning).

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

Как это выглядит в жизни

Этот подход и сделал компьютерное зрение доступным не только гигантам.

Завод и его дефект. Производитель берёт готовую модель и дообучает её на паре сотен фотографий именно своего брака. Через несколько дней камера на конвейере отлавливает дефект, на который у крупной лаборатории ушли бы месяцы.

Маленькая клиника. Врачи дообучают общую модель на своих снимках, и она начинает подсказывать на их конкретном оборудовании.

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

И честно про ловушки. Если учебные примеры однобокие, система переймёт их кривизну: помнишь, каков учебник, таков и результат. Есть и коварная ошибка под названием «зубрёжка»: модель может вызубрить учебные картинки наизусть и блестяще отвечать на них, а на новых, которых не видела, проваливаться. Поэтому готовую систему всегда проверяют на свежих примерах, которые при учёбе не показывали, иначе легко принять зубрёжку за настоящее умение.

Итог

  • Обучение это круг «показать пример, угадать, сравнить с ответом, подправить», повторённый миллионы раз.
  • Подписи к картинкам это правильные ответы, поэтому разметка данных самая трудоёмкая и важная часть.
  • С нуля сегодня почти не учат: берут базовую модель и дообучают её на небольшом числе своих примеров.
  • Поэтому даже маленькой клинике или энтузиасту хватает сотен примеров, а не миллионов.
  • Главные ловушки это однобокие данные и «зубрёжка», и от них спасает проверка на свежих примерах.