其实这一章节读下来,让我感到最吃力的部分反而是“感知机”这个专有名词,明明知道它的概念和结构,但一觉醒来后,偏偏记不起这三个字,状态机?转换机?哈哈!要多学多记!
古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。—— 苏轼《晁错论》》
感知机的历史
感知机(Perceptron)是一种算法,由美国学者Frank Rosenblatt在1957年提出,是神经网络(深度学习)的起源。
感知机是一种对输入-输出概念上的抽象,它总结了最小的运算单元,是构成复杂算法的细胞。
感知机的结构
上图:有两个输入的感知机,就像一个神经元,上级信号决定下级信号,每个信号有自己的重要性权重(w),同时还有偏置(b)控制输出信号被激活的难易程度。
- 输入:x1, x2,...,xn —— 可以有1~n个输入信号
- 输出:y —— 输入信号决定输出信号
- 权重:w1, w2,...,wn —— 单独控制每个输入信号重要性
- 偏置:b —— 总体控制神经元被激活(让y为1)的难易程度
图:感知机的行为
感知机的局限性
感知机是一种最基本的神经元的抽象,单层感知机局限性在于只能表达线性关系,但我们可以通过叠加单层感知机从而得到多层感知机,用来表达非线性关系。
应用:用Python实现一个异或门
图:与门、与非门、或门的符号
图:通过组合与门&与非门&或门得到异或门
// 异或门
def XOR(x1, x2)
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
y = AND(s1, s2)
return y
与门、与非门、或门被称为单层感知机,异或门称为多层感知机(multi-layered perception)。从0开始数,分别是第0层、第1层、第2层。
图:从0开始计数的多层感知机-异或门
感知机的意义
感知机是深度学习理论的基础,只要设计得当,甚至可以用多层感知机实现一台具有完整功能的计算机。