Learnly

Как машины учатся видеть: интуиция технологии

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

Никто не давал тебе правил

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

Машину учат точно так же. Вместо правил ей показывают огромное количество примеров с подписями: тысячи фотографий, под каждой стоит «кошка» или «собака». Машина перебирает их и сама подмечает, какие сочетания точек обычно встречаются у кошек, а какие у собак. Этот подход называют обучением на примерах (по-английски machine learning, машинное обучение). Главное отличие от старого способа: мы не объясняем машине, как выглядит кошка, мы даём ей много примеров, а приметы она выводит сама.

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

Что происходит внутри, без формул

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

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

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

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

Где ты уже помогал машине учиться

Самое забавное, что ты, скорее всего, лично участвовал в обучении таких систем.

Капчи «выберите все фото со светофорами». Когда сайт просит отметить квадраты со светофорами или переходами, ты не только доказываешь, что не робот. Ты бесплатно подписываешь примеры, на которых потом учат компьютерное зрение для беспилотных машин.

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

Эти примеры показывают, почему данные так ценны: без огромного количества подписанных картинок современное зрение не работает. Картинки это учебник, а подписи к ним это правильные ответы в конце задачника.

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

Итог

  • Машины не программируют правилами «как выглядит предмет», их обучают на множестве подписанных примеров, и приметы они выводят сами.
  • Образ собирается снизу вверх: от границ и пятен к деталям, и только потом к ответу.
  • Когда машина ошибается на учебном примере, она чуть подправляет себя, и так миллионы раз.
  • Данные решают всё: подписанные картинки это учебник, а ты не раз пополнял его через капчи и отметки на фото.
  • Каков учебник, таков и результат: перекос в примерах превращается в ошибки системы.