%% Quiz 8 Problem 4: Adaptively training a linear neural network %Define the dataset: time1 = 0:0.05:4; % from 0 to 4 seconds time2 = 4.05:0.024:6; % from 4 to 6 seconds time = [time1 time2]; % from 0 to 6 seconds T = [sin(time1*4*pi) sin(time2*8*pi)]; %Original time series lags=5; %The matrix will be embedded into lags+1 dim space X = lag(T,lags,1); Patterns=X(1:lags,:); Targets=X(lags+1,:); figure(1) plot(time,T) xlabel('Time'); ylabel('Target Signal'); title('Signal to be Predicted'); lr = 0.1; %The learning rate takes the place of 2 alpha in the class notes [dimIn,numPts]=size(Patterns); [dimOut,numPts]=size(Targets); % %Initialize the weights W using random points in [0,1]. % Initalize the bias vector b using zeros. % Notice that we have parameters dimOut and dimIn to use. % % % Main loop % for k=1:numPts %Use the kth data point: y(k)= err(k)=norm( ); W = W + lr*( ); b = b + lr*( ); end timeindex=lags+1:numPts+lags; figure(2) plot(time(timeindex),err) title('Error as time progresses'); figure(3) plot(time(timeindex),y,time(timeindex),Targets); legend('Predicted','Actual'); title('Predicted v. Actual Signal');