Линейный нейрон предназначен для ответа на конкретные входы целевыми выходами.
X определяет два одноэлементных входных шаблона (векторы столбцов). T определяет связанные 1-элементные цели (векторы столбцов).
X = [1.0 -1.2]; T = [0.5 1.0];
ERRSURF вычисляет ошибки для y-нейрона с диапазоном y возможных значений веса и смещения. PLOTES строит график этой поверхности ошибки с контурным графиком y под ним. Наилучшими значениями веса и смещения являются значения, которые приводят к самой низкой точке на поверхности ошибки.
w_range = -1:0.1:1;
b_range = -1:0.1:1;
ES = errsurf(X,T,w_range,b_range,'purelin');
plotes(w_range,b_range,ES);
Функция NEWLIND создает сеть y, которая работает с минимальной ошибкой.
net = newlind(X,T);
SIM используется для моделирования сети для входов X. Затем мы можем вычислить ошибки нейронов. SUMSQR суммирует квадратные ошибки.
A = net(X)
A = 1×2
0.5000 1.0000
E = T - A
E = 1×2
0 0
SSE = sumsqr(E)
SSE = 0
Команда PLOTES выполняет репликацию поверхности ошибки. ПЛОТЕП строит график «положения» сети с использованием значений веса и смещения, возвращаемых SOLVELIN. Как видно из графика, SOLVELIN нашел минимальное решение ошибки.
plotes(w_range,b_range,ES);
plotep(net.IW{1,1},net.b{1},SSE);
Теперь мы можем проверить ассоциатор с одним из исходных входов, -1.2, и посмотреть, если он возвращает цель, 1.0.
x = -1.2; y = net(x)
y = 1