Форум программистов, компьютерный форум, киберфорум
Наши страницы
Искусственный интеллект
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Lagilo
5 / 5 / 3
Регистрация: 17.04.2014
Сообщений: 155
1

Как правильно обучать нейросеть?

11.11.2016, 23:39. Просмотров 486. Ответов 1
Метки нет (Все метки)

Изучаю нейросети и хотел написать простую нейросеть, которая распознает цифры.
Дана выборка из 10 цифр от 0 до 9. Каждый элемент выборки - это квадрат 10x10:
Название: Снимок.PNG
Просмотров: 57

Размер: 3.0 Кб

Обучение произвожу так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//элемент выборки имеет такой вид:
class SampleObj
{
    public byte[] mas;//массив из 100 элементов. Если квадрат черный, то mas[i] = 1, иначе = 0
    public byte num;
}
 
        private void TrainAll()
        {
            int index = (new Random()).Next(sample.Count);
 
            Random rand = new Random();
            for (int i = 0; i < 100; i++)
                weight[i] = (float)rand.NextDouble();//это веса для каждого квадрата. Здесь задаются начальные значения
 
            //циклы обучения
            for (int cycle = 0; cycle < 10000; cycle++)//10000 циклов обучения
            {
                float net = 0.0f;
                for (int i = 0; i < 100; i++)
                    net += sample[index].mas[i] * weight[i];//для каждого квадрата мы умножаем его число (0 - белый, 1 - черный) на вес текущего квадрата
 
                if (net < (sample[index].num + 1) * 10 && net >= (sample[index].num) * 10)//если ответ получается между данным промежутком, то нейросеть посчитала правильно и мы "поощряем" ее
                    Increase(sample[index]);
                else Decrease(sample[index]);//иначе "наказываем"
            }
        }
 
        void Increase(SampleObj samp)
        {
            for (int i = 0; i < 100; i++)
                if (samp.mas[i] == 1)
                    weight[i] += 0.5f;
        }
 
        void Decrease(SampleObj samp)
        {
            for (int i = 0; i < 100; i++)
                if (samp.mas[i] == 1 && weight[i] > 0)
                    weight[i] -= 0.5f;
        }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2016, 23:39
Ответы с готовыми решениями:

Не могу правильно обучить нейросеть с простой задачей [Python]
У меня есть программа на питоне, она должна определить кто на фото. Нужно узнать это я или мой...

Обучение нейронной сети, как обучать на множестве?
Только начал погружаться в тему, довольно осознанно усвоил метод обратного распространения ошибок,...

Как визаулизировать признаки, которая выделяет нейросеть?
Привет всем! Кто знает, как можно посмотреть, какие признаки выделяет нейросеть? Как их вывести...

Как показать во что преобразует многомерный вектор нейросеть?
Для функции двумерного нормализованного вектора z=f(A,B) по X строим A по Y строим B по Z...

Нейронные сети: на каких данных обучать?
Есть некоторая гистограмма. Хочу обучить нейронную сеть предугадывать, уйдет ли эта гистограмма...

1
Excalibur921
767 / 463 / 80
Регистрация: 12.10.2013
Сообщений: 3,115
13.11.2016, 00:08 2
Цифра не правильная, так сетка не нужна будет. Хватит switch case.
Нужна база данных картинок от руки а по хорошему + шум. Маловероятно что эксперт будет читать код.
Кстати что значит так… есть куча инфы по методам обучения в книгах. И есть спец сетки для картинок сверточные. Почитайте описание архитектуры сеток на сайте лекуна… погуглите MNIST первая ссылка. Читайте на английском там сотня статей где описание какие слои сколько как… аж с 1998 года =).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2016, 00:08

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

Как в экспертной системе обучать базу знаний что если в ней нету знания она сама его добавляла
Как в экспертной системе обучать базу знаний что если в ней нету знания она сама его добавляла ...

Как создать НейроСеть?
Помогите! Мне нужно создать простейшую нейросеть для врага(волка) - враг должен питаться оленями,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru