基于LDA模型的非监督分类算法介绍
前言
基于LDA(Latent Dirichlet Allocation)模型的非监督分类算法,将LDA模型从文本分析的应用过渡到遥感高分辨率影像处理的应用,利用Gibbs采样方法设计基于LDA模型的非监督分类算法,并使用IDL语言实现。在一定程度上解决了非监督分类中“同谱异物”问题,且取得了较好的精度。
一、 LDA模型原理
2.1 Dirichlet分布
Dirichlet分布是多项式分布参数π=π1,π2,…,πk的共轭先验分布。所谓的共轭先验可以理解为指在贝叶斯推理中:

参数集θ对应的先验P(θ)和似然函数P(x|θ),如果通过贝叶斯公式得到的后验P(θ|x)和先验具有同样的函数形式,则称P(θ)是参数集θ的共轭先验。共轭先验的优势体现在:(a)简化贝叶斯推理分析的数学形式;(b)利用共轭先验的特点,可以不断利用已观测值推算新观测值后验,再将所得的后验去推算新观测值的后验,反复循环对未知数据进行贝叶斯推理。
参数集α={α1,α2,…,αk}的Dirichlet分布,概率密度函数表示如下:

其中,参数π1,π2,…,πk≥0,,且α1,α2,…,αk>0;Γx是Gamma函数。参数αk表示为πk的先验观测数目。当π_k服从Dirichlet分布时,形如:

在很多实际应用中,为了简化Dirichlet分布而只使用对称的Dirichlet分布参数,即使用标量来替代向量形式参数。取α=,则参数集
的Dirichlet分布,概率密度函数简化如下:

2.2 符合和术语
在介绍LDA模型时,使用文本分析中的概念,例如“词”、“文档”和“语料库”。用这样的表达方式有助于直观地了解各个符号的含义,尤其是在介绍一个潜在变量来描述抽象的符号,如主题。为方便对于LDA文本建模的描述,定义如下:
词(word):LDA模型中最基本的分析单元,也叫视觉词。
词汇表(Vocabulary):语料库中,词所可能取得的所有值。
主题(Topic):词所对应的潜语义信息。以变量z表示。
文档(Document):N个词的序列集合。第m个文档
。
语料库(Corpus):M个文档的集合。表示为D={d1,d2,…,dM}

2.3 混合过程
LDA模型的理论基础是语料库中所有文档均由潜变量(主题z)按照一定混合比例分布构成的,而每一个主题又是由词汇表V中的词按照一定的混合比例分布构成。

图 1 LDA 模型的贝叶斯网
使用概率图模型表示LDA文本建模的过程,并将其分解为两个物理过程:
(1)α→θm→zm,n,这个过程表示在生成第m篇文档中所有的词对应的主题,α→θm对应于Dirichlet分布,θm→zm,n对应于Multinomial分布,所以这个过程是一个Dirichlet-Multinomial共轭结构。

(2)β→φk→wm,n|k=zm,n,这个过程表示在k=zm,n的限制条件下,语料库中的任意的主题k都是可交换的,即便是不同文档中的主题,所以在这里只考虑同一个主题中生成的词。β→φk对应于Dirichlet分布,φk→wk对应于Multinomial分布,所以这个过程是一个Dirichlet-Multinomial共轭结构。

具体的生成过程如下:
(1)依赖于超参数β的Dirichlet分布,采样出主题k对应词的构成分布φk;
(2)依赖于超参数α的Dirichlet分布,采样出文档m对应主题的混合比例θm;
(3)依据参数ζ的泊松分布,采样出文档m对应的长度Nm,其中ζ为不同应用人为给定的参数;
(4)依据文档m对应主题的混合比例θm的Multinomial分布,采样出文档m中第n个词的主题类型zm,n;
(5)依据主题zm,n对应词的构成分布φzm,n的Multinomial分布,采样出文档m中第n个词wm,n在词汇表Vword中词的类型编号。
2.4 LDA模型求解
尽管LDA是一个相对简单的模型,但求解模型参数仍是一个较为棘手的问题。由于潜变量多且Dirichlet函数分布复杂,利用上述推导出的积分公式计算确实存在一定的困难。对此,许多研究人员提出了近似求解法。本文采用Gibbs采样的方法计算LDA模型参数,并使用IDL语言设计了Gibbs算法的代码。
Gibbs采样过程如下:
(1)对语料库中的每一个词wi随机赋值一个主题类型zi,i=m,n,此时开始马尔科夫链计算。其中zi∈[1,K],词的总个数为=
。
(2)循环i从1至,计算出每个词wi的新主题,直至语料库中所以词都进行了一次更新。这时马尔科夫链的一个状态结束。
(3)人为设定循环迭代的次数,重复地进行过程(2)。当迭代次数足够大时,可认为马尔科夫链接近目标分布,则可将最终每个词所分配的主题视为其真正的主题。
(4)根据最终得到的语料库中每个词对应的主题,求得语料库中文档的主题混合比例分布和词对于主题的条件概率分布。
二、LDA模型应用于遥感影像非监督分类
LSA、PLSA以及在此基础上建立了LDA模型原本是分析自然语义,以此来指导能够识别自然语言的机器。而自然影像的理解也面临着和自然语言理解同样的问题,一张影像中有着大量的像元值或者特征点,这些像元值或者特征点就对应于自然语言中的词(或视觉词),每个像元值或特征点也有潜主题值。随着LDA模型建立和广泛使用,越来越多的研究者将LDA模型应用于图像理解中。

图2 LDA模型从自然语义到自然影像分析过渡
将自然语义中的文本分析应用于影像分析,文档相当于影像图块,文档中的词(视觉词)相当于影像中的像元簇或像元值,文档中主题相当于像元聚类类别。建立了以上的联系,我们可以将LDA模型用于遥感影像的非监督分类。
建立了LDA模型在文本建模和在遥感影像处理方面的联系之后,分析在处理高分辨率影像时会遇到的诸多问题,具体分析如下:
(1)LDA模型在应用于文本处理时,文本中的“文档”“词”“主题”概念简单,关系明了。而高分辨率影像本身存在地学复杂性、像素间紧密关联性等特征,不能将其简单视作一般的图像文本。
(2)高分辨率遥感影像中的视觉词之间关系复杂,视觉词的定义也需谨慎,不同视觉词的选择会影响分类的精度。通常视觉词的设计包括:
a.传统计算机视觉词确定方法,将影像中不同的特征点作为视觉词,这样设计的视觉词包含多个像元;
b.影像像元作为视觉词。通过计算每个像元值个潜在主题概率,赋予其概率最大的值作为它的主题。
在本文中,将LDA模型用于影像处理时,具体过程如下:
(1)先对影像进行预处理,将其分割成多幅小影像块,每个影像块就是一篇“文档”,而整幅影像就是“语料库”,在每个影像块中,选取其中的像素值作为基本分析单元“视觉词”;
(2)模型关系一一对应之后,进行LDA模型求解;
(3)利用Gibbs采样方法,循环迭代解算出每个像素值归属的主题,最后输出整幅分类好的影像。
三、算法测试及精度评价
2.1算法测试
选取一幅高分辨率遥感影像作为实验数据。

图3 遥感高分辨率影像(假彩色合成)
对影像进行人为解译,可以看到分为5个类:
分别使用ENVI自带的ISODATA非监督分类、K-Means非监督分类和基于LDA模型的非监督分类,结果如下:

图4 非监督分类结果对比
2.2 精度评价

解算ISODATA非监督分类影像的误差矩阵和精度评价指标。


根据图中的分类结果,可以看出图4(b)和图(c)中的部分道路、房屋与水体被分成了一类。而在LDA模型的非监督分类中道路、房屋与水体很明显被划分成了不同的类。分析可得:水体的灰度值在1至5之间;道路的灰度值在20至40之间;部分房屋灰度值在2至40之间,这三个地物的灰度值存在重复。使用LDA模型计算每一个像素的灰度值对应所有五个类别的后验值,规定取后验值最大者为该像素的实际类别,例如:像素的灰度值值同为3的水体和房屋,LDA模型计算出水体像素属于水体类别的后验大于其他类别的后验,便将水体类别赋予给该像素,同理,LDA模型计算出房屋像素属于房屋类别的后验大于其他后验,便将房屋类别赋予给该像素。所以对于灰度值相同的水体和房屋,利用LDA模型能够得到很好的区分。因此,在解决“同谱异物”的问题上,LDA模型非监督分类方法比ISODATA非监督分类和K-Means非监督分类具有更大的优势。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/392026.html
如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!相关文章:

基于LDA模型的非监督分类算法介绍
前言基于LDA(Latent Dirichlet Allocation)模型的非监督分类算法,将LDA模型从文本分析的应用过渡到遥感高分辨率影像处理的应用,利用Gibbs采样方法设计基于LDA模型的非监督分类算法,并使用IDL语言实现。在一定程度上解…...

以安全有效为目标的综合运营
一、安全行业的现状所有做安全的方案大多会在开始介绍安全的案例,都会列举近期国内外发生的重大安全事件, 基本上都是惨不忍睹,危害巨大。这里就不一一列举了,稍微了解这个行业的人都能看到大量的案例。但业界又有个很奇怪的现象就…...

mysql常见面试题--03 事务常考题以及事务的隔离
什么是事务? 对数据库的一系列操作,要么全执行,要么不执行. 事务时逻辑上的一组操作,要么全部执行,要么都不执行。 事务的三大特征 原子性 A 事务是最小执行单位,要么全部执行,要么都不执行一致性 C 事务执行前后&…...

【推荐研究方向(1)】小样本开集目标检测(few-shot open-set detection)
论文题目:Towards Few-Shot Open-Set Object Detection 论文链接:https://arxiv.org/abs/2210.15996 1、任务:小样本开集目标检测,使用少量已知类样本训练模型,使得模型既能够检测小样本已知类又能够检测未知类。 2、动机:解决FSOSOD问题有三个重要原因。 1)可…...

细讲TCP三次握手四次挥手(四)
常见面试题 为什么TCP连接的时候是3次?2次不可以吗? 因为需要考虑连接时丢包的问题,如果只握手2次,第二次握手时如果服务端发给客户端的确认报文段丢失,此时服务端已经准备好了收发数(可以理解服务端已经连接成功)据…...

道路病害识别监测系统 CNN网络
道路病害识别监测系统通过CNN网络深度学习算法,道路病害识别监测对巡检车上实时监控道路影像数据进行分析,输出道路病害裂缝巡检报告并落图展示。在CNN出现之前,对于图像的处理一直都是一个很大的问题,一方面因为图像处理的数据量…...

chromium ARM版本编译记录
需求用的国产电脑,统信麒麟自带的chromium版本都是83版本,lceda要求超过100版本,低版本没法打开编辑器,只能用客户端版本。都是JS,还整这么多事...刚开始想着一步到位直接在阿里云香港主机上买高配置的竞价虚拟机,结果…...

【博客606】k8s如何查看pod崩溃前的日志及其原理
k8s如何查看pod崩溃前的日志及其原理 场景 当pod处于crash状态的时候,容器不断重启,此时用kubelet logs可能出现一直捕捉不到日志解决方法: kubelet previous参数作用: If true, print the logs for the previous instance of…...

one-shot learning、Siamese网络、Triplet loss、面部验证和二分类
目录1.one-shot learning(一次学习)one-shot learning就是对某一类别只提供一个或者少量的训练样本。而很小的训练集不足以训练一个稳健的神经网络。为了解决这个问题,需要首先训练一个 similarity function:d(img1,img2),用于表示两张图片的…...

Java中反斜杠的用法
1 问题在字符常量中,反斜杠(\)是一个特殊的字符,被称为转义字符,它的作用是用来转义后面一个字符。(\\)表示要插入一个正则表达式的反斜线,其后的字符具有特殊意义。2 方法下面是一些…...

Linux 多线程(线程概念、线程控制部分)
Linux 多线程 文章目录Linux 多线程Linux线程概念1.回顾一下之前所认知的进程2.什么是线程总结:3.线程的优点4.线程的缺点5.线程异常6.线程用途Linux进程与线程1.进程和线程的不同2.进程的多个线程共享同一地址空间3.进程和线程的关系Linux线程控制1.Linux没有真正意…...

详解软件项目管理流程的每一步
一、项目启动(项目开工会) 了解项目干系人及其利害关系。 所有项目组成员是否到位,如到位则拿到项目开发人员的简历,详细了解每个开发人员的情况(可能会组织到客户方面试)。 根据项目需求规格列出项目功能列…...

无法安装framework DDSet_Error: Failure creating interface IAssemblyCache
今天搞了一天,在崩溃边缘,终于搞掂,记录一下 由于安装的错误日志不够详细,所以很难找到问题根源 首先安装 MicrosoftEasyFix(安装和卸载都可以在这里下载:https://support.microsoft.com/en-us/kb/223300…...

rtl8723be网卡驱动不稳定怎么办
立即生效:执行 代码:sudo modprobe -r rtl8723besudo modprobe rtl8723be -v ips0 fwlps0 swenc1开机加载:新建/etc/modprobe.d/rtl8723be.conf,添加代码:options rtl8723be ips0 fwlps0 swenc1也可以通过以下代码:sudo echo "options rtl8723be fwlps0 swlps0…...

win server 端口映射相关命令
#查看端口映射状态#netsh interface portproxy show v4tov4# CentOS SSH port! # 增加22端口#;netsh interface portproxy add v4tov4 listenaddress192.168.30.60 listenport22 connectaddress192.168.30.63 connectport22# 如果想取消上面配置的端口转发&…...

简单地一个DOS端口映射程序
#查看端口映射状态# netsh interface portproxy show v4tov4# CentOS SSH port! # 增加22端口#; netsh interface portproxy add v4tov4 listenaddress192.168.30.60 listenport22 connectaddress192.168.30.63 connectport22# 如果想取消上面配置的端口转发&a…...

如何在 CentOS / RHEL 上设置 SSH 免密码登录
前提配置:使用root登录修改配置文件:/etc/ssh/sshd_config,将其中三行的注释去掉,如下: 然后重启ssh服务:service sshd restart。最后退出root,以下所有操作都在hadoop用户下进行。 主机信息如下…...

linux如何看一个文件夹内(包括子文件夹内)n天内修改了的文件,并且按修改时间排序(最下方是最新的)
find. -mtime -n - ls| sort-r...

jersey2 MappableException 异常出现的情况
1,url获取方式出错,get、post、put、delete 2,url拼写错误。 3,服务发布出错。...

VMware 克隆centos虚拟机 网卡配置问题 Device eth0 has different MAC address than expected, ignoring.
1.当虚拟机被克隆之后,原来的在基本系统中的网卡 eth0 在新系统中就没有了,使用 ifconfig -a 会发现只有 eth1。因为基本系统的网络配置都是基于 eth0 的,eth1 没有网络相关配置,此时要正常使用改虚拟机中的网络,只有添…...