Урок 1. Что такое ИИ, машинное обучение и нейросеть
Слова «искусственный интеллект», «машинное обучение» и «нейросеть» часто путают и употребляют как одно и то же. На самом деле это вложенные друг в друга понятия: одно шире другого. В этом уроке — что значит каждое, как они связаны и как устроен один «нейрон» — на примере программы из десяти строк.
Обычная программа и ИИ
Обычная программа выполняет правила, которые написал программист: «если сумма покупки больше 100 рублей — дать скидку 5 %». Так хорошо решаются задачи, где правила известны и их можно записать: расчёты, учёт, расписание.
А теперь попробуйте записать правила, по которым вы узнаёте кошку на фото. Уши, усы, шерсть — но у каждой кошки они свои, на фото разный свет, кошка может быть повёрнута боком или наполовину спрятана за диваном. Правил получатся тысячи, и всё равно они будут ошибаться.
Для таких задач и нужен искусственный интеллект (ИИ). Так называют программы, которые справляются с тем, что раньше умел только человек: узнать лицо, понять речь, перевести текст, ответить на вопрос, нарисовать картинку. Сам термин появился в 1950-х годах, но по-настоящему ИИ вошёл в обычную жизнь в последние полтора десятка лет — когда появились большие объёмы данных и мощные видеокарты.
Машинное обучение
Машинное обучение (machine learning, ML) — способ, которым сегодня делают почти весь ИИ. Вместо правил программе дают много примеров с ответами: тысячи фото с подписями «кошка» и «не кошка». Программа сама подбирает правило, которое лучше всего совпадает с примерами. Этот процесс называется обучением, а то, что получилось в итоге, — моделью.
| Обычная программа | Машинное обучение | |
|---|---|---|
| Что даёт человек | Правила | Примеры с ответами |
| Что получается | Ответ по правилам | Модель, которая сама находит ответ |
| Где сильна | Расчёты, учёт, игры по правилам | Фото, речь, текст, прогнозы |
Обученная модель отвечает и на новые примеры, которых не было при обучении: на новое фото, новое письмо, новый вопрос. Ради этого её и обучают.
Машинное обучение бывает трёх основных видов:
- с учителем — у каждого примера есть верный ответ: письмо и пометка «спам» или «не спам» (подробнее — в справке Что такое обучение с учителем);
- без учителя — ответов нет, программа сама ищет похожие группы: например, покупателей с похожими покупками;
- с подкреплением — программа пробует действия и получает «награду» за удачные: так обучают играть в игры и управлять роботами.
Нейросеть
Нейросеть (нейронная сеть) — один из способов машинного обучения, самый успешный в последние годы. Она состоит из множества простых вычислительных элементов — нейронов, соединённых слоями. Название взято у мозга, но устроена нейросеть гораздо проще: это не копия мозга, а большая формула с числами.
Каждый нейрон делает простую вещь: берёт несколько чисел на входе, умножает каждое на свой вес (насколько этот вход важен), складывает и по сумме решает, что передать дальше. Вот один нейрон на Python. Он решает, идти ли гулять, по трём входам: тепло ли на улице, идёт ли дождь, есть ли свободное время (1 — да, 0 — нет):
def neuron(inputs, weights, bias):
total = bias
for x, w in zip(inputs, weights):
total += x * w
return 1 if total > 0 else 0
# Веса: тепло, дождь, свободное время
weights = [2, -3, 1]
bias = -2
days = [[1, 0, 1], [1, 1, 1], [0, 0, 1], [1, 0, 0]]
for day in days:
answer = neuron(day, weights, bias)
print(day, "гулять" if answer else "остаться дома")[1, 0, 1] гулять
[1, 1, 1] остаться дома
[0, 0, 1] остаться дома
[1, 0, 0] остаться домаРазберите первый день: −2 + 2 + 0 + 1 = 1, сумма больше нуля — гулять. У дождя вес отрицательный и большой (−3), поэтому дождь перевешивает и тепло, и свободное время. Число bias (смещение) — порог: без тепла и свободного времени вместе сумма не выходит в плюс.
Здесь веса подобраны вручную. Обучение нейросети — это как раз автоматический подбор весов. Сеть отвечает на примеры, её ответы сравниваются с верными, и веса понемногу сдвигаются так, чтобы ошибок стало меньше. Это повторяется много раз, пока ошибки не перестанут уменьшаться.
В настоящих нейросетях нейронов не один, а огромное количество, и выход одного слоя служит входом следующему. Весов — от сотен в учебных сетях до миллиардов в больших языковых моделях. Сеть с большим числом слоёв называют глубокой, а её обучение — глубоким обучением (deep learning).
Как всё это связано
- Искусственный интеллект — вся область: любые программы для «человеческих» задач. Сюда относятся и старые шахматные программы, которые перебирали ходы по правилам, написанным людьми.
- Машинное обучение — часть ИИ: правила находятся по примерам.
- Нейросети — один из способов машинного обучения. Есть и другие: деревья решений, метод ближайших соседей, линейные модели.
- Языковые модели — нейросети, обученные на огромном количестве текста. На них работают чат-боты; о них — следующий урок, Как работает языковая модель.
Что ИИ умеет и чего не умеет
Модель хорошо находит закономерности в огромных объёмах данных и работает быстро: распознаёт речь, переводит, сортирует письма, находит похожие картинки. Но у неё нет понимания мира, как у человека. Модель знает только то, что было в её примерах. Если кошки в данных были сфотографированы только дома, кошку на снегу модель может не узнать. Если в данных были ошибки или перекосы, модель их повторит.
Поэтому ответ модели — это обоснованная догадка, а не истина. В важных делах её проверяет человек.
Коротко
- ИИ — программы для задач, которые раньше решал только человек.
- Машинное обучение — правила не пишут, а находят по примерам; результат обучения — модель.
- Нейросеть — слои простых нейронов с весами; обучение — автоматический подбор весов.
- Глубокое обучение — обучение нейросетей с большим числом слоёв; языковые модели — их частный случай.
- Модель хороша ровно настолько, насколько хороши её примеры.