菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

感知机

一个**感知机**是一个**人工神经元**。

它是最简单的**神经网络**。

**神经网络**是**机器学习**的构建块。

弗兰克·罗森布拉特

**弗兰克·罗森布拉特**(1928 – 1971)是一位在人工智能领域卓有成就的美国心理学家。

在**1957年**,他开启了一件大事。他在康奈尔航空实验室的一台 IBM 704 计算机上“发明”了一个**感知机**程序。

科学家们发现,脑细胞(**神经元**)通过电信号接收来自我们感官的输入。

神经元反过来又利用电信号存储信息,并根据先前的输入做出决策。

弗兰克认为**感知机**可以模拟大脑原理,具有学习和决策的能力。


感知机

最初的**感知机**旨在接收多个**二元**输入,并产生一个**二元**输出(0 或 1)。

其思想是使用不同的**权重**来表示每个**输入**的重要性,并且在做出**是**或**否**(真或假)(0 或 1)之类的决策之前,这些值的总和应大于一个**阈值**。

Perceptron


感知机示例

想象一个感知机(在你的大脑中)。

这个感知机试图决定你是否应该去看演唱会。

艺术家好不好?天气好不好?

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

标准输入Weight
艺术家不错**x1** = 0 或 1w1 = 0.7
天气好**x2** = 0 或 1w2 = 0.6
朋友会来**x3** = 0 或 1w3 = 0.5
提供食物**x4** = 0 或 1w4 = 0.3
提供酒精**x5** = 0 或 1w5 = 0.4

感知机算法

弗兰克·罗森布拉特提出了这个算法

  1. 设置一个阈值
  2. 将所有输入乘以其权重
  3. 将所有结果求和
  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. 感知机输入(节点)
  2. 节点值(1, 0, 1, 0, 1)
  3. 节点权重(0.7, 0.6, 0.5, 0.3, 0.4)
  4. 求和
  5. 阈值
  6. 激活函数
  7. 求和(和 > 阈值)

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


感知机学习

感知机可以通过一个称为训练的过程从示例中学习。

在训练过程中,感知机根据观察到的误差调整其权重。这通常使用感知机学习规则或反向传播算法等学习算法来完成。

学习过程向感知机提供带标签的示例,其中已知期望输出。感知机将其输出与期望输出进行比较,并相应地调整其权重,旨在最小化预测输出与期望输出之间的误差。

学习过程允许感知机学习权重,使其能够对新的未知输入进行准确预测。


注意

很明显,决策不能仅由**一个神经元**做出。

其他神经元必须提供更多输入

  • 艺术家好不好
  • 天气好不好
  • ...

**多层感知机**可用于更复杂的决策制定。

值得注意的是,尽管感知机在人工神经网络的发展中具有影响力,但它们仅限于学习线性可分离的模式。

然而,通过将多个感知机分层堆叠并结合非线性激活函数,神经网络可以克服这一限制并学习更复杂的模式。


神经网络

**感知机**定义了迈向**神经网络**的第一步。

Neural Networks

感知机通常用作更复杂神经网络的构建块,例如多层感知机(MLP)或深度神经网络(DNN)。

通过将多个感知机分层组合并以网络结构连接,这些模型可以学习和表示数据中复杂的模式和关系,从而实现图像识别、自然语言处理和决策制定等任务。


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持