Библиотека для моделирования нейронных сетей глубокого обучения.
Разрабатывается на языке Object Pascal Delphi XE.

Основные функции:

Создание и обучение математических моделей нейронных сетей на основе перцептронов глубокого обучения (Deep Learning) методом обратного распространения ошибки, различной архитектуры. Архитектура нейронной сети может быть достаточно вариативна, она состоит из различных слоев нейронов, соединенных между собой матрицами связей. Основные структурные единицы нейронной сети реализованы в виде объектов:
  1. Нейронная сеть (TNeuronalNet) – объект, представляющий из себя список объектов (TObjectList) слоев из которых состоит нейросеть в порядке их расположения от входного слоя к выходному. Принцип расположения по порядку распространения активности нейронов сети. Методы объекта TNeuronalNet позволяют добавлять (AddLayer) и удалять (DeleteLayer) слои , а также подсети (AddSubnet, DeleteSubnet), представляющие отдельный список свойство Subnets (см. объект подсеть TSubnet). Сначала активизируются входные слои, за ними скрытые и в самом конце выходные (метод Activate). Обучение (обратное распространение ошибки) происходит в обратном порядке, от выхода ко входу (метод Learn). Последовательная активация и обучение реализуются методами (Activate и Learn) объекта TNeuronalNet в которых последовательно вызываются соответствующие методы слоев.
  2. Объект Слой (TLayer) – представляет список нейронов, входящих в этот слой. Все нейроны слоя активируются и обучаются одновременно, используя методы слоя для вызова методов активации (Activate) и обучения (Learn) каждого нейрона. Также, методы объекта позволяют добавлять нейроны в список и удалять их. Типы слоев: InputL – входной слой, HiddenL – выходной слой, ContextInputL – Контекстный слой на который приходит возбуждение с выходного слоя на предыдущем цикле, ContextOutputL – Выходной контекстный слой который на следующем цикле будет возбуждать входной контекстный, ManageL – управляющий слой, содержащий нейроны, имеющие фиксированные значения активации для управления порогами активации нейронов различных слоев. Также существуют методы добавления и удаления нейронов CreateNeuron, DeleteNeuron, CreateNeurons(NumberNeurons). Методы добавления связей с нейронами другого слоя - ConnectToLayer(Layer).
  3. Объект подсеть (TSubNet) – также представляет список нейронов, которые могут относиться к разным слоям от выходных до входных. У каждой такой подсети есть относящиеся к ней выходные нейроны, относящиеся к определенным выходным слоям, которые определяют ошибку, распространяющуюся только по нейронам данной подсети. Если нейрон относится к данной подсети, его входные связи обучаются относительно ошибки, распространяемой от выходных нейронов только данной подсети. Если нейрон не относится ни к одной подсети, его связи при обучении не модифицируются. Любой нейрон может относиться к нескольким подсетям и обучаться от ошибок всех этих подсетей.
  4. Объект нейрон (TNeuron) – представляет список всех входных связей (объектов TConnection) от данного нейрона. В нем также содержаться методы осуществляющие активацию (Activate), распространение ошибки (SendSigma) и обучение (модификацию связей) (Learn). Также объект TNeuron содержит список значений ошибок (равный списку подсетей), за которые отвечал данный нейрон (вычисленные при использовании процедуры обратного распространения ошибки) полученные от выходов различных подсетей.
  5. Объект связь (TConnection) – содержит величину связи, ссылку на объект нейрон-владелец и объект нейрон предыдущего слоя с которым владелец связан.


Загрузка библиотеки NeuronalNet.pas для созлания нейронных сетей


  • Загрузить