Реферат

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

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 26.12.2024





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

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

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

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

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

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

Лабораторная  работа №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++)

            {

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

                {

                    if (dataGridView1.Rows[i].Cells[j].Style.BackColor == Color.White)

                    {

                        x[index] = 0;

                    }

                    else

                    {

                        x[index] = 1;

                        bul = true;

                    }

                    index++;

                }

            }
            ///////////////////////////////////////////////Вычисляется функция выбора
            for (int j=0; j < 10; j++)

            {

                int intX=0;

                int intT=0;

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

                {

                    if (x[i]*t[i,j]==1) intX++;

                    if (t[i,j]==1) intT++;

                }

                 FX[j] =(intX*100)/(intT+1);

            }

            ///////////////////////// поиск нейрона победителя

            restert:
            int neiron_pobeditel = -1;

            float temp = 0;

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

            {

                if ((temp < FX[i]) && (G2[i]==1))

                {

                    temp = FX[i];

                    neiron_pobeditel = i;

                }

            }

            if (neiron_pobeditel == -1) goto ennd;

            /////////////////////////////////вычисляем норму

           int ix=0;

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

              {

                if (x[i]==1) ix++;

              }

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

          Резонанс фиксируется в том случае, если значение функции

              соответст-вия выбранной категории j удовлетворяет критерию сходства ρ: */
            int schet = 0;

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

            {

                XX[i] = t[i, neiron_pobeditel] * x[i];

                if (XX[i] == 1)

                    schet++;

            }
            if ((schet / ix) >= q)

            {

                /*При резонансе поиск прекращается, и веса

                 * нейрона-победителя с номером j подстраиваются в соответствии

                 * с уравнением:*/

                goto go;

            }

            else ///проводим сброс

            {

                G2[neiron_pobeditel] = -1;

                goto restert;

            }

 /***************************************************************************************/         

 

          go:

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

            {

                t[i, neiron_pobeditel] = t[i, neiron_pobeditel] * x[i];

            }

            ennd:;

        }
        private void button4_Click(object sender, EventArgs e)

        {

            Application.Exit();

        }
        private void dataGridView2_Click(object sender, EventArgs e)

        {

            

        }
        private void textBox1_TextChanged(object sender, EventArgs e)

        {

            if (textBox1.Text == "")

            {

                button1.Enabled = false;

            }

            else

            {

                button1.Enabled = true;

            }
        }
        private void button3_Click(object sender, EventArgs e)

        {

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

            {

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

                {

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

                }

            }

            int min = 0;

            int max = 10;

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

            {

                int index = 0;

                for (int i = min; i < max; i++)

                {

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

                    {

                        if (t[index, k] == 1)

                        {

                            dataGridView2.Rows[i].Cells[j].Style.BackColor = Color.Maroon;

                        }

                        else

                        {

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

                       

                        }

                        index++;

                    }

                }

                min = min + 10;

                max = max + 10;

            }
        }

    }

}



1. Сочинение на тему Литературный герой ОСТАП БЕНДЕР
2. Реферат на тему In Cold Blood 2 Essay Research Paper
3. Реферат Система соціального страхування Італії
4. Курсовая на тему Формирование нравственной культуры школьников
5. Курсовая на тему Деривационный потенциал заимствованных слов
6. Статья на тему Системы и системность в экономической теории
7. Задача Задачи по финансам и способы их решения
8. Книга Аластер Кромптон
9. Реферат на тему Сравнительный анализ государственно политического устройства Вели
10. Статья Состояние паблик рилейшнз в Украине