Menu
×
   ❮     
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


感知器示例

想象一下一个感知器(在你大脑里)。

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

艺术家是否很棒?天气是否良好?

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

标准输入权重
艺术家很棒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,则返回真(“是的,我会去参加音乐会”)

注意

如果你的天气权重是 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);

自己尝试 »



感知器在 AI 中

一个感知器就是一个人工神经元

它受到生物神经元功能的启发。

它在人工智能中起着至关重要的作用。

它是神经网络中重要的构建块。

为了理解它背后的理论,我们可以将其分解成其组成部分

  1. 感知器输入(节点)
  2. 节点值(1、0、1、0、1)
  3. 节点权重(0.7、0.6、0.5、0.3、0.4)
  4. 求和
  5. 阈值
  6. 激活函数
  7. 求和(sum > 阈值)

1. 感知器输入

感知器接收一个或多个输入。

感知器输入称为节点

节点具有权重


2. 节点值(输入值)

输入节点具有10 的二进制值。

这可以解释为 /

这些值是: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. 激活函数

在求和之后,感知器应用激活函数。

其目的是在输出中引入非线性。它根据聚合的输入决定感知器是否应该激活。

激活函数很简单:(sum > 阈值) == (1.6 > 1.5)


输出

感知器的最终输出是激活函数的结果。

它代表感知器根据输入和权重做出的决策或预测。

激活函数将加权和映射到二进制值。

二进制10 可以解释为 /

输出是1 因为:(sum > 阈值) == true.


感知器学习

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

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

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

学习过程使感知器能够学习使它能够对新的、未知输入做出准确预测的权重。


注意

很明显,单个神经元无法单独做出决定。

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

  • 艺术家是否很棒
  • 天气是否良好
  • ...

多层感知器可用于更复杂的决策过程。

需要注意的是,虽然感知器对人工神经网络的发展影响深远,但它们仅限于学习线性可分离的模式。

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


神经网络

感知器定义了迈向神经网络的第一步

Neural Networks

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

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


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.