具有 2 位二进制输入的 NOR 逻辑门的人工神经网络
简介
人工神经网络 (ANN) 引起了广泛关注,并已成为人工智能领域的基础。这些计算模型受到人类大脑复杂运作的启发,在理解复杂问题方面表现出非凡的能力。ANN 由互连节点组成,称为神经元,它们通过加权关联准备和传输数据。通过从数据中学习,ANN 可以识别模式、做出预测并执行曾经被认为仅在人类知识领域内的任务。在本文中,我们深入研究了使用人工神经网络的用法,该网络专门设计用于模拟 NOR 逻辑门,使用 2 位二进制输入。
逻辑门和 NOR 门
逻辑门是计算机电路的重要组成部分。它们对一个或多个并行输入执行一致操作并创建二进制输出。 一个这样的逻辑入口是 NOR 门,代表"NOT OR"。 NOR 门在所有输入均为 (false) 时产生 1 (真) 的输出;否则,它会产生 (false) 的输出。
2 位 NOR 门的真值表如下:
输入 A |
输入 B |
输出 |
---|---|---|
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
NOR 门代码的实现
算法
步骤 1:导入所需的库:
步骤 2:将 numpy 库作为模块导入。
步骤 3:描述 step 函数:
执行 step_function,该函数接受输入 x,如果 x 大于或上升到 0,则返回 1,否则返回 0。
步骤 4:描述权重和倾向:
创建一个 numpy 权重数组,表示输入数据的权重。
设置倾向值。
步骤 5:定义输入数据:
创建一个 numpy 集群 input_data,表示用于双重分类的输入数据。
步骤 6:应用分步函数:
使用 np.dot 计算输入和权重的加权总数。
将权重添加到加权总数中。
使用 step_function 将分步函数应用于结果。
步骤 7:打印输出:
打印以下输出,它表示 input_data 数组中每个输入的分类结果。
示例
import numpy as np def step_function(x): return np.where(x >= 0, 1, 0) weights = np.array([-1, -1]) bias = 0 input_data = np.array([[0, 0], [0, 1], [1, 0], [1, 1]]) output = step_function(np.dot(input_data, weights) + bias) print(output)
输出
[1 0 0 0]
人工神经网络结构
要使用人工神经网络执行 NOR 逻辑门,我们必须设计一个神经网络结构,该结构可以学习输入和比较输出之间的映射。在这种情况下,我们需要一个具有两个输入神经元和一个输出神经元的神经网络。
神经元输入:两个输入神经元与 NOR 门的二进制输入 A 和 B 通信。它们根据二进制输入获得 或 1 的值。
权重:每个输入神经元都与一个权重相关联,该权重决定了其对输出的响应。权重是神经网络在训练过程中学习的可变参数。
偏差:每个神经元中都包含一个偏差项来调整输出极限。它会影响激活函数曲线的移动,可以将其视为神经元的样本输入。
激活函数:激活函数根据每个神经元的输入和倾向的加权总数决定其输出。在本例中,我们将使用阶跃函数,如果加权总数和倾向大于或等于 0,则返回 1,否则返回 0。
实施和结果
使用 Python 等编程语言和 TensorFlow 或 PyTorch 等机器学习库,准备为具有 2 位二进制输入的 NOR 门实现神经网络。通过将准备好的信息输入网络并改变权重和倾向,神经网络可以学会模仿 NOR 门的行为。
在训练网络后,我们可以通过在未使用的输入组合(不是训练信息的一部分)上进行测试来评估其性能。通过将预测输出与预期输出进行比较,可以评估神经网络的准确性。
结论
人工神经网络提供了一种有效的工具,用于实现复杂的逻辑功能,例如 NOR 门,使用互连的神经元组合。通过在拟合输入输出集上训练网络,神经网络可以学会模仿 NOR 门的行为并为未使用的输入组合提供精确的输出。