- •Реферат
- •Содержание
- •1.Основная часть
- •1.1.Введение
- •1.2. Теоретическая часть: искусственные нейронные сети История возникновения
- •Общие принципы
- •Обучение нейронных сетей
- •Подходы к обучению
- •Обучение с учителем
- •Обучение без учителя
- •Методы обучения нейронных сетей с учителем Обучение однослойного персептрона
- •Метод обратного распространения ошибки
- •Градиентные методы
- •Эвристические методы
- •Методы обучения без учителя Обучение на основе корреляции
- •Сети pca
- •Сети ica
- •Сети с самоорганизацией на основе конкуренции
- •Алгоритм wta и сети Кохонена
- •Сети, решающие задачу распознавания образов
- •Когнитрон Архитектура
- •Обучение
- •Использование латерального торможения в обучении
- •Неокогнитрон
- •Архитектура
- •Структура слоев неокогнитрона Входной слой u0
- •Слой извлечения контраста ug
- •Обучение неокогнитрона
- •Обучение с учителем
- •Обучение без учителя промежуточных слоев
- •Обучение последнего слоя
- •Задача поиска образца на изображении
- •Структура Synapse (синаптическая связь)
- •Класс Neurolayer
- •Его наследники – классы cLayer и Slayer
- •Класс нейросети (Neuronet)
- •Преимущества и недостатки ооп-подхода
- •Производительность системы
- •Модификация системы
- •Производительность модифицированной системы
- •Алгоритм Создание сети
- •Расчет значений нейронов
- •Обработка данных
- •Обучение слоя s1 сети с учителем
- •Обучение слоя Sl без учителя
- •Обучение слоя sn
- •Поиск образцов на изображении
- •Анализ результатов Параметры реализованной системы
- •Быстродействие системы
- •Результат поиска на изображении
- •Применимость метода
- •Преимущества и недостатки системы
- •Дальнейшие возможности
- •2.ЭкономИческая часть
- •2.1. Введение
- •2.2. Сетевой график работ
- •Pert-анализ работ проекта
- •Дисперсия оценки сроков проекта
- •2.3. Затраты на создание проекта
- •Материальные затраты Расходные материалы
- •Затраты на электроэнергию
- •Заработная плата участников проекта
- •Социальные отчисления
- •Амортизационные отчисления
- •Прочие расходы
- •2.4. Выводы
- •3.Охрана труда и окружающей среды
- •3.1. Введение
- •Характеристики помещения
- •Оборудование
- •3.2. Анализ условий труда Санитарно-гигиенические факторы
- •Микроклимат
- •Освещение
- •Характеристики рабочего места
- •Электроопасность
- •Вибрация
- •Электромагнитные излучения
- •Эргономика рабочего места
- •Психофизиологические факторы
- •3.2. Расчет
- •Расчет эквивалентного шума и дозы для непостоянного шума
- •Вывод об уровне шума в помещении
- •3.3. Выводы
- •Заключение
- •Список использованных источников
- •Приложение Исходные коды основных классов
Расчет значений нейронов
Входное изображение преобразуется в массив значений. Они заносятся в нейроны Input сети в качестве их значений.
Сеть запускает активацию всех слоев последовательно.
Нейронный слой запускает функции активации всех нейронов, передавая им ссылки на нейроны предыдущего слоя и на синапсы. Функция активации нейрона выбирается в соответствии со слоем.
Для расчета значения нейрон обращается к синапсам, соответствующим его положению в сети, и через указанные в них сдвиги получает значения нейронов предыдущего слоя в своей окрестности.
Для S-слоя вначале считаются значения V-нейронов, а затем с их использованием – значения остальных нейронов.
Обработка данных
Входное изображение в формате RGB переводится в grayscale, затем преобразуется в массив чисел со значениями в интервале [0, 1]:
sample[j*image.width()+i] = (255-qGray(image.pixel(i, j)))/255
Значение нейронов слоя распечатывается в виде изображений, полученных обратным преобразованием:
255-100*((float)this->neurons[k* NX* NY+i* NY+j].getValue()/abs)
abs – нормализующее значение, является максимальным значением нейрона, для попадания в интервал [0,1].
Обучение слоя s1 сети с учителем
Перед обучением генерируются обучающие примеры: горизонтальный отрезок, повернутый под разными углами на белом фоне. Отрезок на примере k повернут на угол (180o/K), где K – количество плоскостей на слое S1. Количество примеров равно K.
Обучение выполняется для каждой плоскости слоя S1.
На вход подается обучающий пример (в виде двумерного массива значений) и номер k обучаемой плоскости, а также константа скорости обучения.
Значения заносятся в массив input.
Активируются слои C0 и Sl.
Для слоя Sl вызывается функция обучения с учителем, куда передается ссылка на слой C0.
Среди нейронов поданного слоя C0 выбираются нейроны с максимальным значением (лежащие на отрезке), из них берется случайный нейрон (для правильной формы окружения это центральный нейрон либо его ближайшие соседи). От его координаты (i1, j1) отсчитываются координаты зерна с учетом сдвига слоев друг относительно друга: (i1+rc+rs-1; j1+rc+rs-1). rc – радиус окружения на слое C0, rs – радиус окружения слоя S1. Номер k обучаемой плоскости берется из параметров функции.
Для зерна с найденными координатами (i0; j0; k0) применяется функция изменения весов. Веса синапсов, соответствующих этой плоскости, изменяются по формуле изменения весов, затем рассчитывается значение веса bk подавляющей связи этой плоскости.
Обучение слоя Sl без учителя
На вход сети передается обучающий пример в виде двумерного массива значений и константы скорости q и q2; q соответствует обучению нейрона-победителя, а q2 используется для обучения плоскостей, где нет нейронов-победителей. Иногда q2 берется равной 0 (это увеличивает специализацию нейронов, но убирает вероятность того, что сеть, не имеющая достаточной дифференциации значений сможет начать обучение).
В массив input заносятся входные данные.
Последовательно активируются слои сети начиная с C0 и заканчивая Sl. Для слоя Sl вызывается функция обучения без учителя.
В цикле для всех плоскостей слоя производится процесс поиска нейрона-победителя.
Все нейроны плоскости k проверяются на право быть кандидатом в победители: если нейрон имеет максимальное значение в своей конкурентной области, он попадает в список maxResponse.
Из списка maxResponse выбирается максимальный элемент; он заносится в список seeds в качестве элемента k. Если maxResponse пуст, seeds[k]=-1. Если найдено два равных кандидата, в seeds может быть занесен любой из них.
Для всех элементов массива seeds выполняется процедура обучения:
Если элемент seeds[k]≥0 , производится обучение нейрона плоскости k с этим номером. Для обучения берется константа скорости q.
Если элемент seeds[k]=-1, обучается центральный нейрон плоскости k, скорость обучения берется равной q2.
