神经网络笔记 - 感知机
一 感知机是什么
感知机(Perceptron)是一种接收输入信号并输出结果的算法。
它根据输入与权重的加权和是否超过某个阈值(threshold),来判断输出0还是1。
二.计算方式
感知机的基本公式如下:
- X1, X2 : 输入
- W1,W1: 权重
- θ :阈值
- 输出:0 or 1
三.简单逻辑门的实现
逻辑门简介
感知机可以模拟如下基本逻辑门:
输入1 | 输入2 | AND门输出 | NAND门输出 | OR门输出 |
---|---|---|---|---|
0 | 0 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 1 |
感知机参数设置
门类型 | 权重w1、w2 | 阈值θ |
---|---|---|
AND门 | 0.5, 0.5 | 0.7 |
NAND门 | -0.5, -0.5 | -0.7 |
OR门 | 0.5, 0.5 | 0.2 |
代码示例
def AND(x1, x2):w1, w2, theta = 0.5, 0.5, 0.7tmp = w1*x1 + w2*x2if tmp <= theta:return 0else:return 1
通过调整权重与阈值,感知机可以模拟不同的逻辑门。
四.线性与非线性
线性可分性
如果能够通过一条直线(二维)或超平面(高维)将不同类别的数据点完全分开,这种情况称为线性可分(Linear Separability)。
在平面上无法用一条直线区分输出为0和1的点,因此单层感知机无法处理XOR问题。
五.多层感知机
多层结构的必要性
为了解决XOR等非线性可分问题,需要引入多层感知机(Multi-layer Perceptron,MLP):
- 第1层:处理简单逻辑(如NAND、OR)
- 第2层:综合前面结果(如AND)
通过“组合多个感知机”,可以实现复杂逻辑!
XOR(异或)门的多层实现示例
def NAND(x1, x2):return ... # 同前述定义def OR(x1, x2):return ... # 同前述定义def AND(x1, x2):return ... # 同前述定义def XOR(x1, x2):s1 = NAND(x1, x2)s2 = OR(x1, x2)y = AND(s1, s2)return y
异或 = AND(NAND, OR)
总结
主题 | 关键词 | 备注 |
---|---|---|
感知机基础 | 权重、阈值、加权和 | 决定输出0或1 |
逻辑门实现 | AND、NAND、OR | 单层感知机 |
线性与非线性 | 线性可分 vs 非线性可分 | XOR是非线性问题 |
多层感知机 | 层与层组合 | 解决复杂问题 |