AI red teamer (人工智能红队)系列16 – 人工智能基础 – 感知器

你是慕鸢呀~ 发布于 1 天前 4 次阅读 1050 字 预计阅读时间: 5 分钟


AI red teamer (人工智能红队)系列16 - 人工智能基础 - 感知器

感知器(英文 Perceptrons)是神经网络的基本构件。它是生物神经元的简化模型,可以做出基本决策。了解感知器对于掌握深度学习中使用的更复杂神经网络背后的概念至关重要。

感知器的结构

感知器由以下部分组成:

  • Input Values (x1, x2, ..., xn): 这些是输入感知器的初始数据点。每个输入值代表数据的一个特征或属性。
  • Weights(w1, w2, ..., wn): 每个输入值都与一个权重相关联,决定其强度或重要性。权重可正可负,影响感知器的输出。
  • Summation Function (∑): 加权输入求和为 ∑(wi * xi)。这一步将加权输入值汇总为一个值。
  • Bias (b): 偏置项被添加到加权和中,以移动激活函数。它允许感知器在所有输入为零时也能激活。
  • Activation Function (f): 激活函数将非线性引入感知器。它将加权和加上偏置作为输入,并根据预定义的阈值产生输出。
  • Output (y):感知器的最终输出,通常是一个二进制值(0 或 1),代表决策或分类。

总结

从本质上讲,感知器接收一组输入,乘以相应的权重,求和,添加偏置,然后应用激活函数产生输出。这种简单而强大的结构构成了深度学习中使用的更复杂神经网络的基础。

举例:是否去打网球

让我们用一个简单的例子来说明感知器的功能:根据天气情况决定是否打网球。我们将考虑四个输入特征:

  • Outlook: Sunny (0), Overcast (1), Rainy (2)
  • Temperature: Hot (0), Mild (1), Cool (2)
  • Humidity: High (0), Normal (1)
  • Wind: Weak (0), Strong (1)

我们的感知器将接收这些输入,并输出二进制决策:Play Tennis (1)或 Don't Play Tennis (0)。

为简单起见,我们假设权重和偏差如下:

  • w1 (Outlook) = 0.3
  • w2 (Temperature) = 0.2
  • w3 (Humidity) = -0.4
  • w4 (Wind) = -0.2
  • b (Bias) = 0.1

使用一个简单的阶跃激活函数:

f(x) = 1 if x > 0, else 0
def step_activation(x):
  """Step activation function."""
  return 1 if x > 0 else 0

现在,让我们考虑一天的情况:

  • Outlook: Sunny (0)
  • Temperature: Mild (1)
  • Humidity: High (0)
  • Wind: Weak (0)

感知器计算加权和:

(0.3 * 0) + (0.2 * 1) + (-0.4 * 0) + (-0.2 * 0) = 0.2

增加偏差:

0.2 + 0.1 = 0.3

应用激活函数

f(0.3) = 1 (since 0.3 > 0)

输出为 1,因此感知器决定打网球

在 Python 中,看起来像这样:

# Input features
outlook = 0
temperature = 1
humidity = 0
wind = 0

# Weights and bias
w1 = 0.3
w2 = 0.2
w3 = -0.4
w4 = -0.2
b = 0.1

# Calculate weighted sum
weighted_sum = (w1 * outlook) + (w2 * temperature) + (w3 * humidity) + (w4 * wind)

# Add bias
total_input = weighted_sum + b

# Apply activation function
output = step_activation(total_input)

print(f"Output: {output}")  # Output: 1 (Play Tennis)

这个基本例子演示了感知器如何权衡不同的输入,并根据简单的激活函数做出二元决策。在现实世界中,感知器通常被组合成复杂的网络,以解决更复杂的任务。

感知器的局限性

虽然感知器提供了对神经网络的基础理解,但单层感知器有很大的局限性,限制了其对更复杂任务的适用性。

最明显的局限是无法解决非线性可分的问题。如果一个数据集能被一条直线(或高维度的超平面)分为两个类别,则该数据集被认为是线性可分的。单层感知器只能学习线性决策边界,因此无法对非线性模式的数据进行分类。

一个典型的例子就是 XOR 问题。如果只有一个输入为真,则 XOR 函数返回真值(1),否则返回假值(0)。不可能画出一条直线来分隔 XOR 函数的真假输出。这一限制严重制约了单层感知器所能解决的问题类型。

我本桀骜少年臣,不信鬼神不信人。
最后更新于 2025-06-15