感知机原理解析与代码实现
一、感知机通俗直观理解
神经元与感知机
如图1所示,我们的大脑是一个生物学上的复杂的神经网络,它的最小的单元我们可以称其为神经元。 其工作方式为首先接收到信号,将这些信号通过树突组织的处理,将会产生微弱的生物电,进而产生刺激,随后树突组织将这些刺激送到细胞中的细胞核,细胞核对这些刺激做综合处理,当刺激达到了一定阈值后,他就会被激活。因此对应产生一个刺激的输出,并通过轴突进行进一步的传递。
抽象来讲,神经细胞就是一个具备二进制输出的逻辑门,树突接收多个输入信号,如果累加的信号超过了某一个阈值,经过细胞体的整合就会产生与一个输出信号,进行通过轴突进行传递。感知机就是基于这样的神经元的抽象逻辑所提出的。
如图2所示,感知机与神经元的工作方式类似,首先接收样本 x x x的输入,随后将其与权值 w w w进行加权计算得到净输入。接着净输入被传递到激活函数,生成值为+1或者-1的二值输出,并以其作为样本的预测类标。在学习阶段则将这个输出用于更新权重。
感知机的通俗解释
感知机是一个用于二类分类的线性分类模型,是SVM(支持向量机)和神经网络的重要基础。那么我们可以利用感知机做些什么呢?
通俗讲,在数据集线性可分的基础上,将数据集中每个样本抽象为一个二维坐标 ( x , y ) (x,y) (x,y),即每一个样本的数据和标签。感知机就是可以将所有样本点完美分成两类的一条直线。只要可以将坐标平面上的点完美分开,这就是一个好的感知机模型,所有可能这样的模型并不是唯一的。
如何做到呢?问题被抽象为,将每一个错分类的点和该直线的距离求出并进行求和,当这个值最小或者最好为零的话,就求得了这条直线。
二、数学角度
感知机定义
由输入到输出会得到一个映射,这样的映射函数 f ( x ) f(x) f(x)就是感知机的定义
f ( x ) = s i g n ( w ⋅ x + b ) (1) f(x)=sign(w\cdot x+b) \tag{1} f(x)=sign(w⋅x+b)(1)
其中, w w w为权重或者权重向量, b b b为偏置量,sign为如下所示的阶跃函数
s i g n ( x ) = { + 1 , x > = 0 − 1 , x < = 0 (2) sign(x)=\begin{cases} +1,x >=0\\ -1,x <=0 \end{cases} \tag{2} sign(x)={
+1,x>=0−1,x<=0(2)
从几何角度来讲,对于线性方程 w ⋅ x + b = 0 w\cdot x + b = 0 w⋅x+b=