参考文章:
一看就懂的感知机算法PLA(基础概念)
感知机 PLA(Perceptron Learning Algorithm)(加深理解)
McCulloch and Pitts 神经元
基本原理如下图:
由McCulloch和Pitts于1943年发表,简单模拟了神经元的反应流程,包括:
- 多个带有权重的输入 w i × x i w_i×x_i wi×xi,相当于「突触」
- x i x_i xi是输入值,表示外界的刺激。
- w i w_i wi表示权重,表示刺激的不同强度。
- 一个转换函数 ∑ \sum ∑,相当于「汇聚电信号的细胞膜」
- ∑ x = i n w i x i \sum_{x=i}^nw_ix_i ∑x=inwixi也就是对所有带权重的输入进行简单的求和,将多个值合并为1个值。
- 一个阈值(threshold) θ \theta θ,也称激活函数,决定了外界刺激要达到什么程度神经元才会被激活
- 当刺激大于阈值 θ \theta θ时,神经被激活;否则没有。
根据以上信息我们可以得到一个基本的神经元表示(也即是分类公式):
线 性 求 和 : h = ∑ x = i n w i x i 阈 值 比 较 : y = g ( h ) { 1 i f h ≥ θ 0 i f h < θ \begin{array}{l}线性求和:h=\sum_{x=i}^nw_ix_i\\\\阈值比较:y=g(h)\;\left\{\begin{array}{l}1\;\;\;\;if\;h\geq\theta\\0\;\;\;\;if\;h<\theta\end{array}\right.\end{array} 线性求和:h=∑x=inwixi阈值比较:y=g(h){
1ifh≥θ0ifh<θ
由线性相加和阈值比较两个过程组成,最后根据比较结果将样本划分为正负两类。
训练感知机 Perceptron
即使是单层感知机,也可以可以由多个相互独立的MP神经元组成(对于每个神经元,只有输入值是相同的,其他都不同,包括输入值对应的各个权重 w i w_i wi)
训练公式:
w i j ( n e w ) = w i j ( o l d ) − η ( y j − t j ) × x i w_{ij}(new)=w_{ij}(old)-\eta(y_j-t_j)×x_i wij(new)=wij(old)−η(yj−tj)×xi
公式的推导过程:
- 这里权值变为 w i j w_{ij} wij, i i i表示输入的索引, j j j表示神经元的索引
- 因为感知机有多个神经元,所以我们也将得到相同数量的输出,比如5个神经元输出集合 y = ( 1 , 1 , 1 , 0 , 1 ) y=(1,1,1,0,1) y=(1,1,1,0,1)。
- 因为是监督学习,我们还有一个正确的结果集 t = ( 1 , 1 , 1 , 1 , 0 ) t=(1,1,1,1,0) t=(1,1,1,1,0),两者比较就能够发现出错的神经元(这里是 y 4 , y 5 y_4,y_5 y4,y5出错)。
- 对于出错的神经元 k k k,我们需要改变它的权重 w i k w_{ik} wik(也就是算法学习的过程)
- 首先我们要找到要修改的权重:通过对比输出集 y y y和正确的结果集 t t t(步骤2&3),找到出错的神经元 k k k后,就能知道该神经元的所有权重 w i k w_{ik}