- •1. Кризис программирования
- •2. Понятие жизненного цикла по
- •3. Требования к технологии проектирования
- •4. Понятия профессионального программирования
- •5. Проект и команда
- •6. Задача профессионального программирования
- •7. Алгоритмы
- •8. Модели и моделирование
- •9. Структурный подход
- •9.1. Проблема сложности
- •9.2. Сущность структурного подхода
- •9.3. Метод функционального моделирования (sadt)
- •9.3.1. Состав функциональных моделей
- •9.3.2. Методика построения модели
- •9.4. Метод моделирования процессов - потоков данных (dfd)
- •9.4.1. Общая концепция
- •9.4.2. Состав диаграмм потоков данных
- •13. Венгерская нотация
- •14. Методология и парадигма программирования
- •15. Современные методологии программирования
- •16. Методология императивного программирования
- •17. Методология объектно-ориентированного программирования
- •18. Методология функционального программирования
- •19. Методология логического программирования
- •20. Методология программирования в ограничениях
- •21. Методология структурного императивного программирования
- •22. Методология параллельного императивного программирования
- •23. Методология нейросетевого программирования
- •23.1. Модель нейрона с линейной функцией активации
- •23.2. Модель нейрона с радиальной функцией активации
- •23.3. Разработка нейросетевой модели
- •24. Основные типы ошибок в программах
- •25. Отладка и тестирование
- •26. Режимы работы компилятора Delphi для поиска ошибок
- •27. Задание режимов работы отладчика с помощью переключающих директив
- •28. Пользователи и их поддержка
- •29. Поддержка программиста: общие требования
- •29.1. Пролог модуля
- •29.2. Проектная документация
- •29.3. Оформление текста программы
- •30. Поддержка конечного пользователя
- •31. Технология программирования графики
- •31.1. Графическая подсистема оболочек Win32/64
- •31.2. Графические средства Delphi
- •31.3. Проектирование интерфейса с пользователем: компоненты стандартных диалогов
- •32.Технология компонентного программирования
- •32.1. Технология com
- •32.1.1. Общая концепция
- •32.1.2. Интерфейс com
- •32.1.3. Сервер com
- •32.2. Технология ole
- •32.2.1 Суть и содержание ole
- •32.2.2.Терминология ole
- •32.2.3. Автоматизация ole
- •32.2.4. Структурированная память
- •32.3. Технология corba
- •32.4. Технология Java
- •32.5.Технология .Net
- •33. Технология описания аппаратуры
- •Input clock, reset, en;
- •If(!reset)
- •34. Технология коллективной разработки
- •34.1. Авторская разработка
- •34.2. Коллективная разработка
- •34.2.1. Технические командные роли
- •34.2.2. Психологические командные роли
- •34.2.3. Типы совместной деятельности
- •34.3. Общинная модель разработки
- •35. Технология оценки качества по
- •35.1. Подходы к оценке качества по
- •35.2. Характеристики качества по
- •35.3. Оценка качества процесса разработки
- •35.3.1. Модель зрелости процесса разработки по
- •35.3.2. Определение возможностей и улучшение процесса создания по
- •35.4. «Достаточно хорошее» по
- •33.5. Стандартизация информационных технологий
- •Международные организации, входящие в структуру оон.
- •Промышленные профессиональные или административные организации.
- •Промышленные консорциумы.
- •36. Инструментальные средства поддержки некоторых технологических подходов
- •36.1. Инструментальные системы
- •36.1.1. Инструментальные среды программирования
- •36.1.2. Средства автоматизации разработки программ (case-средства)
- •36.1.3. Интегрированные среды
- •36.1.4. Репозитории проекта
- •36.2. Поддержка коллективной разработки: системы управления версиями
- •37. Организация диалогов
- •38. Защита программного кода
23.1. Модель нейрона с линейной функцией активации
Модель нейрона базируется на использовании функций вида
f(X) = x1w1 + x2w2 + … + xRwR + b,
которые определяют гиперплоскости, разделяющие на части гиперпространство аргументов x1, x2, …, xR.
В двумерном случае (при R = 2) нейрон можно описать как взвешенный сумматор на два входа.
В данном случае прямая x1w1 + x2w2 + b разделит плоскость на две полуплоскости y0 и y1.
Принадлежность некоторой точки T конкретному полупространству определяется знаком взвешенной суммы на выходе сумматора – n, который с помощью функции активации трансформируется в значение на выходе сети а (в приведенном случае – 1 или 0).
Известно несколько вариантов применяемых функций активации. Наиболее популярны пороговая, линейная и сигмоидальная.
Искусственные нейронные сети с применением таких нейронов обычно проектируются многослойными и могут разделять пространство аргументов одним из следующих способов.
23.2. Модель нейрона с радиальной функцией активации
На рисунке показана радиальная базисная сеть с R входами.
Функция активации для радиального базисного нейрона имеет вид:
Вход функции активации определяется как модуль разности вектора весовых коэффициентов C и вектора входа X, в квадрате, разделённый на квадрат ширины зоны активации:
График радиально-симметричной функции активации имеет вид:
Эта функция имеет максимум, равный 1, когда вход равен 0. Когда расстояние между векторами C и Х уменьшается, выход радиальной базисной функции увеличивается.
Как правило, в качестве меры используется Евклидово расстояние между векторами: |
|
Таким образом, радиальный базисный нейрон действует как индикатор, который формирует значение 1, когда выход X идентичен вектору весов C (т.е. L = min).
Смещение 1/ позволяет корректировать чувствительность нейрона radbas. |
|
Пример. Возможно применение радиальных сетей для аппроксимации функциональных зависимостей.
qi, (i=1,2,3) – выходы нейронов скрытого слоя сети,
w = 1/mod(),
q – выход единственного нейрона выходного слоя сети.
23.3. Разработка нейросетевой модели
На основании приведенных моделей искусственных нейронов формируется искусственная нейронная сеть с организацией множественных внутренних связей. Далее она превращается в адекватную модель с требуемым поведением и реализуется программно или аппаратно.
Задача программиста при этом состоит в следующем:
Определить размерность входного и выходного векторов для моделируемого объекта.
Сформировать (получить) совместно со специалистом из предметной области обучающую выборку. Обучающая выборка задается как набор пар вида «значение сигналов на входе объекта – соответствующее значение выходов».
Разделить обучающую выборку на две части: для тестирования и для обучения.
Подобрать вид искусственной нейронной сети и задать количество нейронов.
Обучить сеть (настроить весовые коэффициенты W и b – для линейных, и C и 1/ – для радиальных нейронов) и протестировать её на адекватность поведения моделируемому объекту с помощью частей выборки, полученных в п. 3.
При неадекватном поведении модели повторить п.п. 3÷5.
Реализовать полученную модель.
Для обучения искусственных нейронных сетей применяется ряд алгоритмов, в основном базирующихся на идее обратного распространения ошибки.
Более подробно структуры, принципы формирования, алгоритмы обучения нейронных сетей и т.д. изучаются в курсе «Основы искусственного интеллекта».