Автор: victorst А вы не рассматривали еще один тип реструктуризации - добавление или уничтожение нейронов? ... Может ткнете нас носом в такую разновидность ИНС в какой-нибудь умной книге? |
|
Сначала про добавление.
Классика - алгоритм каскадной корреляции и выросшие из него идеи растущих сетей.
Обзоры работ 90х годов - в
1. Campbell C. Constructive learning techniques for designing neural network systems / Neural Network Systems and Applications (C.Leondes ed.), Academic Press, 1997.
2. Kwok T., Yeung D. Constructive algorithms for structure learning in feedforward neural networks for regression problems / IEEE Trans. Neural Networks, 1999. Vol.8, №3. - pp.630-645.
Первый обзор покороче, второй сильно детальнее и обширнее, оба есть (ну, или были, ибо я себе качал) в интернете.
Особенность всего направления - при каждом добавлении нейрона и/или дообучении сети может потребоваться несколько раз просмотреть обучающую выборку. Т.е. синтез сети идёт оффлайновый. Ну и сетка получается аналогом многослойного персептрона (решение тех же задач, много слоёв - вот только связи между нейронами и слоями будут по-другому выстроены).
Другой вариант - сети SOINN / ESOINN. Это уже решение задач кластеризации без учителя, обучение м.б. онлайновое (для ESOINN), иерархия абстракций=кластеров м.б. двухуровневой (SOINN).
Ну и среди разных видов сетей адаптивного резонанса (ART) тоже есть растущие.
Теперь к удалению нейронов. Тут ситуация похуже (но похуже - только лишь применительно к желанию получить такую систему, которая будет получше отражать поведение биологических нервных систем). Надо вводить какой-то критерий чувствительности решения к выходному сигналу того или иного нейрона - и удалять те, к которым решение не чувствительно (но это уже будет оффлайн-процедурой, для расчёта чувствительности надо будет прогнать через сеть какую-то эталонную выборку), или вводить что-то типа индикатора срока давности активации этого нейрона (т.е. если нейрон давно не активировался - значит, задача какая-то нестационарная и ранее работавший нейрон стал не нужным, но ведь гипотезу эту о нестационарности мы просто субъективно вводим, и индикатором срока давности активации нейрона никак формально и чётко не проверяем).
Хотя для упрощения многослойных персептронов есть куча методов (как для выкидывания из них неинформативных входных сигналов, так и для отстрела избыточных нейронов или связей между ними) - но это таки именно оффлайновая процедура синтеза сети, с проверкой, чтобы после удаления очередного элемента/сигнала (и, возможно, дообучения сети) навык решения не упал катастрофически (поэтому и нужна какая-то эталонная выборка - для такого вот теста).