神经网络基础运用M-P模型实现或门的完整python代码
时间: 2024-09-14 19:13:55 浏览: 138
神经网络可以用于模拟逻辑运算,如AND、OR等。M-P模型通常是指 McCulloch-Pitts (MP) 网络模型的一个简化版本,它是一种简单的二元神经元模型。这里我将展示一个基本的Python代码,使用神经元来实现一个OR逻辑门:
```python
import numpy as np
# 定义sigmoid激活函数
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 定义神经元类
class Neuron:
def __init__(self, weights):
self.weights = weights
# 计算神经元输入的加权和
def compute_output(self, inputs):
weighted_sum = sum(inputs * self.weights)
return sigmoid(weighted_sum)
# 实现OR门
def or_gate(neuron1, neuron2):
weights = [0, 1] # 第一个神经元对第二个输入(输入A)置零权重
network = Neuron(weights)
input_A = np.array([0, 1]) # 输入A为0,B为1
input_B = np.array([1, 0]) # 输入B为1,A为0
output_A = network.compute_output(input_A)
output_B = network.compute_output(input_B)
print(f"Input A: {input_A}, Output A: {output_A}")
print(f"Input B: {input_B}, Output B: {output_B}")
# 创建神经元实例并运行OR门
neuron1 = Neuron([1, -1])
neuron2 = Neuron([-1, 1]) # 同理,我们可以为第二个输入设置负权重
or_gate(neuron1, neuron2)
```
这个例子中,我们创建了两个简单神经元,每个神经元有两组权重分别对应输入A和B。当输入A为0,B为1时,神经元1计算结果接近于0;而当输入B为1,A为0时,神经元2计算结果也接近于0。因为sigmoid函数的性质,它们的输出会接近于0,表示OR门的结果接近于False。通过调整权重,我们可以让神经元输出更接近于逻辑上的True。
阅读全文