Leabra - Leabra

Leabra означает локальный, ошибочный и ассоциативный, биологически реалистичный алгоритм. Это модель из учусь что является балансом между Hebbian и ошибочное обучение с другим сеть -производные характеристики. Эта модель используется для математического прогнозирования результатов на основе входных данных и предыдущих влияний обучения. Эта модель сильно зависит от дизайна и моделей нейронных сетей. Этот алгоритм является алгоритмом по умолчанию в возникающий (преемник PDP ++) при создании нового проекта и широко используется в различных симуляциях.

Hebbian обучение выполняется с использованием условный анализ главных компонент (CPCA) алгоритм с поправочным коэффициентом для разреженных ожидаемых уровней активности.

Обучение на основе ошибок выполняется с использованием GeneRec, который является обобщением алгоритм рециркуляции, и приближает Рецидивирующее обратное распространение Альмейды – Пинеды. Используется симметричная версия GeneRec со средней точкой, которая эквивалентна контрастивное изучение хеббского языка алгоритм (CHL). См. O'Reilly (1996; Neural Computing) для получения более подробной информации.

Функция активации представляет собой приближение точечного нейрона с дискретными всплеск и непрерывный вывод кода скорости.

Ингибирование на уровне слоя или группы единиц может быть вычислено непосредственно с использованием k-победители получают все (KWTA), создавая разреженные распределенные представления.

Чистый ввод вычисляется как среднее, а не сумма, по соединениям на основе нормализованных сигмоидально преобразованных значений веса, которые подлежат масштабированию на уровне группы соединений для изменения относительных вкладов. Автоматическое масштабирование выполняется для компенсации различий в ожидаемом уровне активности в разных прогнозах.

Документацию по этому алгоритму можно найти в книге «Вычислительные исследования в когнитивной нейробиологии: понимание разума путем моделирования мозга», опубликованной MIT Press.[1] и в Новая документация

Обзор алгоритма Лебра

Здесь приводится псевдокод Leabra, который показывает, как именно части алгоритма, описанные более подробно в последующих разделах, сочетаются друг с другом.

Переберите минус и плюс фазы урегулирования для каждого события. o В начале настройки для всех блоков: - Инициализировать все переменные состояния (активация, v_m и т. д.). - Применение внешних шаблонов (зажим входа в минус, вход и выход в плюс). - Вычислить условия масштабирования сетевого входа (константы, вычисленные здесь, чтобы сеть могла динамически изменяться). - Оптимизация: вычислять чистый входной сигнал один раз из всех статических активаций (например, жестко закрепленных внешних входов). o Во время каждого цикла установления для всех незафиксированных блоков: - Вычислить возбуждающий сетевой вход (g_e (t), также известный как eta_j или net) - Оптимизация на основе отправителя путем игнорирования неактивных. - вычислить кВт ингибирование для каждого уровня на основе g_i ^ Q: * Сортировка единиц на две группы на основе g_i ^ Q: верхний k и оставшийся k + 1 -> n. * Если базовый, найдите k и k + 1-е место. Если на основе среднего, вычислите среднее значение 1 -> k & k + 1 -> n. * Установить тормозную проводимость g_i из g ^ Q_k и g ^ Q_k + 1 - Вычислить активацию точечного нейрона, сочетающую возбуждающий вход и торможение o После установления для всех единиц запишите окончательные установочные активации как отрицательную или положительную фазу (y ^ -_ j или y ^ + _ j). После обеих фаз обновите веса (на основе значений линейных текущих весов) для всех соединений: o Вычислить ошибочный вес меняется с КХЛ с мягким ограничением веса o Вычислить Hebbian вес меняется с CPCA от активаций плюс-фазы o Вычислить изменение веса нетто как взвешенную сумму вызванного ошибками и Hebbian o Увеличивать веса в соответствии с изменением веса нетто.

Реализации

Emergent это оригинальная реализация Leabra, написанная на C ++ и сильно оптимизированная. Это самая быстрая реализация, подходящая для построения больших сетей. Несмотря на то что возникающий имеет графический пользовательский интерфейс, он очень сложен и требует сложного обучения.

Если вы хотите подробно разобраться в алгоритме, вам будет легче читать неоптимизированный код. Для этого ознакомьтесь с Версия MATLAB. Также есть Версия R доступны, которые можно легко установить через install.packages ("leabRa") в R и имеет краткое введение к тому, как используется пакет. Версии MATLAB и R не подходят для построения очень больших сетей, но их можно быстро установить и (с некоторым опытом программирования) легко использовать. Кроме того, они также могут быть легко адаптированы.

Специальные алгоритмы

Рекомендации

  1. ^ О'Рейли, Р. К., Мунаката, Ю. (2000). Вычислительные исследования в когнитивной нейробиологии. Кембридж: MIT Press. ISBN  0-19-510491-9.CS1 maint: несколько имен: список авторов (связь)

внешняя ссылка