Button Text! Submit original article and get paid. Find out More

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

В настоящее время все больше возрастает интерес к нейронным сетям.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Модель нейронной сети

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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