Машинное обучение
Машинное обучение (Machine Learning, ML) — это раздел информатики и математики, в котором компьютер учится находить закономерности в данных сам, без того чтобы программист прописывал каждое правило вручную.
Обычное программирование работает так: человек пишет правила → программа им следует. В машинном обучении всё наоборот: программе дают данные и правильные ответы → она сама выводит правила.
Немного истории
Заголовок раздела «Немного истории»Термин «машинное обучение» появился в 1959 году — его ввёл Артур Сэмюэл, инженер из IBM, который написал программу, играющую в шашки. Программа улучшала свою стратегию с каждой партией, не получая новых инструкций от человека.
Долгое время ML развивался медленно — не хватало данных и вычислительных мощностей. Всё изменилось в 2010-х годах: интернет наполнился огромными объёмами данных, видеокарты (GPU) стали достаточно мощными, а облачные сервисы сделали вычисления доступными. Машинное обучение начало проникать всюду — от рекомендаций в Netflix до автопилотов Tesla.
Отдельное направление — генеративные модели (LLM, ChatGPT и другие). Про них будет своя страница, здесь мы сосредоточимся на фундаменте.
Направления машинного обучения
Заголовок раздела «Направления машинного обучения»
Картинка взята из блога https://vas3k.blog/ и там тема расскрыта хорошо.
Обучение с учителем
Заголовок раздела «Обучение с учителем»Самый понятный тип. Модели дают данные + правильные ответы, и она учится предсказывать ответ для новых данных. «Учитель» — это и есть те самые правильные ответы (их ещё называют «разметкой»).
Регрессия
Заголовок раздела «Регрессия»Модель предсказывает число. На входе — набор характеристик, на выходе — конкретное значение.
Классификация
Заголовок раздела «Классификация»Модель предсказывает категорию. Не число, а ответ из заранее известных вариантов.
Train/Test Split
Заголовок раздела «Train/Test Split»Train/Test Split - это способ проверить, насколько хорошо твоя модель машинного обучения будет работать на новых данных, которые она раньше не видела. Идея простая: берешь свой датасет и делишь его на две части. Большую часть (обычно 80%) отдаешь модели для обучения, а меньшую (20%) прячешь от нее.
Модель учится на train-части, находит закономерности, строит свои правила. А потом ты даешь ей test-часть и смотришь, насколько точно она предсказывает результат на данных, которые никогда не видела.
Зачем это нужно? Если проверять модель на тех же данных, на которых она училась, она покажет отличный результат, но это обман. Это как дать студенту экзамен с теми же вопросами, по которым он готовился. Настоящая проверка - это новые вопросы. Test-выборка и есть такой “честный экзамен”. Если модель хорошо справляется с test-данными, значит она действительно уловила закономерности, а не просто запомнила ответы. Если плохо - скорее всего, произошло переобучение (overfitting), и модель нужно дорабатывать.
Обучение без учителя
Заголовок раздела «Обучение без учителя»Здесь нет правильных ответов. Модель получает только данные и должна сама найти в них структуру, закономерности или аномалии.
Кластеризация
Заголовок раздела «Кластеризация»Модель группирует похожие объекты, хотя никто не говорил ей, какие группы бывают.
Поиск правил
Заголовок раздела «Поиск правил»Модель ищет связи между событиями — что часто происходит вместе.
Уменьшение размерности
Заголовок раздела «Уменьшение размерности»Модель упрощает данные, убирая лишнее, но сохраняя суть. Это нужно, когда у каждого объекта слишком много характеристик и с ними сложно работать.
Можно поиграться с методом Анализ соответствий в нашем инструменте.
Ансамблевые методы
Заголовок раздела «Ансамблевые методы»Идея простая: один ум хорошо, а много — лучше. Вместо одной модели берут сразу несколько и объединяют их ответы. Итоговый результат получается точнее, чем у любой отдельной модели.
Два основных подхода: бэггинг — несколько моделей учатся независимо, а потом «голосуют» за ответ. Бустинг — модели учатся последовательно, каждая следующая исправляет ошибки предыдущей.
Нейросети и глубокое обучение
Заголовок раздела «Нейросети и глубокое обучение»Нейросети — это модели, вдохновлённые устройством мозга. Они состоят из слоёв «нейронов», которые передают сигналы друг другу. Чем больше слоёв — тем «глубже» сеть, отсюда термин «глубокое обучение» (Deep Learning).
Нейросети умеют находить невероятно сложные закономерности, которые другие методы просто не видят. Именно они стоят за распознаванием лиц, голосовыми помощниками, переводчиками и генерацией изображений.
Минус — им нужно очень много данных и мощное железо для обучения. А ещё они работают как «чёрный ящик»: дают результат, но объяснить, почему именно такой, часто невозможно.
Рекомендации
Заголовок раздела «Рекомендации»Если вы хотите по лучше разобраться в этой теме, то рекомендуем курсы Анатолия Карпова на stepik.