ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ

Зачем нейросети слои: почему глубина решает там, где ширина бессильна

Букву «deep» в deep learning часто переводят как «глубокое обучение», но мало кто объясняет, откуда взялась глубина и зачем она нужна. Спойлер: один слой нейронов не умеет даже отличить кружок от крестика в простой задаче.

Глубина сети — это не понты ради количества: каждый новый слой видит мир чуть абстрактнее предыдущего.
Один слой нейронов умеет проводить только прямые границы. Чтобы понять что-то сложное, границы приходится складывать слоями.

Что значит «слой»

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

Знаменитый провал одного слоя

В 1969 году выяснилось, что одиночный слой (перцептрон) не способен решить элементарную задачу «исключающее ИЛИ» (XOR): выдать единицу, когда из двух входов ровно один равен единице. Причина геометрическая. Один слой умеет делить плоскость одной прямой линией: всё, что по одну сторону, — один класс, по другую — другой. Но точки XOR расположены крест-накрест, и никакой прямой их не разделить.

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

Глубина строит признаки лесенкой

Главная сила слоёв — в том, что каждый следующий работает не с сырыми данными, а с находками предыдущего. Возьмём распознавание лиц:

  • Первый слой замечает простейшее — границы, пятна светлого и тёмного, наклонные линии.
  • Средние слои собирают из линий детали: уголок глаза, дугу брови, край губ.
  • Глубокие слои складывают детали в целые понятия: «глаз», «нос», а затем «лицо именно этого человека».

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

Почему нельзя просто взять слой пошире

Возникает соблазн: зачем много слоёв, давайте напихаем в один слой побольше нейронов. Теоретически очень широкий одиночный слой может приблизить почти любую функцию. Но на практике для сложных задач ему потребовалось бы астрономическое число нейронов, а обучить такую махину почти невозможно. Глубина даёт ту же выразительность экспоненциально дешевле: переиспользуя простые признаки в комбинациях, сеть достигает большего меньшими силами. Грубо говоря, проще объяснить понятие через понятия попроще, чем перечислять все случаи разом.

Мелкая и широкаяНужны гигантские слои, плохо обобщает
ГлубокаяСтроит признаки иерархией, эффективнее

У глубины есть цена

Слишком глубокие сети раньше было трудно обучать: сигнал ошибки, пробираясь назад через десятки слоёв, ослабевал почти до нуля — проблема «затухающего градиента». Решили её специальными приёмами вроде «пропускающих» связей, которые позволяют сигналу перепрыгивать слои. Сегодня сети с сотнями слоёв — обычное дело.

Итог

Глубина нужна не для красивого названия. Слои позволяют сети строить смысл лесенкой — от линий к деталям и от деталей к понятиям. Один слой проводит одну границу; десятки слоёв учатся видеть мир так, как мы и ждём от искусственного интеллекта.

#deep learning#глубина#нейросети#слои