Сегодня отовсюду слышно термины «Машинное обучение» и «Искусственный интеллект». Но что это такое? Человекоподобный робот, который уже скоро отберёт вашу работу, котика и семью? Я бы хотел приоткрыть завесу магии и показать, что ИИ сегодня — вовсе не что-то страшное и таинственное
Прежде всего, давайте разберёмся, чем машинное обучение отличается от искусственного интеллекта?
На самом деле, ИИ — скорее маркетинговый термин. Поэтому существует шутка о том, что если вы пишете код на Питоне, то это машинное обучение. А если презентуете что-то людям, то, конечно, это искусственный интеллект
Постоянно появляются новости о том, что ИИ научился генерировать лица людей, рисовать пейзажи или играть в приставку лучше, чем люди. Из-за этого и создаётся впечатление, что крутые роботы скоро займут наши рабочие места. Но это в какой-то мере ошибка выжившего: все громкие новости — уникальные проекты. Большая же часть «разработчиков искусственного интеллекта» решают куда более приземлённые задачи. Например:
Оптимизация поисковой выдачи
Когда вы набираете какую-нибудь фразу в поисковике, именно алгоритмы машинного обучения подсказывают вам её продолжение. А другие решают в каком порядке выдавать вам сайты, лучше подходящие под ваш запрос. Всё для того, чтобы вы воскликнули "Именно то, что мне нужно!"
А также рекомендаций и рекламы
Похожие алгоритмы пытаются предсказать вам видео, которое вы с большей вероятностью посмотрите и рекламу, на которую вам захочется кликнуть. Была даже грустная шутка о том, что лучшие умы человечества сегодня заняты тем, что думают, как заставить человека кликнуть на баннер
Кредитный скоринг
Когда вы хотите взять кредит, банк должен быть уверен, что вы его выплатите. Вы заполняете анкету и на основе предыдущих случаев выплаты/невыплаты кредита людей с похожими на вас данными, банк выставляет вам определённый «балл», который повлияет на решение. У меня шансы почему-то не очень высокие :)
Наука и медицина
Здесь применение машинного обучения и вовсе безгранично! Вот, например, результат работы нейронной сети, предсказывающей очаги рассеянного склероза по снимкам МРТ
Подробнее!
Мы посмотрели на несколько частных примеров, теперь давайте обсудим, какие вообще существуют области машинного обучения. Обычно, их выделяют 3:
1. Обучение с учителем
2. Обучение без учителя
3. Обучение с подкреплением
Поговорим подробнее про задачи, решаемые в каждой из них
Обучение с учителем
Допустим, у вас есть какие-то данные. Это может быть таблица, которую можно посмотреть в Excel, картинки или, например, звуковые записи. Будем называть одну единицу данных объектом: это строка из таблицы с признаками какого-то одного человека (или чего-то другого), одна картинка или один аудиофайл
Если мы точно знаем какое-то свойство объекта, то можем попытаться его предсказать! Например, в таблице с данными пациентов в одном из столбиков может говориться, выжил человек или нет. Картинки могут быть точно подписаны: на какой пёсель, а где котейка. Вместе со звуком может идти какая-то дополнительная информация: слова на записи или жанр песни. Поэтому обучение и называется «с учителем»
•Классификация
Если мы точно знаем, что объекты делятся на несколько классов, можно попытаться их различать! Пусть компьютер посмотрит на все остальные признаки объекта и попытается понять, чем пёсики отличаются от котиков или что же влияет на выздоровление пациентов
Регрессия
А что если мы хотим предсказать не какой-то класс, а непрерывное число? Например, у нас есть таблица с данными квартир. Мы знаем сколько у каждой квартиры комнат, какова её площадь, этаж и район. А самое главное, для каждой нам известна цена. Если мы хотим снять квартиру, не переплачивая или продать свою, нам нужно понять, сколько будет стоить квартира с такими параметрами. Это позволит сделать регрессия
Обучение без учителя
Не всегда мы точно знаем, что хотели бы предсказывать. Иногда просто есть куча данных и хочется найти в них что-то интересное. Тогда можно просто загрузить данные в алгоритм в надежде, что он что-то обнаружит
Если вы никогда не видели такой картинки, загуглите «Граф друзей ВК». Он покажет сеть ваших друзей. Каждая точка соединена с вами, и если два человека дружат между собой, между ними рисуется связь. На моём графе чётко видно 2 кластера: это люди из разных городов
Часто строятся дендрограммы, показывающие, какие объекты похожи друг на друга больше всего
Видно, что сначала в 1 группу объединились самые близкие точки: E и F, затем A и B, и так далее. В конце концов остаются два кластера: что довольно легко увидеть на графике слева
Вот как это выглядит с реальными данными об автомобилях. Если вы разбираетесь в машинах, можете предположить, по какому принципу они считались похожими
Можно завернуть дендрограмму в круг. Вы, наверняка, видели подобные филогенетические деревья. Это очень часто используется в генетике
Обучение с подкреплением
Если у вас есть не набор данных, а какая-то динамичная среда, вы можете поместить в неё модель машинного обучения! Например, заставить её играть в Змейку. Вы говорите «Ты можешь ходить вверх, вниз, вправо и влево и видеть экран». Дальше вы поощряете модель за увеличение длины тела и штрафуете за проигрыш. Таким образом система старается повысить желаемый результат и учится! Всё, как в биологии
Есть даже генетические алгоритмы, в которых создаётся много случайных моделей. Те, кто достиг лучшего результата, остаются в живых и дают потомство, остальные удаляются. Дарвин хлопал бы в ладоши
Считалось, что компьютеру никогда не одолеть такую сложную игру, как Го, но в 2015 году это всё же произошло. Команде исследователей за это даже присвоили почётный 9 дан
Позже алгоритм от этой же компании играл в Доту 2 против человека, а в 2018 году сыграл командой. Здесь успех уже не был так ошеломляющ, но это всё же колоссальный прорыв
Как это работает?
Мы познакомились с задачами и областями ИИ. Но как это всё устроено внутри всё ещё напоминает магию. Я бы хотел разрушить это ощущение, поэтому давайте сами изобретём один из распространённых алгоритмов
Предположим, у нас есть набор данных пациентов. Для каждого человека мы знаем давление и есть ли у него диагноз «Гипертония». Можно отобразить это на графике вот так:
Каждая точка — пациент. График читается, смотря на координаты точки по каждой из осей. Например, давление у человека, которому соответствует самая левая точка — примерно 135/60
Теперь представим, что к нам поступили данные о давлении нового пациента и мы не знаем диагноз. Нужно сказать, всё ли в порядке или лучше пройти осмотр. Как это сделать?
Для нас очевидно, что давление высоковато. Но представьте, что пациентов поступает сразу 10000. Неохота смотреть на каждого из них, верно? Давайте попытаемся понять, как мы отнесли эту точку к классу гипертоников
Очевидно, она просто ближе к ним! Мы смотрим на ближайших соседей точки и говорим «Раз ты рядом с ними, наверное, ты к ним и относишься»
Поздравляю, мы только что изобрели метод k ближайших соседей! k потому что мы можем смотреть на 1, 2 или другое число близких точек
Конечно, такую задачу человек решит легко, зачем же здесь учить чему-то машины? Но в этом примере было всего 2 признака: систолическое и диастолическое давление. Их легко изобразить на плоскости. Если бы их было 3, то можно было бы попытаться нарисовать 3-мерное пространство. А если 4? А если 400? :)
Для компьютера посчитать расстояние до каждой точки было бы решаемой задачей, для человека — невыполнимой. Поэтому, главное понять идею алгоритма, остальное сделает машина
Известный физик Ричард Фейнман когда-то шутил: «Математики — странные ребята. Ты просишь у них какую-то формулу, они говорят:
— О, у нас есть чудесная формула для N размерностей!
— Зачем мне N, я же живу в трёхмерном мире?!
— Так просто подставь N=3»
Оказывается, такая абстрактная математика бывает полезна
Надеюсь, я немного развеял у вас ощущение того, что искусственный интеллект — это что-то таинственное и непонятное. Это просто более крутой анализ данных, статистика на стероидах
Сегодня ИИ решает довольно узкие задачи и ещё не скоро заменит человека во всех сферах жизни
Моя группа ВК и телеграм