Нейронные сети |
---|
1 | Как работает мозг |
---|
Нервная система и мозг человека состоят из нейронов, соединенных между
собой нервными волокнами. Нервные волокна способны передавать электрические
импульсы между нейронами. Все процессы передачи раздражений от нашей кожи, ушей и глаз к мозгу, процессы мышления и управления действиями - все это реализовано в живом организме как передача электрических импульсов между нейронами.
Рассмотрим строение биологического нейрона. Каждый нейрон имеет отростки нервных волокон двух типов -
дендриты, по которым принимаются импульсы, и единственный аксон, по которому
нейрон может передавать импульс. Аксон контактирует с дендритами
других нейронов через специальные образования - синапсы, которые влияют на силу импульса.
Нетрудно построить математическую модель описанного процесса.
На рисунке изображена модель нейрона с тремя входами (дендритами), причем
синапсы этих дендритов имеют веса w1, w2, w3.
Пусть к синапсам поступают импульсы
силы x1, x2, x3 соответственно, тогда после прохождения синапсов и дендритов
к нейрону поступают импульсы w1x1, w2x2, w3x3. Нейрон преобразует полученный
суммарный импульс x=w1x1+ w2x2+ w3x3 в соответствии с некоторой передаточной
функцией f(x). Сила выходного импульса равна
y=f(x)=f(w1x1+ w2x2+ w3x3).
Таким образом, нейрон полностью описывается своими весами wk и передаточной
функцией f(x). Получив набор чисел (вектор) xk в качестве входов, нейрон выдает некоторое число
y на выходе.
2 |   Что такое нейросеть |
---|
Как работает нейросеть
|
Задача распознавания рукописных букв | |
Дано: растровое черно-белое изображение буквы размером 30x30 пикселов | Надо: определить, какая это буква (в алфавите 33 буквы) |
Формулировка для нейросети | |
---|---|
Дано: входной вектор из 900 двоичных символов (900=30x30) | Надо: построить нейросеть с 900 входами и 33 выходами, которые помечены буквами. Если на входе сети - изображение буквы "А", то максимальное значение выходного сигнала достигается на выходе "А". Аналогично сеть работает для всех 33 букв. |
Как построить сеть |
На втором этапе нам следует "обучить" выбранную сеть, то есть подобрать такие значения ее весов, чтобы сеть работала нужным образом. Необученная сеть подобна ребенку - ее можно научить чему угодно. В используемых на практике нейросетях количество весов может составлять несколько десятков тысяч, поэтому обучение - действительно сложный процесс. Для многих архитектур разработаны специальные алгоритмы обучения, которые позволяют настроить веса сети определенным образом. Наиболее популярный из этих алгоритмов - метод обратного распространения ошибки (Error Back Propagation), используемый, например, для обучения перцептрона.
Обучение нейросети |
Оказывается, что после многократного
предъявления примеров веса сети стабилизируются, причем сеть дает
правильные ответы на все (или почти все) примеры из базы данных. В таком случае говорят,
что "сеть выучила все примеры", " сеть обучена", или "сеть натренирована".
В программных реализациях можно видеть, что в процессе обучения величина
ошибки (сумма квадратов ошибок по всем выходам) постепенно уменьшается.
Когда величина ошибки достигает нуля или приемлемого малого уровня, тренировку
останавливают, а полученную сеть считают натренированной и готовой к применению
на новых данных.
    Важно отметить, что вся информация, которую сеть имеет о задаче,
содержится в наборе примеров. Поэтому качество обучения сети напрямую
зависит от количества примеров в обучающей выборке, а также от того, насколько
полно эти примеры описывают данную задачу. Так, например, бессмысленно
использовать сеть для предсказания финансового кризиса, если в обучающей
выборке кризисов не представлено. Считается, что для полноценной тренировки
требуется хотя бы несколько десятков (а лучше сотен) примеров.
Повторим еще раз, что обучение сети - сложный и наукоемкий процесс.
Алгоритмы обучения имеют различные параметры и настройки, для управления
которыми требуется понимание их влияния.
Об этих тонкостях и о теоретических основах работы нейросетей
скоро можно будет прочесть в специальном разделе этого учебника "Теория
нейросетей".
Применение нейросети
|
Примеры готовых нейросетей
|
3 |   Области применения нейросетей |
---|
Классификация
|
![]() |
Примером такой задачи служит медицинская диагностика, где сеть может учитывать большое количество числовых параметров (энцефалограмма, давление, вес и т.д.). Конечно, "мнение" сети в этом случае нельзя считать окончательным. |
![]() |
Классификация предприятий по степени их перспективности - это уже привычный способ использования нейросетей в практике западных компаний. При этом сеть также использует множество экономических показателей, сложным образом связанных между собой. |
    Нейросетевой подход особенно эффективен в задачах экспертной оценки по той причине, что он сочетает в себе способность компьютера к обработке чисел и способность мозга к обобщению и распознаванию. Говорят, что у хорошего врача способность к распознаванию в своей области столь велика, что он может провести приблизительную диагностику уже по внешнему виду пациента. Можно согласиться также, что опытный трейдер чувствует направление движения рынка по виду графика. Однако в первом случае все факторы наглядны, то есть характеристики пациента мгновенно воспринимаются мозгом как "бледное лицо", "блеск в глазах" и т.д. Во втором же случае учитывается только один фактор, показанный на графике - курс за определенный период времени. Нейросеть позволяет обрабатывать огромное количество факторов (до нескольких тысяч), независимо от их наглядности - это универсальный "хороший врач", который может поставить свой диагноз в любой области.
Кластеризация и поиск зависимостей
|
![]() |
Например, нейросеть на основе методики МГУА (метод группового учета аргументов) позволяет на основе обучающей выборки построить зависимость одного параметра от других в виде полинома. Такая сеть может не только мгновенно выучить таблицу умножения, но и найти сложные скрытые зависимости в данных (например, финансовых), которые не обнаруживаются стандартными статистическими методами. |
![]() |
Кластеризация - это разбиение набора примеров на несколько компактных областей (кластеров), причем число кластеров заранее неизвестно. Кластеризация позволяет представить неоднородные данные в более наглядном виде и использовать далее для исследования каждого кластера различные методы. Например, таким образом можно быстро выявить фальсифицированные страховые случаи или недобросовестные предприятия. |
Прогнозирование
|
    Рассмотрим практическую задачу, ответ в которой неочевиден
- задачу прогнозирования курса акций на 1 день вперед.
    Пусть у нас имеется
база данных, содержащая значения курса за последние 300 дней.
Простейший вариант
в данном случае - попытаться построить прогноз завтрашней цены на основе
курсов за последние несколько дней. Понятно, что прогнозирующая сеть
должна иметь всего один выход и столько входов, сколько предыдущих
значений мы хотим использовать для прогноза - например, 4 последних
значения. Составить обучающий пример очень просто - входными значениями
будут курсы за 4 последовательных дня, а желаемым выходом - известный нам курс в следующий день за этими четырьмя.
    Если нейросеть совместима с какой-либо системой обработки электронных таблиц (например, Excel), то подготовка обучающей выборки состоит из следующих операций:
Как видно из этого примера, объем обучающей выборки зависит от выбранного нами количества входов. Если сделать 299 входов, то такая сеть потенциально могла бы строить лучший прогноз, чем сеть с 4 входами, однако в этом случае мы имеем всего 1 обучающий пример, и обучение бессмысленно. При выборе числа входов следует учитывать это, выбирая разумный компромисс между глубиной предсказания (число входов) и качеством обучения (объем тренировочного набора).
Страница изменена 17 апреля 2000 года.
|
|
|
|