11,4K подписчиков

Как работают нейросети: простое объяснение в картинках

958 прочитали

Принцип работы нейронной сети пришел в программирование из биологии. Пионерами нейросетей были не столько программисты, сколько нейрофизиологи и психологи.

«Цифровой океан» разобрался,
как работают нейросети — и в каком-то смысле человеческий мозг.

Принцип работы нейронной сети пришел в программирование из биологии. Пионерами нейросетей были не столько программисты, сколько нейрофизиологи и психологи.

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

Проще всего объяснить ее в картинках.

1. НЕПРОСТОЕ ЧЕЛОВЕЧЕСКОЕ

КОНТЕКСТ И ОПЫТ

Перед вами десять картинок. Человек без труда узнает на всех десяти цифру 6.

  • Для машины же это набор совершенно разных изображений, никак не связанных между собой.

Что помогает человеку узнать «шестерку»? Контекст и опыт.

Контекст помогает нам разобрать даже почерк врача: если на месте буквы появляется странный крестик, мы понимаем, что это, видимо, «т» или «к».

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

Принцип работы нейронной сети пришел в программирование из биологии. Пионерами нейросетей были не столько программисты, сколько нейрофизиологи и психологи.-2

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

2. КВАДРАТНО-ГНЕЗДОВОЕ

СЕНСОРНЫЙ СЛОЙ

Начнем строить нейросеть. Разделим изображение на точки (пиксели): 30 по вертикали и 30 по горизонтали. Каждый из пикселей имеет свою яркость.

Пусть черные пиксели имеют значение 0, белые — ​1, а градации серого дают дробные значения, например 0,4 или 0,8. Эти 900 пикселей — ​наши первые нейроны, точнее нейроны входного слоя, или сенсоры.

Принцип работы нейронной сети пришел в программирование из биологии. Пионерами нейросетей были не столько программисты, сколько нейрофизиологи и психологи.-3

3. ПСЕВДОЖИВОЕ МНОГОСЛОЙНОЕ

СТРУКТУРА НЕЙРОСЕТИ

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

Входной слой воспринимает рукописные цифры и состоит из 900 нейронов. Выходной слой выдает один из десяти возможных результатов: числа от 0 до 9.

Поэтому нейронов в нем будет 10, они называются реагирующими. Промежуточные слои имеют по 15 нейронов, их элементы называются ассоциативными.

Принцип работы нейронной сети пришел в программирование из биологии. Пионерами нейросетей были не столько программисты, сколько нейрофизиологи и психологи.-4

Концептуально нейроны имитируют клетки живого мозга.

  • Как и для настоящих нейронов, для компьютерных тоже важны связи.

Каждый нейрон связан со всеми нейронами соседнего слоя.

4. ТАЙНОЕ ИСКОМОЕ

СВЯЗИ И ВЕСА

Посмотрим на первый нейрон промежуточного слоя (назовем его b1). Он связан с каждым из 900 нейронов входного слоя (назовем их a1 — ​a900).

Собственно, нейрон b1 — ​это математичес­кая формула, длинная, но довольно простая. Она показывает, насколько сильно каждый из сенсоров a1 — ​a900 влияет на значение b1.

Принцип работы нейронной сети пришел в программирование из биологии. Пионерами нейросетей были не столько программисты, сколько нейрофизиологи и психологи.-5

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

  • Эти веса, настроенные оптимальным образом, — ​вот то тайное знание, которое является результатом глубокого машинного обучения.

5. АБСТРАКТНОЕ ОБОБЩЕННОЕ

АССОЦИАТИВНЫЕ СЛОИ

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

Для чего нужны промежуточные слои? Выражаясь очень образно, они помогают машине обобщить накопленный опыт.

Проведем мысленный эксперимент. Как мы, люди, узнаем шестерку? Она состоит из кружочка и «хвостика» слева вверху.

Принцип работы нейронной сети пришел в программирование из биологии. Пионерами нейросетей были не столько программисты, сколько нейрофизиологи и психологи.-6

Представим, что предпоследний (второй скрытый) слой нейросети разбирается во взаимном расположении кружочков, «хвостиков» и «крючочков», из которых состоят цифры.

А первый скрытый слой умеет выделять на картинке сами кружочки и «хвостики» по сочетанию пикселей.

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

6. ГОРЯЩЕЕ ПОРОГОВОЕ

АКТИВАЦИЯ НЕЙРОНОВ

Запустим нашу нейросеть: расставим веса в произвольном порядке, покажем сенсорам шестерку и посмотрим, какой из выходных нейронов активируется.

Под активацией подразумевается превышение некоего порогового значения.

Например, если формула нейрона выдает результат больше 0,8, то он «загорается», или активируется.

Принцип работы нейронной сети пришел в программирование из биологии. Пионерами нейросетей были не столько программисты, сколько нейрофизиологи и психологи.-7

Вполне вероятно, что при первом запуске «загорелось» несколько реагирующих нейронов.

Машина «признала» в шестерке и 8, и 2, и 3, и все эти результаты не имеют никакого отношения к истине. Нейросеть еще предстоит обучить.

7. ОСТРОУМНОЕ РЕВЕРСИВНОЕ

ОБРАТНОЕ РАСПРОСТРАНЕНИЕ ОШИБКИ

Если бы вес каждой связи искали простым перебором, процесс занял бы вечность.

  • Сокращает путь главное ноу-хау машинного обучения — ​алгоритм обратного распространения ошибки.

Он позволяет нейросети, словно находчивому школьнику, подогнать значения переменных в уравнении, зная правильный ответ.

Принцип работы нейронной сети пришел в программирование из биологии. Пионерами нейросетей были не столько программисты, сколько нейрофизиологи и психологи.-8

Посмотрим, насколько полученный в первой итерации результат отличается от желаемого. Допустим, нейрон, обозначающий единицу, получил значение 0,08. Это мало, как и должно быть, ведь на входе не единица. Значит, веса для связей, подключенных к этому нейрону, нужно скорректировать совсем немного.

А вот нейрон, отвечающий за восьмерку, «загорелся» и показал результат 0,9. Это никуда не годится: восьмерка не шестерка. Значит, связи этого нейрона нуждаются в сильной коррекции.

8. ТЕПЛОЕ БЫСТРОЕ

ГРАДИЕНТНЫЙ СПУСК

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

Для одного выходного нейрона — того, что отвечает за шестерку, — нам нужно найти максимум этой функции. Для всех остальных — ​минимумы.

Принцип работы нейронной сети пришел в программирование из биологии. Пионерами нейросетей были не столько программисты, сколько нейрофизиологи и психологи.-9

Представьте, что вам нужно найти кошелек, потерявшийся в лесу. Методично прочесать весь лес — ​практически невыполнимая задача.

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

Такая технология поиска в математике называется градиентным спуском. А маячок, на который вы ориентируетесь, появляется благодаря алгоритму обратного распространения ошибки.

9. СРЕДНЕЕ РАЗНООБРАЗНОЕ

ОБУЧЕНИЕ НА ДАТАСЕТАХ

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

Найти ее минимум было бы достаточно, если бы мы хотели научить нейросеть отличать шестерку от других цифр.

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

Принцип работы нейронной сети пришел в программирование из биологии. Пионерами нейросетей были не столько программисты, сколько нейрофизиологи и психологи.-10

Чтобы нейросеть научилась распознавать цифры, написанные разным почерком, нужно продемонстрировать ей множество рукописных цифровых комплектов. И проделать множество вычислений, чтобы найти оптимальные средние значения для всех весов.

  • Это ресурсоемкая задача — как по вычислительной мощности, так и в плане подготовки огромного датасета. Но результат того стоит.
Структурное мышление. Схема нейросети, описанной в статье, называется многослойным перцептроном. Перцептрон — ​это простейший вид нейросетей. Его придумал психолог и нейрофизиолог Фрэнк Розенблатт в 1960 году. Современные нейросети имеют множество разнообразных структур. На их подробное описание ушел бы не один журнал.
Структурное мышление. Схема нейросети, описанной в статье, называется многослойным перцептроном. Перцептрон — ​это простейший вид нейросетей. Его придумал психолог и нейрофизиолог Фрэнк Розенблатт в 1960 году. Современные нейросети имеют множество разнообразных структур. На их подробное описание ушел бы не один журнал.

10. НЕИЗВЕСТНОЕ МАШИННОЕ

НЕРАЗУМНАЯ МАТЕМАТИКА

Помните разговор о кружочках и «хвостиках»?

Компьютер позволяет визуализировать происходящее на скрытых уровнях нейросети, чтобы увидеть… что никаких кружочков там нет.

  • Абстракция и обобщение — ​человеческие понятия. Нейросеть «мыслит», точнее сказать, работает совершенно по-другому. Это просто математика, а вовсе не разум.

Если показать нашей нейросети, скажем, фотографию кота, она с уверенностью скажет, что это три, пять или девять. Для нее весь мир состоит только из цифр, и никакой иной контекст ей неведом.

Принцип работы нейронной сети пришел в программирование из биологии. Пионерами нейросетей были не столько программисты, сколько нейрофизиологи и психологи.-12

Наше журнальное объяснение нейросети упрощено до предела, а структура давно устарела — ​таким машинное обучение было в 1960-е.

  • Современным специалистам приходится иметь дело с десятками и сотнями всевозможных параметров, не только весами и количеством слоев.

И чем совершеннее становится искусственный интеллект, тем сложнее нам становится понять, что творится глубоко в его «мыслях».

Читайте также максимально простое объяснение, как работает блокчейн:

__________________________________________________________________________________________

КАК РАБОТАЕТ БЛОКЧЕЙН МАКСИМАЛЬНО ПРОСТОЕ И ПОЛНОЕ ОБЪЯСНЕНИЕ

Блокчейн — ​одна из самых надежных технологий на планете. Его нельзя выключить и практически невозможно взломать. «Цифровой океан» разобрался, как работает блокчейн на примере первой и главной цепочки блоков — ​Биткойна

__________________________________________________________________________________________

Наш онлайн-портал ➡️ digitalocean.ru

СОЦСЕТИ:

▪️ Instagram: instagram.com/digital.oc

▪️ Facebook: facebook.com/digitalocean.magazine

▪️ Twitter: twitter.com/digitalocean_ru

▪️ Вконтакте: vk.com/digitalocean_ru

▪️ Яндекс.Дзен: bit.ly/digitalocean_magazine