3.1 МАШИННОЕ ОБУЧЕНИЕ
Курс по цифровой грамотности
Как машины учатся отличать изображения с котиками от селфи.
Представьте простую задачу: вам показывают картинку и спрашивают, есть ли на ней кот? Кажется, что ничего сложного: кот или есть, или его нет. Для машины такая задача намного сложнее, чем рассчет траектории полета до Луны, потому что ее можно формализовать в алгоритм с помощью конкретных формул, тогда как создать алгоритм для поиска кота на картинке сложнее.
В теории
Что такое машинное обучение?
Машинное обучение создано для задач, у которых нет четкого алгоритма решения, только массив вводных данных. Например, компьютеру говорят, что на одном миллионе изображений есть кот, а не другом миллионе — нет. И задача машины заключается в том, чтобы самостоятельно создать для себя алгоритм, по которому на следующем изображении она должна понять, есть ли здесь кот.

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

Разберемся подробнее, как машинное обучение помогает нам уже сегодня, какие задачи и как решаются с его помощью, какие существуют подходы и инструменты в машинном обучении.
Искусственный интеллект
Машинное обучение тесно связано с понятием ИИ — искусственного интеллекта (AI — artificial intelligence).

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

Естественный интеллект во многом определяется эмоциями — в мозге человека есть много различных нейромедиаторов и гормонов, которые вызывают различные ощущения, вроде страха, радости или голода. Искусственный интеллект не наделен эмоциями, поэтому для решения задач ему требуются другие механизмы.
Хотите узнать больше?
Обратите внимание на книгу Елены Боровской и Надежды Давыдовой «Основы искусственного интеллекта».
Впервые этот термин озвучил Джон Маккарти в 1956 году на конференции в Дартмутском университете. Маккарти сразу отметил, что искусственный интеллект — это не попытка повторить мышление человека, а лишь свойство машин выполнять функции, которые традиционно считаются прерогативой человека. При этом исследователи вольны использовать методы, которые не наблюдаются у людей, если это требуется для решения задачи.
История искусственного интеллекта
Предпосылки к появлению ИИ появились в середине XX века, когда в математике начинает развиваться теория алгоритмов и создаются первые компьютеры. Они сразу показали, что возможности машин в скорости вычислений превосходят человеческие и перед учеными встал вопрос, каковы вообще границы возможностей компьютера и сможет ли он достичь уровня развития человека?

В 50-х годах ученые пытались строить разумные машины, которые имитировали мозг человека, но все попытки были безуспешными — не было ни подходящего оборудования, ни программного обеспечения. Машины получались громоздкими и крайне ограниченными в своих возможностях.
Экспертная система, реализованная на основе машинного интеллекта
В 60-х годах продолжались попытки решить задачи широкого класса, моделируя процесс мышления. При этом стало понятно, что чем шире задача, которую необходимо решить, тем беднее оказываются возможности машины.

В 70-х появляются первые успешные наработки — экспертные диагностические системы для медицины и химии MYCIN и DENDRAL. Первая по ряду симптомов ставила пациенту диагноз, вторая — по ряду свойств определяла химическое соединение.

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

И хотя все еще сложно обучить одну машину решать сразу много несвязанных задач, исследователи достигли довольно высоких результатов в узких задачах. Например, Deep Blue превзошла человека в игре в шахматы, AlphaGo — в игре в го, Watson от IBM — в бизнес-аналитике.
Эволюция машинного обучения
Именно благодаря формам машинного обучения удалось приблизить возможности машины к человеческим. Без механизмов машинного обучения пришлось бы алгоритмизировать все возможные сценарии, то есть, искусственный интеллект получился бы ограничен физическими возможностями и знаниями эксперта, который создает алгоритмы. Машинное обучение позволяет машине обучаться самостоятельно, нужен только достаточный массив данных.
Несмотря на то, что впервые о машинном обучении заговорили в конце 50-х, почти три десятилетия этот подход оставался в тени экспертных алгоритмов. Дело в том, что машинное обучение основано на статистике и вероятностном подходе. В рамках машинного обучения искусственный интеллект не получает точный результат, а лишь рассчитывает вероятность правильного ответа. И только если вероятность становится достаточно высокой, принимает решение.
Долгое время такая технология считалась недостаточно достоверной, но в 90-х спрос на этот подход начинает расти. Машинное обучение позволяет прогнозировать результаты и оптимизировать потери лучше, чем обычные алгоритмы. В XXI веке в контексте машинного обучения активно развиваются методы глубокого обучения и обучения «с учителем».
AlphaGo обыгрывает Ли Седоля в Го
Нейронные сети и глубокое обучение
Нейронные сети берут за основу то, как работает наш мозг: множество нейронов связаны между собой синапсами. В машине роль нейрона играет вычислительная единица, микропроцессор. На входе он получает информацию от других нейронов и производит заданные вычисления.
Большое количество нейронов формируют слой, каждый из которых решает определённую часть задачи. После проведения своих вычислений нейроны передают полученную информацию на следующий слой.

Также важную роль играет вес информации. Если один нейрон получает информацию от трех других, то в своих вычислениях он обрабатывает не только саму информацию, но и уровень значимости.
Разберем на примере:

Допустим, мы хотим, чтобы нейронная сеть помогла нам решить, стоит ли брать на проект данного партнера или нет. У нас есть информация о его навыках, характере, ресурсах и внешних данных. Скажем, потенциального партнера мы оцениваем по шкале от 0 до 1, где 0 — отсутствие признака, 1 — его максимально позитивное проявление:
Каждый из этих показателей можно назвать входным нейроном. Перед тем как мы примем решение, работать ли с человеком в проекте, нужно ответить на два вопроса — комфортно ли нам в принципе работать с этим человеком и можем ли мы положиться на него как на профессионала. В итоге у нас получается такой граф из нейронов:
На первый вопрос влияют факторы харизмы, чувства юмора, красоты и доброжелательности. Эти нейроны передают информацию в нейрон «Комфортно быть». На второй вопрос влияют честность, профессиональные навыки и надежность. Эти нейроны передают информацию в нейрон «Комфортно работать».
Но не все факторы влияют одинаково. Допустим, для комфортного нахождения с человеком нам важно, чтобы он был харизматичным, веселым и открытым, но менее важна внешность. «Важность» и будет в этом случае весом параметра. Обычно для каждого нейрона сумма весов входных параметров должна быть равна 1. Тогда вес харизмы, чувства юмора и доброжелательности будет 0,3, а вес красоты — 0,1.
Вес значения — процент от общей важности. Поэтому их сумма равна 1 или 100%.
Похожим образом проставляются входные веса для параметров «Комфортной работы»: честность — 0,3, профессиональные навыки — 0,4, надежность — 0,3. Такое распределение весов не значит, что надежность нам важна всего лишь на треть, это говорит только о том, что навыки потенциального партнера для нас немного важнее, чем надежность или честность.

Входные данные, в которых мы указали качество потенциального партнера, представляют собой первый слой нейронов. Он влияет на решения, которые примут нейроны второго слоя. И уже их решения сформируют решения третьего, финального слоя. Проведем рассчеты для второго слоя нейронов. Для этого перемножим нужные для данного нейрона показатели на их веса и просуммируем значения.
Для комфортной работы получаем: Честность x Вес честности + Надежность x Вес надежности + Проф. качества x Вес проф. качества = 0,6×0,3 + 0,8×0,3 + 0,7×0,4 = 0,18 + 0,24 + 0,28 = 0,7
Для комфортного взаимодействия получаем: Чувство юмора x Вес чувства юмора + Красота x Вес красоты + Харизма x Вес харизмы + Доброжелательность x Вес доброжелательности = 0,3×0,3 + 0,6×0,1 + 0,4×0,3 + 0,4×0,3 = 0,09 + 0,06 + 0,12 + 0,12 = 0,39
Далее предположим, что важность комфортной работы для нас выше. Ее вес составляет 0,7, тогда как вес комфортного взаимодействия — 0,3. Произведем вычисления и получим итоговый результат:

0,7×0,7 + 0,3*0,39 = 0,49 + 0,117 ≈ 0,6. Если нас устраивает результат, то можем смело соглашаться на партнерство в проекте. Вот наш итоговый граф нейросети:
Хотите узнать больше?
Обратите внимание на книгу Саймона Хайкина «Нейронные сети. Полный курс».
Нейросеть функционирует похожим образом. На основе нескольких слоев вводной информации она собирает вероятность того, что какой-то ответ правильный. Если вспомнить вопрос про кота на картинке, то нейронная сеть может разложить его на свои слои: цвет пикселя, его соотношение к окружающим, тени, формы и так далее. В нейросети может быть несколько сотен или тысяч слоев в зависимости от сложности задачи.

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

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

Глубокое обучение — это подход машинного обучения, который использует слои нейросетей как инструмент для извлечения признаков и их преобразования. То есть, это не классический алгоритм «Если А, то Б», а граф, состоящий из многих единиц и связей между ними.

Нейросети требуют большой объем данных для обучения. Им действительно нужны миллионы изображений, чтобы научится выделять на них конкретные объекты с высоким уровнем точности. Такие датасеты — наборы данных — тоже появились только в 2000-х годах.
Хотите узнать больше?
Обратите внимание на книгу Сергея Николенко «Глубокое обучение. Погружение в мир нейронных сетей».
На практике
Виды машинного обучения
Чтобы машина научилась отвечать на поставленные вопросы, ее необходимо обучить. Выделют множество способов обучить машину, мы рассмотрим два основных класса: обучение с учителем (supervised learning) и обучение без учителя (not supervised learning).

«Обучение с учителем» значит, что у нас уже есть набор вводных с решениями для них. В этом случае задача машинного обучения — понять связи между входными данными и результатами, чтобы прогнозировать ответы на последующие входные данные.

Допустим, мы знаем, стоимость некоторых квартир в зависимости от их размера:
Сколько будет стоить квартира размером 60 м²? На этом наборе данных мы видим, что стоимость квадратного метра варьируется от 90 000 до 105 000. Следовательно, стоимость квартиры, вероятно, будет в диапазоне от 5 400 000 до 6 300 000, разброс получается значительный.

Задача машинного обучения — построить такую функцию, которая даст наиболее точный ответ. При этом данных обычно в сотни раз больше — как самых измеряемых единиц, так и параметров, по которым они измеряются.
В таком датасете у нас уже почти 150 000 единиц и 50 параметров, которые влияют на цену квартиры. На таком объеме данных с помощью механизма машинного обучения можно получить цену с точностью до десятых процента, конечно, если указаны все основные влияющие факторы.

Еще один пример обучения с учителем — изучение опухоли на предмет злокачественности. В этом случае в зависимости от размера опухоли машина выдает бинарный ответ — опухоль или доброкачественная или злокачественная.

Предположим, что у нас есть результаты наблюдений за группой пациентов и результаты анализов. На графике ниже по оси Х отложены размеры обнаруженных опухолей, а по оси Y — 0, если опухоль доброкачественная и 1, если злокачественная. Голубые круги — доброкачественные опухоли. Алые звезды — злокачественные. Нам нужно понять, является ли злокачественной опухолью светло-зеленый круг?
Для эффективного решения подобных задач с помощью машинного обучения добавляют дополнительные параметры. Например, возраст, наличие болезней у ближайших родственников, род занятости, болезни в прошлом и так далее. Получается многомерный график, на котором машина проводит условную линию, по одну сторону от которой «лежат» доброкачественные, а по другую — злокачественные опухоли.

Чем больше параметров и наблюдений — тем точнее оценка. Вот как будет будет выглядеть подобный график на основании двух параметров и 20 наблюдений:
Другой подход к машинному обучению — это обучение без учителя. В этом случае система сама спонтанно обучается выполнять задачу без вмешательства со стороны экспериментатора.

Пример задачи, решаемой с помощью обучения без учителя — кластеризация клиентов. Допустим, у нас есть большое количество данных о покупателях: кто они, когда и что купили, возвращались ли повторно. Задача обучения без учителя в этом случае — разделить клиентов на сегменты без четкого описания этих сегментов.
Машина самостоятельно выделяет какие-то признаки, которые помогают разбить генеральную совокупность на несколько выборок.
Также обучение без учителя применимо в задачах, когда нужно из множества факторов оставить несколько основных. Например, вспомним задачу на оценку стоимости квартиры. Нейросеть могла бы изучить влияние всех параметров и в итоговой формуле расчета оставить только несколько тех, которые в первую очередь влияют на стоимость квартиры.
Задачи, решаемые с помощью машинного обучени
Есть несколько основных типов задач, которые решают с помощью машинного обучения. Некоторые из них мы рассмотрели выше.
1. Задачи классификации
Это класс задач, связанных с обучением без учителя. В рамках таких задач искусственный интеллект каким-то образом классифицирует данные, полученные на входе. Например, определяет, является ли опухоль злокачественной или есть ли на изображении кот.
    2. Задачи на построение регрессии
    Как правило, такие задачи тоже выполняются с помощью обучения с учителем. Пример задачи на регрессию — оценка стоимости квартиры. Также регрессии используются для прогнозирования и оценки комплексных факторов.
      3. Кластеризация
      Основная проблема задач на кластеризацию — поиск структуры данных, взаимосвязей и закономерностей в них. Кластеры могут быть вложены друг в друга, объекты могут относится к одному или разным кластерам. Разделение вселенной на галактики — тоже задача на кластеризацию, с которой справляется машинное обучение.
      4. Задачи на понижение размерности
      Это тип задач, в которых нужно описать большую выборку по наименьшему количеству переменных. Например, понять, на какие факторы нужно смотреть в первую очередь при оценке платежеспособности клиента. В этом случае задача машинного обучения — найти новые алгоритмы на основе старых, при этом потерять как можно меньше данных.
      Сферы применения машинного обучения
      1. Распознавание речи, жестов, рукописного ввода и образов

      Если вы пользовались голосовым помощником (Сири, Биксби, Алиса и другие), набирали сообщение голосом или задавали адрес в навигаторе, то вам уже приходилось сталкиваться с машинным обучением.

      Первые попытки распознать речь были еще в середине прошлого века — в 1952 году представили первую машину, которая могла распознать произнесенные цифры, а в 1963 — устройство «Септрон», которое могло выполнять целую последовательность действий по набору команд. В 90-х появились первые коммерческие устройства, которые помогали людям с травмами руки делать записи, произнося сообщения.
      Хотите узнать больше?
      Почитайте материалы компании Яндекс о том, как машину учат различать речь и развивают компьютерное зрение.
      У всех этих проектов была большая проблема — они плохо работали с диалектами и дефектами речи, практически не справлялись, если в помещении было шумно. С этими проблемами удается справляться с помощью машинного обучения: машины все лучше понимают, что им говорят, могут функционировать в шумном месте и даже различать голоса.

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

      Сейчас же с помощью машинного зрения развивается и сфера распознавания текста, написанного на бумаге. Это открывает большой простор для оцифровки рукописей и упрощения ручного труда там, где он связан с большим количеством рукописных документов.
      Наш самый первый пример — про поиск кота на изображении — она из классических задач машинного обучения. Распознавание образов уже работает в самопилотируемых автомобилях, которым необходимо считывать дорожные знаки. Также этот механизм используют в социальных сетях для поиска фото- и видео-материалов, нарушающих правила платформы.
      2. Кредитный скоринг, финансовый надзор, обнаружение мошенничества и прогнозирование ухода клиента

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

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

      Скажем, если клиент А по операциям похож на клиента Б, В и Г, а клиентам Б и В банк уже одобрил кредит, и они его платят, то, скорее всего, клиент, А также получит одобрение. И наоборот, если клиент, А похож на клиента Б, В и Г, а клиенты В и Г постоянно не платят в срок, скорее всего банк откажет клиенту А или предложит кредит под более высокий процент.
      Хотите узнать больше?
      Также машинное обучение помогает осуществлять надзор и находить мошенников до того, как они нанесут урон. У контролирующих органов, банков и страховых организаций есть большое количество информации о людях и бизнесах. На основании этих данных они могут не просто выделить характерные черты мошенников, но и определить общие паттерны поведения.

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

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

      Похожим образом работают новостные агрегаторы. Они отслеживают тысячи новостных сайтов и в автоматизированном режиме готовят подборки новостей по темам. Задача машины в этом случаемеnbsp;— изучать новости на других ресурсах, находить общие темы и группировать по ним материалы.
      4. Техническая и медицинская диагностика

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

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

      Машинное обучение оказывается востребованным и в технологической сфере. Там оно помогает снижать издержки на производство, моделируя детали и анализируя показатели. Машинное обучение используют в системах бизнес-аналитики, которые помогают оптимизировать процессы производства.
      5. Обнаружение спама

      Обнаружение спама — одна из классических задач современного машинного обучения. Ежедневно по всему миру отправляется почти 300 миллиардов электронных писем. Из них половина — спам, нежелательные письма с рекламой или мошенническими схемами.

      Задача почтовых сервисов — определять, какие из писем являются спамом, а какие нужно показать пользователю как корректные. Почтовые сервисы анализируют, какие письма пользователи сами отмечают как спам и на основе этого учатся самостоятельно по похожим признакам размечать почту.
      Перспективы и ограничения технологии
      Машинное обучение развивается в стремительном темпе. Можно выделить несколько драйверов развития технологии:
      1
      Прикладная востребованность в большом количестве сфер. Крупные компании готовы инвестировать в разработку решений, что привлекает энтузиастов и стимулирует развитие технологий.
      2
      Возможность использования в других дисциплинах. Машинное обучение оказывается полезным в разработке виртуальной реальности и программного обеспечения. Практически в любой дисциплине можно найти пути оптимизации с помощью машинного обучения.
      3
      Большое сообщество и наличие готовых решений.
      При этом у технологии есть и свои ограничения. Например, без датасета необходимого размера, обучение не будет качественным. Соответственно, если данных недостаточно или они содержаться в неподходящем для обучения виде, то машинное обучение оказывается бессильным.

      Кроме того, искусственный интеллект может «перестараться» и найти взаимосвязи, которые в контексте данной задачи не нужны. Это может приводить к тому, что машина находит теоретически правильный, но неприменимый в прикладном смысле ответ.
      Хотите узнать больше?
      Почитайте статью от Kaspersky Lab о проблемах машинного обучения.
      Исследователи также отмечают такую особенность — человек ожидает, что машина будет постоянно принимать только правильные решения. Но в случае обучения с учителем нейросеть склонна делать те же самые ошибки, что и человек, учитель. То есть, если в обучающей выборке наблюдается постоянное отклонение в сторону какого-то варианта, то это же отклонение будет наблюдаться и у машины.

      Например, если пользователь склонен чаще отмечать письма как спам, если они приходят от мужского имени, и реже, если от женского, то и искусственный интеллект будет совершать ту же ошибку.
      Ключевые мысли урока
      1
      Машинное обучение создано для задач, у которых нет четкого алгоритма действий и его необходимо выработать.
      2
      Машинное обучение непосредственно связано с искусственным интеллектом. ИИ — это попытка копирования мыслительного процесса человека вычислительной машиной.
      3
      С 70-х годов началось бурное развитие ИИ и машинного обучения. Машины превзошли человека в игре в шахматы, го, бизнес-аналитике.
      4
      Новый виток машинного обучения — глубокое обучение для нейросетей. Нейросети состоят из множества слоев «микропроцессоров», где каждый слой решает отдельную задачу. Глубокое обучение использует все преимущества нейросетей.
      5
      Два основных класса машинного обучения — обучение с учителем и без учителя. В обучении с учителем в распоряжении машины есть набор вводных и решения для них. В обучении без учителя есть только набор вводных.
      6
      Машинное обучение уже успешно применяется во многих отраслях: медицине, производстве, финансах, разработке программного обеспечения, кредитном скоринге и т. д.
      Задание
      Мы подготовили тест из 6 вопросов, основанных на материалах урока по машинному обучению.
      Начать
      Выберите утверждения, которые верны для машинного обучения
      Это утверждение неверно. Эта задача решается с помощью машинного обучения
      Идеологически нейросети устроены также, как и человеческий мозг: нейроны связаны синопсами
      Неверно, в 2016 году AlphaGo превзошла человека в игре в Го
      В этом и есть суть машинного обучения
      Дальше
      Проверить
      Узнать результат
      Выберите утверждения, которые верны для машинного обучения
      Да, первые предпосылки для машинного обучения появились именно в то время
      Нет, «обучение с учителем» и «обучение без учителя»
      Нет, у каждой части информации есть собственный вес
      Это утверждение верно
      Дальше
      Проверить
      Узнать результат
      Какая из этих задач связана с обучением без учителя?
      Дальше
      Проверить
      Узнать результат
      Какие из этих задач связаны с обучением без учителя?
      Дальше
      Проверить
      Узнать результат
      Какие из факторов ниже являются преградами для развития машинного обучения?

      Дальше
      Проверить
      Узнать результат
      В каких отраслях уже применяется машинное обучение?

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