Обучение персептрона для распознавания рисунков 5x5 онлайн на Intellect

Воспользовались 520 раз
Обучение персептрона для распознавания рисунков 5x5 онлайн

Персептрон: обучение и распознавание рисунка

Поле 5x5 дает 25 входов. Можно обучить до 5 подписанных результатов.

Добавьте первый обучающий пример.

Выходы и веса сети

Память весов: 0 байт

Пять выходных нейронов соответствуют пяти возможным результатам. Связи окрашены по знаку веса: зеленый - положительный, красный - отрицательный.

Зеленая линия - положительный вес: сигнал усиливает следующий нейрон.
Красная линия - отрицательный вес: сигнал подавляет следующий нейрон.
Толщина и заметность линии показывают модуль веса: чем линия толще и ярче, тем сильнее влияние связи.
Подписи на линиях показывают сильнейшие веса; точный вес каждой связи доступен при наведении на линию. Клик по кружочку нейрона открывает его значения внизу.
Интерактивный учебный сервис показывает, как многослойный персептрон обучается распознавать простые рисунки на матрице 5x5. Нарисуйте образ, подпишите его, добавьте обучающие примеры и затем проверьте вероятности на пяти выходах сети.

Поделиться:



Помог ли вам этот ответ?
Нажмите оценку и напишите коротко почему. Так мы сможем сделать следующие ответы точнее и полезнее.
Насколько вы довольны ответом?
Ваш отзыв напрямую влияет на качество следующих подсказок и ответов.


Ваш вариант ответа для данного сервиса или заметили ошибку:

Сервис предназначен для наглядного изучения персептрона, многослойной нейронной сети и базового распознавания рисунков. Каждая клетка поля 5x5 является отдельным входом нейронной сети: закрашенная клетка передает значение 1, пустая клетка передает значение 0. Всего формируется 25 входных признаков. Такой набор чисел называется входным вектором. Например, простой крест, линия, угол или квадрат превращаются не в картинку как файл, а в последовательность из 25 чисел, с которой уже может работать персептрон.
Персептрон состоит из входного слоя, одного или нескольких скрытых слоев и выходного слоя. В данном учебном сервисе выходов всегда 5, потому что можно обучить до пяти разных результатов. Каждый выходной нейрон соответствует одной подписи рисунка: например "крест", "линия", "угол", "квадрат" или другой пользовательской метке. Пользователь может задать количество скрытых слоев и количество нейронов в скрытом слое. Минимальное число нейронов автоматически удерживается не ниже пяти и не ниже числа уже обученных классов, чтобы сеть имела достаточно нейронов для сравнения обученных образов.
Как работает нейрон в персептроне
Каждый нейрон получает несколько входных значений от предыдущего слоя. У каждой связи есть вес. Вес показывает, насколько сильно один нейрон влияет на другой. Положительный вес усиливает сигнал, отрицательный вес ослабляет или подавляет его. Нейрон вычисляет взвешенную сумму:
S = x1*w1 + x2*w2 + ... + xn*wn + b
где x1, x2, ..., xn - входные значения, w1, w2, ..., wn - веса связей, а b - смещение нейрона. Смещение позволяет нейрону активироваться не только при строго нулевом пороге, а гибко сдвигать границу принятия решения.
После вычисления суммы применяется функция активации. В скрытых слоях используется сигмоидная функция:
f(S) = 1 / (1 + e^(-S))
Сигмоида переводит любое число в диапазон от 0 до 1. Если сумма сильно отрицательная, выход нейрона близок к 0. Если сумма сильно положительная, выход близок к 1. Благодаря функции активации сеть может обучаться нелинейным зависимостям, а не только простому линейному разделению.
Как происходит обучение
Когда пользователь рисует образ на матрице 5x5, вводит подпись и нажимает добавление примера, сервис сохраняет входной вектор и правильный класс. Если подпись новая, она занимает один из пяти выходных нейронов. После этого сеть обучается на всех сохраненных примерах.
Во время обучения выполняется прямой проход: значения 25 входов передаются в первый скрытый слой, затем в следующий скрытый слой, если он есть, и далее на выходной слой. На выходном слое применяется softmax. Эта функция превращает числовые оценки выходных нейронов в вероятности, сумма которых равна 100% по обученным классам. Поэтому сервис может показать не только один выбранный ответ, но и распределение уверенности по всем обученным результатам.
Затем вычисляется ошибка. Для правильного класса целевое значение равно 1, для остальных классов - 0. Если сеть дала низкую вероятность правильному классу или высокую вероятность неправильному, ошибка будет больше. После этого запускается обратное распространение ошибки. Сервис рассчитывает, как каждый вес повлиял на итоговую ошибку, и немного изменяет веса и смещения в сторону уменьшения ошибки. Этот процесс повторяется много эпох, то есть сеть несколько раз проходит по обучающим примерам.
Идея обучения проста: если рисунок был подписан как "крест", то веса, которые помогают выходу "крест" активироваться на похожем рисунке, усиливаются. Веса, которые ошибочно усиливают другие выходы, ослабляются. После множества повторений сеть начинает лучше отличать один обученный рисунок от другого.
Как проходит распознавание
В режиме распознавания пользователь рисует новый рисунок на той же матрице 5x5. Этот рисунок снова преобразуется в 25 чисел. Затем выполняется только прямой проход по уже обученной сети: входы переходят через скрытые слои, на каждом нейроне считаются веса, сумма и функция активации, а на выходе рассчитываются вероятности. Самый большой процент показывает наиболее вероятный результат, но остальные выходы тоже отображаются. Это важно для обучения: можно видеть, насколько сеть уверена и с какими классами она путает текущий рисунок.
Визуализация сети показывает связи между нейронами и соответствующие веса. Зеленые линии обозначают положительные веса, красные - отрицательные. Чем сильнее вес, тем заметнее влияние связи. Возле выходных нейронов отображаются подписи и вероятности, поэтому можно одновременно наблюдать и математическую структуру сети, и результат распознавания.
Такой учебный персептрон не предназначен для промышленного распознавания изображений, но хорошо показывает основные принципы машинного обучения: входные признаки, веса, функцию активации, обучение по ошибке, обратное распространение и вероятностное распознавание образов.

Алгоритмы Программирование

Комментарии

Оставить комментарий

Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply