LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 296|回复: 0

感知器

[复制链接]
发表于 2024-1-18 18:39:36 | 显示全部楼层 |阅读模式


感知器
最初的感知器被设计成接受多个二进制输入,并产生一个二进制输出(0或1)。

想法是使用不同的权重来表示每个输入的重要性,并且值的总和应该大于阈值 在做出决定之前的值,例如 true 或 false(0 或 1)。

感知器

感知器示例
想象一个感知器(在你的大脑中)。

感知器试图决定你是否应该去听音乐会。

画师好不好? 天气好吗?

这些事实应该有什么权重?

标准        输入        权重
艺术家很好        x1 = 0 或 1        w1 = 0.7
天气很好        x2 = 0 或 1        w2 = 0.6
朋友会来        x3 = 0 或 1        w3 = 0.5
提供食物        x4 = 0 或 1        w4 = 0.3
提供酒精        x5 = 0 或 1        w5 = 0.4
感知器算法
Frank Rosenblatt 提出了这个算法:

设置阈值
将所有输入与其权重相乘
总结所有结果
激活输出
1. 设置阈值:

阈值 = 1.5
2. 将所有输入与其权重相乘:

x1 * w1 = 1 * 0.7 = 0.7
x2 * w2 = 0 * 0.6 = 0
x3 * w3 = 1 * 0.5 = 0.5
x4 * w4 = 0 * 0.3 = 0
x5 * w5 = 1 * 0.4 = 0.4
3. 将所有结果相加:

0.7 + 0 + 0.5 + 0 + 0.4 = 1.6(加权和)
4. 激活输出:

如果总和 > 1.5 ("是的,我会去音乐会"),则返回 true
如果您的阈值是 1.5,那么对于其他人来说可能会有所不同。

实例
const treshold = 1.5;
const inputs = [1, 0, 1, 0, 1];
const weights = [0.7, 0.6, 0.5, 0.3, 0.4];

let sum = 0;
for (let i = 0; i < inputs.length; i++) {
  sum += inputs * weights;
}

const activate = (sum > 1.5);

感知器术语
感知器输入
节点值
节点权重
激活函数
感知器输入
感知器输入称为节点。

节点既有值又有权重。

节点值
在上面的示例中,节点值为: 1, 0, 1, 0, 1

节点权重
权重显示每个节点的强度。

在上面的示例中,节点权重为:0.7, 0.6, 0.5, 0.3, 0.4

激活函数
激活函数将结果(加权和)映射为所需的值,例如 0 或 1。

二进制输出(0 或 1)可以解释为(否或是)或(假或真)。

在上面的例子中,激活函数很简单: (sum > 1.5)

在神经科学中,单神经元编码还是分布式编码对于理解大脑功能最相关存在争议。

很明显,像上面这样的决定不是由一个神经元单独做出的。

至少必须有其他神经元决定艺术家好不好,天气好不好......

神经网络
感知器定义了进入神经网络的第一步。

感知器是一个单层神经网络。

神经网络是一个多层感知器。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表