Эти тренировочные данные используются, чтобы выучить, какие вопросы лучше всего задавать, чтобы отличать кошек от некошек. Каждый раз, когда алгоритм ошибается, он изменяется так, чтобы в следующий раз не допустить той же ошибки. Речь может идти об изменении параметров существующего алгоритма или внедрении в него новой функции для более точного различения изображений. Эти изменения не спускаются по нисходящему каналу программистом, заранее продумывающим все вопросы. Алгоритм создает сам себя снизу вверх в процессе взаимодействия со все новыми и новыми данными.
Я видел могущество такого восходящего процесса обучения своими глазами, когда зашел в лаборатории Microsoft в Кембридже, чтобы понять, как игровая приставка Xbox, которую мои дети используют дома, может распознавать, что они делают, когда они движутся перед ее видеокамерой. Этот алгоритм был создан, чтобы система могла отличать руки от голов и ноги от локтей. У Xbox есть камера под названием Kinect с функцией измерения глубины: она использует инфракрасные датчики для определения удаления препятствий от камеры. Если вы встанете перед такой камерой в своей гостиной, она установит, что ваше тело находится ближе к ней, чем задняя стена комнаты, а также сможет определить контуры вашего тела.
Но размеры и очертания фигур людей могут быть разными. Люди могут принимать весьма странные позы, особенно когда играют в Xbox. Компьютер должен распознавать 31 разную часть тела, от левого колена до правого плеча. Алгоритм Microsoft может сделать это по одному неподвижному изображению. Он не использует ваших движений (их анализ потребовал бы больших вычислительных мощностей и замедлил бы игру).
Как же ему это удается? Алгоритм должен решить, к какой части тела из тридцати одной принадлежит каждый пиксель изображения. По сути дела, он играет в «20 вопросов». Собственно говоря, для этой игры действительно существует один хитрый алгоритм, который гарантирует получение правильного ответа. Сначала нужно спросить: «В какой половине словаря – первой или второй – находится это слово?» Следующим вопросом область поиска в словаре нужно сузить еще более, спросив: «В какой половине той половины, которую вы назвали, оно находится?» За 20 вопросов эта стратегия делит словарь на 220
участков, что иллюстрирует могущество удвоения. А это более миллиона частей – гораздо больше, чем число статей в «Оксфордском словаре английского языка»: их в нем около трехсот тысяч.Но какие вопросы следует задавать пикселям, если мы хотим определить, к какой части тела они принадлежат? В прошлом нам пришлось бы самим придумывать хитрую последовательность вопросов, которая позволила бы решить эту задачу. Но нельзя ли запрограммировать компьютер так, чтобы он нашел нам лучшие вопросы для ее решения? Взаимодействуя со все новыми данными – все новыми изображениями, – он находит набор вопросов, по-видимому наиболее эффективно приводящий к ответу. Именно так и работает машинное обучение.
Чтобы этот процесс не был обучением с совершенно чистого листа, нужно начать с каких-то вопросов-кандидатов, которые, как нам кажется, могли бы привести к решению задачи. Обучение происходит путем уточнения наших идей с формированием из них действенной стратегии. Какие же вопросы, по вашему мнению, могли бы помочь нам отличить руку от макушки?
Обозначим пиксель, который мы хотим распознать, буквой Х. Компьютеру известна глубина каждого пикселя, то есть его удаленность от камеры. Хитрая стратегия, которую придумали в Microsoft, состоит в «опросе» окружающих его пикселей. Например, если Х – пиксель, находящийся на макушке, то пиксели, расположенные выше Х, с гораздо большей вероятностью не будут относиться к телу и, следовательно, должны иметь большую глубину. Если же взять ближайшие к Х пиксели, расположенные ниже его, они должны быть пикселями лица и их глубина должна быть близка к глубине пикселя Х. Но если этот пиксель относится к руке, а рука эта вытянута, тогда будет существовать ось, направленная вдоль этой руки, по которой глубина будет оставаться практически неизменной, но смещение перпендикулярно этой оси будет быстро выводить пиксели за пределы тела – на стену, находящуюся на фоне изображения. Такие последовательно накапливающиеся – кумулятивные – вопросы о глубине окружающих пикселей могут позволить понять, к какой части тела принадлежит данный пиксель.