感知机
一个**感知机**是一个**人工神经元**。
它是最简单的**神经网络**。
**神经网络**是**机器学习**的构建块。
弗兰克·罗森布拉特
**弗兰克·罗森布拉特**(1928 – 1971)是一位在人工智能领域卓有成就的美国心理学家。
在**1957年**,他开启了一件大事。他在康奈尔航空实验室的一台 IBM 704 计算机上“发明”了一个**感知机**程序。
科学家们发现,脑细胞(**神经元**)通过电信号接收来自我们感官的输入。
神经元反过来又利用电信号存储信息,并根据先前的输入做出决策。
弗兰克认为**感知机**可以模拟大脑原理,具有学习和决策的能力。
感知机
最初的**感知机**旨在接收多个**二元**输入,并产生一个**二元**输出(0 或 1)。
其思想是使用不同的**权重**来表示每个**输入**的重要性,并且在做出**是**或**否**(真或假)(0 或 1)之类的决策之前,这些值的总和应大于一个**阈值**。
感知机示例
想象一个感知机(在你的大脑中)。
这个感知机试图决定你是否应该去看演唱会。
艺术家好不好?天气好不好?
这些事实应该有什么权重?
标准 | 输入 | Weight |
---|---|---|
艺术家不错 | **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 |
感知机算法
弗兰克·罗森布拉特提出了这个算法
- 设置一个阈值
- 将所有输入乘以其权重
- 将所有结果求和
- 激活输出
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(“是的,我会去听演唱会”)
注意
如果天气权重对你来说是 0.6,那么对其他人来说可能不同。更高的权重意味着天气对他们更重要。
如果阈值对你来说是 1.5,那么对其他人来说可能不同。较低的阈值意味着他们更想去任何一场音乐会。
示例
const threshold = 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[i] * weights[i];
}
const activate = (sum > 1.5);
感知机在人工智能中
一个**感知机**是一个**人工神经元**。
它受**生物神经元**功能的启发。
它在**人工智能**中扮演着关键角色。
它是**神经网络**中重要的构建块。
为了理解其背后的理论,我们可以分解其组成部分
- 感知机输入(节点)
- 节点值(1, 0, 1, 0, 1)
- 节点权重(0.7, 0.6, 0.5, 0.3, 0.4)
- 求和
- 阈值
- 激活函数
- 求和(和 > 阈值)
1. 感知机输入
感知机接收一个或多个输入。
感知机输入被称为**节点**。
节点既有**值**,也有**权重**。
2. 节点值(输入值)
输入节点具有**1**或**0**的二进制值。
这可以解释为**真**或**假** / **是**或**否**。
值为:1, 0, 1, 0, 1
3. 节点权重
权重是分配给每个输入的值。
权重表示每个**节点**的**强度**。
更高的值意味着输入对输出有更强的影响。
权重为:0.7, 0.6, 0.5, 0.3, 0.4
4. 求和
感知机计算其输入的加权和。
它将每个输入乘以其对应的权重,并将结果相加。
和为:0.7*1 + 0.6*0 + 0.5*1 + 0.3*0 + 0.4*1 = 1.6
6. 阈值
阈值是感知机触发(输出 1)所需的值,否则它保持非活动状态(输出 0)。
在这个例子中,阈值为:1.5
5. 激活函数
求和后,感知机应用激活函数。
目的是在输出中引入非线性。它根据聚合输入决定感知机是否应该触发。
激活函数很简单:(和 > 阈值) == (1.6 > 1.5)
输出
感知机的最终输出是激活函数的结果。
它表示感知机根据输入和权重做出的决定或预测。
激活函数将加权和映射为二进制值。
二进制**1**或**0**可以解释为**真**或**假** / **是**或**否**。
输出为**1**,因为:(和 > 阈值) == true。
感知机学习
感知机可以通过一个称为训练的过程从示例中学习。
在训练过程中,感知机根据观察到的误差调整其权重。这通常使用感知机学习规则或反向传播算法等学习算法来完成。
学习过程向感知机提供带标签的示例,其中已知期望输出。感知机将其输出与期望输出进行比较,并相应地调整其权重,旨在最小化预测输出与期望输出之间的误差。
学习过程允许感知机学习权重,使其能够对新的未知输入进行准确预测。
注意
很明显,决策不能仅由**一个神经元**做出。
其他神经元必须提供更多输入
- 艺术家好不好
- 天气好不好
- ...
**多层感知机**可用于更复杂的决策制定。
值得注意的是,尽管感知机在人工神经网络的发展中具有影响力,但它们仅限于学习线性可分离的模式。
然而,通过将多个感知机分层堆叠并结合非线性激活函数,神经网络可以克服这一限制并学习更复杂的模式。
神经网络
**感知机**定义了迈向**神经网络**的第一步。

感知机通常用作更复杂神经网络的构建块,例如多层感知机(MLP)或深度神经网络(DNN)。
通过将多个感知机分层组合并以网络结构连接,这些模型可以学习和表示数据中复杂的模式和关系,从而实现图像识别、自然语言处理和决策制定等任务。