Файл: Нечеткая логика и нейронные сети (Аналогия нейронных сетей с мозгом и биологическим нейроном).pdf
Добавлен: 20.05.2023
Просмотров: 223
Скачиваний: 4
Передаточная функция нейрона
Передаточная функция f(u) определяет зависимость сигнала на выходе нейрона от взвешенной суммы сигналов на его входах. В большинстве случаев она является монотонно возрастающей и имеет область значений [-1,1] или [0,1], однако существуют исключения. Также для некоторых алгоритмов обучения сети необходимо, чтобы она была непрерывно дифференцируемой на всей числовой оси. Искусственный нейрон полностью характеризуется своей передаточной функцией. Использование различных передаточных функций позволяет вносить нелинейность в работу нейрона и в целом нейронной сети.
Классификация нейронов
В основном, нейроны классифицируют на основе их положения в топологии сети. Разделяют:
Входные нейроны — принимают исходный вектор, кодирующий входной сигнал. Как правило, эти нейроны не выполняют вычислительных операций, а просто передают полученный входной сигнал на выход, возможно, усилив или ослабив его;
Выходные нейроны — представляют из себя выходы сети. В выходных нейронах могут производиться какие-либо вычислительные операции;
Промежуточные нейроны — выполняют основные вычислительные операции.
Искусственный нейрон - это тот же биологический нейрон, но только сильно упрощенный. Нам ведь не нужны оболочки, мембраны, ядра, рибосомы и прочее, чтобы математический нейрон смог жить. Нам необходим лишь алгоритм работы биологического нейрона, чтобы осуществлять задуманное - самообучение компьютеров и их систем. Вот как выглядит упрощённый биологический нейрон в математическом виде.
1.4. Виды искусственных нейронных сетей
Искусственная нейронная сеть (ИНС) — математическая модель, а также её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. Первой такой попыткой были нейронные сети У. Маккалока и У. Питтса.
ИНС представляют собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры обычно довольно просты (особенно в сравнении с процессорами, используемыми в персональных компьютерах). Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И, тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие по отдельности простые процессоры вместе способны выполнять довольно сложные задачи.
Виды искусственных нейронных сетей
Существует широкий класс нейронных сетей и признаков, по которым их классифицируют. Рассмотрим подробнее некоторые типы сетей.
Для начала стоит знать, что любая нейросеть состоит из двух основных слоёв - принимающего (он же и распределительный) сигналы и обрабатывающего. Однако, если нейронная сеть состоит только лишь из этих двух слоев - то она однослойная, если слоев больше, то многослойная. Теперь поподробнее.
Однослойная ИНС - входящие сигналы сразу передаются с входного слоя на выходной, который обрабатывает их и выдает готовый результат.
Выглядит однослойная нейронная сеть следующим образом:
На этой картинке входной слой обозначен кружками (он не считается за слой нейронной сети), а справа расположен слой обычных нейронов.
Нейроны соединены друг с другом стрелками. Над стрелками расположены веса соответствующих связей (весовые коэффициенты).
Многослойная ИНС - сеть, которая состоит из входного, скрытого и обрабатывающего слоев. Сигнал с распределяющего слоя частично обрабатывается скрытым слоем, после чего передается на последний слой нейронов, вычисляющий конечный результат.
Так выглядит многослойная нейронная сеть:
Интересно то, что скрытые слои ИНС ученые научились обучать совсем недавно и это большой шаг вперед, поскольку многослойные нейросети существенно превосходят по производительности и возможностям однослойные.
Также стоит знать, что работают сети в двух направлениях - прямое распределение и обратное. ИНС прямого распределения дают возможность решать с успехом большинство задач: прогнозирование, кластеризация и распознавание. В таких нейросетях сигнал передается только вперед, назад он возвращаться не имеет возможности.
ИНС с обратными связами. В подобных сетях часть сигнала от нейронов может быть возвращена назад и такой принцип работы существенно расширяет возможности нейросетей. Такие ИНС могут обладать кратковременной памятью как у человека.
Если в нейронной сети имеются обратные связи, она может стать неустойчивой. Такая сеть может «зациклиться», проходя бесконечное количество раз через одни и те же состояния.
Нейронные сети могут быть усложнены за счет добавления в нее элементов, задерживающих распространение сигнала в прямом или обратном направлении.
1.5. Обучение нейронных сетей
Здесь может сразу возникнуть аналогия с обучением человека. Надо, однако, заметить, что сложность искусственных нейронных сетей не сопоставима со сложностью человеческого мозга. Кроме того, искусственные нейронные сети моделируют особенности живых нейронов лишь приблизительно. Поэтому при обсуждении способности искусственных нейронных сетей к обучению речь может идти только о выполнении простейших функций мозга.
Обучение нейронной сети- это процесс, в котором параметры нейронной сети настраиваются посредством моделирования среды, в которую эта сеть встроена. Тип обучения определяется способом подстройки параметров. Различают алгоритмы обучения с учителем и без учителя.
Процесс обучения с учителем представляет собой предъявление сети выборки обучающих примеров. Каждый образец подается на входы сети, затем проходит обработку внутри структуры нейронной сети, вычисляется выходной сигнал сети, который сравнивается с соответствующим значением целевого вектора, представляющего собой требуемый выход сети.
Затем по определенному правилу вычисляется ошибка, и происходит изменение весовых коэффициентов связей внутри сети в зависимости от выбранного алгоритма. Векторы обучающего множества предъявляются последовательно, вычисляются ошибки и веса подстраиваются для каждого вектора до тех пор, пока ошибка по всему обучающему массиву не достигнет приемлемо низкого уровня.
При обучении без учителя обучающее множество состоит лишь из входных векторов. Обучающий алгоритм подстраивает веса сети так, чтобы получались согласованные выходные векторы, т.е. чтобы предъявление достаточно близких входных векторов давало одинаковые выходы. Процесс обучения, следовательно, выделяет статистические свойства обучающего множества и группирует сходные векторы в классы. Предъявление на вход вектора из данного класса даст определенный выходной вектор, но до обучения невозможно предсказать, какой выход будет производиться данным классом входных векторов. Следовательно, выходы подобной сети должны трансформироваться в некоторую понятную форму, обусловленную процессом обучения. Это не является серьезной проблемой. Обычно не сложно идентифицировать связь между входом и выходом, установленную сетью.
Для обучения нейронных сетей без учителя применяются сигнальные метод обучения Хебба и Ойа.
Математически процесс обучения можно описать следующим образом. В процессе функционирования нейронная сеть формирует выходной сигнал Y, реализуя некоторую функцию Y = G(X). Если архитектура сети задана, то вид функции G определяется значениями синаптических весов и смещенной сети.
Пусть решением некоторой задачи является функция Y = F(X), заданная параметрами входных-выходных данных (X1, Y1), (X2, Y2), …, (XN, YN), для которых Yk = F(Xk) (k = 1, 2, …, N).
Обучение состоит в поиске (синтезе) функции G, близкой к F в смысле некоторой функции ошибки E.
Если выбрано множество обучающих примеров – пар (XN, YN) (где k = 1, 2, …, N) и способ вычисления функции ошибки E, то обучение нейронной сети превращается в задачу многомерной оптимизации, имеющую очень большую размерность, при этом, поскольку функция E может иметь произвольный вид обучение в общем случае - многоэкстремальная невыпуклая задача оптимизации.
Для решения этой задачи могут использоваться следующие (итерационные) алгоритмы:
1.Алгоритмы локальной оптимизации с вычислением частных производных первого порядка:
- градиентный алгоритм (метод наискорейшего спуска),
- методы с одномерной и двумерной оптимизацией целевой функции в направлении антиградиента,
- метод сопряженных градиентов,
- методы, учитывающие направление антиградиента на нескольких шагах алгоритма;
2.Алгоритмы локальной оптимизации с вычислением частных производных первого и второго порядка:
- метод Ньютона,
- методы оптимизации с разреженными матрицами Гессе,
- квазиньютоновские методы,
- метод Гаусса-Ньютона,
- метод Левенберга-Марквардта и др.;
3.Стохастические алгоритмы оптимизации:
- поиск в случайном направлении,
- имитация отжига,
- метод Монте-Карло (численный метод статистических испытаний);
4.Алгоритмы глобальной оптимизации (задачи глобальной оптимизации решаются с помощью перебора значений переменных, от которых зависит целевая функция).
Глава 2. ПРАКТИЧЕСКАЯ ЧАСТЬ
Требуется определить под какой % банку можно предоставить кредит клиенту.
Входные сигналы:
а) кредитная история (хорошая, плохая);
б) платежеспособность клиента (хорошая, средняя, плохая).
Значения выходного сигнала это % кредитная ставка для клиента:
а)низкая;
б)средняя;
в)высокая.
Правила применимые к данному решению:
1. Если кредитная история хорошая, платежеспособность хорошая, то % кредитная ставка по кредиту низкая.
2. Если кредитная история хорошая, платежеспособность средняя, то % кредитная ставка средняя.
3. Если кредитная история плохая, платежеспособность плохая, то % ставка
высокая.
Для решения мы будем использовано программное обеспечение MatlabFuzzyLogicToolbox.
Для реализации был выбран алгоритм логического вывода mamdani.
На его основе создана система kredit из двух входящих сигналов: «КредитнаяИстория» и «Платежеспособность». Выходным сигналом данной задачи является «Процентная ставка».
После создания всех необходимых входных и выходных сигналов необходимо для каждого сигнала описать: функцию принадлежности, диапазон изменений и наименование функций.
Для описания входящего сигнала «КредитнаяИстория» использовались следующие характеристики:
1. Для обеих функций Membership function plots тип функции: «trapmf»;
2. Range и Display Range от 0 до 10;
3. Параметры для функции «Плохая» имеют значения [0 0 1 3];
4. Параметры для функции «Хорошая» имеют значения [7 9 10 10]
Для описания входящего сигнала «Платежеспособность» использовались следующие характеристики:
1. Для обеих функций Membership function plots тип функции: «gaussmf»;
2. Range и Display Range от 0 до 10;
3. Параметры для функции «Плохая» имеют значения [1.699 0];
4.Для функции «Средняя» имеют значения [1.699 5]
5.Для функции «хорошая» параметры имеют значения [1.699 10]
Для настройки выходного сигнала «Процентная ставка» использовались следующие характеристики:
1. Для обеих функций Membership function plots тип функции: «trimf»;
2. Range и Display Range от 0 до 30;
3. Параметры для функции «низкая» имеют значения [0 5 10];
4. Параметры для функции «Средняя» имеют значения [10 15 20];
5. Параметры для функции «высокая» имеют значения [20 25 30];
После настройки всех сигналов необходимо создать правила для вычислений.

Через Rule Editor были настроены правила:
Значения весов оставлены по умолчанию и равны 1.