Question: MATLAB homework: Make a one-layer unsupervised learning network that discovers the features in the inputs. clear set learning rate Input patterns 1 1 1 0

MATLAB homework:

Make a one-layer unsupervised learning network that discovers the features in the inputs.

clear

set learning rate

Input patterns

1 1 1 0 0 0 0 0 0

0 0 1 1 1 0 0 0 0

0 0 0 0 1 1 1 0 0

0 0 0 0 0 0 1 1 1

make one random weight matrix: a 9X4 (input to output)

Use an all-positive initial random weight range, cuz here you're gonna normalize these

weights, such that each output node has a net incoming weight of 1.0.

start a for loop that goes from 1 to a couple hundred epochs

start a for loop where n goes from 1 to 4 (cuz you got 4 input patterns)

set "in" to the nth row of your "Inputs" matrix

compute the output layer's net activation (in*W)

compute winner-take-all function on output nodes

compute changes in all weights

connected to winning output node

(as per Rumelhart & Zipser's competitive learning algorithm)

end for loop

end for loop

Make sure each output node's incoming weights still sum to 1.0

Test the model's performance on all four input patterns--see if each output node has devoted itself to a particular input pattern.

If not, run it again until it does.

ONCE YOU HAVE A NETWORK THAT DEVOTES EACH OUTPUT NODE TO AN

INDIVIDUAL INPUT PATTERN, EXAMINE ITS WEIGHT MATRICES AND

DESCRIBE EACH NODE'S FUNCTION.

WHEN THE MODEL FAILS TO DEVOTE EACH OUTPUT NODE TO AN

INDIVIDUAL INPUT PATTERN, WHAT IS IT DOING INSTEAD?

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!