Как работает нейросеть: слои и веса
Слои, веса и распределение вины на задаче, о которую споткнулся перцептрон
Работает нейросеть на двух арифметических действиях: искусственный нейрон умножает входы на веса, складывает их со смещением и пропускает сумму через нелинейность, изгиб вроде сигмоиды. Без изгиба слои схлопываются в один, и глубина не добавляет сети ничего. Четыре точки задачи «исключающее или» одной прямой не разделить, и скрытый слой из трёх нейронов выучивает её почти всегда, а из одного никогда.
Минский и Пейперт, 1969. Линнайнмаа, 1970. Румельхарт, Хинтон и Уильямс, 1986 · 24 мин · обновлено 01.10.2026
После урока вы сможете
- Понимать, почему «исключающее или» недоступно однослойной схеме, и что это доказано
- Объяснять, что делает искусственный нейрон и зачем между слоями нужна нелинейность
- Считать распределение вины по слоям на маленьком примере и объяснять, зачем нужен проход назад
- Называть места, в которых сравнение нейросети с мозгом ломается
Представьте два выключателя и одну лампу. Лампа должна гореть, когда включён ровно один из выключателей. Если включены оба, темно. Если выключены оба, тоже темно. Правило простое, человек схватывает его с первого раза и дальше не ошибается.
Теперь поручим это правило выучить машине по примерам. Примеров всего четыре, и других не бывает: вся таблица помещается в четыре строки. Задача выглядит проще некуда, всего два входа, один ответ, ни шума, ни пропущенных данных. Обучать тут, кажется, почти нечему.
Так вот, простейшая обучаемая схема эту задачу не решает. Не «пока не научились» и не «нужно больше примеров»: не решает никогда, и это строго доказано в 1969 году. Функция называется исключающее «или», и на ней в своё время споткнулась целая область. С неё начинается всё устройство нейросети, потому что сеть придумана ровно для того, чтобы такую стену обойти.
Почему одна прямая не справляется
Нарисуйте четыре наших случая точками на квадрате. Каждый выключатель получает свою ось, значения на ней только два: 0 и 1. Ответ «темно» приходится на углы (0,0) и (1,1), а «светло» на углы (0,1) и (1,0). Заметьте, как они легли: одинаковые ответы оказались на противоположных концах диагоналей.
Возьмите теперь линейку и попробуйте отделить прямой светлое от тёмного. Как её ни клади, по одну сторону непременно окажется точка из чужой пары. Дело не в старании и не в ловкости: диагонали пересекаются, и прямая, разделившая одну пару, обязательно рассечёт другую. Это свойство самой картинки, а не наших рук.
Осталось связать картинку с машиной, и связь оказывается прямой. Простейший обучаемый элемент, перцептрон, умножает каждый вход на свой вес, складывает произведения и сравнивает сумму с порогом. На нашем квадрате это и есть прямая: веса задают её наклон, а порог отвечает за положение. Значит, на что способна прямая, на то способен и такой элемент, и ни на что сверх того.
Отсюда и вывод, который Минский с Пейпертом превратили в строгое доказательство. Однослойная схема не может выучить «исключающее или», сколько ей ни показывай примеров и сколько ни жди. В реестре курса это утверждение стоит со статусом «выдержало», и в тренажёре вы проверите его руками. Ошибочным был не результат, а вывод «нейросети тупиковы», который область сделала из него в 1969 году.
Что такое искусственный нейрон
Слово «нейрон» здесь чисто техническое, и разбирать его надо без биологии. Искусственный нейрон делает три действия подряд, и все три арифметические. Умножает каждое входное число на свой вес, складывает произведения и прибавляет к ним смещение, ещё одно число. Потом пропускает результат через простую функцию, и на этом его работа кончается.
Веса это те самые ручки из прошлого урока. Их подбирает обучение, и ничего другого настраиваемого в нейроне нет. Если входов два, у нейрона всего три числа: два веса и смещение. В больших сетях таких нейронов миллиарды, но каждый устроен именно так и никак иначе.
Про последнее действие надо сказать отдельно, потому что оно решает всё. В тренажёре стоит сигмоида: она берёт любое число и плавно сжимает его в промежуток от нуля до единицы. Большое число на входе даёт почти единицу, сильно отрицательное почти ноль, а посередине переход идёт гладко. Гладкость тут не украшение: без неё нечего было бы считать градиентному спуску, которому нужен уклон, а не ступенька.
Заодно видно, откуда в тренажёре берутся ответы вроде 0,97 и 0,04. Сеть не отвечает «да» или «нет», она выдаёт число между нулём и единицей. Решение принимает уже человек, договорившись считать всё выше 0,5 единицей. Порог этот назначен нами, и в задачах посерьёзнее его выбор оказывается отдельным решением с последствиями.
Почему без нелинейности глубина бесполезна
Зачем нейрону последнее действие, понятно ещё не до конца. Проверим на числах, что будет, если его убрать и оставить только умножение со сложением. Возьмём два слоя подряд, самых простых, и посмотрим, что получится вместе.
Пусть первый слой считает три икс плюс один, а второй берёт этот результат и прибавляет к его удвоению пять. Подставим одно в другое и раскроем скобки: 2 · (3x + 1) + 5 = 6x + 7. Снова прямая, только с другими числами. Сколько таких слоёв ни ставь друг за другом, без изгиба получится одна-единственная прямая.
Вот отсюда и следует главное про глубину сети. Слои дают что-то новое лишь тогда, когда между ними стоит нелинейное действие, какой-нибудь изгиб, ступенька, сжатие. Нелинейность не техническая деталь и не ускоритель: без неё вся сеть схлопывается в тот самый однослойный элемент, который «исключающее или» не выучивает. Наличие изгиба тут важнее числа слоёв, и об этом стоит помнить, читая про «глубокое обучение».
Заметьте, как аккуратно это связывается с предыдущим разделом. Прямую нельзя провести так, чтобы она разделила диагонали, и десять прямых, положенных друг на друга, останутся прямой. Стена 1969 года пробивается не глубиной как таковой, а изгибом между слоями. Без него добавление слоёв просто переписывает те же два числа другими.
Что даёт скрытый слой
Соберём теперь ту сеть, которая стоит в тренажёре. Два входа, три нейрона в середине, один нейрон на выходе. Средний ряд называют скрытым слоем: скрыт он в том смысле, что его числа не видны ни на входе, ни на выходе. Никакой тайны за словом нет, и знать эти числа нам просто незачем. Параметры такой сети считаются на пальцах: три скрытых нейрона по три числа плюс четыре числа у выходного, итого тринадцать.
Каждый нейрон скрытого слоя проводит по квадрату свою прямую. Одна отрезает угол, где оба выключателя выключены, а другая тот, где включены оба. Выходной нейрон получает уже не координаты точек, а ответы этих прямых, и складывает их со своими весами. Задача «отдели диагонали» превращается в задачу «возьми то, что осталось между двумя прямыми», а вот она одной прямой решается.
В тренажёре это видно на карте решения, квадрате из цветных клеток. Поставьте три скрытых нейрона, нажмите «Тысяча эпох» и посмотрите на границу между цветами: она вышла не прямой, а ломаной. Ломаная и есть след нескольких прямых, сшитых нелинейностью. Ровно этого не могла дать однослойная схема, и ровно это и есть весь секрет скрытого слоя.
Стоит проговорить и то, чего здесь не произошло. Сеть не поняла, что такое «исключающее или», и никакого правила внутри не записала. Она получила четыре примера с ответами и подвинула тринадцать чисел так, чтобы ответы совпали. Границу на карте нарисовали не смысл и не логика, а подобранные веса.
Распределение вины
Осталось затруднение, из-за которого сети семнадцать лет считали необучаемыми. Ошибка видна только на выходе: сеть ответила 0,8 там, где нужна была единица. А крутить надо все веса, включая те, что сидят в глубине и до выхода напрямую не дотягиваются. Кто из них виноват в промахе и насколько сильно?
Рецепт прошлого урока тут не спасает, и разобраться почему важнее всего. В уроке 4 мы для каждой ручки смотрели, что станет с ошибкой, если её чуть подвинуть. Но проверка одной ручки требует прогнать сеть заново целиком. Тринадцать ручек обойдутся в тринадцать лишних прогонов на каждый шаг, а миллион ручек в миллион прогонов. Ответ, посчитанный так, верен и недостижим.
Обратное распространение ошибки берёт ту же величину другим путём. Разберём его на числах, для чего возьмём кусок сети поменьше. Один выходной нейрон, перед ним два скрытых, на их выходе стоят значения 0,9 и 0,2. Веса, которыми эти значения входят в выходной нейрон, равны 0,5 и 0,25.
Считаем выход: 0,9 умножить на 0,5 плюс 0,2 умножить на 0,25 даёт ровно 0,5. Нужна была единица, значит промах равен 0,5 и выход надо поднимать. Первый вопрос: который из двух весов виноват сильнее? Подвиньте первый вес на чуть-чуть, и выход поднимется на 0,9 этого «чуть-чуть». Подвиньте второй, и выход поднимется всего на 0,2, потому что через него прошло значение поменьше.
Вот и правило для последнего слоя, и умещается оно в строку. Доля вины веса это промах, умноженный на значение, которое через этот вес прошло. У первого веса выходит 0,5 умножить на 0,9, то есть 0,45. У второго 0,5 умножить на 0,2, то есть 0,1. Первый вес виноват в четыре с половиной раза сильнее, ровно во столько, во сколько больше прошедшее через него значение.
Теперь шаг, ради которого приём и назван обратным. Спросим не про веса, а про сами значения 0,9 и 0,2: насколько виновато каждое из них? Поднимите 0,9 на чуть-чуть, и выход поднимется на 0,5 этого «чуть-чуть», потому что таков вес, с которым оно входит. Значит, назад к первому нейрону уходит 0,5 умножить на 0,5, то есть 0,25 вины, а ко второму 0,5 умножить на 0,25, то есть 0,125. Вперёд значение умножалось на вес. Назад на тот же вес умножается вина.
Осталось провести вину через изгиб, и тут пригодится гладкость сигмоиды. У неё есть наклон, то есть насколько меняется выход при изменении входа, и считается он прямо из самого значения: значение умножить на единицу минус значение. В точке 0,9 сигмоида почти легла: наклон равен 0,09. В точке 0,2 она заметно живее: наклон 0,16. Умножаем на наклон и получаем вину до изгиба: у первого нейрона 0,022, у второго 0,02.
Дальше всё повторяется буквально, и новых правил не появляется. У скрытых нейронов есть свои веса и свои входные значения, и вина раскладывается на них тем же способом. Так проход идёт слой за слоем до самого входа. Дойдя до него, мы знаем для каждого веса, куда его двигать, то есть у нас на руках градиент.
И вот ради чего всё это считалось. Один проход вперёд даёт ответ, один проход назад даёт вину сразу для всех весов до единого. Не миллион прогонов на миллион ручек, а два прохода на любое их число. Дешевизна обратного прохода и делает обучение больших сетей возможным вообще.
Дальше начинается прошлый урок без единого изменения. Сделали мелкий шаг по всем весам сразу, посчитали ошибку заново, повторили. Один такой проход по всем обучающим примерам называется эпохой. Тренажёр считает их тысячами, и на четырёх примерах это доли секунды. На настоящих данных одна эпоха может занимать часы, но устроена она точно так же.
Теперь про даты, и здесь надо быть точным, потому что путают постоянно. Математика приёма, цепное правило для производных, известна давно, а в виде, пригодном для программ, её описал Сеппо Линнайнмаа в 1970 году. В контекст нейросетей приём ввели и сделали общеизвестным Румельхарт, Хинтон и Уильямс в 1986 году. Сказать «обратное распространение придумали в 1986-м» неверно. Верно, что именно тогда область поняла, что с ним делать.
Книга Минского и Пейперта вышла в 1969 году, а работа Румельхарта, Хинтона и Уильямса в 1986-м. Между ними лежит первая зима искусственного интеллекта, о которой шла речь в уроке 3. Доказательство про однослойную схему было верным, а вывод «нейросети тупиковы» поспешным, и стоил он области семнадцати лет. Полезно помнить обе половины этой истории: и что доказательства стоит читать буквально, и что похороны направления бывают преждевременными.
Почему это не мозг
Слово «нейросеть» тащит за собой картинку мозга, и картинка эта мешает больше, чем помогает. Название историческое: искусственный нейрон задумывался как крайне упрощённая модель живой клетки. Устройством мозга занимается отдельный курс, а нам хватит трёх мест, где сравнение ломается.
Первое: сам элемент. Искусственный нейрон это умножение, сложение и одна гладкая функция, три действия и ничего больше. В живой нервной клетке химия, отростки, задержки и собственное поведение во времени.
Второе: способ обучения. Обратное распространение требует пройти всю сеть назад и точно посчитать вклад каждого веса. Для такого прохода в мозге аналога не нашли, и биологически правдоподобным он не выглядит.
Третье: масштаб и цена. Мозг работает на энергии обычной еды, а обучение крупной модели требует потребления промышленного масштаба. Сравнивать «число параметров» с «числом связей в мозге» соблазнительно, но это разные вещи с похоже звучащими названиями.
Отсюда и статус в реестре курса: «нейросеть работает как мозг» значится мифом. Так говорят пересказы, реклама и кино, а сама область этого не утверждает. Общего между сетью и мозгом ровно одна идея: сигналы складываются и передаются дальше. Вред от метафоры ощутим, потому что из неё выводят и понимание, и сознание, и «машина учится, как ребёнок».
Метафора возникла из названия и держится на нём же. Искусственный нейрон сводится к умножению и сложению с одной гладкой функцией. Обучение идёт способом, для которого в мозге не нашли аналога, а масштабы и энергия несопоставимы. Сходство исчерпывается одной идеей: сигналы складываются и передаются дальше. Заметьте и то, что название появилось задолго до нынешних результатов и осталось по инерции. Менять его теперь никто не станет, а читать буквально не стоит.
Сколько нейронов нужно
У ползунка в тренажёре есть неожиданно поучительная середина. С одним скрытым нейроном «исключающее или» не выучивается никогда, с тремя выучивается почти всегда. Поставьте два и несколько раз нажмите «Перемешать веса», каждый раз доучивая тысячу эпох. Примерно в каждом третьем запуске обучение застревает: два ответа верны, два нет, и дальше ничего не меняется.
Начальные веса берутся случайно, и с некоторых стартов спуск попадает в яму, из которой мелкими шагами не выбраться. Это та самая множественность ям, о которой шла речь в уроке 4. Отсюда легко сделать вывод «ставь побольше нейронов», и он верен только наполовину. Запас нейронов спасает от неудачного старта, но чем больше у модели ручек, тем легче ей запомнить показанное вместо закономерности. Именно этой второй половине посвящён весь следующий урок.
Что видно в тренажёре
Тренажёр этого урока обучает настоящую сеть прямо в браузере, тем самым обратным распространением. Начните с одного скрытого нейрона и задачи «исключающее или». Нажмите «Тысяча эпох» несколько раз подряд и посмотрите в таблицу ответов. Верных будет два из четырёх, и дальнейшее обучение этого не изменит.
Это и есть стена 1969 года, увиденная своими глазами. Посмотрите заодно на кривую ошибки: она падает, упирается в полку и дальше идёт ровно. Сеть не «недоучилась», она пришла к лучшему, что вообще возможно с одной прямой. Ни число эпох, ни терпение, ни другая скорость шага здесь ничего не дадут.
Теперь переключитесь на обычное «и», оставив тот же один нейрон. Задача решается сразу и полностью, потому что для неё одной прямой достаточно. Сравнение двух задач на одной и той же сети показывает, где именно проходит граница возможного. Проходит она не по сложности задачи для человека, а по тому, разделяются ли ответы прямой.
И последнее, что стоит сделать: вернуть «исключающее или» и поставить три нейрона. Через тысячу эпох таблица становится верной, а граница на карте ломаной. Никто не объяснял сети условие задачи и не показывал ей больше четырёх строк. Всё произошедшее сводится к тому, что тринадцать чисел сдвинулись мелкими шагами в сторону меньшей ошибки.
Что дальше
Мы собрали работающую сеть и назвали всё, из чего она состоит. Веса и смещения, слой, нелинейность между слоями, обратное распространение и мелкий шаг. Этого набора хватает и на четыре примера с двумя входами, и на модели с миллиардом параметров. Дальше в курсе будут меняться размеры и способы соединять слои, а перечисленное останется прежним.
Осталось понять, чего от такого обучения ждать нельзя. В уроке 6 модель будет отвечать безупречно на всё, что ей показали, и промахиваться на новом. Это не поломка и не редкость, а обычное поведение подгонки чисел под примеры. Способ вовремя это заметить придётся завести отдельно, и он проще, чем кажется, но требует дисциплины.
Сеть учит исключающее «или»
Настоящая сеть с обратным распространением ошибки. Оставьте один скрытый нейрон, и увидите ту стену, о которую в 1969 году разбилась однослойная схема, а добавьте нейронов, и стена исчезнет.
Ключевые работы и результаты
| Минский и Пейперт, «Perceptrons» | 1969 | Строгое доказательство того, что однослойный перцептрон не способен выучить «исключающее или». Многослойные сети под доказательство не подпадали, но обучать их тогда не умели, и эффект на область оказался разрушительным. |
| Сеппо Линнайнмаа | 1970 | Способ послойно считать производные сложной функции описан в виде, пригодном для вычислительных машин. Это математическая основа обратного распространения ошибки, появившаяся за шестнадцать лет до того, как её применили к нейросетям. |
| Румельхарт, Хинтон, Уильямс | 1986 | Обратное распространение ошибки введено в контекст нейросетей и сделано общеизвестным: многослойные сети снова стали обучаемыми. В реестре курса приём стоит со статусом «выдержало», и он лежит в основе обучения сетей до сих пор. |
Что подтвердилось, а что нет
Искусственный нейрон это умножение, сложение и одна гладкая функция, а живая нервная клетка устроена несопоставимо сложнее. Обучение идёт обратным распространением ошибки, то есть точным подсчётом вклада каждого веса при проходе назад, и аналога такому способу в мозге не нашли. Масштабы и энергия тоже несопоставимы. Сходство исчерпывается одной идеей: сигналы складываются и передаются дальше. Устройство мозга разбирает отдельный курс, и метафора не заменяет его ни в одну, ни в другую сторону.
Приём вычисляет, как каждый из миллионов параметров повлиял на ошибку, раскладывая её назад по слоям. Он снял препятствие, из-за которого после 1969 года многослойные сети считались необучаемыми, и лежит в основе обучения сетей до сих пор. Проверялся он самым надёжным способом из возможных, работой: на нём обучено всё, о чём говорят следующие модули курса.
В осторожной форме верно: именно они ввели приём в контекст нейросетей, показали, что он работает, и сделали его общеизвестным. В сильной форме неверно, ведь математика была известна раньше, и в пригодном для программ виде её описал Сеппо Линнайнмаа в 1970 году. Случай обычный для истории науки: заслугой оказывается не первое появление идеи, а понимание, что с ней делать.
Термины
- искусственный нейронartificial neuron
- Элемент сети, делающий три арифметических действия: умножает входы на веса, складывает произведения со смещением и пропускает результат через нелинейную функцию.
- весweight
- Число, на которое умножается вход нейрона. Веса и есть те параметры, которые подбирает обучение. Ничего другого настраиваемого в нейроне нет.
- скрытый слойhidden layer
- Ряд нейронов между входом и выходом. Скрыт в том смысле, что его числа не видны ни на входе, ни на выходе. Он даёт выходному нейрону другие координаты вместо исходных.
- нелинейностьactivation function
- Изгиб между слоями, например сигмоида, сжимающая любое число в промежуток от нуля до единицы. Без неё слои схлопываются в один, и глубина не добавляет сети ничего.
- эпохаepoch
- Один проход обучения по всем обучающим примерам. На четырёх примерах это доли секунды, на настоящих данных часы, но устроена эпоха одинаково.
- обратное распространение ошибкиbackpropagation
- Способ вычислить, как каждый параметр многослойной сети повлиял на ошибку, распределяя вину послойно от выхода к входу. Снял препятствие, из-за которого многослойные сети считались необучаемыми.
- исключающее илиXOR
- Функция, дающая «да», когда истинно ровно одно из двух условий, и «нет», когда оба или ни одного. Однослойной схемой невыразима, и это доказано в 1969 году.
- параметрparameter
- Настраиваемое число модели. Обучением называют подбор положений всех параметров так, чтобы ответы на известных примерах совпадали с известными ответами.
Практикум · Проверить доказательство 1969 года руками
Утверждение «однослойная схема не может выучить исключающее „или“» звучит как история науки, а на деле проверяется за десять минут. Практикум ведёт от стены к её обходу, и делать его надо по порядку. Всё происходит в тренажёре этого урока.
- Поставьте один скрытый нейрон, выберите «Исключающее „или“» и нажмите «Тысяча эпох» три раза подряд. Выпишите четыре ответа сети и опишите одним предложением, что делает кривая ошибки после первых сотен эпох.
- Не меняя числа нейронов, переключитесь на обычное «и» и снова обучите тысячу эпох. Запишите, чем результат отличается от предыдущего, и объясните разницу через картинку с четырьмя точками на квадрате.
- Вернитесь к «исключающему „или“», поставьте три нейрона и обучите. Опишите словами границу на карте решения: какой она формы и почему прямой она быть не может.
- Поставьте два нейрона и пять раз подряд нажмите «Перемешать веса», каждый раз доучивая тысячу эпох. Отметьте, сколько запусков из пяти дошли до четырёх верных ответов, и объясните разброс через множество ям из урока 4.
- Напишите на пяти строках ответ на вопрос, который стоит задавать любому заявлению о невозможности: что именно доказано и о чём. Сравните свой ответ с тем, какой вывод область сделала в 1969 году.
Вопросы для самопроверки
Почему одна прямая не может решить «исключающее или»?
- Потому что точек четыре, а прямая одна: четырёх точек одной линией не разделить никогда
- Потому что входы принимают лишь значения 0 и 1, а прямую проводят по непрерывным величинам
- Потому что прямая не умеет умножать и складывать
- Дело в расположении точек: одинаковые ответы стоят по концам пересекающихся диагоналей, и любая прямая рассечёт одну из пар
Что даёт нелинейность между слоями?
- Ускоряет вычисления: изгиб позволяет видеокарте считать слои независимо друг от друга
- Без неё два слоя схлопываются в один, и глубина не добавляет сети ничего
- Уменьшает число параметров, которые надо подбирать
- Защищает модель от переобучения: изгиб не даёт кривой пройти точно через обучающие точки
Как работает обратное распространение ошибки?
- Ошибка с выхода раскладывается назад по слоям, и каждый вес получает свою долю вины
- Модель обучается заново, начиная с конца обучающих данных
- Ошибочные примеры возвращают в обучающую выборку и показывают модели ещё раз, пока она их не выучит
- Сеть перебирает значения весов слой за слоем, пока ошибка не станет малой
Сеть с одним скрытым нейроном не выучила «исключающее или» за тысячу эпох. Что делать?
- Учить дольше: тысячи эпох для такой задачи мало, и при большем их числе кривая ошибки ещё пойдёт вниз
- Уменьшить скорость шага и повторить обучение: спуск, вероятно, перепрыгивал нужный минимум
- Добавить скрытых нейронов: одной прямой эти четыре точки не разделить никогда, сколько ни учи
- Заменить задачу на обычное «и», раз эта не решается
Почему утверждение «нейросеть работает как мозг» стоит в реестре как миф?
- Потому что мозг обрабатывает сигналы быстрее любой сети
- Потому что нейросети пока слишком малы: в мозге около восьмидесяти миллиардов нейронов, и при таком же их числе разница исчезнет
- Искусственный нейрон это умножение и сложение, обучение идёт способом, для которого в мозге не нашли аналога, а масштабы и энергия несопоставимы
- Потому что у мозга есть сознание, а у сети его нет, и именно на этом различии держится вся оценка утверждения
Ответы и разбор открываются в самопроверке урока: она считает результат и отмечает урок пройденным. Пройти самопроверку.
Что читать
- Тренажёр «Сеть учит исключающее „или“» в этом уроке: Проверка доказательства 1969 года руками: один скрытый нейрон не справляется ни за какое число эпох, три справляются почти всегда.
- Dive into Deep Learning (d2l.ai), глава о многослойных перцептронах: Та же сеть с формулами и кодом. Показано, почему без нелинейности слои схлопываются в один, и это ровно тот расчёт, который здесь сделан словами.