Реферат

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

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

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

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

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

от 25%

Подписываем

договор

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

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





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

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

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

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

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

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

Лабораторная  работа №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. Курсовая Интернет-технологии в торговле
3. Реферат Анализ реализации кадровой политики в организации
4. Реферат Инженерно-технические службы в гостинице
5. Реферат на тему CLIENT SERVER Essay Research Paper ClientServer computing
6. Диплом на тему Формирование депозитной политики коммерческого банка
7. Реферат Специфика маркетинга услуг
8. Реферат на тему Новые биологические технологии на службе медицины
9. Лекция Курс лекций по Антикризисной экономике
10. Реферат Макроэкономические проблемы государственного долга 2