美文网首页
李航-第2章感知机

李航-第2章感知机

作者: 瘦长的丰一禾 | 来源:发表于2018-05-21 19:11 被阅读64次

说白了,感知机就是找到一条直线(称作超平面)用来把两类点分开,这个直线用线性方程表示就是感知机。关键是如何找到分隔两类点的这个(最优)线性方程。


感知机模型
感知机模型.jpg
感知机模型的损失函数

因为点到超平面的距离是正的,所以损失函数是非负的。误分类点越少,误分类点离超平面越近,损失函数值就越小。感知机的学习策略就是找到使损失函数最小的参数w,b,也即是找到了感知机模型。

损失函数.jpg
一些问题:
误分类点.jpg 1、为什么对于误分类点,上面的公式是成立的?
因为:
当数据点是正确值为+1的时候,你误分类了,那么你判断为-1,则算出来f(x)<0,所以-yi * f(x)>0
当数据点是正确值为-1的时候,你误分类了,那么你判断为+1,则算出来f(x)>0,所以-yi * f(x)>0
参考链接:浅析感知机(一)--模型与学习策略 误分类点到超平面距离.jpg 这个点到超平面(直线)的距离的公司是如何来的,怎么推导?这里用的其实是向量的形式,而且值都是大于0的。所以可以直接进行求和,然后迭代求极值。可参考点到直线的距离推导:点到直线距离公式的几种推导

2、因为两类是线性可分的,则很显然可能不只有一个分隔超平面。那么如何确定最优的超平面呢?

方程中yi什属于{+1,-1},具体什么时候应该是+1,什么时候应该是-1呢?

3、如何保证没有误分类点?如何是二分类的,则在有限次迭代后即可。

sign是符号函数

感知机模型损失函数的优化方法,什么是梯度下降法

梯度下降法即表示进行求导,然后向函数值减少的方向不断调整,直到找到极小值。这里要可以参考凸优化以及微积分里面的求导数和偏导数。


梯度下降法.jpg
感知机模型算法过程

随机抽取一个误分类点,通过更新参数w,b使其梯度下降。当实例点被误分类,即位于分离超平面的错误侧,则调整w, b的值,使分离超平面向该无分类点的一侧移动,直至误分类点被正确分类

感知机学习算法的原始形式
感知机学习算法原始形式.jpg
# 感知机学习算法初始形式实现代码
import numpy as np

def Train(X_train, Y_train):
    #获取维度参数
    m, n = np.shape(X_train)
    #初始化w,b
    w = np.zeros((n, 1))
    b = 0

    while True:
        count = m     #统计修改次数,若没有变化,则退出while语句
        for i in range(m):
            result = Y_train[i]*(np.dot(X_train[i], w) + b)
            if result <= 0:           #计算yi(w*xi+b),其中np.dot表示矩阵相乘
                count -= 1
                #更新w,b。注意这里面的对w,b的循环的更新情况
                for j in range(n):
                    w[j] = w[j] + Y_train[i]*X_train[i][j]
                b = b + Y_train[i]

                print("w:(",w,")","b:",b)
                break
        if count== m:
            break
    return w,b

def main():
    X_train = np.array(([3, 3], [4,3], [1,1]))
    Y_train = np.array(([1,1,-1]))
    print(Train(X_train, Y_train))

if __name__ == '__main__':
    main()
感知机学习算法的对偶形式

感知机算法的对偶形式看的不是很懂,还需要花时间来看。一个是参数变了以及更新的形式变了。
另外一个就是算法的收敛性的以及证明还需要细看。


感知机学习算法的对偶形式.jpg

参考链接:
点到直线距离公式的几种推导
如何理解感知机学习算法的对偶形式?
浅析感知机(一)--模型与学习策略
感知机
感知机学习算法的对偶形式

相关文章

  • 统计学--感知机

    参考李航的统计学习 感知机学习算法 Python实现感知机代码 Python代码实现对偶形式

  • 李航-第2章感知机

    说白了,感知机就是找到一条直线(称作超平面)用来把两类点分开,这个直线用线性方程表示就是感知机。关键是如何找到分隔...

  • 感知机的总结及Python实现

    重读李航博士的《统计学方法》对感知机做个总结包括感知机原始形式和对偶对偶形式的原理和Python实现。 Pytho...

  • 感知机理论与实践代码

    本文主要参考李航老师的《统计学习方法》第二章感知机 感知机(perceptron)是一个二分类的线性分类模型,输入...

  • 感知机

    本文主要参考李航《统计学习方法》第二章感知机。 感知机(perceptron)是一个二分类的线性分类模型,输入为实...

  • 机器学习感知机(统计学习-李航)

    感知机 概述 感知机是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机学...

  • 《统计学习方法》之感知机模型

    最近在重新看李航的统计学习方法,总结下每章的内容,并使用python复现。 基本概念 感知机定义 : 输入空间,输...

  • 统计学习方法 李航 感知机模型 python s

    李航感知机(perception)是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1....

  • 感知机 perceptron

    参考书:《统计学习方法》李航 简介: 感知机是二类分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,取 ...

  • 李航统计学习方法(二)-感知机算法

    感知机算法 《统计学习方法》系列笔记的第二篇,对应原著第二章。大量引用原著讲解,加入了自己的理解。对书中算法采用P...

网友评论

      本文标题:李航-第2章感知机

      本文链接:https://www.haomeiwen.com/subject/scbfjftx.html