Практическое применение нейронных сетей

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

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

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

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

Искусственный нейрон получает входные сигналы через соединения с определенной интенсивностью – весом. Этот вес – равен синаптической активности биологического нейрона. У каждого нейрона свое пороговое значение. Чтобы  рассчитать величину активации нейрона нужно сложить сумму всех весов и вычитается пороговое значение. Эта величина называется – пост-синаптический потенциал нейрона (PSP). Сигнал активации с помощью передаточной функции преобразуется в выходной сигнал.

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

Нейронная сеть имеет обратную связь – она рекуррентна. Поэтому поведение структуры этой сети динамично.

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

Прогнозирование на фондовом рынке

— Предоставление кредита.

— Управление.

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

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

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

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

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

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

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

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

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

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

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

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

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

Поэтому выбор переменных имеет очень большое значение в обучении нейронной сети.

На сегодня все. Э.Е. Тихонов

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *