Java教程

核模型(核密度估计)

本文主要是介绍核模型(核密度估计),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、核模型(Kernel function)

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

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

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

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

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

2、KDE(核密度估计)

二、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<thr);  %阈值比较
result=mat2gray(motion); %转换为灰度图像
figure;imshow(result);
title(道路目标检测结果图)

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

这篇关于核模型(核密度估计)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!