Математическое обоснование интуиции на примере нейронных сетей

В обществе давно стоит риторический вопрос: "Стоит ли доверять своей интуиции?". Многие говорят, что однозначно стоит. Другие говорят, что "моя интуиция меня часто подводит". Я думаю, что нейросети, которые являются очень упрощенной моделью нашего мозга могут дать вполне однозначный ответ на этот вопрос. Об этом далее.

Математическое обоснование интуиции на примере нейронных сетей Нейронные сети, Научпоп, Интуиция, Python, Длиннопост

Сначала, очень кратко и просто расскажу о том, как работает элементарная нейросеть, архитектура которой называется Многослойный перцептрон (см. рисунок выше). Я буду намеренно избегать общепринятых терминов для простоты понимания.


Кружки первого столбика (подписаны X) - входные данные, некие числа, которыми вы описываете что-либо. В виде чисел можно представить что-угодно: звук, картинку, душевное состояние, погоду, автомобиль. Наш мир - одни сплошные числа.


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

Последний слой - выходной слой. Данные которые мы получаем после того, как они проходят через все скрытые слои. Например, нейросеть получила на вход картинку рукописной цифры 6. Картинка подаётся на входной слой как набор пикселей, а на выходе есть несколько вариантов из которых нейросеть должна выбрать наиболее подходящий. В нашем случае это цифры от 0 до 9. Тип задачи, когда нейросеть выбирает из ограниченного количества вариантов называется Классификация.

Математическое обоснование интуиции на примере нейронных сетей Нейронные сети, Научпоп, Интуиция, Python, Длиннопост

Изначально нейросеть очень тупая, потому что не обучена (к людям это тоже относится). А тупая она, потому что нейронные связи (которые weights) изначально задаются абсолютно случайным образом. Обучается нейросеть так: после прохождения входных данных по скрытым слоям нейросеть на выходе сверяет свой результат с тем, что должно быть в итоге и чуть-чуть корректирует свои веса на основе этого. С каждым таким прогоном данных через слои, веса нейронных связей приближают нейросеть к тому, чтобы она безошибочно угадывала цифру.

Мы уже очень близко подошли к вопросу об интуиции. Дело в том, что в случае выше нейросеть на выходе даёт 10 чисел, которые являются вероятностями того, является ли данный объект на выходе тем, что подаётся на вход. Ну вот например, если нейросеть обучена хорошо, то она скажет, что с вероятностью 99% на рисунке - цифра 6, а с вероятностью 1% это цифра 8.

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

Математическое обоснование интуиции на примере нейронных сетей Нейронные сети, Научпоп, Интуиция, Python, Длиннопост

Это 7 или 1? В вашей голове нейронов в миллиарды раз больше, чем в компьютерной программе, но я уверен, что вероятность возникновения холивара в комментах на эту тему присутствует. Бедная нейросеть, которая выдавала вероятности 99% до этого внезапно говорит, что это на 8% является цифрой 7 и на 6.5% является цифрой 1. Естественно, что другие цифры выдают вероятность 0%. С огромной долей сомнений нейросеть выбирает цифру 7. И... она права! В обучающей выборке это изображение помечено как семёрка.

Если мы пробежимся по множеству аналогичных спорных примеров, то увидим, что нейросеть даже с огромной долей сомнения в 68% случаев выбирает верный результат. Но почему? Потому что даже маленькая вероятность - результат её обучения, её жизненный опыт. Она никогда не сталкивалась с таким сложным примером ранее, ведь все цифры до этого были вполне однозначно написаны. Она сомневается, но что-то из её прошлого опыта, из вещей, которые она пропускала через себя в прошлом подсказывает ей правильный ответ.


Наша интуиция - это результат нашего жизненного опыта. Чем его у нас больше, тем более правильные решения мы будем принимать в жизни, даже когда сильно сомневаемся. Пусть и не всегда, но в большинстве случаев вы сделаете правильный выбор. Так что вывод - доверяйте своей интуиции, как это делают нейронные сети.

Наука | Научпоп

8.3K постов80.7K подписчика

Правила сообщества

Основные условия публикации

- Посты должны иметь отношение к науке, актуальным открытиям или жизни научного сообщества и содержать ссылки на авторитетный источник.

- Посты должны по возможности избегать кликбейта и броских фраз, вводящих в заблуждение.

- Научные статьи должны сопровождаться описанием исследования, доступным на популярном уровне. Слишком профессиональный материал может быть отклонён.

- Видеоматериалы должны иметь описание.

- Названия должны отражать суть исследования.

- Если пост содержит материал, оригинал которого написан или снят на иностранном языке, русская версия должна содержать все основные положения.


- Посты-ответы также должны самостоятельно (без привязки к оригинальному посту) удовлетворять всем вышеперечисленным условиям.

Не принимаются к публикации

- Точные или урезанные копии журнальных и газетных статей. Посты о последних достижениях науки должны содержать ваш разъясняющий комментарий или представлять обзоры нескольких статей.

- Юмористические посты, представляющие также точные и урезанные копии из популярных источников, цитаты сборников. Научный юмор приветствуется, но должен публиковаться большими порциями, а не набивать рейтинг единичными цитатами огромного сборника.

- Посты с вопросами околонаучного, но базового уровня, просьбы о помощи в решении задач и проведении исследований отправляются в общую ленту. По возможности модерация сообщества даст свой ответ.


Наказывается баном

- Оскорбления, выраженные лично пользователю или категории пользователей.

- Попытки использовать сообщество для рекламы.

- Фальсификация фактов.

- Многократные попытки публикации материалов, не удовлетворяющих правилам.

- Троллинг, флейм.

- Нарушение правил сайта в целом.


Окончательное решение по соответствию поста или комментария правилам принимается модерацией сообщества. Просьбы о разбане и жалобы на модерацию принимает администратор сообщества. Жалобы на администратора принимает @SupportComunity и общество Пикабу.