技术文摘
Python从头开始实现感知器
2025-01-09 02:34:53 小编
Python从头开始实现感知器
感知器是一种简单的人工神经网络模型,在机器学习领域具有重要地位。本文将使用Python从头开始实现一个感知器。
我们需要明确感知器的基本原理。感知器接收多个输入,每个输入都有对应的权重,将输入与权重相乘后求和,再通过激活函数得到输出。常见的激活函数是阶跃函数,当求和结果大于某个阈值时,输出为1,否则为0。
接下来,我们用Python代码来实现感知器。首先定义感知器类:
class Perceptron:
def __init__(self, num_inputs):
self.weights = [0] * num_inputs
self.bias = 0
def activate(self, weighted_sum):
return 1 if weighted_sum >= 0 else 0
def predict(self, inputs):
weighted_sum = sum(w * x for w, x in zip(self.weights, inputs)) + self.bias
return self.activate(weighted_sum)
def train(self, training_data, learning_rate, epochs):
for epoch in range(epochs):
for inputs, target in training_data:
prediction = self.predict(inputs)
error = target - prediction
self.weights = [w + learning_rate * error * x for w, x in zip(self.weights, inputs)]
self.bias += learning_rate * error
在上述代码中,__init__方法初始化权重和偏置,activate方法实现激活函数,predict方法用于预测输出,train方法用于训练感知器。
然后,我们可以使用以下方式来测试感知器:
training_data = [([1, 1], 1), ([1, 0], 0), ([0, 1], 0), ([0, 0], 0)]
perceptron = Perceptron(2)
perceptron.train(training_data, learning_rate=0.1, epochs=100)
test_data = [[1, 1], [1, 0], [0, 1], [0, 0]]
for data in test_data:
print(perceptron.predict(data))
通过以上代码,我们成功实现了一个简单的感知器。在实际应用中,可以根据具体问题调整训练数据、学习率和训练轮数等参数,以获得更好的性能。
通过Python从头实现感知器,能让我们更深入地理解其工作原理和应用方式,为进一步探索机器学习领域打下坚实基础。