1. 感知机模型
定义:假设输入空间(特征空间)是χ⊆Rn,输出空间是Y={+1,−1}。输入x∈X 表示实例的特征向量,对应于输入空间的点;输出y∈Y 表示实例的类别。由输入空间到输出空间的如下函数
称为感知机。其中, w 和 b 为感知机模型参数, w∈Rn 叫做权值, b∈R 叫做偏置, w⋅x 表示 w 和 x 的内积。 sign 为符号函数。
2.感知机学习算法
y i
y i y i
y i
输入:训练数据集T={(x1,y1),(x2,y2),,(xN,yN)},其中xi∈χ=Rn,yi∈Y={+1,−1},i=1,2,,N;学习率η(0<η≤1);
输出:w,b;感知机模型f(x)=sign(w⋅x+b).
(1)选取初值w0,b0
(2)在训练集中选取数据(xi,yi)
(3)如果yi(w⋅xi+b)≤0
yi
yi
w <- w + eta * y[i] * x[i,]
b <- b + eta * y[i]
其中eta表示计算误差(实际值-计算输出值)yi
yietayi
yieta表示计算误差(实际值-计算输出值)
yiyiyiyiyi
(4)转至(2),直至训练集中没有误分类点。
yi
yi
yi
yi
percept <- function(data = data,eta = eta ){
x <- data[,-3]
y <- data[,3]
w <- c(1,-1)
b <- 0
len <- length(y)
i <- 1
while(i <= len){
if(y[i] * (x[1]* w[1]+x[2]*w[2] + b) <= 0){
## update w and b
w[1] <- w[1] + eta * x[1]
w[2] <- w[2] + eta * x[2]
b <- b + eta
i <- 1 ##important, for traversing every point
}
else{
i <- i + 1
}
}
return(list(w=w,b=b))
}
yi
yi
yi
yi
data<-matrix(c(1 ,1 ,1 ),nrow = 1, ncol = 3,byrow=T)
yi
yi
yi
yi
> data
[,1] [,2] [,3]
[1,] 1 1 1
说明一下数据含义,第一列代表颜色,1为红,-1为黄,第二列代表形状,1为圆形,-1为弯形,第三列为输出,代表水果的种类,1为苹果,-1为香蕉,本文中的感知器实现了简单的分辨香蕉与苹果的功能,该案例出自吴岸城编的神经网络与深度学习。
yi
yi percept(data,1)
yiyi
$w
[1] 2 0
$b
[1] 1
即输出了感知机的s函数:s=2*p1+1
这时我们来尝试判断一下香蕉:
s=2*-1+1=-1
sign(s)=-1
香蕉判断也正确,误差为0,学习结束