Data Mining. Нейронечёткие модули

Автор работы: Пользователь скрыл имя, 23 Июня 2013 в 16:51, курсовая работа

Краткое описание

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

Содержание

Data Fusion………………………………………………….….…..3

Часть II

Нейронечёткие модули……………………………….…………17

Часть III


Эксперимент………………………….………………………….28

Заключение………………………………….………………………….37

Список литературы…………………………………………………….38

Прикрепленные файлы: 1 файл

Диплом типа.doc

— 1.09 Мб (Скачать документ)

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

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

 

Модуль нечёткого  управления со структурой, определённой в процессе дефуззификации.

 

Введение.

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

 

Конструкция модуля.

 

Рассмотрим классический модуль нечёткого управления.

Он состоит из следующих  компонентов: базы правил, блока фуззификации, блока выработки решения, блока дефуззификации.

База правил.

Знания, составляющие основу корректного функционирования модуля нечёткого управления, записываются в виде нечёткого правила:

 

 

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

 

 

Декартово произведение множеств можно представить в  виде

 

 

Блок вывода.

Формула, определяющая функцию принадлежности нечёткого множества 

 

 

T-норму можно представить произведением вида

 

 

В результате объединения приведённых  выражений можно выполнить следующее преобразование

    (5)

 

Блок фуззификации.

Применим операцию типа синглетон, т.е. пусть

 

       (6)

 

Заметим, что супремум в формуле (5) достигается только в случае, когда  , т.е. для . При этом выражение (5) принимает вид

 

     (7)

 

Блок дефуззификации.

Применим метод дефуззификации, в соответствии с которым

 

      (8)

 

В приведённой формуле  - это центр нечёткого множества , т.е. точкой, в которой достигает максимального значения

 

 

При подстановке выражения (7) в формулу (8) получим равенство

 

    (9)

 

Если учесть, что максимальное значение, которое  может получить в точке , равно 1, т.е.

 

,           (10)

 

То формула (9) принимает  вид

 

.            (11)

 

 

 

 

 

Структура модуля.

 

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

 

                 (12)

 

где параметры  и имеют физическую интерпретацию: - это центр, а - ширина гауссовской кривой.

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

Объединим теперь все  представленные элементы. Воспользуемся  методом дефуззификации (8), выводом  согласно выражению (5), блоком фуззификации с операцией типа синглетон (6), а также гауссовской функцией принадлежности (12) и тогда модуль нечёткого управления приобретает окончательный вид

.       (13)

 

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

Для упрощения на схеме  показан модуль управления с двумя  входами (n=2). Слои обозначены символами от L1 до L4 и выделены серым фоном. Элементы, обозначенные символом  П (мультипликаторы), перемножают все входные сигналы, элементы, обозначенные символом (сумматоры) – суммируют их, а элемент делит один сигнал на другой. Чёрные поименованные точки, размещённые на связях, обозначают веса этих связей. Элементы слоя L1 реализуют функцию Гаусса с параметрами и . Выражения и стрелки, размещённые над схемой, определяют направление распространения сигнала и его интерпретацию. Отдельные элементы схемы будем также называть узлами. В представленной структуре выделены четыре слоя.

 

Слой 1 (L1). Каждый его элемент реализует функцию принадлежности нечёткого множества , . В этот слой поступают входные сигналы , а на его выходе формируются значения функции принадлежности для этих сигналов, т.е. . Фактически, в этом слое оценивается степень принадлежности входных данных к соответствующим нечётким множествам . Функциональная зависимость между входом и выходом в узлах этой сети определяется формулой (12), т.е. функцией Гаусса. Её параметры и интерпретируются соответственно как центр и ширина этой функции. Они будут модифицироваться в процессе обучения, что позволит улучшать подбор нечётких множеств. Факт физической интерпретации этих параметров позволяет получить хорошее начальное размещение функции принадлежности нечётких множеств, а также анализировать её в процессе обучения. Количество элементов слоя L1 равно количеству всех множеств с принадлежностью . В случае N нечётких правил  ( ) и n входных переменных ( ) с учётом того, что в каждом правиле любая входная переменная связана с другим нечётким множеством, количество узлов (элементов слоя L1) будет равно произведению количества входных переменных n и количества нечётких правил N.

 

Слой 2 (L2). Конфигурация связей этого слоя соответствует базе правил, а мультипликаторы – блоку вывода (см. формулы (7) и (10)). На выходе слоя L2 формируется результат вывода в виде значения функции принадлежности . Количество элементов этого слоя равно количеству правил N. Каждый узел связан с предыдущим слоем таким образом, что узел слоя L2, соответствующий k-му правилу, соединён со всеми узлами слоя L1, соответствующими нечётким множествам суждений этого правила. Применение мультипликаторов в качестве узлов слоя L2 обусловлено тем фактом, что для T-нормы, декартова произведения множеств и нечёткой импликации используется операция умножения.

 

Слои 3 (L3) и 4 (L4). Оба слоя представляют собой реализацию блока дефуззификации, реализующего зависимость (8). Веса связей, доходящих до верхнего узла слоя L3 и обозначенные , интерпретируются как центры функций принадлежности нечётких множеств . Эти веса, также как и значения параметров  и в слое L1, будут модифицироваться в процессе обучения. На выходе слоя L4 формируется «чёткое» (дефуззифицированное) выходное значение модуля управления . Представленная на рисунке структура имеет много общего с нейронными сетями – она представляет собой многослойную сеть, основанную на идее нечёткого вывода. В отличие от «чистых» нейронных сетей, каждый слой в целом и отдельные составляющие его элементы, также как и конфигурация связей, все параметры и веса имеют физическую интерпретацию. Это свойство оказывается необычайно важным, поскольку знания не распределяются по сети и могут быть легко локализованы и при необходимости откорректированы экспертом-наблюдателем.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Алгоритм обучения модуля нечёткого управления, заданного  выражением (13).

 

Часть III.

 

Эксперимент.

 

Для решения задачи выработки  плана лечения строится нейронечёткий  контроллер путём обучения нейросети.

 

Adaptive Fuzzy Modeller (AFM) – это программный продукт для автоматического нечёткого моделировнаия системы, начинающейся с входной/выходной выборки.

 

Модель AFM состоит из следующих основных шагов:

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

Обучение. Построение правил и регулировка позиций функций принадлежности и вида, связанного с нечёткими множествами.

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

Экспорт. Перевод проекта в системы W.A.R.P.1.1 и W.A.R.P.2.0, MATLAB и код языка С, в порядке использования связанных сред как поддержку симуляции и и контроль смоделированного процесса.

Обучение.

Фаза обучения состоит  из двух различных шагов: создание правил и создание функций принадлежности.

 

Создание правил. Автоматическое определение нечётких правил выполняется благодаря безнадзорному обучению на Winner-Take-All Fuzzy Associatives Memory (WTA_FAM) нейронной сети. Более того, этот шаг инициализирует позицию функции принадлежности и будет оптимизирован на следующем шаге. Иначе, если вы специалист в вашей системе, вы можете уменьшать цикл обучения с помощью инициализации вручную нечётких множеств и параметров правил. В результате вы получите файл, содержащий правила, выраженные лингвистически.

 

Создание функций  принадлежности.

Настройки функций принадлежности выполняются при помощи контролируемого  обучения многослойной multilayerBackward-propagation

Fuzzy Associative Memory (BACK_FAM) нейронной сети, которая идентифицирует позицию и вид каждой функции принадлежности.

В конце этой фазы можно увидеть графическую интерпретацию полного нечёткого множества, объединённого с каждой переменной проекта.

 

 

 

 

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

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

Для данной задачи разбития обучающей выборки на части была написана программа на Delphi 7.0.

 

Листинг главного модуля программы.

unit MainUnit;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Menus, StrUtils, ExtCtrls;

 

type

  TMainForm = class(TForm)

    eSourceFile: TEdit;

    Label1: TLabel;

    btnSourceFile: TButton;

    OpenDialog: TOpenDialog;

    SortButton: TButton;

    MainMenu: TMainMenu;

    Label2: TLabel;

    eResultDir: TEdit;

    btnExit: TButton;

    Bevel1: TBevel;

    miFile: TMenuItem;

    miHelp: TMenuItem;

    miFileAbout: TMenuItem;

    miFileExit: TMenuItem;

    procedure btnSourceFileClick(Sender: TObject);

    procedure SortButtonClick(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure eSourceFileChange(Sender: TObject);

    procedure miFileExitClick(Sender: TObject);

    procedure miFileAboutClick(Sender: TObject);

    procedure btnExitClick(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  MainForm: TMainForm;

 

implementation

 

uses UnitAbout;

 

{$R *.dfm}

 

procedure TMainForm.btnSourceFileClick(Sender: TObject);

begin

    OpenDialog.Execute;

    eSourceFile.Text := OpenDialog.FileName;

 

end;

procedure TMainForm.SortButtonClick(Sender: TObject);

const

    N = 2000;

var

    tmin, tmed, tmax : TextFile;

    cmin, cmed, cmax, cmis, cerr, ctotal: Integer;

    i : integer;

    fn : string; 

    sl : TStringList;

    s : string;

    p : integer;

    t : extended;

begin

    fn := eSourceFile.Text;

    if not FileExists(fn) then begin

        Application.MessageBox(PChar(' ' + fn + ''), '', MB_OK + MB_ICONERROR);

        Exit;

    end;

 

 

    sl := TStringList.Create;

    try

        sl.LoadFromFile(fn);

    except

        Application.MessageBox(PChar("' + fn + '.'#13#10 + Exception(ExceptObject).Message), 'Ñîðòèðîâêà', MB_OK + MB_ICONERROR);

        sl.Free;

        Exit;

    end;

 

    try

        AssignFile(tmin, eResultDir.Text + 'tmin.pat');

        Rewrite(tmin);

    except

        Application.MessageBox(PChar("' + eResultDir.Text + 'tmin.pat".'#13#10 + Exception(ExceptObject).Message), '', MB_OK + MB_ICONERROR);

        Exit;

    end;

 

    try

        AssignFile(tmed, eResultDir.Text + 'tmed.pat');

        Rewrite(tmed);

    except

        Application.MessageBox(PChar("' + eResultDir.Text + 'tmed.pat".'#13#10 + Exception(ExceptObject).Message), '', MB_OK + MB_ICONERROR);

        CloseFile(tmin);

        Exit;

    end;

 

    try

        AssignFile(tmax, eResultDir.Text + 'tmax.pat');

        Rewrite(tmax);

    except

        Application.MessageBox(PChar("' + eResultDir.Text + 'tmax.pat".'#13#10 + Exception(ExceptObject).Message), 'Ñîðòèðîâêà', MB_OK + MB_ICONERROR);

        CloseFile(tmin);

        CloseFile(tmed);

        Exit;

    end;

 

 

    cmin := 0;

    cmed := 0;

    cmax := 0;

    cmis := 0;

    cerr := 0;

    ctotal := 0;

 

    try

        try

            for i := 0 to sl.Count - 1 do begin

                s := sl[i];

                if Trim(s) = '' then Continue;

                Inc(ctotal);

                p := Pos(' ', s);

Информация о работе Data Mining. Нейронечёткие модули