Что такое нейронные сети и как они работают? Классификация искусственных нейросетей

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

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

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

История создания нейронных сетей

Какова же история развития нейронных сетей в науке и технике? Она берет свое начало с появлением первых компьютеров или ЭВМ (электронно-вычислительная машина) как их называли в те времена. Так еще в конце 1940-х годов некто Дональд Хебб разработал механизм нейронной сети, чем заложил правила обучения ЭВМ, этих «протокомпьютеров».

Дальнейшая хронология событий была следующей:

  • В 1954 году происходит первое практическое использование нейронных сетей в работе ЭВМ.
  • В 1958 году Франком Розенблатом разработан алгоритм распознавания образов и математическая аннотация к нему.
  • В 1960-х годах интерес к разработке нейронных сетей несколько угас из-за слабых мощностей компьютеров того времени.
  • И снова возродился уже в 1980-х годах, именно в этот период появляется система с механизмом обратной связи, разрабатываются алгоритмы самообучения.
  • К 2000 году мощности компьютеров выросли настолько, что смогли воплотить самые смелые мечты ученых прошлого. В это время появляются программы распознавания голоса, компьютерного зрения и многое другое.

GeekUniversity совместно с Mail.ru Group открыли первый в России факультет Искусственного интеллекта преподающий нейронные сети. Для учебы достаточно школьных знаний. Программа включает в себя все необходимые ресурсы и инструменты + целая программа по высшей математике. Не абстрактная, как в обычных вузах, а построенная на практике. Обучение познакомит вас с технологиями машинного обучения и нейронными сетями, научит решать настоящие бизнес-задачи.

Как работают нейронные сети?

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

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

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

Для чего нужны нейросети?

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

  • Классификация
    — распределение данных по параметрам. Например, на вход дается набор людей и нужно решить, кому из них давать кредит, а кому нет. Эту работу может сделать нейронная сеть, анализируя такую информацию как: возраст, платежеспособность, кредитная история и тд.
  • Предсказание
    — возможность предсказывать следующий шаг. Например, рост или падение акций, основываясь на ситуации на фондовом рынке.
  • Распознавание
    — в настоящее время, самое широкое применение нейронных сетей. Используется в Google, когда вы ищете фото или в камерах телефонов, когда оно определяет положение вашего лица и выделяет его и многое другое.

Область применения искусственных нейронных сетей с каждым годом все более расширяется, на сегодняшний день они используются в таких сферах как:

  • Машинное обучение (machine learning), представляющее собой разновидность искусственного интеллекта. В основе его лежит обучение ИИ на примере миллионов однотипных задач. В наше время машинное обучение активно внедряют поисковые системы Гугл, Яндекс, Бинг, Байду. Так на основе миллионов поисковых запросов, которые все мы каждый день вводим в Гугле, их алгоритмы учатся показывать нам наиболее релевантную выдачу, чтобы мы могли найти именно то, что ищем.
  • В роботехнике нейронные сети используются в выработке многочисленных алгоритмов для железных «мозгов» роботов.
  • Архитекторы компьютерных систем пользуются нейронными сетями для решения проблемы параллельных вычислений.
  • С помощью нейронных сетей математики могут разрешать разные сложные математические задачи.

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

Что такое нейрон?

Нейрон — это вычислительная единица, которая получает информацию, производит над ней простые вычисления и передает ее дальше. Они делятся на три основных типа: входной (синий), скрытый (красный) и выходной (зеленый):

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

У каждого из нейронов есть 2 основных параметра:

  • входные данные (input data),
  • выходные данные (output data).

В случае входного нейрона: input=output. В остальных, в поле input попадает суммарная информация всех нейронов с предыдущего слоя, после чего, она нормализуется, с помощью функции активации (пока что просто представим ее f(x)) и попадает в поле output.

Важно помнить, что нейроны оперируют числами в диапазоне [0,1] или [-1,1]. А как же, вы спросите, тогда обрабатывать числа, которые выходят из данного диапазона? На данном этапе, самый простой ответ — это разделить 1 на это число. Этот процесс называется нормализацией, и он очень часто используется в нейронных сетях. Подробнее об этом чуть позже.

Что такое синапс?

Синапс это связь между двумя нейронами. У синапсов есть 1 параметр — вес. Благодаря ему, входная информация изменяется, когда передается от одного нейрона к другому. Допустим, есть 3 нейрона, которые передают информацию следующему. Тогда у нас есть 3 веса, соответствующие каждому из этих нейронов. У того нейрона, у которого вес будет больше, та информация и будет доминирующей в следующем нейроне (пример — смешение цветов).

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

Важно помнить, что во время инициализации нейронной сети, веса расставляются в случайном порядке.

Биологическая основа нейросвязей

В нашем мозге есть нейроны. Их около 86 миллиардов. Нейрон это клетка, соединенная с другими такими клетками. Клетки соединены друг с другом отростками. Всё это вместе напоминает своего рода сеть. Вот вам и нейронная сеть. Каждая клетка получает сигналы от других клеток. Далее обрабатывает их и сама отправляет сигнал другим клеткам.

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

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

На моей картинке стрелки обозначают связи нейронов. Связи бывают разные. Например стрелка внизу между нейроном 2 и 5 длинная. И значит сигнал от нейрона 2 до нейрона 5 будет дольше идти, чем например сигнал от нейрона 3 где стрелка вдвое короче. Да и вообще сигнал может затухнуть и прийти слабым. В биологии много всего интересного.

Но рассматривать всё это — как там думает нейрон, затухнет ли сигнал, когда он придет или не придет в IT не стали. А что голову морочить? И просто построили упрощенную модель.

В этой модели можно выделить две основные составляющие:

  • Алгоритм. В биологии нейрон думает. В программировании «думанье» заменяется алгоритмом — то есть набором команд. Например — если на вход пришла 1 отправь 0. Вот и все «мозги» нашего нейрона.
  • Вес решения. Все связи, затухания и т.д. решили заменить «весом». Вес это как сила решения, его важность. Это просто величина, чаще число. Нашему нейрону приходит решение с определенным весом, нашему нейрону приходит число. И если оно больше другого пришедшего числа то оно важнее. Это как пример.

Итого: есть алгоритм и есть вес решения. Это всё что нужно для построения простейшей нейросети.

Как работает МНС

Любые изменения в интерфейсе страницы тут же сохраняются без перезагрузки и сразу же отображается результат изменений.

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

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

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

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

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

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

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

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

Активные нецйроны в сети взаимно подтормаживают соседние, и степень такого влияния можно оптимизировать, задавая величину “Взаимное торможение соседей”. Это довольно малоизученный, но очень значительнвый фактор.

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

Если теперь изменять активность на матрице сенсоров, будет видно, какие именно функции распознавании сформировались.

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

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

Искусственная нейронная сеть

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

Искусственная нейронная сеть обычно обучается с учителем. Это означает наличие обучающего набора (датасета), который содержит примеры с истинными значениями: тегами, классами, показателями.

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

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

Искусственная нейронная сеть состоит из трех компонентов:

  • Входной слой;
  • Скрытые (вычислительные) слои;
  • Выходной слой.

Обучение таких нейросетей происходит в два этапа:

  • Прямое распространение ошибки;
  • Обратное распространение ошибки.

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

Для более глубокого изучения советуем к просмотру 2 видео из TED Talks: Видео 1, Видео 2 (видео-ролики на английском языке).

Ошибка

Ошибка — это процентная величина, отражающая расхождение между ожидаемым и полученным ответами. Ошибка формируется каждую эпоху и должна идти на спад. Если этого не происходит, значит, вы что-то делаете не так. Ошибку можно вычислить разными путями, но мы рассмотрим лишь три основных способа: Mean Squared Error (далее MSE), Root MSE и Arctan. Здесь нет какого-либо ограничения на использование, как в функции активации, и вы вольны выбрать любой метод, который будет приносить вам наилучший результат. Стоит лишь учитывать, что каждый метод считает ошибки по разному. У Arctan, ошибка, почти всегда, будет больше, так как он работает по принципу: чем больше разница, тем больше ошибка. У Root MSE будет наименьшая ошибка, поэтому, чаще всего, используют MSE, которая сохраняет баланс в вычислении ошибки.
MSE

Root MSEArctan


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

Виды и классификация нейронных сетей

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

Нейронная сеть Принцип применения Обучение с учителем (+) или без(-) или смешанное (с) Сфера применения
Перцептрон Розенблатта Распознание образов, принятие решений, прогнозирование, аппроксимация, анализ данных + Практически любая сфера применения, кроме оптимизации информации
Хопфилда Сжатие данных и ассоциативная память Строение компьютерных систем
Кохонена Кластеризация, сжатие данных, анализ данных, оптимизация Финансы, базы данных
Радиально-базисных функций (RBF-сеть) Принятие решений и управление, аппроксимация, прогнозирование с Управленческие структуры, нейроуправление
Свёрточная Распознание образов + Обработка графических данных
Импульсная Принятие решение, распознавание образов, анализ данных с Протезирование, робототехника, телекоммуникации, компьютерное зрение

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

Сверточные

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

Основные характеристики:

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

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

Рекуррентные

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

Число нейронных связей в мозге улучшает качество жизни человека

На протяжении многих лет ученые думали, что головной мозг взрослого человека остается неизменным. Однако теперь науке точно известно: на протяжении всей жизни в нашем мозге формируются все новые и новые синапсы — контакты между нейронами или получающими их сигнал клетками другого типа. В совокупности

нейроны и синапсы формируют нейронную сеть, отдельные элементы которой постоянно контактируют между собой и обмениваются информацией.

Нейрон ответит за память

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

02 июля 13:40

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

Группа исследователей под руководством Стивена Смита из Центра функциональной магнитно-резонансной томографии головного мозга Оксфордского университета решила выяснить, способно ли общее число нейронных связей в мозге каким-то образом влиять на его работу в целом. В ходе исследования ученые использовали данные, полученные в рамках Human Connectome Project

— проекта, запущенного в 2009 году. Его целью является составление своеобразной «карты» головного мозга, с помощью которой можно будет понять, какая область мозга отвечает за тот или иной процесс или заболевание, а также каким образом разные области мозга взаимодействуют друг с другом.

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

Подробнее ознакомиться с полученными данными можно в журнале Nature Neuroscience

.

В исследовании были использованы результаты магнитно-резонансной томографии 461 человека. Для каждого из них была создана «карта», на которой показывалось общее количество нейронных связей между всеми областями мозга. Кроме того, каждый участник исследования заполнял анкету, где рассказывал о своем образовании, образе жизни, состоянии здоровья, семейном положении и эмоциональном состоянии. Всего вопросы затрагивали 280 аспектов жизни человека.

Паралитик встал и пошел

Впервые в истории мужчина, обе ноги которого были парализованы в течение пяти лет, вновь обрел способность…

24 сентября 11:42

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

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

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

Отделу науки удалось связаться с ведущим автором работы Стивеном Смитом и поговорить с ним о деталях работы.

— Можно ли дать точное объяснение того, почему количество нейронных связей в головном мозге оказывает прямое воздействие на качество жизни человека: например, сказать, что число связей каким-то образом влияет на мозговую деятельность?

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

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

— В таком случае каким образом вы собираетесь этот «заколдованный круг» разорвать?

— Та работа, которую мы проделали сейчас — сканирование головного мозга при помощи магнитно-резонансной томографии, — может показать лишь то, насколько тесно связаны между собой те или иные области мозга. Она также отражает множество других биологических факторов меньшей важности — например, демонстрирует точное количество нейронов, связывающих эти области. А вот понимание того, как эти связи влияют на поведение, умственные способности, образ жизни человека, — это основной вопрос, который стоит перед сотрудниками проекта Human Connectome Project.

Почему надо спать на боку

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

16 августа 12:40

— Стивен, а существует ли корреляция между числом нейронных связей в головном мозге родителей и детей?

— А вот тут я могу однозначно ответить — да. Существует множество доказательств того, что количество нейронных связей, скажем так, передается по наследству. В рамках нашего проекта мы собираемся изучить это явление более глубоко. Хотя, несомненно, существуют и другие важные факторы, которые влияют на функционирование мозга и формирование нейронных связей.

— А возможно ли — хотя бы теоретически — каким-то образом повлиять на количество нейронных связей и таким образом изменить качество жизни человека?

— Об этом очень сложно говорить в общих чертах. Впрочем, существует множество примеров, когда вмешательства в функционирование головного мозга изменяли поведение человека или улучшали какие-то отдельные показатели его работы. О подобном эксперименте можно прочесть, например, в журнале Current Biology

: в статье говорится, что ученым при помощи микрополяризации (метода, позволяющего изменять состояние различных звеньев центральной нервной системы действием постоянного тока. — «Газета.Ru») удалось улучшить математические способности испытуемых.

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

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

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

Обучение нейронной сети

Один из главных и самый важный критерий – возможность обучения нейросети. В целом, нейросеть – это совокупность нейронов, через которые проходит сигнал. Если подать его на вход, то пройдя через тысячи нейронов, на выходе получится неизвестно что. Для преобразования нужно менять параметры сети, чтобы на выходе получились нужные результаты.

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

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

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

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

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

Обучение с учителем

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

Как готовить такие выборки:

  • Для опознавания лиц создать выборку из 5000-10000 фотографий (вход) и самостоятельно указать, какие содержат лица людей (выход, правильный сигнал).
  • Для прогнозирования роста или падения акций, выборка делается с помощью анализа данных прошлых десятилетий. Входными сигналами могут быть как состояние рынка в целом, так и конкретные дни.

Учителем не обязательно выступает человек. Сеть нужно тренировать сотнями и тысячами часов, поэтому в 99% случаев тренировкой занимается компьютерная программа.

Обучение без учителя

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

Как происходит обучение? В теории и на практике, нейросеть начинает кластеризацию, то есть определяет классы подаваемых входных сигналов. Затем, она выдает сигналы различных типов, отвечающие за входные объекты.

Нейросеть 2021

Нейросети в повседневной жизни

Понятие «нейросеть» было придумано достаточно давно и является синонимом алгоритма машинного обучения. Первая версия формального нейрона, ячейки нейронной сети, была предложена Уорреном Мак-Каллоком и Уолтером Питтсом в 1943 г. А уже в 1958 г. Фрэнк Розенблатт разработал первую нейронную сеть. Но первый блин оказался комом, и другие алгоритмы машинного обучения отодвинули на какое-то время нейросети на второй план.
Популярность нейронные сети стали завоевывать после 2010 г. Для того чтобы разобраться, почему это произошло, мы должны понимать, как устроена нейросеть и в чем ее особенность.

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

Читайте полный текст статьи «Нейросети в повседневной жизни» >>>

Нейросеть предскажет вам дату смерти

Искусственный интеллект в Пенсильвании научили предсказывать повышенный риск смерти пациентов… по результатам ЭКГ. Система сообщает, кто выживет, а кто умрет в течение следующего года.

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

Полный текст «Нейросеть предскажет вам дату смерти» >>>

Решения для промышленных предприятий в борьбе с COVID-19

Эпидемия COVID-19 заставила компании пересмотреть систему организации работы сотрудников для минимизации рисков распространения коронавирусной инфекции среди персонала. Особенно важно было найти решения для предприятий непрерывного цикла, сотрудников которых невозможно перевести на удаленный режим работы. Специалисты ООО «Делетрон» разработали и использовали целый комплекс решений, благодаря чему количество случаев заражения сотрудников на предприятиях значительно снизилось.

В марте 2021 г. перед встала задача – исключить доступ на территорию крупного промышленного предприятия сотрудников с повышенной температурой. Учитывая то, что в утреннее время через КПП проходит более 30 тыс. человек, основной целью являлось сохранение необходимой пропускной способности. При этом требовалось обеспечить быстрый замер температуры бесконтактным способом. Именно поэтому технические специалисты остановили свой выбор на тепловизорах потокового типа для реализации системы тепловизионного контроля с заданными параметрами.

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

Полный текст статьи «Решения для промышленных предприятий в борьбе с COVID-19» >>>

^ Вверх

Сверточная нейронная сеть

Свёрточная нейронная сеть (СНС, CNN) — специальная архитектура искусственных нейронных сетей, предложенная Яном Лекуном и нацеленная на эффективное распознавание образов. Данной архитектуре удаётся гораздо точнее распознавать объекты на изображениях, так как, в отличие от многослойного персептрона, учитывается двухмерная топология изображения. При этом свёрточные сети устойчивы к небольшим смещениям, изменениям масштаба и поворотам объектов на входных изображениях. Во многом, именно поэтому архитектуры, основанные на свёрточных сетях, до сих пор занимают первые места в соревнованиях по распознаванию образов, как, например, ImageNet.

Сверточная нейронная сеть является основным инструментом для классификации и распознавания объектов, лиц на фотографиях, распознавания речи. Есть множество вариантов применения CNN, такие как Deep Convolutional Neural Network (DCNN), Region-CNN (R-CNN), Fully Convolutional Neural Networks (FCNN), Mask R-CNN и другие.

CNN на сегодня – “рабочая лошадка” в области нейронных сетей. Используется преимущественно для решения задач компьютерного зрения, хотя может применяться также для работы с аудио и любыми данными, которые можно представить в виде матриц.

Особенности работы свёрточных сетей

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

Так, если требуется работать с цветными изображениями размером 64х64, то для каждого нейрона первого слоя полносвязной сети потребуется 64·64·3 = 12288 параметров, а если сеть должна распознавать изображения 1000х1000, то входных параметров будет уже 3 млн! А помимо входного слоя есть и другие слои, на которых, зачастую, число нейронов превышает количество нейронов на входном слое, из-за чего 3 млн запросто превращаются в триллионы! Такое количество параметров просто невозможно рассчитать быстро ввиду недостаточно больших вычислительных мощностей компьютеров.

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

В отличие от сетей прямого распространения, которые работают с данными в виде векторов, свёрточные сети работают с изображениями в виде тензоров. Тензоры — это 3D массивы чисел, или, проще говоря, массивы матриц чисел.

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

Чаще всего используются цветные изображения, которые состоят из RGB пикселей – пикселей, содержащих яркости по трём каналам: красному, зелёному и синему. Различные комбинации этих цветов позволяют создать любой из цветов всего спектра. Именно поэтому вполне логично использовать именно тензоры для представления изображений: каждая матрица тензора отвечает за интенсивность своего канала, а совокупность всех матриц описывает всё изображение.

Из чего состоят свёрточные сети?

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

Так, например, LeNet5 – одна из первых свёрточных сетей, которая победила в ImageNet, состояла из 7 слоёв: слой свёртки, слой пулинга, ещё один слой свёртки ещё один слой пулинга и трёхслойная полносвязная нейронная сеть.

Сверточный слой

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

  • В одном сверточном слое может быть несколько сверток. В этом случае для каждой свертки на выходе получится своё изображение. Например, если вход имел размерность w×hw×h, а в слое было nn сверток с ядром размерности kx×kykx×ky, то выход будет иметь размерность n×(w−kx+1)×(h−ky+1)n×(w−kx+1)×(h−ky+1);
  • Ядра свертки могут быть трёхмерными. Свертка трехмерного входа с трехмерным ядром происходит аналогично, просто скалярное произведение считается еще и по всем слоям изображения. Например, для усреднения информации о цветах исходного изображения, на первом слое можно использовать свертку размерности 3×w×h3×w×h. На выходе такого слоя будет уже одно изображение (вместо трёх);
  • Можно заметить, что применение операции свертки уменьшает изображение. Также пиксели, которые находятся на границе изображения участвуют в меньшем количестве сверток, чем внутренние. В связи с этим в сверточных слоях используется дополнение изображения (англ. padding). Выходы с предыдущего слоя дополняются пикселями так, чтобы после свертки сохранился размер изображения. Такие свертки называют одинаковыми (англ. same convolution), а свертки без дополнения изображения называются правильными (англ. valid convolution). Среди способов, которыми можно заполнить новые пиксели, можно выделить следующие: zero shift: 00[ABC]00;
  • border extension: AA[ABC]CC;
  • mirror shift: BA[ABC]CB;
  • cyclic shift: BC[ABC]AB.
  • Еще одним параметром сверточного слоя является сдвиг (англ. stride). Хоть обычно свертка применяется подряд для каждого пикселя, иногда используется сдвиг, отличный от единицы — скалярное произведение считается не со всеми возможными положениями ядра, а только с положениями, кратными некоторому сдвигу ss. Тогда, если если вход имел размерность w×hw×h, а ядро свертки имело размерность kx×kykx×ky и использовался сдвиг ss, то выход будет иметь размерность ⌊w−kxs+1⌋×⌊h−kys+1⌋⌊w−kxs+1 ×⌊h−kys+1⌋.
  • Пулинговый слой

    Пулинговый слой призван снижать размерность изображения. Исходное изображение делится на блоки размером w×hw×h и для каждого блока вычисляется некоторая функция. Чаще всего используется функция максимума (англ. max pooling) или (взвешенного) среднего (англ. (weighted) average pooling). Обучаемых параметров у этого слоя нет.

    Основные цели пулингового слоя:

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

    Inception module

    Inception module — это специальный слой нейронной сети, который был предложен в работе[2], в которой была представлена сеть GoogLeNet. Основная цель этого модуля заключается в следующем. Авторы предположили, что каждый элемент предыдущего слоя соответствует определенной области исходного изображения. Каждая свертка по таким элементам будет увеличивать область исходного изображения, пока элементы на последних слоях не будут соответствовать всему изображению целиком. Однако, если с какого-то момента все свертки станут размером 1×11×1, то не найдется элементов, которые покрывали бы все исходное изображение, поэтому было бы невозможно находить большие признаки на изображении.

    Чтобы решить эту проблему, авторы предложили так называемый inception module — конкатенацию выходов для сверток размера 1×11×1, 3×33×3, 5×55×5, а также операции max pooling’а с ядром 3×33×3.

    К сожалению, подобный наивный подход (англ. naive inception module) приводит к резкому увеличению слоев изображения, что не позволяет построить с его использованием глубокую нейронную сеть. Для этого авторы предложили использовать модифицированный inception module с дополнительным уменьшением размерности — дополнительно к каждому фильтру они добавили слой свертки 1×11×1, который схлопывает все слои изображения в один. Это позволяет сохранить малое число слоев, с сохранением полезной информации о изображении.

    Residual block

    Двумя серьезными проблемами в обучении глубоких нейронных сетей являются исчезающий градиент (англ. vanishing gradient) и взрывающийся градиент (англ. exploding gradient). Они возникают из-за того, что при дифференцировании по цепному правилу, до глубоких слоев нейронной сети доходит очень маленькая величина градиента (из-за многократного домножения на небольшие величины на предыдущих слоях). Для борьбы с этой проблемой был предложен так называемый residual block.

    Идея заключается в том, чтобы взять пару слоёв (например, сверточных), и добавить дополнительную связь, которая проходит мимо этих слоёв. Пусть z(k) — выход k-ого слоя до применения функции активации, а a(k) — выход после. Тогда residual block будет выполнять следующее преобразование: a(k+2)=g(z(k+2)+a(k)), где g — функция активации.

    На самом деле, такая нейронная сеть обучается предсказывать функцию F(x)−x, вместо функции F(x), которую изначально нужно было предсказывать. Для компенсации этой разницы и вводится это замыкающее соединение (англ. shortcut connection), которое добавляет недостающий x к функции.

    Предположение авторов, которые предложили residual block, заключалось в том, что такую разностную функцию будет проще обучать, чем исходную. Если рассматривать крайние случаи, то если F(x)=x, такую сеть обучить нулю всегда возможно, в отличие от обучения множества нелинейных слоёв линейному преобразованию.

    Система основополагающих принципов

    Краткий перечень основных схемотехнических принципов, которые взаимодействуют в системе нейросети:

    • Принцип превышения порога – встречается повсеместно.
    • Компарирование или принцип использования результата сравнения – важнейший для организации управляющих последовательностей, связанный с принципом превышения порога.
    • Обратная связь, положительная и отрицательная.
    • Отсюда напрямую следуют принципы условия автогенерации и затухания. И прямое использование: если вы видите автоколебания любого вида и любой реализации, то там есть положительная обратная связь.
    • Закон Ома, как это ни покажется странным, применим для любых систем, где есть движущий потенциал, есть то, что им движется и есть сопротивление (или обратное явление проводимости) этому движению.
    • Принцип выделения составляющих элементов воздействующих факторов (чем на большее число составляющих разбить параметр восприятия, тем точнее и правильнее восприятие) так же дает практическое правило: самое главное – выделить важные признаки в окружающем, чтобы не махать кулаками вслепую.
    • Принцип наиболее универсального распознавания – так же незаменим для эффективных систем управления и он показывает, как следует обучаться, чтобы не пропустить важные звенья понимания, без чего остается только верить уже готовым рецептам или пробовать методом тыка.

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

    Для нейросети получается следующая картина.

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

    2. Как и любая клетка, нейрон проходит стадию развития до созревания, когда он становится способен проявлять нужную функциональность, а именно: под воздействием электрического сигнала (потенциала на его мембране, запускающего регенеративную трансформацию) он выдает так же электрический сигнал и в этом похож на функции электротехнических устройств управления. И, так же как и в электротехнике в случае с чувствительными элементами, он оказывается в нестабильном состоянии, если его входы ни с чем не соединены. Это похоже на коромысло чувствительных весов, на концах которых нет никаких грузов. Такой нейрон проявляет спонтанную электрическую активность, что подтверждается данными исследований. Это – очень важное свойство.

    3. Когда нейрон формируется, он выпускает отростки в сторону рецепторов, проявляющих электрическую активность и, тем самым, характерно меняющим химический состов вокруг. Эти отростки или дендриты непосредственно касаются аксонов рецепторов и на месте контанта возникают синапсы – потенциальные электрические соединители. Это – первый этап адаптивности к условиям среды, которая проявляется в активности рецепторов. При этом образующиеся потенциальные связи перекрываются для соседних нейронов слоя. Это – очень важный момент: в результате возникают не единичные нейроны-детекторы, а сразу ряд детекторов, частично или даже полностью дополняющих один другого. В отличие от классических схем управления, где каждое звено оказывается единственным и его повреждение — фатальным, в нейросети возникает множественное дублирование. В представленной модели это осуществляется заданными профилями вкладки SET” где нейроны перекрывают связями соседей.

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

    5. Из-за двойственной роли нейронов, он выполняет роль эффектора для предыдущего слоя рецепторов и, одновременно, роль рецептора – для последующих.

    6. Во всех слоях рецепторов и эффекторов оказалось эволюционно эффективно наличие дополнительных нейронов между ними, которые обеспечивают взаимное торможение активных соседних нейронов (боковое или латеральное торможение). Это дает качественные преимущества при специализации.

    7. Следующий слой созревает после того, как специализировался предыдущий. Это – принципиально важно. В природной нейросети каждый последующий слой имеет критический период развития, превышающий предыдущий потому, что частота стимулов на этом уровне оказывается значительно меньше (и еще по некоторым причинам).

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

    Эта концепция автоформирования специализации.

    Это все и моделируется в МНС.

    Где можно получить образование по нейронным сетям?

    GeekUniversity совместно с Mail.ru Group открыли первый в России факультет Искусственного интеллекта преподающий нейронные сети.

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

    После учебы вы сможете работать по специальностям:

    • Искусственный интеллект,
    • Машинное обучение,
    • Нейронные сети,
    • Анализ больших данных.

    Особенности обучения в GeekUniversity

    Через полтора года практического обучения вы освоите современные технологии Data Science и приобретете компетенции, необходимые для работы в крупной IT-компании. Получите диплом о профессиональной переподготовке и сертификат.

    Обучение проводится на основании государственной лицензии № 040485. По результатам успешного завершения обучения выдаем выпускникам диплом о профессиональной переподготовке и электронный сертификат на портале GeekBrains и Mail.ru Group.

    Проектно-ориентированное обучение

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

    Наставник

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

    Основательная математическая подготовка

    Профессионализм в Data Science — это на 50% умение строить математические модели и еще на 50% — работать с данными. GeekUniversity прокачает ваши знания в матанализе, которые обязательно проверят на собеседовании в любой серьезной компании.

    Рейтинг
    ( 2 оценки, среднее 4.5 из 5 )
    Понравилась статья? Поделиться с друзьями:
    Для любых предложений по сайту: [email protected]