📘 О чем эта работа
В комплект входят две лабораторные: обучение однослойного перцептрона с несколькими выходами и исследование влияния активационных функций в многослойной сети. Объект — нейронные сети, предмет — методы обучения и выбор функций активации для распознавания бинарных изображений символов (формат 5×7).
📚 Что внутри
Работа содержит полный исходный код на Python (файлы с реализацией обучения и тестирования), наборы бинарных образов и результаты тестов. Конкретно:
- Набор входов: Nix=5, Niy=7 (вектор длины Ni=35) и обучающие/тестовые образцы для символов 'N','P','1','2','3','7' (матрицы 5×7 в виде одномерных массивов).
- Параметры обучения: Alpha=2, Nju=0.2, Beta варьируется (1–2), noiseLevel=0.15/0.25, noiseTrain=0–0.5. Рассмотрены конфигурации Nout=2 и Nout=6; для двухслойной сети вычисляется скрытый слой N1=int((Ni+Nout)/2).
- Активационные функции и их реализации: логистическая (sigmoid), пороговая (Heaviside), линейная, гиперболический тангенс (с масштабированием в коде) и ReLU. Для каждой функции приведены отдельные процедуры вычисления выходов и соответствующие алгоритмы обновления весов (trainLog, trainHT, trainReLU, trainLin и т.д.).
- Функции утилит: инициализация весов, добавление шума в образ (noise), визуализация образа в консоли (showImage), копирование векторов (vvod).
- Результаты экспериментов: указаны числа циклов обучения и примеры выходных векторов после обучения и при подаче шума (например, для Nout=2 при noiseLevel=0.15 — ~1974 эпохи; для разных конфигураций наблюдались значения Epoch ≈ 1974, 1992, 2027, 2023). Приведены числовые выходы сети для каждой тестовой метки (вероятностные значения для выходов сети при разных режимах).
- Примеры логов и тестов с шумом: показаны визуальные представления образов с шумом и соответствующие значения выходов сети (демонстрация устойчивости к искажениям).
📊 Для кого подходит
Материал пригоден студентам и преподавателям курсов по машинному обучению, нейросетям и прикладной информатике. Подходит для выполнения лабораторных заданий 2–5 курса, демонстрации влияния функции активации и подбора гиперпараметров на обучение и обобщающую способность сети.
✨ Особенности
Готовые исполняемые скрипты на Python, визуализация образов в текстовом виде, наглядные настройки: смена числа выходов (Nout), уровня шума (noiseLevel), доли шумных итераций (noiseTrain), скорости обучения (Nju) и типа активации. Включены альтернативные алгоритмы обновления весов для разных функций активации, а также реализация моментовых поправок (Mju) для многослойной сети.
❓ Частые вопросы
Подойдет ли для моего ВУЗа?
Структура лабораторных модулей и исходные коды соответствуют стандартным требованиям по программированию и экспериментальной части: есть входные данные, алгоритм, выводы и примеры тестов.
Можно ли адаптировать?
Да. Код модульный: легко заменить набор образов, увеличить разрешение, сменить функцию активации или подобрать другие гиперпараметры (Alpha, Nju, Beta) для повторных экспериментов.
Практическая ценность: быстрый старт для учебных экспериментов с нейросетями, демонстрация влияния шума и выбора активации на сходимость и распознавание, готовые примеры логов с наблюдаемыми Epoch и выходными векторами.