核模型(核密度估计)

1、核模型(Kernel function)

在线性模型中,多项式或三角函数等基函数与训练样本{(xi,yi)}毫不相关的。下面我们介绍一种模型,在基函数设计的时候会使用到输入样本{xi}。

note:是在基函数设计的时候使用到样本,那么训练的是什么?下面看公式。

核模型,是以使用被称为 核模型的 二元函数 K(.,.),
在这里插入图片描述
的线性结合方式加以定义的。
在这里插入图片描述
上面的theta就是我们要学习的对象 ,注意 theta为一个向量,可以表述为下面的形式。
在这里插入图片描述

可以把公式中的xi看做标记点(landmark),并将样本x和标记点之间相似特征;这里面可以看成一种广义的距离(相似程度),这种距离度量的方式就称之为核函数。

最常见的核函数是高斯核函数:
在这里插入图片描述
上面的 xi(有的书中写作c)就是核函数的 标记点,也可称之为均值;
h称为带宽;一般的带宽选择有技巧,带宽小怎么样?带宽小,拟合的比较紧凑。具体Google。
xi称之为均值,说是均值但是选取的时候怎么选,还是从训练样本中选取
下面给出核函数是如何衡量距离的?
核模型(核密度估计)_第1张图片
在高斯核模型中,对各个输入的样本{xi}进行高斯核的学习,并把其参数 theta进行学习。

2、KDE(核密度估计)

下面是上课时候的一个作业,直接贴出出来。
作业要求:
文档中将程序的运行结果贴出,结果应包括两个部分,第一部分是一个维的彩色KDE估计图三(最好用MATLAB画);第二部分是测试图片的运动目标二值图像检测结果(运动员用白色像素,背景用黑色)。
程序平台:MATLAB R2018 ;处理器:Intel®Core™i5-4210M CPU 2.6GHZ;4G内存。
视屏序列来源:(1)课上提供数据
(2)从https://www.bilibili.com/video/av23096534?t=97下载视屏序列; 使用Kmplayer视屏播放软件进行连续帧的截取(1秒3帧)。
一、算法
核密度估计(Kernel Destiny Estimation)不利用有关数据分布的先验知识,对数据分布不附加任何假定,是一种从数据集样本本身出发研究数据分布特征的方法。
核密度估计函数表示推导如下:

核模型(核密度估计)_第2张图片
核模型(核密度估计)_第3张图片
二、MATLAB代码

 %KDE,目标检测
clc
close all
N=20;%训练集数目
h=40;   %带宽
thr=0.000002;%阈值
train_set=cell(1,N);
par=double(15/(8*pi*N*h^3));%核函数系数
%读取并存储训练集
for i=1:N     
    train_set{i}=double(imread(strcat('frame_',num2str(i),'.jpg')));   
end
test=double(imread('frame_0777.jpg'));
[m,n,d]=size(test);%图像规格
KDE=zeros(m,n);   %存储KDE值
%利用EP核函数计算概率
tic
for i=1:N         %N张图片,计算每张图片KDE 
    mul=1;
    for j=1:d %d通道计算
        current_frame=train_set{i};
        temp=((current_frame(:,:,j)-test(:,:,j))./h).^2;%EP核函数
        temp=max(1-temp,0);  %EP核函数
%temp=exp(-(current_frame(:,:,j)-test(:,:,j)).^2/2/h^2);%高斯核函数
mul=mul.*temp;
End
KDE=KDE+mul;%累加一张图片KDE
End
KDE=KDE*par;%得到KDE
toc
%绘制三维KDE图
mesh(KDE)
colorbar
title('道路 KDE 估计图');
xlabel('X轴');
ylabel('Y轴');
zlabel('Z轴');
%目标检测
motion=(KDE

二、运行结果
下列运行结果采用基于EP核函数的KDE;(1)中为所提供的训练集,共20帧,带宽h选择为40;(2)中为自己在互联网上找的连续帧,训练集为15帧,带宽h为40。
核模型(核密度估计)_第4张图片
核模型(核密度估计)_第5张图片

你可能感兴趣的:(机器学习,作业)