Например, нейрон второго слоя может специализироваться на выявлении вертикальной линии в нижнем левом углу изображения или небольшого градиента освещенности в другой части изображения. Он будет возбуждаться только в присутствии этого элемента.
В третьем слое концепты будут немного сложнее. Например, конкретный нейрон может выявлять определенные типы углов между двумя сегментами в определенной области изображения.
По мере продвижения по сети концепты становятся богаче и абстрактнее. Они все более глубокие.
В пятом слое некоторые нейроны могут, например, специализироваться на выявлении треугольников или определенных типов кривых.
В двадцатом слое нейрон может специализироваться на выявлении слонов, настоящих или нарисованных.
Я намеренно излагаю упрощенно. Реальность, конечно, намного сложнее, как с компьютерной, так и с биологической точки зрения.
Заявление, что в вашем мозгу концепт слона соответствует совершенно конкретному нейрону, – это просто краткий пересказ. Он не вполне корректен, но достаточно корректен, чтобы его использовать. И сильно облегчает понимание.
Кстати, с биологической точки зрения вопрос не окончательно закрыт. Например, некоторые эксперименты намекают, что для каждого известного актера или актрисы, которых вы знаете, у вас действительно есть конкретный нейрон, реагирующий именно на их присутствие на изображении. Однако некоторые ученые считают, что концепты соответствуют группам нейронов, а не отдельных нейронов. В компьютерных симуляциях можно увидеть, как отдельные нейроны специализируются на выявлении сложных объектов, таких как слоны, но в других случаях выявление происходит скорее путем активации небольшой группы нейронов (а не одного нейрона).
Эти нюансы никак не влияют на выводы, которые мы сделаем дальше.
Давайте представим, что у вас и правда есть слоновый нейрон. Это позволит нам все рассказать просто, понятно и в целом корректно.
Сто триллионов волокон
У вашего слонового нейрона тысячи дендритов. А значит, ваше внутреннее определение слона подразумевает тысячи критериев, которые сами по себе являются абстрактными концептами достаточно высокого уровня, такими как «является животным», «имеет хобот», «имеет большие уши», «серый», «большой», «издает трубный звук», «имеет бивни», «имеет бугристую кожу», «движется определенным образом», и так далее.
У каждого критерия свой коэффициент взвешенности. Могу поспорить, что у критерия «имеет хобот» он высокий. Каждую секунду ваш слоновый нейрон вычисляет «шкалу слоновости», добавляя коэффициенты критериев, чьи нейроны активированы.
Когда уровень на этой шкале превышает определенную пороговую отметку, нейрон решает, что вы имеете дело со слоном. Ниже этого порога располагается сначала серая зона, где вы не вполне уверены, что это слон (но у кого-то другого может быть иное мнение), а затем зона, где точно нет никакого слона.
Большое количество задействованных критериев обеспечивает надежность и эффективность системы выявления слонов. Ваша шкала слоновости достаточно хорошо настроена, чтобы соответствовать истине в непредвиденных ситуациях и допускать большое разнообразие отклонений.
Очевидно, что точное определение записать невозможно. На это не хватило бы целой книги, и в любом случае вы бы не нашли нужных слов.
Вот что такое паутина, о которой говорил Витгенштейн: переплетение наших триллионов нейронных связей. Немыслимо пытаться все это распутать. Но не распутав это все, нельзя по-настоящему определить что бы то ни было.
Алгоритмы глубокого обучения, даже самые мощные и изощренные, лишь грубые упрощения архитектуры нашего мозга. Наша зрительная кора действительно выстроена слоями, но не так строго, как в компьютерных моделях: нейрон «слон» явно запрашивает состояние нейрона «хобот», но нейрон «хобот» определенно запрашивает состояние нейрона «слон». От закольцованных определений никуда не деться.
Также упрощением было бы представлять, что наш мозг поделен на специализированные зоны, изолированные друг от друга: вы определяете слона не только визуально.
Как волны в океане
Осталось описать сам процесс обучения: какой механизм используют нейроны для обновления коэффициентов своих связей с передними слоями?
Возьмем пример нейрон «слон». Он непрерывно анализирует состояние передних нейронов, чтобы решить, возбуждаться ему или нет. Это поведение и позволяет вам анализировать мир в реальном времени. Говорить о реальном времени – всегда неверное словоупотребление, потому что никакая система на самом деле не работает в реальном времени. Нейрону нужно около половины миллисекунды на реакцию.