第二章 感知机(perceptron)

感知机是一个二分类的线性分类模型。用线性模型 展开来就是
也就是X,W 内积 [x,w]+b =0
用线性模型来作为分割超平面。来划分类别。
其本质还是优化问题。就是各个误分类样本点到分离超平面的距离和的最小值问题

image.png
image.png

感知机的自编程实现

import numpy as np
import matplotlib.pyplot as plt

class MyPerceptron:
    def __init__(self):
        self.w=None
        self.b=0
        self.l_rate=1

    def fit(self,X_train,y_train):
        #用样本点的特征数更新初始w,如x1=(3,3)T,有两个特征,则self.w=[0,0]
        self.w=np.zeros(X_train.shape[1])
        i=0
        while i
image.png

梯度下降,求损失函数的最小值的一种方法
梯度 梯度的定义 各个维度的偏导向量,和各个维度的自然基的内积
超参数是模型之外,无法从训练数据中得到的,调节效率,模型结构等的旋钮

image.png

有关梯度以及梯度下降优化算法,

感知机模型收敛性推导novikeff 不等式


image.png
image.png
image.png

感知机的对偶形式
知乎 感知机对偶形式理解

觉得对偶形式难懂的点在于ni而ni的含义书上并没有明说,查了好久才发现。

ni表示的是第i个样本点被误判的次数,而感知机一般形式中的w其实就是每个样本点被误判的次数乘以 XiYi的累加和,也就

image.png

在每次迭代的时候,ni表示的是到当前为止,第i个样本点被误判的次数,这个很重要。

因为要反复让样本点中的输入x两两相乘(这个在一般形式中计算w的时候也要这样,自己模拟一遍就发现了),所以提前搞成一个矩阵存起来,类似于平时刷算法题说的打表。。。所以两个形式本质上是一样的,不过把w用另外一种形式表示。

你可能感兴趣的:(第二章 感知机(perceptron))