基于神经网络的 “与” 运算器

这篇博客介绍了如何运用神经网络来实现一个简单的加法器。通过训练神经网络,使其根据给定的输入产生正确的输出,模拟真值表中的加法规则。训练过程中采用了反向传播算法,并使用sigmoid激活函数,最终得到了能够正确执行加法操作的网络参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

神经网络学习算法

本次神经网络学习算法旨在完成对加法器的模拟:

真值表:

在这里插入图片描述
通过学习训练使得神经网络能够对给出的输入做出正确的输出。

训练函数:

在这里插入图片描述
这里,σ作为启动函数

在这里插入图片描述
由于此处只有两个自变量,因此训练函数即为在这里插入图片描述
和监督学习算法类似,只是在求和符号外多了一启动函数σ

import numpy as np
import math

x1 = np.array([0, 0, 1, 1])
x2 = np.array([0, 1, 0, 1])
t = np.array([0, 0, 0, 1])

th0 = np.random.random()
th1 = np.random.random()
th2 = np.random.random()

e0 = e1 = e2 = 3
eps = 1e-4
al = 0.01

while e0 > eps or e1 > eps or e2 > eps:
    for i in range(4):
        s = 1 / 1 + math.exp(-x1[i])
        e0 = (1 / 1 + math.exp(-(th0 + th1 * x1[i] + th2 * x2[i])) - t[i]) * s * (1 - s)
        e1 = e0 * x1[i]
        e2 = e0 * x2[i]
    th0 = th0 - al * e0
    th1 = th1 - al * e1
    th2 = th2 - al * e2

print(th0, th1, th2)
 

0.1954960397024218 0.24652184481128958 0.29406860300292426

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值