No Image

Схема строения основных типов нейронных сетей

СОДЕРЖАНИЕ
0 просмотров
11 марта 2020

ЛЕКЦИЯ 3. Биологический нейрон и его кибернетическая модель.

Нейробиология. Биологический нейрон, его строение и функции. Об’единение нейронов в сети. Биологическая изменчивость и обучаемость нейронных сетей. Кибернетическая модель нейрона – формальный нейрон МакКаллока и Питса. Обучение нейрона задаче детектирования границы яркости.

Эта лекция посвящена биологическим основаниям науки о вычислительных нейронных сетях. Также, как и в предыдущей лекции, изложение будет носить справочный характер, и предназначено для читателя, не имеющего специальных знаний по биологии. Более глубокие профессиональные сведения можно найти в относительно недавно переведенной книге Н.Грина, У. Стаута и Д.Тейлора, а также в монографии Г.Шеперда. Для ознакомительного чтения можно порекомендовать книгу Ф.Блума, А.Лейзерсона и Л.Хофстедтера.

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

В завершении лекции будет представлена классическая кибернетическая модель нейрона – так называемый формальный нейрон Маккалока и Питтса. Некоторые свойства формального нейрона будут изучены на задаче детектирования границы перехода "черное-белое" в простом изображении.

Метод нейробиологии.

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

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

Биологический нейрон.

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

Нейроны крайне разнообразны по форме, которая зависит от их местонахождения в нервной системе и особенностей фунционирования. На Рис. 3.1. приведена схема строения "типичного" нейрона. Тело клетки содержит множество ветвящихся отростков двух типов. Отростки первого типа, называемые дендритами за их сходство с кроной раскидистого дерева, служат в качестве входных каналов для нервных импульсов от других нейронов. Эти импульсы поступают в сому или тело клетки размером от 3 до 100 микрон, вызывая ее специфическое возбуждение, которое затем распространяется по выводному отростку второго типа – аксону . Длина аксонов обычно заметно превосходит размеры дентритов, в отдельных случаях достигая десятков сантиметров и даже метров. Гигантский аксон кальмара имеет толщину около миллиметра, и именно наблюдение за ним послужило выяснению механизма передачи нервных импульсов между нейронами.

Тело нейрона, заполненное проводящим ионным раствором, окружено мембраной толщиной около 75 ангстрем, обладающей низкой проводимостью. Между внутреннней поверхностью мембраны аксона и внешней средой поддерживается разность электрических потенциалов. Это осуществляется при помощи молекулярного механизма ионных насосов, создающих различную концентрацию положительных ионов K + и Na + внутри и вне клетки. Проницаемость мембраны нейрона селективна для этих ионов. Внутри аксона клетки, находящейся в состоянии покоя, активный транспорт ионов стремится поддерживать концентрацию ионов калия более высокой, чем ионов натрия, тогда как в жидкости, окружающей аксон, выше оказывается концентрация ионов Na + . Пассивная диффузия более подвижных ионов калия приводит к их интенсивному выходу из клетки, что обуславливает ее общий отрицательный относительно внешней среды потенциал покоя , составляющий около -65 милливольт.

Рис. 3.1.Общая схема строения биологического нейрона.

Под воздействием стимулирующих сигналов от других нейронов мембрана аксона динамически изменяет свою проводимость. Это происходит, когда суммарный внутренний потенциал превышает пороговое значение масштаба -50 мв. Мембрана на короткое время, сотавляющее около 2 миллисекунд, изменяет свою полярность (деполяризуется) и достигает потенциала действия около +40 мв. На микроуровне это объясняется кратковременным повышением проницаемости мембраны для ионов Na + и активным поступлением их в аксон. В дальнейшем, по мере выхода ионов калия, положительный заряд с внутренней стороны мембраны меняется на отрицательный, и наступает так называемый период рефрактерности , длящийся около 200 мс. В течении этого времени нейрон является полностью пассивным, практически неизменно сохраняя потенциал внутри аксона на уровне около -70 мв.

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

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

Нейронные сети.

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

Общее число нейронов в центральной нервной системе человека достигает 10 10 – 10 11 , при этом каждая нервная клетка связана в среднем с 10 3 – 10 4 других нейронов. Установлено, что в головном мозге совокупность нейронов в объеме масштаба 1 мм 3 формирует относительно независимую локальную сеть, несущую определенную функциональную нагрузку.

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

Рис. 3.2.Структура простой рефлекторной нейронной сети.

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

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

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

Биологическая изменчивость и обучение нейронных сетей.

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

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

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

Читайте также:  Молочный коктейль блендером или миксером

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

Прежде чем перейти к рассмотрению моделей нейронов и искусственных нейронных сетей, сформулируем общие фактологические положения о биологических нейронных сетях. Здесь мы полностью следуем изложенному в книге Ф.Блума, А.Лейзерсона и Л.Хофстедтера.

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

Формальный нейрон.

Исторически первой работой, заложившей теоретический фундамент для создания искусственных моделей нейронов и нейронных сетей, принято считать опубликованную в 1943 г. статью Уоррена С.Мак-каллока и Вальтера Питтса "Логическое исчислени идей, относящихся к нервной активности". Главный принцип теории Маккалока и Питтса заключается в том, что произвольные явления, относящиеся к высшей нервной деятельности, могут быть проанализированы и поняты, как некоторая активность в сети, состоящей из логических элементов, принимающих только два состояния ("все или ничего"). При этом для всякого логического выражения, удовлетворяющего указанным авторами условиям, может быть найдена сеть логических элементов, имеющая описываемое этим выражением поведение. Дискуссионные вопросы, касающиеся возможности моделирования психики, сознания и т.п. находятся за рамками этой книги.

Рис.4.1. Функциональная схема формального нейрона Маккалока и Пиитса.

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

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

В блоке суммирования происходит накопление общего входного сигнала (обычно обозначаемого символом net ), равного взвешенной сумме входов:

В модели Маккалока и Питтса отсутствуют временные задержки входных сигналов, поэтому значение net определяет полное внешненее возбуждение, воспринятое нейроном. Отклик нейрон далее описывается по принципу "все или ничего", т. е. переменная подвергается нелинейному пороговому преобразованию, при котором выход (состояние активации нейрона) Y устанавливается равным единице, если net > Q , и Y=0 в обратном случае. Значение порога Q (часто полагаемое равным нулю) также хранится в локальной памяти.

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

Нужно отметить, что сегодня, спустя 50 лет после работы Маккалока и Питтса, исчерпывающей теории синтеза логических нейронных сетей с произвольной функцией, по-видимому, нет. Наиболее продвинутыми оказались исследования в области многослойных систем и сетей с симметричными связями. Большинство моделей опираются в своей основе на различных модификациях формального нейрона. Важным развитием теории формального нейрона является переход к аналоговым (непрерывным) сигналам, а также к различным типам нелинейных переходных функций. Опишем наиболее широко используемые типы переходных функций Y=f(net).

    Пороговая функция (рассмотренная Маккалоком и Питтсом):

Линейная функция, а также ее вариант – линейная функция с погашением отрицательных сигналов:

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

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

Обучение нейрона детектированию границы "черное-белое"

Способность формального нейрона к обучению проявляется в возможности изменения значений вектора весов W, соответствующей пластичности синапсов биологических нейронов. Рассмотрим обучение формального нейрона на примере простейшей задачи детектирования границы. Пусть имеется образ, составленный из одномерной цепочки черных и белых клеток. Зачерненные клетки соответсвуют единичному сигналу, а белые клетки – нулевому. Сигнал на входах формального нейрона устанавливается равным значениям пар примыкающих клеток рассматриваемого образа. Нейрон обучается всякий раз возбуждаться и выдавать единичный выходной сигнал, если его первый вход (на Рис. 4.2. – левый) соединен с белой клеткой, а второй (правый) – с черной. Таким образом, нейрон должет служить детектором границы перехода от светлого к темному тону образа.

Рис. 4.2. Формальный нейрон с двумя входами, занятый обработкой образа в виде одномерной цепочки черных и белых клеток.

Функция, выполняемая нейроном, определяется следующей таблицей.

Содержание

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

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

Что такое нейронные сети и их типы?

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

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

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

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

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

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

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

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

  • Однослойная нейронная сеть. Это структура взаимодействия нейронов, при которой после попадания входных данных в первый входной слой сразу передаётся в слой выхода конечного результата. При этом первый входной слой не считается, так как он не выполняет никаких действий, кроме приёма и распределения, об этом уже было сказано выше. А второй слой производит все нужные вычисления и обработки и сразу выдаёт конечный результат. Входные нейроны объединены с основным слоем синапсами, имеющими различный весовой коэффициент, обеспечивающий качество связей.
  • Многослойная нейронная сеть. Как понятно из определения, этот вид нейронных сетей помимо входного и выходного слоёв имеет ещё и промежуточные слои. Их количество зависит от степени сложности самой сети. Она в большей степени напоминает структуру биологической нейронной сети. Такие виды сетей были разработаны совсем недавно, до этого все процессы были реализованы с помощью однослойных сетей. Соответственно подобное решение имеет намного больше возможностей, чем её предок. В процессе обработки информации каждый промежуточный слой представляет собой промежуточный этап обработки и распределения информации.

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

  • Сети прямого распространения или однонаправленная, то есть структура, в которой сигнал движется строго от входного слоя к выходному. Движение сигнала в обратном направлении невозможно. Подобные разработки достаточно широко распространены и в настоящий момент с успехом решают такие задачи, как распознавание, прогнозы или кластеризация.
  • Сети с обратными связями или рекуррентная. Подобные сети позволяют сигналу двигаться не только в прямом, но и в обратном направлении. Что это даёт? В таких сетях результат выхода может возвращаться на вход исходя из этого, выход нейрона определяется весами и сигналами входа, и дополняется предыдущими выходами, которые снова вернулись на вход. Таким сетям свойственна функция кратковременной памяти, на основании которой сигналы восстанавливаются и дополняются в процессе обработки.
Читайте также:  Amd radeon sapphire r9 280 dual x

Это не единственные варианты классификации сетей.

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

Где используют нейронные сети?

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

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

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

Таким образом, нейронные сети находят широкое применение в следующих областях:

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

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

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

Так что же такое нейрон в разрезе искусственных нейросетей? Под этим понятием подразумевается единица, которая выполняет вычисления. Она получает информацию со входного слоя сети, выполняет с ней простые вычисления и проедает её следующему нейрону.

Уважаемые посетители, сохраните эту статью в социальных сетях. Мы публикуем очень полезные статьи, которые помогут Вам в вашем деле. Поделитесь! Жмите!

В составе сети имеются три типа нейронов: входной, скрытый и выходной. Причём если сеть однослойная, то скрытых нейронов она не содержит. Кроме этого, есть разновидность единиц, носящих названия нейрон смещения и контекстный нейрон.

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

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

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

При этом веса выставляются в случайном порядке.

Схема работы нейронной сети

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

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

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

  • Линейная функция f(x) = x, самая простая из всех возможных, используется только для тестирования созданной нейронной сети или передачи данных в исходном виде.
  • Сигмоид считается самой распространённой функцией активации и имеет вид f(x) = 1 / 1+e–×; при этом диапазон её значений от 0 до 1. Она ещё называется логистической функцией.
  • Чтобы охватить и отрицательные значения используют гиперболический тангенс. F(x) = e²× – 1 / e²× + 1 — такой вид имеет эта функция и диапазон который она имеет от -1 до 1. Если нейронная сеть не предусматривает использование отрицательных значений, то использовать её не стоит.

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

Интеграция — это счётчик, который увеличивается с каждым тренировочным сетом.

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

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

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

Длина статьи зависит от специфики и тематики сайта. Узнай здесь, какая она должна быть для интернет-магазина.

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

Что такое нейрон смещения и для чего он нужен?

В нейронных сетях есть ещё один вид нейронов — нейрон смещения. Он отличается от основного вида нейронов тем, что его вход и выход в любом случае равняется единице. При этом входных синапсов такие нейроны не имеют.

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

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

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

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

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

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

ПОСМОТРИТЕ ВИДЕО (ЭТО ВАЖНО):

Привет всем читателям Habrahabr, в этой статье я хочу поделиться с Вами моим опытом в изучении нейронных сетей и, как следствие, их реализации, с помощью языка программирования Java, на платформе Android. Мое знакомство с нейронными сетями произошло, когда вышло приложение Prisma. Оно обрабатывает любую фотографию, с помощью нейронных сетей, и воспроизводит ее с нуля, используя выбранный стиль. Заинтересовавшись этим, я бросился искать статьи и «туториалы», в первую очередь, на Хабре. И к моему великому удивлению, я не нашел ни одну статью, которая четко и поэтапно расписывала алгоритм работы нейронных сетей. Информация была разрознена и в ней отсутствовали ключевые моменты. Также, большинство авторов бросается показывать код на том или ином языке программирования, не прибегая к детальным объяснениям.

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

Читайте также:  Страница удалена или перемещена

Первым и самым важным моим открытием был плейлист американского программиста Джеффа Хитона, в котором он подробно и наглядно разбирает принципы работы нейронных сетей и их классификации. После просмотра этого плейлиста, я решил создать свою нейронную сеть, начав с самого простого примера. Вам наверняка известно, что когда ты только начинаешь учить новый язык, первой твоей программой будет Hello World. Это своего рода традиция. В мире машинного обучения тоже есть свой Hello world и это нейросеть решающая проблему исключающего или(XOR). Таблица исключающего или выглядит следующим образом:

a b c
1 1
1 1
1 1

Соответственно, нейронная сеть берет на вход два числа и должна на выходе дать другое число — ответ. Теперь о самих нейронных сетях.

Что такое нейронная сеть?

Нейронная сеть — это последовательность нейронов, соединенных между собой синапсами. Структура нейронной сети пришла в мир программирования прямиком из биологии. Благодаря такой структуре, машина обретает способность анализировать и даже запоминать различную информацию. Нейронные сети также способны не только анализировать входящую информацию, но и воспроизводить ее из своей памяти. Заинтересовавшимся обязательно к просмотру 2 видео из TED Talks: Видео 1, Видео 2). Другими словами, нейросеть это машинная интерпретация мозга человека, в котором находятся миллионы нейронов передающих информацию в виде электрических импульсов.

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

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

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

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

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

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

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

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

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

Нейрон — это вычислительная единица, которая получает информацию, производит над ней простые вычисления и передает ее дальше. Они делятся на три основных типа: входной (синий), скрытый (красный) и выходной (зеленый). Также есть нейрон смещения и контекстный нейрон о которых мы поговорим в следующей статье. В том случае, когда нейросеть состоит из большого количества нейронов, вводят термин слоя. Соответственно, есть входной слой, который получает информацию, n скрытых слоев (обычно их не больше 3), которые ее обрабатывают и выходной слой, который выводит результат. У каждого из нейронов есть 2 основных параметра: входные данные (input data) и выходные данные (output data). В случае входного нейрона: input=output. В остальных, в поле input попадает суммарная информация всех нейронов с предыдущего слоя, после чего, она нормализуется, с помощью функции активации (пока что просто представим ее f(x)) и попадает в поле output.

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

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

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

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

Как работает нейронная сеть?

В данном примере изображена часть нейронной сети, где буквами I обозначены входные нейроны, буквой H — скрытый нейрон, а буквой w — веса. Из формулы видно, что входная информация — это сумма всех входных данных, умноженных на соответствующие им веса. Тогда дадим на вход 1 и 0. Пусть w1=0.4 и w2 = 0.7 Входные данные нейрона Н1 будут следующими: 1*0.4+0*0.7=0.4. Теперь когда у нас есть входные данные, мы можем получить выходные данные, подставив входное значение в функцию активации (подробнее о ней далее). Теперь, когда у нас есть выходные данные, мы передаем их дальше. И так, мы повторяем для всех слоев, пока не дойдем до выходного нейрона. Запустив такую сеть в первый раз мы увидим, что ответ далек от правильно, потому что сеть не натренирована. Чтобы улучшить результаты мы будем ее тренировать. Но прежде чем узнать как это делать, давайте введем несколько терминов и свойств нейронной сети.

Функция активации

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

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

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

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

Тренировочный сет

Тренировочный сет — это последовательность данных, которыми оперирует нейронная сеть. В нашем случае исключающего или (xor) у нас всего 4 разных исхода то есть у нас будет 4 тренировочных сета: 0xor0=0, 0xor1=1, 1xor0=1,1xor1=0.

Итерация

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

Эпоха

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

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

Ошибка

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

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

Задача

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

Данные: I1=1, I2=0, w1=0.45, w2=0.78 ,w3=-0.12 ,w4=0.13 ,w5=1.5 ,w6=-2.3.

H1input = 1*0.45+0*-0.12=0.45
H1output = sigmo >
H2input = 1*0.78+0*0.13=0.78
H2output = sigmo >
O1input = 0.61*1.5+0.69*-2.3=-0.672
O1output = sigmo >
O1 >
Error = ((1-0.33)^2)/1=0.45

Результат — 0.33, ошибка — 45%.

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

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector