12/23/24, 11:37 PM Untitled25.
ipynb - Colab
import numpy as np
def sigmoid(x):
return 1 / (1 + [Link](-x))
def sigmoid_derivative(x):
return x * (1 - x)
class MLP:
def __init__(self):
self.input_weights = [Link](2, 2)
self.hidden_weights = [Link](2, 1)
self.hidden_bias = [Link](1, 2)
self.output_bias = [Link](1, 1)
def forward(self, inputs):
self.hidden_layer_input = [Link](inputs, self.input_weights) + self.hidden_bias
self.hidden_layer_output = sigmoid(self.hidden_layer_input)
self.output_layer_input = [Link](self.hidden_layer_output, self.hidden_weights) + self.output_bias
[Link] = sigmoid(self.output_layer_input)
return [Link]
def train(self, inputs, outputs, epochs=10000, learning_rate=0.1):
for epoch in range(epochs):
[Link](inputs)
error = outputs - [Link]
output_gradient = error * sigmoid_derivative([Link])
hidden_gradient = output_gradient.dot(self.hidden_weights.T) * sigmoid_derivative(self.hidden_layer_output)
self.hidden_weights += self.hidden_layer_output.[Link](output_gradient) * learning_rate
self.output_bias += [Link](output_gradient, axis=0) * learning_rate
self.input_weights += [Link](hidden_gradient) * learning_rate
self.hidden_bias += [Link](hidden_gradient, axis=0) * learning_rate
inputs = [Link]([[0, 0], [0, 1], [1, 0], [1, 1]])
outputs_and = [Link]([[0], [0], [0], [1]])
outputs_or = [Link]([[0], [1], [1], [1]])
outputs_xor = [Link]([[0], [1], [1], [0]])
for gate, outputs in zip(["AND", "OR", "XOR"], [outputs_and, outputs_or, outputs_xor]):
mlp = MLP()
[Link](inputs, outputs)
print(f"\n{gate} Gate Results:")
for i in inputs:
print(f"Input: {i}, Output: {[Link]([Link](i))}")
AND Gate Results:
Input: [0 0], Output: [[0.]]
Input: [0 1], Output: [[0.]]
Input: [1 0], Output: [[0.]]
Input: [1 1], Output: [[1.]]
OR Gate Results:
Input: [0 0], Output: [[0.]]
Input: [0 1], Output: [[1.]]
Input: [1 0], Output: [[1.]]
Input: [1 1], Output: [[1.]]
XOR Gate Results:
Input: [0 0], Output: [[0.]]
Input: [0 1], Output: [[1.]]
Input: [1 0], Output: [[1.]]
Input: [1 1], Output: [[0.]]
Start coding or generate with AI.
[Link] 1/2
12/23/24, 11:37 PM [Link] - Colab
[Link] 2/2