diff --git a/uebungen/uebung3.py b/uebungen/uebung3.py new file mode 100644 index 0000000..d15f3be --- /dev/null +++ b/uebungen/uebung3.py @@ -0,0 +1,42 @@ +import numpy as np + +visible = np.ones((10,1)) +hidden = np.ones((5,1)) + +visible_bias = np.ones((len(visible), 1)) * 0.1 +hidden_bias = np.ones((len(hidden),1)) * 0.1 + +weights = np.random.rand(len(visible), len(hidden)) +phases = 1 + +learnrate = 0.2 + +def sigmoid(x): + return 1 / (1 + np.exp(-x)) # Sigmoidfunktion + + +for i in range(1): + activation = sigmoid(np.matmul(visible.T, weights) + hidden_bias) + + # 2. Computer outer product vh + positive_gradient = np.matmul(visible, hidden.T) + + t = sigmoid(np.matmul(weights, hidden) + visible_bias) + reconstructed = sigmoid(np.matmul(weights, hidden) + visible_bias) + + # 4. Computer outer product v'h' + negative_gradient = np.matmul(reconstructed.T, activation) + # 5. Update weight matrix using gradients + + delta_weights = learnrate * (positive_gradient - negative_gradient) + + # 6. Update bias for visible and hidden layer + + delta_visible_bias = learnrate * (visible - reconstructed) + delta_hidden_bias = learnrate * (hidden - activation) + + + + + +