Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Решение задачи на кредитоспособность клиента

Содержание:

Введение

Целью данной работы является освоение теоретических знаний о нейронных сетях, а также демонстрация приобретенных навыков работ с ПО Matlab Fuzzy Logic Toolkit. В первых пяти главах мы рассмотрим теоретическую часть, связанную с историей развития нейронных сетей, сравним нейронную сеть с мозгом, рассмотрим, что такое искусственный нейрон, а также виды нейронных сетей, ну и, конечно, рассмотрим вопрос обучения нейронных сетей.

После рассмотрения теоретического материала необходимо продемонстрировать навыки работы с ПО. Для этого мы решим задачу, в соответствии с вариантом:

Задача на кредитоспособность клиента.

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

  • Кредитная история (хорошая, плохая);
  • Платежеспособность клиента (хорошая, средняя, плохая);

Выходной сигнал:

  • Значение процента кредита для клиента (низкий процент, средний процент, высокий процент).

Задача решается с применением следующих правил принятия решения:

  • Если кредитная история хорошая, платежеспособность хорошая, то процент по кредиту низкий.
  • Если кредитная история хорошая, платежеспособность средняя, то процентная ставка средняя.
  • Если кредитная история плохая, платежеспособность плохая, то процентная ставка высокая.

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

Глава 1. История развития нейронных сетей

История изучения процессов мышления восходит к самым древним философам – еще Аристотель занимался этим вопросом, результатом его работы стало формулирование принципов, руководящих рациональной частью мышления. После него время от времени ученые и философы возвращались к данной теме, однако, вплоть до начала 20 века в этой области было достигнуто не так много успехов, однако именно исследования ученых и философов, начиная с древнегреческих философов и заканчивая математиками 19 века, заложили мощную базу, стоящую на математическом и логическом аппарате, а также подарили миру несколько механических машин, способных производить некоторые расчеты, опираясь на законы математики и логики.

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

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

Развитие нейронных сетей можно разделить на три этапа:

  1. Прорыв в области нейроинтеллекта. Данный этап характеризуется введением в научную среду основных понятий, связанных с нейронными сетями и искусственным интеллектом и в большей степени характеризуется теоретическими изысканиями, в частности:
    • 1943 г. – выход статьи У. Маккалока и У. Питтса о нервной активности, в которой и было сформулировано понятие нейронной сети и была предложена модель такой сети, основанная на электрических схемах.
    • 1948 г. – Н. Винер публикует работу о кибернетике.
    • 1949 г. – Д. Хебб предлагает первый алгоритм обучения.
    • 1958 г. – Дж. фон Нейман предложил имитацию простых функций нейронов с использованием вакуумных трубок.
    • 1958 г. – Ф. Розенблатт изобретает однослойный перцептрон.

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

  1. Пессимизм. С ростом возможностей электротехнической промышленности был в значительной степени преодолен технологический барьер, однако задачи, которые ставились перед конструкторами нейронных сетей, так и не были решены. Более того, было выявлено некоторое количество проблем, например:
    • Нейронные сети не были приспособлены к решению подобных задач – то есть при успешном решении одной задачи сеть не могла решить внешне схожую с ней задачу.
    • Теоретическая неспособность однослойных сетей решать многие простые задачи.
    • Пессимистические публикации по теме, например, в 1969 году М. Минский опубликовал формальное доказательство ограниченности перцептрона, доказав тем самым его неспособность решать достаточно широкий круг задач.

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

  1. Оптимизм. Те немногие ученые, которые смогли найти средства на исследование, сформировали теоретическую базу, с применением которой стало возможным построение многослойных сетей, лишенных недостатков перцептрона. Этот период во многом характеризуется решением проблем, связанных с обучением таких сетей:
    • 1974 г. – П. Вербосом разработан алгоритм обратного распространения ошибки для обучения многослойных перцептронов, который был позже независимо сформулирован и другими учеными. Однако этот метод не является универсальным и в некоторых случаях обучение сети по этому методу невозможно.
    • 1975 г. – К. Фукусима разрабатывает когнитрон - самоорганизующуюся сеть для инвариантного распознавания образов.
    • 1980 г. – он же разрабатывает парадигму неокогнитрона.
    • 1982 г. – Дж. Хопфилд разрабатывает нейронную сеть с обратными связями. Это была первая рекуррентная сеть, которая добавила нейронным сетям свойства ассоциативной памяти.
    • 1982 г. – Т. Кохонен представляет модели сети, обучабщейся без учителя на основе самоорганизации.
    • 1987 г. – Р. Хехт-Нильсон разрабатывает сети встречного распространения, характеризующиеся уменьшенным временем обучения.

На этом многие проблемы скорости и алгоритмов обучения сетей были решены. Однако отсутствие «памяти» сети, названное проблемой стабильности-пластичности, осталась.

    • 1987 г. – С. Гроссберг создал адаптивно-резонансную теорию, а также модели сетей, построенных на ее основе. Данные модели уже «не забывали» старые образы при переобучении сети.
    • 2000-е годы – группами разных ученых были предложены несколько способов решения проблемы попадения в локальный минимум, в основном, решения были построены на применении стохастических методов обучения.
    • 2007 г. – Дж. Хинтон предложил алгоритмы глубокого обучения многослойных нейронных сетей.

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

Глава 2. Аналогия нейронных сетей с мозгом и биологическим нейроном

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

Впервые о нейронных сетях упоминают А. Бэйн и У. Джеймс, оба исследователя приходили в своих работах к выводу о том, что мыслительная деятельность есть результат взаимодействия нейронов в головном мозге. При этом, согласно исследованиям Бэйна, любая деятельность задействует определенный набор нейронов и при повторении этой деятельности задействуется примерно тот же набор нейронов, а многократное повторение ведет к появлению памяти – в биологическом смысле это означает установление связи между нейроноами. У Джеймса за установление связи отвечали электрические импульсы, в остальном работа была достаточно схожа. На момент написания работы, а это были 80-е годы 19 века, научное общество не было готово принять такое объяснение, однако сейчас это кажется весьма правдоподобным.

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

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

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

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

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

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

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

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

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

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

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

Глава 3. Понятие искусственного нейрона

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

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

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

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

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

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

Глава 4. Виды искусственных нейронных сетей

Переходя от искусственных нейронов к сетям, необходимо уточнить, что ИНС – это такие нейронные сети, в качестве вершин которых выступают искусственный нейроны. По сути цель построения нейронной сети - получение из некоторого вектора входных сигналов X вектора выходных сигналов Y. Оба этих вектора очень сильно зависят от постановки задачи и от предметной области.

Существует несколько критериев классификации искусственных нейронных сетей:

  • Тип нейронов, составляющих сеть. Сети, состоящие из одинаковых нейронов, называются однородными, если в сети комбинируются сети нейронов разного типа, то сеть называется гибридной.
  • Количество слоев нейронов в сети. Если нейроны располагаются в одной плоскости, то есть если отсутствует хотя бы одна непосредственная связь выхода одного нейрона со входом другого, то есть называют однослойной, в противном случае сеть называется многослойной.
  • Направление передачи сигналов в сети. Если в сети отсутствует явление обратной связи, сеть называется однонаправленной, если обратные связи присутствуют, то сеть называется рекуррентной.
  • Вид обучающих выборок. Если для обучения сети требуется учитель, то сеть называется гетероассоциативной, если учитель не требуется, то сеть называется автоассоциативной. Что касается аспектов обучения, они будут рассмотрены в следующей главе.
  • Назначение сети, область применения. ИНС используются во многих областях, примерами могут быть сети, применяемые для решения задач кластеризации и классификации, аппроксимации, прогнозирования и другие.

Рассмотрим некоторые виды сетей:

  • Однонаправленный многослойные сети сигмоидального типа. Этот тип сетей получил очень широкое распространение на практике в силу простоты математического описания таких сетей. Кроме того, это один из самых первых типов сетей. В основу работы таких сетей лег более ранний тип – однослойные сети того же типа, однако их применению препятствовала ограниченность функционала однослойных сетей, в которых свойства сети были ограничены свойствами отдельного нейрона. Многослойные персептроны лишены этого недостатка.
  • Рекуррентные сети на базе персептрона. Этот тип сетей получился из модификации предыдущего путем добавления обратной связи от выходного или одного из промежуточных слоев на вход. В каждой обратной связи присутствует элемент единичной задержки. За счет обратной связи увеличивается размерность входного вектора, что влечет усложнение алгоритмов обучения такой сети. Примерами сетей такого типа могут быть сети RMLP или рекуррентная сеть Эльмана.
  • Самоорганизующиеся сети на основе конкуренции. Эти сети обучаются без учителя и самостоятельно адаптируют свои веса под обучающие данные. Эти сети строятся из нейронов типа WTA и аналогичных. Как правило, такие сети имеют только один слой, каждый нейрон в таких сетях получает все компоненты входного вектора X размерностью N.
  • Радиальные нейронные сети. Строятся такие сети с использованием радиальных нейронов, имеют двухслойную структуру. Основное предназначение таких сетей – решение задач на аппроксимацию данных.
  • Нечеткие нейронные сети. Зависимость в таких сетях входного и выходного вектора задается выражениями с использованием нечетких систем, оперирующих нечеткими множествами. Примерами таких сетей могут служить сети Такаги-Сугено-Канга, Ванга-Менделя и другие.
  • Нечеткие искусственные нейронные сети. Эти сети на этапе обучения осуществляют группирование входных векторов. Такие сети используют двухслойную структуру.

Перейдем к обсуждению процесса обучения нейронных сетей.

Глава 5. Обучение нейронных сетей

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

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

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

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

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

Самоорганизующиеся сети при обучении стремятся к минимизации погрешности квантования. Наиболее распространены следующие алгоритмы:

  • Алгоритм Кохонена, который сводится к коррекции весов на основе функции соседства, в результате прохода по которому соседние нейроны становятся типичными представителями кластеров обучающих данных, соседствующих в многомерном пространстве.
  • Алгоритм нейронного газа. Формула используется та же, что и в предыдущем методе, однако в алгоритме рассмотрен вариант нулевого соседства и тогда алгоритм сводится к WTA, а также явление уменьшения коэффициента обучения с течением обучения.

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

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

Глава 6. Применение нечеткой логики на практике

Практическое задание было выполнено с использованием пакета MATLAB R2018b для ОС Linux, включающем, помимо прочего, пакет Fuzzy Logic Toolbox. Формулировка задачи и правила приведены во введении к данной работе.

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

Откроем редактор, воспользовавшись командной строкой MATLAB:

Рисунок 1. Начальный вид окна редактора Fuzzy Logic Designer

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

После переименования окно редактора выглядит следующим образом:

Рисунок 2. Окно редактора после переименования переменных

Далее зададим функции принадлежности. Для кредитной истории мы будем использовать диапазон 0..1, для платежеспособности – 0..2. Аналогично для переменной rate установим диапазон 0..2, так как у нас предполагается градация по трехбалльной шкале.

Отредактируем функции таким образом, чтобы их расположение на шкале и именование соответствовало условию задачи. Для варианта с двумя опциями выбора (крединая история) зададим варианты хорошая и плохая и воспользуемся функцией tramf, для варианта платежеспособности воспользуемся гауссовой функцией и зададим варианты хорошая, плохая, средняя, для выходного сигнала воспользуемся функцией trimf и зададим значения как низкая, средняя и высокая.

Результаты настройки представлены на скриншотах ниже:

Рисунок 3. Настройки для входа – кредитная история

Рисунок 4. Настройки для входа - платежеспособность

Рисунок 5. Настройки выхода – ставка по кредиту

Добавим правила в соответствии с условиями:

Рисунок 6. Правила в соответствии с условиями задачи

Проверка на пограничных условиях, заданных в задаче, показывает, что система работает корректно:

Рисунок 7. Проверка работы системы

Дополнительно построим поверхность решений нашей задачи:

Рисунок 8. Поверхность решений задачи

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

Заключительная часть

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

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

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

Библиографический список

Е.Н. Горбачевская, С.С. Краснов – История развития нейронных сетей // Вестник Волжского университета им. В.Н. Татищева. – 2015 - №1 (23) – эл. версия

В.Г. Федорук – Искусственные нейронные сети / В.Г. Федорук – электронный курс лекций, в печати не опубликован.

А.Д. Редозубов – Логика мышления / А.Д. Редозубов. – электронный курс лекций, в печати не опубликован.