Машинное обучение простыми словами: как модель учится на данных, чем ML отличается от искусственного интеллекта и нейросети, три вида обучения на одном примере и пять мифов | BigChatHub
Машинное обучение простыми словами: как модель учится на данных без жёстких правил, чем ML отличается от ИИ и нейросети, три вида обучения и пять мифов.
Машинное обучение — раздел искусственного интеллекта (ИИ). Система в нём сама находит закономерности в данных, без правил, прописанных вручную под каждый случай. Но это не синоним ИИ и не то же самое, что нейросеть. Чем они отличаются, разберём дальше.
Три слова часто используют как взаимозаменяемые: искусственный интеллект, машинное обучение, глубокое обучение. На деле перед вами уровни вложенности, а не три равнозначных понятия.
Разложим по уровням. Искусственный интеллект — самый широкий: любая система, которая имитирует разумное поведение. Сюда попадают даже правила, написанные человеком вручную, без всякого обучения на данных. Машинное обучение — часть ИИ, где система именно учится на примерах. А глубокое обучение — часть машинного обучения, где для этого берут многослойные нейронные сети.
Зачем вообще разбираться в этой разнице? А вот зачем.
Фраза «работает на искусственном интеллекте» на сайте сервиса не значит почти ничего. За ней может стоять полноценная обученная модель. А может — набор условий «если — то», написанный человеком руками.
«Машинное обучение» звучит конкретнее: систему строили на примерах, а не писали ей инструкции. И эта разница помогает отделить умения продукта от его рекламы.
Как работает машинное обучение
Обычная программа делает ровно то, что в неё заложил разработчик: если условие А — выполнить действие Б, шаг за шагом. Модель машинного обучения устроена иначе. Она не получает инструкцию «вот признаки кошки, вот признаки собаки». Вместо этого она смотрит на тысячи размеченных примеров и сама находит приметы, по которым потом отличает одно от другого.
Вспомните, как ребёнок учится различать кошку и собаку. Не по определению из словаря, а насмотревшись на десятки картинок и услышав название каждой. У модели так же, только вместо картинок и слов у неё числа.
Если чуть точнее, устроено это так. На входе у модели признаки: числа, текст, пиксели изображения. Дальше в дело идёт алгоритм. Это математический метод: он по обучающим данным подбирает внутренние параметры модели.
Когда у примеров есть готовые ответы, параметры крутят до тех пор, пока предсказания не сойдутся с ответами как можно ближе. Этот подбор и называют обучением.
Возьмём пример. Модель предсказывает цену квартиры по площади, району и этажу. Обучающие данные — тысячи реальных сделок с уже известной ценой. Модель ищет, как площадь, район и этаж связаны с ценой в этих примерах, и подбирает коэффициенты так, чтобы её предсказание сходилось с реальными сделками.
Это задача регрессии: предсказать число. Есть и другой тип — классификация, когда на выходе не число, а один из заранее известных вариантов: «спам или не спам», «одобрить кредит или отказать». Механизм обучения тот же, разное только то, что модель выдаёт на выходе.
А что происходит после обучения? Перед тем как считать модель готовой, её проверяют на данных, которых она при обучении не видела. Это тестовая выборка, и в популярных объяснениях о ней обычно не вспоминают.
Модель отвечает почти идеально на знакомых примерах, а на новых заметно хуже? Тревожный знак, а не повод радоваться высокой точности.
Вот что менее очевидно: качество модели упирается в данные чаще, чем в выбор алгоритма. Есть в обучающих примерах перекос или ошибки? Модель выучит именно их и будет уверенно повторять на новых данных. Мусор на входе, мусор на выходе. В машинном обучении это работает даже жёстче, чем в обычном программировании: модель не разбирает данные критически, а просто ищет в них закономерность.
Зачем нужно машинное обучение
Звучит абстрактно. Но сталкиваетесь вы с машинным обучением по нескольку раз в день, просто со стороны это редко заметно. Где именно?
Начнём со спам-фильтра. Он отличает рекламную рассылку от нужного письма не по одному лишь чёрному списку слов. Главное там — модель, обученная на миллионах примеров размеченной почты. Замечали, как письмо от нового отправителя улетает в спам ни за что? Модель нашла в нём сходство с тем, что раньше помечали спамом другие.
Дальше идёт то, чем вы пользуетесь каждый день, не задумываясь:
●Рекомендации «вам может понравиться» в стриминге и маркетплейсе. Модель ищет закономерности в том, что смотрели и покупали похожие пользователи.
●Голосовой ввод и распознавание речи. Модели обучены на огромных массивах аудиозаписей с расшифровками.
●Компьютерное зрение: разблокировка телефона по лицу, сортировка фото по альбомам, поиск товара по картинке. Всё это обучение на размеченных изображениях, а не правила «если пиксели такие-то, то это лицо».
●Банковский антифрод. Модель обучена на истории мошеннических и обычных транзакций. Она ищет закономерности, которые человек-аналитик заметил бы далеко не сразу, если бы вообще заметил.
●Медицинские снимки. Модель подсказывает врачу, какие участки посмотреть внимательнее; училась она на размеченных снимках прошлых случаев.
●Навигатор. Он перестраивает маршрут из-за пробки ещё до того, как вы в неё упёрлись. Под ним модель на исторических данных о загрузке дорог.
●Машинный перевод. Современные переводчики учатся не на словаре и правилах грамматики, а на миллионах пар «текст на одном языке, тот же текст на другом».
А обычный поиск в интернете? Там тоже не жёсткое правило «выше та страница, где чаще встречается запрос». Там модель, обученная на том, какие результаты люди раньше считали полезными по похожим запросам.
Голосовые ассистенты устроены так же. Распознать команду, понять намерение, сформулировать ответ — на каждом шаге работает отдельная обученная модель, а не единый прописанный сценарий.
И нигде здесь система не «понимает» задачу по-человечески. Она находит статистическую закономерность. На практике та работает достаточно хорошо, чтобы быть полезной. И это не преуменьшение: найденная на миллионах примеров закономерность часто точнее интуиции одного человека. Но именно закономерность, а не понимание сути происходящего.
Какие бывают виды машинного обучения
Видов три, и разберём их на одном сквозном примере: сортировке писем. Коротко они выглядят так:
●С учителем. Есть готовые ответы («это спам», «это не спам»), модель учится их предсказывать.
●Без учителя. Готовых ответов нет, модель сама группирует похожее.
●С подкреплением. Модель действует и получает награду или штраф за результат.
Первый вариант — обучение с учителем. У модели есть, скажем, 10 000 писем, и каждое размечено человеком: спам или не спам. Модель учится находить закономерность между признаками письма и меткой. Потом применяет её к новым, ещё не размеченным письмам.
И так учат чаще всего: везде, где размеченных примеров хватает. На этом же принципе держатся и классификация, и предсказание чисел: пример с ценой квартиры из прошлого блока тоже отсюда.
Второй — обучение без учителя. Меток нет вообще: есть просто ворох писем, и задача модели — сгруппировать похожие, не зная заранее, что означает каждая группа. На выходе может получиться кластер «рабочая переписка», кластер «рассылки интернет-магазинов», кластер «уведомления сервисов». Словами модель их не назовёт. Но закономерность найдёт, а имена группам даст уже человек.
Есть и промежуточный случай — обучение с частичным участием учителя. Размечено, скажем, только 500 писем из тех же 10 000, а остальные модель доразмечает сама, опираясь на найденную закономерность. Компромисс на случай, когда разметить вручную весь массив слишком дорого или долго.
А если правильного ответа нет вообще ни у кого? Тогда работает третий полноценный вид — обучение с подкреплением. Готового набора примеров здесь нет: модель (её называют агентом) действует, получает награду или штраф за результат и постепенно меняет поведение так, чтобы награда росла.
А в примере с почтой это выглядело бы так. Бот сам решает, в каком порядке показать письма, и видит только, что вы открыли, а что пролистали. Каким порядок должен был быть, ему никто не сообщает, и стратегию он перестраивает только по отклику.
Так обучают, например, игровые системы и роботов. Заранее известного ответа нет, есть только сигнал «стало лучше» или «стало хуже» после каждого хода.
А отдельно стоит глубокое обучение. Это не четвёртый вид обучения, а способ устройства самой модели: многослойная нейронная сеть, которую применяют и с учителем, и без него, и с подкреплением. Смешивать «вид обучения» и «устройство модели» — ошибка, из которой растут почти все остальные недоразумения вокруг темы. Следующий блок как раз про них.
Что не так думают о машинном обучении
Об ограничениях машинного обучения популярные тексты обычно молчат или роняют одну фразу вскользь. А зря: именно из-за них у людей и ломаются ожидания. Разберём пять ходовых заблуждений отдельно и не упрощая до рекламного глянца.
«ИИ и машинное обучение — одно и то же». В редакционной почте эти два слова, да ещё и «нейросеть» до кучи, регулярно используют как синонимы. Разбирали в начале: это уровни вложенности. Нейросеть — лишь одна из архитектур внутри машинного обучения, и не единственная.
А система на жёстко прописанных правилах, которая ничему не училась, — тоже формально искусственный интеллект. Просто устроена совсем иначе.
Что из этого следует на практике? Сервис пишет на сайте «работает на ИИ», а внутри может не быть ни одной обученной модели. «Использует нейросеть» уже конкретнее, но и это не говорит, на каких данных и как её обучали.
«Модель учится сама по себе, в реальном времени, пока ей пользуются». Чаще всего это не так. Обучение — отдельный, обычно офлайновый этап: модель тренируют на заранее собранном наборе данных, а потом разворачивают уже готовой, «замороженной». Дообучить её на новых данных можно, но это отдельная работа: её запускают осознанно, и от ваших запросов сама собой модель не меняется.
«Чем больше данных, тем лучше модель — без разбора». Объём без качества не спасает. Данные перекошены, устарели или размечены с систематической погрешностью? Модель выучит именно эту ошибку и будет уверенно повторять её на новых случаях.
Вторая частая беда — переобучение, по-английски overfitting. Модель так точно подстраивается под обучающие примеры, что перестаёт обобщать и проваливается ровно там, где важнее всего: на новых, реальных данных. Знакомая по школе история. Ученик вызубрил ответы к примерам из учебника, а метод решения так и не понял. В классе отвечал безошибочно, а на контрольной с другими числами поплыл.
«Модель машинного обучения не ошибается, раз это математика». Математика внутри действительно строгая. Но на выходе получается статистическое предсказание, а не гарантия. Модель бывает уверенно неправа: высокая оценка достоверности там, где ответ ошибочный. Себя она критически не проверяет, а лишь применяет закономерность, найденную при обучении.
Сюжет, знакомый по практике: модель выдаёт несуществующий метод API или ссылку на статью, которой нет, и ни на секунду в себе не сомневается. Это не сбой и не поломка. Это ровно то, как работает статистическое предсказание, когда подходящей закономерности в обучающих данных не нашлось.
«Раз данные исторические, модель объективна». История тянет за собой и все свои перекосы. Если раньше решения принимали предвзято (скажем, отбирали людей по признакам, которые сегодня использовать нельзя), модель унаследует ровно ту же предвзятость. И будет воспроизводить её как объективную закономерность. Данные не становятся нейтральными только оттого, что они реальные, а не выдуманные.
Связанные термины
Несколько соседних понятий. Их стоит знать рядом с машинным обучением и не путать с ним самим:
●Глубокое обучение — способ устройства модели через многослойные нейронные сети, а не отдельный вид обучения. Именно на нём строятся современные большие языковые модели и генераторы изображений.
●Алгоритм — математический метод, по которому модель подбирает внутренние параметры. Под разные задачи подходят разные алгоритмы, и выбрать нужный — отдельная инженерная работа, а не универсальный рецепт.
●Инференс — запуск уже обученной модели на новых данных, в отличие от самого обучения. Он происходит каждый раз, когда вы получаете ответ от готового сервиса.
●Дообучение (fine-tuning) — когда готовую модель подгоняют под узкую задачу, не строя её заново; разобрано отдельным гайдом. Это заметно дешевле и быстрее, чем собирать модель с нуля на своих данных.
Машинное обучение — не магия и не разумный собеседник, а статистика на больших объёмах данных. Отсюда и предсказуемые слабые места. Перекошенные данные дают перекошенный результат. Переобучение прячется за идеальными оценками на знакомых примерах. А уверенный тон ответа ничего не говорит о его точности.
Держите эти три вещи в голове, и странности современных нейросетей перестанут удивлять. Нелепый промах на запросе чуть непривычнее обычного. Уверенно неправильный ответ там, где ошибиться, казалось бы, негде.
А дальше эта мысль работает как фильтр для любой новости и любой рекламы про ИИ. Не видно за красивой формулировкой, на каких данных и как обучали систему? Значит, конкретным цифрам верить рано.