Что такое нейросеть и как работает. Level 2.
В цифровом виде нейрон — это математическая функция. Нейроны объединены в слои. Есть слой, который только принимает данные — входной, слой, который их обрабатывает — скрытый, и слой, который решает, что нам ответить — выходной.
Скрытых слоев может быть 1, 2, 3, и в бесконечность. Чем их больше, тем глубже и мощнее нейросеть.
💡 Как работают нейроны в нейросети:
- Входные нейроны смотрят на картину и определяют если ли на ней нужный признак или нет (1 - есть, 0 - нет) и передают в формате [1, 1, 0...] нейронам скрытого слоя.
- Нейроны скрытого слоя делают “оценку”.Берут признак и дают ем вес. Вес - это числовой коэффициент, который показывает, насколько важен тот или иной признак. Условно, вес (0,00001) - вообще не важен, (0.999999) - супер важен. Затем суммируют эти веса и передают дальше в выходной слой.
- Нейроны выходного слоя снова выполняют оценку, но теперь не по входным признакам, а по тому, насколько сильно они «верят» в нейрон, от которого получили значение. Принцип весов остаётся тем же. После этого они суммируют все полученные значения и сравнивают сумму с пороговым значением. Условно: если сумма больше 2, то срабатывает позитивный результат.
🧠 + 🐱 На примере с кошками
Снова берем простую нейросеть сеть для распознавания животных. Мы не говорим нейросети: «Смотри на усы, уши, форму морды». Мы ничего ей не подсказываем и не программируем вручную.
1. Входной слой. Сеть получает картинку на входе и после тысячи картинок с кошками понимает, что надо смотреть на 3 признака, которые она ищет на фото:
Данные дальше в формате [1, 1, 0] уходят в скрытый слой для оценки.
Допустим, у нас есть 2 нейрона в скрытом слое.
Такой подход позволяет сети замечать разные сочетания признаков и учитывать их по-разному, как бы "специализируясь" на разных типах объектов.
Веса нейрон №1 (смотрит больше на морду):
Веса нейрон №2 (смотрит больше на уши):
Результат скрытого слоя: Нейрон №1= 1.1, Нейрон №2 = 1.1
Нейрон №1 (1×0.9) + (1×0.2) + 0×0.1 = 1.1
Нейрон №2 (1×0.3) + (1×0.8) + (0×0.4) = 1.1
3. Выходной слой. У выходного нейрона есть веса к каждому скрытому нейрону.
Результат выходного слоя: (1.1 × 0.6) + (1.1 × 0.8 ) = 0.66 + 0.88 = 1.54
1.546 < 2 → сеть считает: "Это кошка"
Нейросеть сама определяет порог (пороговое значение) на этапе обучения.
Как учится нейросеть
Мы упоминали, что нейросеть сама расставила веса и определила, что морда важнее формы ушей, а уши - важнее размера. Чтобы нейросеть смогла это сделать, её необходимо обучить.
Вот как это происходит пошагово:
- Подаём картинку - например, с кошкой.
- Сеть делает предположение - например, говорит: "это собака".
- Мы сравниваем с правильным ответом - видим, что это ошибка.
- Сообщаем сети насколько она ошиблась. В нашем случае ошибка - 100%, потому что ответ полностью неправильный.
- Сеть уменьшает ошибку. Ошибка как бы «катится» обратно по сети - от выхода к самому началу. На каждом нейроне она проверяет: кто сколько внёс в эту ошибку и корректирует свои веса, то есть изменяет, насколько важен каждый признак. Признаки не меняются, только их вес.
- Если уши были сильно вытянуты, и сеть по ним решила, что это собака, а это оказалась кошка - значит, признак "вытянутые уши" переоценён. Вес этого признака уменьшается.
- Если были видны усы, и сеть их проигнорировала - а это важный признак кошки, значит, вес "усов" увеличится.
- Если цвет фона часто сбивает сеть с толку - сеть научится делать его менее важным.
Повторяем снова и снова - с новыми картинками. Каждый раз сеть чуть-чуть подстраивает свои веса. Сначала много ошибок, потом - всё меньше.
Конечно, на практике всё немного сложнее. Но даже без этих деталей, базовый принцип остаётся тем же: признаки → веса → суммы → решение.
Больше новостей 👉 Бинарный | Нейросети