Линейный нейрон спроектирован, чтобы ответить на определенные входные параметры с целевыми выходными параметрами.
X задает два входных набора с 1 элементом (вектор-столбцы). 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 повторно строит ошибочную поверхность. PLOTEP строит "положение" сети с помощью веса и значений смещения, возвращенных SOLVELIN. Как видно из графика SOLVELIN нашел минимальное ошибочное решение.
plotes(w_range,b_range,ES); plotep(net.IW{1,1},net.b{1},SSE);
Мы можем теперь протестировать associator с одними из исходных входных параметров,-1.2, и видеть, возвращает ли это цель, 1.0.
x = -1.2; y = net(x)
y = 1