论文阅读-BoVW-pLSA
- 论文链接:Medical Image BoVW-pLSA
- 文章大意:其实和BoVW-MI差不多,也都是在原来的词库上选择一些更具代表性的词汇。只不过将原来mutual information更换成了这里的PLSA方法,PLSA详细介绍请看下文。
PLSA(probabilistic Latent Semantic Analysis)
- 首先我们先明白一下单词的意思:
- word:视觉单词,代表的是通过BoVW方法得到的视觉单词
- document:文档,在这里代表的就是一个样本sample
- concept:主题,比如说我们的我们的单词包括{内存、CPU、历史、悬疑}等词汇的时候,我们的主题可能就包括{计算机、小说}等。注意,在这里主题的个数是由我们指定得到的。
- 明白了上述的概念后,我们怎么来挑选我们想要的单词呢?我们可以计算每个主题和每个单词,每个主题和每个文档的紧密程度,知道了这些我们就按照一定的比例挑选出来我们想要的单词了吧。但是怎么计算这个紧密程度呢?pLSA给出了如下的算法:
- 其中wj代表的是第j个单词,zk代表的是第k个主题、di代表的是第i个文档.
- n(di, wj)代表的是第i个文档中,单词j的个数
- n(di)代表的是第i文档中所有单词的个数
- 所以我们就可以得到单词和主题的紧密程度矩阵P(w|z)
- 知道了上诉算法,那我们怎么计算呢?
- 首先我们先给P(w|z) 和 P(z|d) 初始化为随机数
- 然后先后更新P(z|d,w) P(w|z) P(z|d)
- 一直迭代直到P(z|d,w)的新旧之差小于一个阈值,也就是所谓的收敛。
- 计算矩阵的代码如下所示:
def calu_two_matrix(image_hist, k=100): shape = list(np.shape(image_hist)) p_w_z = np.zeros([shape[1], k],dtype=np.float32 ) p_z_d = np.zeros([k, shape[0]],dtype=np.float32 ) p_z_d_w = np.zeros([k, shape[0], shape[1]],dtype=np.float32 ) p_z_d = np.random.random([k, shape[0]]) for zi in range(k):normalize(p_z_d[zi]) p_w_z = np.random.random([shape[1], k]) for wi in range(shape[1]):normalize(p_w_z[wi]) while True:# update p(z|d,w)p_z_d_w_new = np.zeros([k, shape[0], shape[1]],dtype=np.float32)for zi in range(k):for di in range(shape[0]):for wi in range(shape[1]):sum = 0.0for zii in range(k):sum += (p_w_z[wi, zii] + p_z_d[zii, di])temp = p_w_z[wi, zi] * p_z_d[zi, di] * 1.0temp /= (sum * 1.0)p_z_d_w_new[zi, di, wi] = tempp_w_z_new = np.zeros([shape[1], k],dtype=np.float32)p_z_d_new = np.zeros([k, shape[0]],dtype=np.float32)# update p(w|z)sum_p_w_z_byk = {}for zi in range(k):sum_p_w_z = 0.0for wii in range(shape[1]):for dii in range(shape[0]):sum_p_w_z += (image_hist[dii, wii] * p_z_d_w_new[zi, dii, wii])sum_p_w_z_byk[zi] = sum_p_w_zfor wi in range(shape[1]):for zi in range(k):sum_up = 0.0for dii in range(shape[0]):sum_up += (image_hist[dii, wi] * p_z_d_w_new[zi, dii, wi])sum_down = sum_p_w_z_byk[zi]temp = (sum_up * 1.0) / (sum_down * 1.0)p_w_z_new[wi, zi] = temp# update p(z,d)nd = []for dii in range(shape[0]):temp = 0.0for wii in range(shape[1]):temp += image_hist[dii, wii]nd.append(temp)for zi in range(k):for di in range(shape[0]):sum_up = 0.0for wii in range(shape[1]):sum_up += (image_hist[di, wii] * p_z_d_w_new[zi, di, wii])temp = (sum_up * 1.0) / (nd[di])p_z_d_new[zi, di] = tempdiff = math.fabs(np.sum(p_z_d_w_new - p_z_d_w))p_z_d_w = p_z_d_w_newp_w_z = p_w_z_newp_z_d = p_z_d_newprint 'diff is %g' % diff
- 首先我们先明白一下单词的意思:
此外,再给一个完整的项目代码为例,代码地址:GitHub BoVW-pLSA
- 详情阅读README文档
论文阅读-BoVW-pLSA相关推荐
- 论文阅读工具ReadPaper
对于搞科研的同学们来说,看论文是要经历的第一关,尤其是要读好多篇论文的时候,更是着实令人头大. 这不,最近无意中发现了个在线论文阅读网站:readpaper.com,号称「论文阅读笔记神器,硕博科研学 ...
- 多目标跟踪:CVPR2019论文阅读
多目标跟踪:CVPR2019论文阅读 Robust Multi-Modality Multi-Object Tracking 论文链接:https://arxiv.org/abs/1909.03850 ...
- 快速人体姿态估计:CVPR2019论文阅读
快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...
- Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读
Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读 Action4D: Online Action Recognition in the Crowd and Clutter 论文链接 ...
- 深度学习点云语义分割:CVPR2019论文阅读
深度学习点云语义分割:CVPR2019论文阅读 Point Cloud Oversegmentation with Graph-Structured Deep Metric Learning 摘要 本 ...
- 3D目标检测论文阅读多角度解析
3D目标检测论文阅读多角度解析 一.前言 CNN(convolutional neural network)在目标检测中大放异彩,R-CNN系列,YOLO,SSD各类优秀的方法层出不穷在2D图像的目标 ...
- 3D目标检测论文阅读摘要
3D目标检测论文阅读摘要 2D Object Detection 的研究已经非常成熟了,代表作品有RPN系列的FasterRCNN,One Shot系列的YOLOv1-YOLOv3,这里推荐一个2D ...
- 目标检测——Faster R-CNN论文阅读
论文阅读--Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks 文章目录 论文阅读--Faste ...
- 【独家】深度学习论文阅读路线图
如果你是深度学习领域的一名新手,可能会遇到的第一个问题是"应该从哪篇论文开始读起呢?" 这里给出了深度学习论文阅读路线图! 路线图按照下面四个准则构建而成: 从提纲到细节 从经典到 ...
- 道路检测 | SNE-RoadSeg论文阅读
道路检测 | SNE-RoadSeg: Incorporating Surface Normal Information into Semantic Segmentation for Accurate ...
最新文章
- MySQL从5.7.32升级到8.0.22
- linux备份sqlserver数据库,Linux sqlServer数据库还原办法
- 整数判重、大整数Hash
- Java解压上传zip或rar文件,并解压遍历文件中的html的路径
- 从决策树到xgboost(一)
- 飞鸽传书 获得磁盘的C#描述信息
- 八段LED数码管段代码编码表
- 我该用 Java 12 还是坚持 Java 11?
- 蓝桥杯 ALGO-107 算法训练 9-7链表数据求和操作
- 前端可视化开发-编辑器
- 温习SQL server
- mysql数据库备份sql语句_mysql用户管理、常用sql语句及数据库的备份
- 通信服务器的作用是什么意思,通讯管理机是什么 通讯管理机的作用功能及特点...
- css焦点图片裁切技术
- windows快速生成ssh key
- bluez——mgmt分析
- 60 个让程序员崩溃的瞬间,哈哈哈哈哈哈哈哈哈
- 奶茶妹妹章泽天加入微软Bing团队
- 厦门明发家乐福免费班车行车线路和时间表
- 老嘤学习笔记——python函数
热门文章
- 从零开始部署一套脱单盲盒
- C语言scanf()函数使用的注意事项
- awm怎么弄 rust_AWM绝地求生第八章(加更一)
- mysql 增加列和注释_MySql给表添加列和注释
- 失信被执行人查询API开发文档
- java 400_Java项目报400错误的原因与解决方法
- 基于matlab的几何失真矫正,使用imatest软件帮助校正畸变
- 解决word文档编辑过程中出现空白页无法删除的问题
- 刀塔OMG塔防1.26b单机版使用方法
- Android:短信 筛选/批量删除 程序(支持Android 2.3~4.4)