Вестник МГТУ, 2023, Т. 26, № 4.

Вестник МГТУ. 2023. Т. 26, № 4. С. 472-488. DOI: https://doi.org/10.21443/1560-9278-2023-26-4-472-488 Результаты и обсуждение На основании вышеизложенного можно сделать вывод, что сеть для поставленной задачи строится без особых усилий и достигаются вполне удовлетворительные результаты по точности прогноза. Результаты целесообразно улучшить посредством вариации действий на различных этапах процесса, но это требует более глубокого погружения в нейросети как самой проблемы, так и конкретной технологии решения. Нейронная сеть фактически вырабатывает матрицы перехода от одного слоя к другому, порядок этих матриц зависит от размера соседних слоев. В нашей сети переход от входа к первому скрытому слою требует создания матрицы размером M(8х16), чтобы при умножении ее справа на вектор-столбец входов V(16x1) получить вектор V(8х1), являющийся вектором входов первого скрытого слоя. Матрица, о которой идет речь, называется весовой. Но реальность несколько сложнее: то, что поступит на вход любого слоя, должно быть обработано нейроном, а не просто пройти через него. Нелинейная функция, которая обрабатывает внутренние входы, называется функцией активации. Данные функции в некотором смысле моделируют работу реальных нейронов; существует набор активационных функций, характеризующихся разной частотой использования. Наиболее часто применяются такие функции, как линейная, сигмоидная, гиперболический тангенс; в некоторых системах программирования можно создавать свои функции активации. В SNN такой возможности нет, поэтому используем тот набор функций, который она предоставляет. Назначаем функции активации для некоторого слоя выбором Edit\Network, затем в выпадающем списке выбираем нужную функцию (рис. 9). Обратим особое внимание на поле Error function, в котором указана строка Sum-squared, означающая, что система будет использовать для оценки качества обучения сети среднюю квадратическую погрешность, т. е. среднюю сумму квадратов отклонений полученных результатов от целевых значений для данного набора. File Edit Train Statistics Run Options Window Help ^ |Ц ] | ШШІ П Ш і ■ Ш И Н * № № 1 1 Ш Network Editor (TestModel_120, 01) Error function I Sum-squared ▼ ~ ^ П Г в ~1Е ё ь Layer ^ Ш Units I16 І Act fn Logistic ▼ Delete Width 1 R PSP fn Logistic * Hyperbolic Connections Shown f Current layer ^ -txponential Softmax Unitsum Square Root E М М §У VAR1 VAR2 VAR3 4 ► Рис. 9. Выбор функций активации для слоев сети Fig. 9. Selection of activation functions for network layers В окне Network Editor выбираем номер слоя в поле Layer - входного слоя 1 (число входов 16). Клик на поле Act fn дает выпадающий список с перечнем возможных десяти функций активации: Linear, Logistic, Hyperbolic, Exponential, Softmax, Unitsum, Square Root, Sine, Ramp, Step. Клик на любой функции определяет выбор ее для нейронов всего слоя. Меняя номера слоев и производя такой выбор, определяем все функции активации нашей сети. В дальнейшем их можно менять, исследуя альтернативные архитектуры и следя за эффектом таких изменений по величине СКП. Строгие установки о том, какие активации следует назначать по слоям, не предусмотрены; скорее, это эвристическая процедура. Целесообразно сделать несколько вариантов сети и выбрать вариант, дающий лучшие результаты (меньшую СКП). Более того, если разрешить системе SNN создавать набор сетей (Set NetWorks) и при изменении сети соглашаться на его сохранение, то все созданные сети остаются в наборе и система сама выбирает лучшую (Best) из них (рис. 10). 479

RkJQdWJsaXNoZXIy MTUzNzYz