Симметричная сигмоидная передаточная функция Эллиота
A = elliotsig(N)
Передаточные функции преобразуют нейронный слой сети сетевой вход в его чистый выход.
A = elliotsig(N)
принимает S
-by- Q
матрица S
N
-element net входные векторы-столбцы и возвращает S
-by- Q
матрица A
из выхода векторов, где каждый элемент N
вычеркивается из интервала [-inf inf]
в интервал [-1 1]
с «S-образной» функцией.
Преимущество этой передаточной функции по сравнению с другими сигмоидами в том, что она быстро вычисляется на простом вычислительном оборудовании, так как не требует каких-либо экспоненциальных или тригонометрических функций. Его недостаток в том, что он только уплощается для больших входов, поэтому его эффект не так локален, как другие сигмоидные функции. Это может привести к большему количеству итераций обучения или потребовать больше нейронов для достижения той же точности.
Вычислите выход слоя из одного вектора входа сети:
n = [0; 1; -0.5; 0.5]; a = elliotsig(n);
Постройте график передаточной функции:
n = -5:0.01:5; plot(n, elliotsig(n)) set(gca,'dataaspectratio',[1 1 1],'xgrid','on','ygrid','on')
Для сети, которую вы уже определили, измените передаточную функцию для слоя i
:
net.layers{i}.transferFcn = 'elliotsig';
elliot2sig
| logsig
| tansig