Что умеют нейронные сети? Возможности, базовые принципы и структура.

Что умеют нейронные сети? Возможности, базовые принципы и структура.

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


Что умеют нейронные сети?

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

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

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


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

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



биологический нейрон



  1. Нейроны могут посылать друг другу электрические импульсы – сигналы различной силы и частоты.
  1. Нейрон состоит из:
  • Дендритов – по ним нейрон принимает сигналы от соседних нейронов. Дендриты имеют чувствительные контакты – синапсы. Чувствительность синапсов влияет на силу сигнала, т.е. разные нейроны могут воспринимать один и тот же сигнал по-разному, в зависимости от чувствительности их синапсов.
  • Тела – оно обеспечивает жизнедеятельность клетки
  • Аксона – по нему нейрон может передавать сигнал другим нейронам
  1. Сигналы, полученные от нескольких других нейронов, суммируются. Если суммарная сила сигнала превышает некоторое пороговое значение (важна также длительность сигнала), то нейрон генерирует собственный импульс и передаёт его по аксонам.

Для того, чтобы построить математическую модель нейрона принимают несколько предположений и допущений:

  1. Будем считать, что каждый нейрон обладает некоторой передаточной функцией, определяющей условия генерации собственного сигнала в зависимости от силы полученных сигналов. Предполагаем, что передаточная функция не зависит от времени.
  2. При прохождении синапса сигнал меняется линейно, т.е. сила сигнала умножается на некоторое число. Это число будем называть весом синапса или весом соответствующего входа нейрона.
  3. Деятельность нейрона синхронизирована, т.е. время прохождения сигнала от нейрона к нейрону и время обработки принятых сигналов одинаково для всех нейронов.
  4. Веса синапсов могут меняться со временем. Именно изменение весов отвечает за возможность различной реакции нейронной сети на одни и те же условия в разные моменты времени, т.е. возможность обучения.

Математический нейрон – структурная единица сети

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



структурная единица нейронной сети



Сигналы x1, x2, x3 … xn, поступая на вход, преобразуются линейным образом, т.е. к телу нейрона поступают силы: w1x1, w2x2, w3x3 … wnxn, где wi – веса соответствующих сигналов. Нейрон суммирует эти сигналы, затем применяет к сумме некоторую функцию f(x) и выдаёт полученный выходной сигнал y.

Основные виды передаточных функций математических нейронов – сигмоидная и пороговая.



передаточные функции нейрона



Пороговая функция может принимать только два дискретных значения 0 или 1. Смена значения функции происходит при переходе через заданный порог T.

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



Структура простейшей нейронной сети


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



структура простейшей нейронной сети



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



Количество выходов сети равно количеству нейронов в последнем слое.



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


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



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

Итак, подбор весов – это аналог выявления закономерности в интеллектуальной деятельности человека. Если человеку, например, показать несколько видов собак, то он сможет далее верно распознавать даже незнакомые породы собак и выделять их среди других животных, потому что он смог выявить основные признаки собак (закономерность, по которой можно отнести животное к классу «собаки»).

Посмотрим схему обучения нейронной сети.



алгоритм обучения нейронной сети



  1. Из базы данных на вход сети поступает обучающий пример – то есть пример, для которого заранее известен правильный ответ.
  2. Нейронная сеть отрабатывает пример с весами нейронов по умолчанию.
  3. После получения ответа сети происходит сравнение его с правильным ответом и вычисляется ошибка
  4. Происходит подстройка весов нейронов в зависимости от ошибки

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

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



Вывод


Что же мы имеем в результате…

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

Написать:
19:26
505
Нет комментариев. Ваш будет первым!