Python实现简单神经网络关联性规则示例

本文将使用Python构建一个简单的神经网络,用于学习输入输出之间的关联性,并通过示例代码演示训练过程以及如何使用训练好的网络进行预测。

代码实现pythonimport numpy as np

定义神经网络的输入和输出X = np.array([[0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 1]])y = np.array([[0], [1], [1], [0]])

定义神经网络的结构input_size = 3hidden_size = 4output_size = 1

初始化神经网络的权重W1 = np.random.randn(input_size, hidden_size)W2 = np.random.randn(hidden_size, output_size)

定义神经网络的激活函数def sigmoid(x): return 1 / (1 + np.exp(-x))

训练神经网络for i in range(10000): # 向前传播 z1 = np.dot(X, W1) a1 = sigmoid(z1) z2 = np.dot(a1, W2) y_pred = sigmoid(z2) # 计算损失函数 loss = np.square(y_pred - y).sum() # 向后传播 d_loss = 2 * (y_pred - y) d_z2 = d_loss * sigmoid(z2) * (1 - sigmoid(z2)) d_W2 = np.dot(a1.T, d_z2) d_a1 = np.dot(d_z2, W2.T) d_z1 = d_a1 * sigmoid(z1) * (1 - sigmoid(z1)) d_W1 = np.dot(X.T, d_z1) # 更新权重 W1 -= 0.1 * d_W1 W2 -= 0.1 * d_W2

输出关联性规则print('如果输入 [0, 0, 1],则输出为', sigmoid(np.dot(sigmoid(np.dot([0, 0, 1], W1)), W2)))print('如果输入 [0, 1, 1],则输出为', sigmoid(np.dot(sigmoid(np.dot([0, 1, 1], W1)), W2)))print('如果输入 [1, 0, 1],则输出为', sigmoid(np.dot(sigmoid(np.dot([1, 0, 1], W1)), W2)))print('如果输入 [1, 1, 1],则输出为', sigmoid(np.dot(sigmoid(np.dot([1, 1, 1], W1)), W2)))

代码解析

  1. 导入库: 首先导入numpy库,用于进行矩阵运算。2. 定义输入输出: 定义训练数据,X为输入,y为对应的输出。3. 定义网络结构: 设置输入层、隐藏层和输出层的神经元个数。4. 初始化权重: 随机初始化连接权重W1W2。5. 定义激活函数: 使用sigmoid函数作为激活函数,为网络引入非线性。6. 训练神经网络: 循环迭代进行训练,每次迭代包括向前传播、计算损失、反向传播和更新权重。7. 输出关联性规则: 根据训练好的网络,输入不同的数据,观察输出结果,从而发现输入输出之间的关联性。

总结

本文提供了一个简单的Python示例程序,演示了如何使用神经网络学习输入输出之间的关联性。你可以根据实际需求修改输入输出数据,调整网络结构和参数,以实现更复杂的关联性规则学习。

Python实现简单神经网络关联性规则示例

原文地址: https://www.cveoy.top/t/topic/fVIo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录