- •Нейрокомпьютинг
- •Как мозг обрабатывает информацию Из чего построен мозг
- •Структура и функции мозга
- •Восприятие
- •Мышление
- •Мозг, компьютеры и нейрокомпьютеры Право-лево-полушарный симбиоз
- •Встречная эволюция мозга и компьютеров
- •Эволюция компьютеров: от вычислений - к распознаванию образов Первые компьютеры: супер-калькуляторы
- •От символов - к образам
- •От вычислений - к обработке символов
- •Символы и образы, алгоритмы и обучение Трудности современной схемотехники
- •Специфика образной информации
- •Нейрокомпьютеры
- •Вездесущие умные нейрочипы
- •Операционные системы будущего
- •Современные нейрокомпьютеры Элементная база нейрокомпьютеров
- •Сравнение стоимости обычных и нейро-вычислений
- •Преимущества нейро-эмуляторов
- •Готовые нейро-пакеты
- •Инструменты разработки нейроприложений
- •Готовые решения на основе нейросетей
- •Нейросетевой консалтинг
- •Рынок нейропродукции
- •Какие задачи решают нейросети
- •Где применяются нейросети
- •Парадигмы нейрокомпьютинга Что такое парадигмы
- •Коннекционизм
- •Локальность и параллелизм вычислений
- •Программирование: обучение, основанное на данных
- •Универсальность обучающих алгоритмов
- •Классификация базовых нейроархитектур Типы обучения нейросети
- •Архитектура связей
- •Классификация по типу связей и типу обучения (Encoding-Decoding)
- •Нейрон - классификатор
- •Выбор функции активации
- •Двухслойные персептроны
- •Персептрон Розенблатта
- •Байесовский подход
- •Принцип максимального правдоподобия (maximum likelihood)
- •Принцип минимальной длины описания (minimum description length)
- •Градиентное обучение
- •Метод обратного распространения ошибки
- •Эффективность алгоритма back-propagation
- •Использование алгоритма back-propagation
- •Вычислительная сложность обучения
- •Ошибка аппроксимации
- •Переобучение
- •Ошибка, связанная со сложностью модели
- •Оптимизация размера сети
- •Валидация обучения
- •Ранняя остановка обучения
- •Прореживание связей
- •Конструктивные алгоритмы
- •Постановка задачи
- •Правило обучения Хебба
- •Правило обучения Ойа
- •Постановка задачи
- •Необходимость взаимодействия нейронов
- •Самообучающийся слой
- •Сравнение с традиционным статистическим анализом
- •Нелинейный анализ главных компонент Целевая функция
- •Автоассоциативные сети
- •Предикторы
- •Латеральные связи
- •Победитель забирает все
- •Алгоритм обучения соревновательного слоя нейронов
- •Кластеризация и квантование
- •Оценка вычислительной сложности обучения
- •Победитель забирает не все
- •Алгоритм Кохонена
- •Аппроксиматоры с локальным базисом
- •Гибридное обучение
- •Симметричность связей
- •Асинхронная динамика
- •Метрика пространства состоянний
- •Энергия состояния
- •Ассоциативная память
- •Обучение сети. Правило Хебба
- •Выделение сигнала из шума
- •Минимальный базис
- •Пример: поиск промоторов в днк
- •Активная кластеризация
- •Анализ голосований
- •Генетические алгоритмы
- •Метод муравьиных колоний
- •Максимизация энтропии как цель предобработки
- •Типы нечисловых переменных
- •Кодирование ординальных переменных
- •Кодирование категориальных переменных
- •Отличие между входными и выходными переменными
- •Индивидуальная нормировка данных
- •Совместная нормировка: выбеливание входов
- •Понижение размерности входов методом главных компонент
- •Восстановление пропущенных компонент данных
- •Понижение размерности входов с помощью нейросетей
- •Квантование входов
- •Линейная значимость входов
- •Нелинейная значимость входов. Box-counting алгоритмы
- •Последовательное добавление наиболее значимых входов
- •Формирование признакого пространства методом ортогонализации
- •Формирование оптимального пространства признаков
- •Кому нужно предсказывать рынок?
- •Можно ли предсказывать рынок?
- •Технический анализ и нейронные сети
- •Метод погружения. Теорема Такенса
- •Эмпирические свидетельства предсказуемости финансовых рядов
- •Формирование входного пространства признаков
- •Выбор функционала ошибки
- •Обучение нейросетей
- •Способы погружения временного ряда
- •Понижение размерности входов: признаки
- •Метод искусственных примеров (hints)
- •Связь предсказуемости с нормой прибыли
- •Выбор функционала ошибки
- •Обучение нейронной сети
- •Прореживание нейронной сети
- •Извлечение правил
- •Исправление данных
- •Рейтинг корпоративных облигаций
- •Оценка акций
- •Исторические корни
- •Нейросетевое предсказание банкротств
- •Обсуждение
- •Постановка задачи
- •Данные о российских банках
- •Сечения
- •Линейное сжатие информации - метод главных компонент
- •Нелинейное сжатие информации - карты Кохонена
- •Расположение на карте банков с отозванной лицензией
- •Раскраски карты Кохонена
- •Карта размеров банков
- •Балансовые показатели
- •Обсуждение
- •Являются ли нейронные сети языком описания?
- •В чем различие нейронных сетей и статистики?
- •Что лучше, статистические методы или нейронные сети?
- •Почему статистики ревнуют специалистов по нейронным сетям, а не наоборот?
- •Перекрестное опыление.
- •Практические выводы
- •Сети интервальных нейронов
- •Элементы нечеткой логики
- •Нечеткие нейроны
- •Извлечение правил if-then
- •Адаптация функций принадлежности
- •Стохастические нейроны
- •Приближение среднего поля
- •Фазовые переходы
- •Сеть Хопфилда с Хеббовскими связями
Готовые нейро-пакеты
Это законченные независимые программные продукты, предназначенные для широкого класса задач, в основном - для предсказаний и статистической обработки данных. Большинство из имеющихся на рынке нейропакетов имеет дружественный интерфейс пользователя, не требующий знакомства с языками программирования.
Множество нейро-эмуляторов начального уровня можно найти в Internet как shareware или freeware. Это, обычно, многослойные персептроны с одним или несколькими правилами обучения. Исключение составляет вполне профессиональный Штутгартский симулятор с большим набором возможностей, работающий, правда, только на UNIX-машинах. Коммерческие пакеты отличаются от свободно распространяемых большим набором средств импорта и предобработки данных, дополнительными возможностями по анализу значимости входов и оптимизации структуры сети. Стоимость коммерческих эмуляторов - масштаба $1000. Как правило, такие пакеты (BrainMaker Professional, NeuroForecaster, Лора-IQ300) имеют собственный встроенный блок предобработки данных, хотя иногда для этой цели удобнее использовать стандартные электронные таблицы. Так, нейро-продукты группы нейрокомпьютинга ФИАН встраивается непосредственно в Microsoft Excel в качестве специализированных функций обработки данных. При этом всю предобработку данных и визуализацию результатов можно проводить стандартными средствами Excel, который, кроме того, имеет богатый и расширяемый набор конверторов для импорта и экспорта данных.
Такие пакеты нацелены на решение информационных задач в диалоговом режиме - при непосредственном участии пользователя. Они не применимы в условиях потоковой обработки данных. Кроме того, они не приспособлены для разработки сложных систем обработки данных, состоящих из многих блоков, содержащих, скажем, сотни нейросетей, адаптивно настраивающихся и дообучающихся на вновь поступающих данных. Разработка таких "серьезных" систем требует специального инструментария.
Инструменты разработки нейроприложений
Главное, что отличает этот класс программного обеспечения - способность генерировать "отчуждаемые" нейросетевые продукты, т.е. генерировать программный код, использующий обученные нейросети для обработки данных. Такой код может быть встроен в качестве подсистемы в любые сколь угодно сложные информационные комплексы.8
Примерами подобных систем, способных генерировать исходные тексты программ являются NeuralWorks Professional II Plus (стоимостью от $3000) фирмы NeuralWare и отечественный Neural Bench (нейро-верстак). Последний интересен, кроме прочего, тем, что может генерировать коды на многих языках, включая Java. Такие Java-апплеты могут использоваться для организации различного рода сервисов в глобальных и локальных сетях. Удобным инструментом разработки сложных нейросистем является MATLAB с прилагающимся к нему нейросетевым инструментарием, органично вписавшимся в матричную идеологию этой системы. MATLAB предоставляет удобную среду для синтеза нейросетевых методик с прочими методами обработки данных (wavelet-анализ, статистика, финансовый анализ и т.д.). Разработанные в системе MATLAB приложения могут быть, затем перетранслированы в C++.
Подобные средства разработки используются фирмами, в частности, для создания основанных на нейросетевой обработке данных готовых решений в различных областях.
