已知逻辑与运算and的真值表,请设计一个感知器,使之可以实现与运算and,代码
时间: 2024-10-19 21:02:48 浏览: 6
逻辑与运算AND是一个二元运算符,当两个输入均为True时结果才为True,否则结果为False。以下是基于这个逻辑设计一个简单的二输入单层感知器模型,该模型通常用于模拟基本的逻辑门操作:
```python
# 感知器(Perceptron)实现 AND 运算
class PerceptronAnd:
def __init__(self, learning_rate=0.5): # 学习率
self.weights = [1, 1] # 初始权重,这里假设输入为1维
self.learning_rate = learning_rate
def sigmoid(self, z):
return 1 / (1 + np.exp(-z)) # Sigmoid激活函数
def update_weights(self, input1, target):
error = target - self.sigmoid(np.dot(input1, self.weights))
self.weights += self.learning_rate * error * input1
def predict(self, input1):
# 对输入求和并通过Sigmoid函数得到预测结果
output = self.sigmoid(np.dot(input1, self.weights))
return output >= 0.5 # 返回0或1表示True或False
# 使用示例
input_values = [[0, 0], [0, 1], [1, 0], [1, 1]] # 输入样本
target_outputs = [0, 0, 0, 1] # 目标输出对应于AND运算
perceptron = PerceptronAnd()
for i in range(len(input_values)):
perceptron.update_weights(input_values[i], target_outputs[i]) # 训练
print(f"Input {input_values[i]} -> Predicted Output: {perceptron.predict(input_values[i])}")
阅读全文