《统计学习》——感知机

《统计学习》——感知机

本文不是像网上大多数的博文那样,洋洋洒洒的写一大篇文章,只是记录下学习机器学习的一些总结与心得,志在总结与和同道中人一起讨论,分享各自的想法。

1.何为感知机?

我们在学习机器学习的时候,基本都是从感知机开始的,为什么?因为它的思想较为易懂和容易实现,而且对于一般的问题(如二分类问题),效果也很好。感知机是神经网络和支持向量机SVM的基础,也被称为“单层神经网络”。

感知机是二分类分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,定义为+1和-1两个值。说白了,就是通过一个 超平面 把输入的实例切分为正实例和负实例,归为判别模型。【注意(1)超平面,很多人被一些博文误导,以为感知机模型就是一条切分线,其实是不对的。注意了,感知机的输入是特征向量,所以可以是n多维度的,如果输入实例是2维度的,超平面才会退化为一条“线”,如果是3维度,那么就是特征空间中的一个“面”。】

2.感知机模型

为了效率,直接把李航先生的《统计学习方法》的内容直接搬过来了,想看完整内容的请移步《统计学习方法》的第二章。

由感知机的模型,引出了一些术语:特征空间、特征向量、权值向量、偏置。为了方便大家,下面直接对它们做出解释。

  • 特征空间:特征是对原始数据的抽象,是从原始数据中提取特征并把原始数据映射到一个更高维的空间,方便研究。例如文本,就是把词向量化。
  • 特征向量:线性变换的特征向量(本征向量)是一个非简并的向量,其方向在该变换下不变。详细只能去查资料了,不然一篇博文都写不下原理。
  • 权值向量:权向量ωm中的权系数ωi的大小代表相应目标fi在多目标最优化问题中的重要程度,ωi越大表示fi在问题中越重要,反之,越小的ωi表示fi越不重要。其实表示目标的重要程度。
  • 偏置:就是超平面的的移动偏离,也是截距。

由感知机模型知道,x是实例输入,已知的,正是通过其来确定 w 和 b。最常用的方法是梯度下降法,通过逐渐逼近的方法来求出完全分类时的w和b参数。

3.感知机的学习策略

  • 注意2说明:||w||其实就是加权向量的平方加和的开方。如果不知道这公式可以看下面的点到直线的距离的公式:
  • 可以引出函数距离(functional margins)和几何距离(geometrical margins)。假设x∈Rn,那么显然wTx+b=0是一个超平面。通过推导,空间中的任意一点x(i)到这个超平面的距离为  L=w*x+b / ||w||
  • 注意3说明:感知机模型判断有误时,对于数据(xi, yi)来说,-yi(w*xi + b)>0 。为什么?因为感知机模型判断正确时,应是以下结果: wxi+b>0,yi=1,wxi+b<0,y=-1 。举个例子如下图 
  • 注意4 5说明:没什么好说的,就是根据是上面的空间中点到直线的距离公式得来,并且把所有维度考虑进来。
  • 注意6说明:这里要注意了。很多人疑惑,为什么在推出感知机的损失函数时||w||可以忽略。在这里给出我自己的观点。
    • 1.感知机主要是靠在迭代的过程中判断sign的符号,也即+1/-1来逐渐优化感知机模型的达到分类的目的的,既然是通过正负变化来判断,那么||w||是恒大于0的,不影响迭代判断的符号变换,因此可以忽略。
    • 2.w是输入实例的加权向量,在训练模型的时候,w的维度是根据训练集x的维度已经确定的了,对于损失函数的优化,很明显是优化可变项,所以||w||是不变的,所以可以忽略。
  • 注意7说明:这是最终的感知机的损失函数定义了,也就是把二分类优化问题,转换为求损失函数的最优,也就是通过某些方法(朴素贝叶斯or梯度下降法)求出使损失函数值最小的w和b两个模型参数。

4.感知机学习算法

给定数据集T,学习率η

  • 1.选取初值w0,b0
  • 2.根据函数距离选取误分类点
  • 3.更新w,b
  • 4.转至 2,直至没有误分类点

详细的推导过程请看《统计学习方法》一书。

5.Python实现感知机小例子

# -*- coding:utf-8 -*-
import copy

training_set = [[(3, 3), 1], [(4, 5), 1], [(1, 1), -1], [(1, 2), -1]]
w = [0, 0]
b = 0
history = []

def update(item):
    global w, b, history
    w[0] += 1 * item[1] * item[0][0]
    w[1] += 1 * item[1] * item[0][1]
    b += 1 * item[1]
    print w, b
    history.append([copy.copy(w), b])

def cal(item):
    res = 0
    for i in range(len(item[0])):
    res += item[0][i] * w[i]
    res += b
    res *= item[1]
    return res

def check():
    flag = False
    for item in training_set:
    if cal(item) <= 0:
    flag = True
    update(item)
    if not flag:
    print "RESULT: w: " + str(w) + " b: " + str(b)
    return flag

if __name__ == "__main__":
    for i in range(1000):
        if not check(): break

6.小结

  感知机虽然简单,但是简单就是美,它是神经网络和支持向量机的基础。比如感知机和支持向量机最大的区别是,感知机只是为了分正确,但是支持向量机还考虑了最优选择,扩展了优化函数的参数是L2范数,可以通过核函数把低维不可分数据向高维映射,从而达到线性化处理的目的。这些后面深入学到再来分析。

原文地址:https://www.cnblogs.com/liangjf/p/8428801.html

时间: 2024-08-03 00:11:19

《统计学习》——感知机的相关文章

统计学习方法一:基础

对统计学习方法中的基础概念和理论做一个总结.逐步更新. 内容摘自<统计学习方法>第一章,第一章内容基本全是重要内容,因此此篇部落格算是一个加入了自己理解思路的读书笔记. 一.统计学习方法包含哪几种? 监督学习:用于学习的数据集都是输入\输出数据对(有标记的样本),学习的任务是找到输入与输出的对应规则.主要用于分类.标注.回归分析. 非监督学习:用于学习的数据集只有输入(未标记的样本),学习的任务是对于数据进行分析,找到输出.主要用于聚类. 半监督学习:是监督学习和非监督学习的结合,它主要考虑如

统计学习的相关定义

1. 什么是统计学习? 统计学习(statistical learning)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科.具有以下特点: (1)以计算机和网络为平台:(2)以数据为对象,数据驱动的学科:(3)目的是对数据进行预测和分析:(4)以方法为中心,统计学习方法构建模型并应用模型进行预测和分析:(5)概率论.信息论.计算理论.最优化理论及计算机学习的交叉学科. 统计学习方法的步骤: (1)得到一个有限的训练数据集合:(2)得到包含所有可能的模型的假设空间,即

(八)从零开始学人工智能--统计学习:统计学习基础知识

目录 统计学习基础知识 1. 统计学习种类 1.1 监督学习 1.2 非监督学习 2. 统计学习中的基本概念 2.1 统计学习三要素:模型,策略,算法 2.2 欠拟合和过拟合 2.3 如何避免过拟合 2.4 过拟合产生的原因 2.5 最大似然估计和贝叶斯估计 3. 线性回归 3.1 经典线性回归 3.2 岭回归(ridge regression) 3.3 lasso回归和ElasticNet 4. 线性分类 4.1 感知机 4.2 逻辑回归(logistic regression) 4.3 So

?统计学习精要(The Elements of Statistical Learning)?课堂笔记(一)

前两天微博上转出来的,复旦计算机学院的吴立德吴老师在开?统计学习精要(The Elements of Statistical Learning)?这门课,还在张江...大牛的课怎能错过,果断请假去蹭课...为了减轻心理压力,还拉了一帮同事一起去听,eBay浩浩荡荡的十几人杀过去好不壮观!总感觉我们的人有超过复旦本身学生的阵势,五六十人的教室坐的满满当当,壮观啊. 这本书正好前阵子一直在看,所以才会屁颠屁颠的跑过去听.确实是一本深入浅出讲data mining models的好书.作者网站上提供免

?统计学习精要(The Elements of Statistical Learning)?课堂笔记(三)

照例文章第一段跑题,先附上个段子(转载的哦~): I hate CS people. They don't know linear algebra but want to teach projective geometry. They don't know any probability but want to use graphical models. They don't understand stats at all but still do machine learning like c

分布式计算、统计学习与ADMM算法

在整理旧电脑时,才发现13年下半年电脑里有不少残文.老师说,东西搁下了再拿起来花费的时间和之前可能差不多.我一眼看过去这篇关于分布式计算的文章,貌似还真的没有了当时理解的深度和感觉.当时还想利用ADMM算法,把统计中常见的带惩罚的高维问题在此框架下用R重写一下,但是中途多种事情一耽搁,就早已抛之脑后.看来任何事情,真的还是需要坚持,哪怕拨点时间都是好的.先把一篇残文扔出来祭奠下过去的13年吧.公式多文字长,慎入! 业界一直在谈论大数据,对于统计而言,大数据其实意味着要不是样本量增加n→∞,要不就

统计学习概念

统计学习是基于数据构建统计模型从而对数据进行预测与分析,统计学习由监督学习,非监督学习,半监督学习和强化学习等组成 统计学习由模型的假设空间(学习的模型属于某个函数的集合),模型选择的准则,及模型学习的算法 统计学习方法步骤如下: (1)得到一个有限的训练数据集合 (2)确定包含所有可能的模型的假设空间(学习模型的集合) (3)确定模型选择的准则,即学习的策略 (4)实现求解最优模型的算法即学习的算法 (5)通过学习方法选择最优模型 (6)利用学习的最优模型对新数据进行预测或分析 1.监督学习

?统计学习精要(The Elements of Statistical Learning)?课堂笔记(二)

继续一周一次的课堂笔记 :D 昨天去晚了站着听讲,感觉好好啊,注意各种集中.想想整个教室里面就是我和老师是站着的,自豪感油然而生. 第二次课讲的东西依旧比较简单,是这本书第二章的前半部分.作为一个好久之前已经预习过的孩子,我表示万分的得意(最小二乘法难道不是三四年前就学过的?话说以后我再面人的时候,就让他推导最小二乘估计量,嘻嘻...考验一下基本功). ------------原谅我的废话,笔记开始------------ 简单预测方法:最小二乘法(以下沿用计量经济学的习惯,简称OLS) OLS

统计学习基础(HGL的读书笔记)

统计学习:统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科,统计学习也成为统计机器人学习[1]. 统计学习分类:有监督学习与无监督学习[2]. 统计学习三要素:模型.策略与算法[1]. 统计学习的对象:统计学习的对象是数据.统计学习从数据出发,提取数据的特征,抽取数据的模型,发现数据中的指示,又回到对数据的分析与预测中去[1]. 统计学习的目的:建立输入与输出的关系,评价输入与输出的关系,即Y = f(X) + ε.其中输入变量X可以称为预测变量.自变量.属性