Сети адаптивного резонанса fuzzy ART

Автор работы: Пользователь скрыл имя, 07 Декабря 2010 в 14:09, Не определен

Описание работы

Лабораторная работа

Файлы: 1 файл

4лаба.doc

— 103.00 Кб (Скачать файл)

Федеральное агентство по образованию

Государственное образовательное учреждение

Высшего профессионального образования

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ

УНИВЕРСИТЕТ ИМ Н.Э. БАУМАНА»

Калужский филиал

Лабораторная  работа №4

по курсу: Нейрокомпьютеры

      на тему: «Сети адаптивного резонанса fuzzy ART»  
 
 
 
 
 
 
 
 
 
 
 

                                                Выполнил: студент

                                               Группы: ЭВМ-93

                                           Новосельцев А.Е.

                                           Приняла:

                                               Комарцова Л.Г.

 
 
Калуга, 2010 

Исследование  алгоритма обучения нечеткой АРТ

  Вход  X сети является m-мерным вектором, каждая компонента которого xi принадлежит интервалу [0, 1]. Каждой категории, т.е. каждому нейрону в слое распознавания соответствует вектор Wj адаптивных весов. Этот вектор заменяет входные и выходные веса нейрона сети АРТ-1.

  Основные  этапы обучения:

  1. Инициализация.

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

.

  2. Выбор категории.

  Вычисляется функция выбора Fj:

       , (8)

где ε > 0 – константа. Оператор представляет собой t-норму:

.

Норма в числителе и знаменателе (8) вычисляется, как

.

Затем выбирается нейрон с номером j, для которого функция выбора имеет максимальное значение:

.

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

  3. Определение момента резонанса.

  Резонанс  фиксируется в том случае, если значение функции соответствия выбранной категории j удовлетворяет критерию сходства ρ:

.

При резонансе  поиск прекращается, и веса нейрона-победителя с номером j подстраиваются в соответствии с уравнением:

.

      В выше приведенном уравнении параметр β представляет собой скорость обучения. Если β = 1, обучение называется быстрым, и уравнение принимает вид

.

Сброс происходит в случае, если

       . (10)

Для категории  j значение функции выбора Tj сбрасывается в -1 на время предъявления текущего входного вектора. Это действие гарантирует, что j-й нейрон не выиграет конкуренцию. Затем по формуле (9) выбирается новая категория j. Цикл повторяется до тех пор, пока не будет выполнено условие (10) или не будут сброшены все связанные нейроны и выделен новый нейрон, для которого функция сходства примет единичное значение. 
 

Окно  программы

 

 

Листинг программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms; 

namespace WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        int m = 10;

        int n1 = 100;

      public int[,] t= new int [100, 10];  

        public Form1()

        {

            InitializeComponent(); 

            for (int j = 0; j < 10; j++)

            {

                for (int i = 0; i < 100; i++)

                {

                    ///инацилизация весов t

                 

                    t[i, j] = 1;

                }

            }

          

        } 

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

        { 

        } 

        private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)

        { 

        } 

        private void Form1_Load(object sender, EventArgs e)

        {

            dataGridView1.RowCount = 10;

            dataGridView1.ColumnCount = 10;

            dataGridView1.RowHeadersWidth = 5;

            dataGridView1.ColumnHeadersHeight = 5;

            for (int i = 0; i < 10; i++)

            {

                for (int j = 0; j < 10; j++)

                {

                    dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.White;

                }

            }

            dataGridView2.RowCount = 1000;

            dataGridView2.ColumnCount = 10;

            for (int i = 0; i < 10; i++)

            {

                DataGridViewColumn column = dataGridView2.Columns[i];

                column.Width = 25;

            }

           

        } 

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

        {

            dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.Brown;

           

        } 

        private void button2_Click(object sender, EventArgs e)

        {

            for (int i=0; i < 10; i++)

            {

                for (int j=0; j < 10; j++)

                {

                    dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.White;

                }

            }

        } 

        private void button1_Click(object sender, EventArgs e)

        {

            ///инацилизация приемника G1 и G2

           

            int[] R = new int[10];

            int[] G2 = new int[100];

           for (int i = 0; i < m; i++)

            {

                G2[i] = 1;

            }

            double q = Convert.ToDouble(textBox1.Text);

            bool bul = false;

            /////получаем вектор х

            int[] x = new int[100];

            int[] XX = new int[100];

            float[] FX = new float[10];

            int index = 0;

            for (int i = 0; i < 10; i++)

            {

Информация о работе Сети адаптивного резонанса fuzzy ART