[无监督式学习]-自学习目标分类器/检测器探究

开始做新项目啦QAQ

一些背景知识

什么是无监督式,监督式学习?

在正文开始前,我想搞懂这个问题是非常重要的。在目前的机器学习领域,大概把训练(/学习)过程分为三类,一类是监督式学习,一类是半监督式学习,一类是无监督式学习。自学习目标分类器/检测器正是属于无监督式学习的范畴。半监督式学习在这里就不展开说了。下面大概说一下自己对剩下两种模式的理解:

监督式学习

顾名思义,就是人为提供数据与标定。比如在目标分类中,每张图片标定一个onehot编码/数字索引。在目标检测中每张图片提供一些bounding box坐标。以上的这些把数据人为标定上一定的值,输入网络,进行训练,从而拟合出一个合适的数据关于标定的“公式” 的思路,称为监督式学习。

无监督式学习

不提供标定好的数据,直接向网络输入数据,由网络根据输入数据,进行特征提取,从而输出结果。意义:有些数据人工无法标定;有些数据,人工标定的难度太高。

自学习目标分类器

在探究了自学习目标分类器后,我觉得它应该算是最简单的无监督式学习demo了。它的主题思想如下:

训练

将矩阵输入backbone后得到fmap,再将fmap做聚类。不过此处有个地方,我还是不太理解。就是在数据不确定的情况下,如何用手肘法确定合适的K值。(后面再仔细想想)

预测

经过聚类后,假设我们得到了n个类别。此时,便完成了学习的过程(特征提取并分类)。之后,我们便可以进入预测。假设此时有一个图像矩阵输入网络,得到了fmap。我们的目标是为了得到这个fmap的类别(即图像矩阵的类别)。而再上一步中,我们已经通过聚类获得了n个类别了。那么,判断这个fmap的类别也非常简单了。我们只需计算这个fmap和n个类别中心点的距离,找出距离最小值所对应的类别中心点索引,就可以实现对fmap类别的分类。

实操

嘴上说起来还是挺简单的QAQ,但是许多问题还是要实操下才行。这样才会暴露一些bug出来。明天早上再去研究研究,今天就先写这么多吧。

运行效果

在这里插入图片描述
在这里插入图片描述

一些重要的地方

K值如何确定?

经过,今早的思考。我认为,这个K值是无需像yolo里面的anchor聚类一样,通过手肘法找到K值。K值就是分类值(你希望把一个数据的特征,用多少个特征中心点表示(/概括))

backbone选择?

根据对以上原理的推敲,我们希望backbone输出是个fmap。故我们只需要找个合适的backbone,假如它的输出就是fmap的话,那再好不过了(比如mobilenet 的no include top)。如果他的输出不是fmap,我们只需要在顶层重新加个conv就行。

刚好最近对于无监督的目标检测没啥思路,所以打算下周一开始,花个1-3天左右,在pc上搭个自学习目标分类器看看。以便于自己更加深入了解整个搭建过程中的思路,收获一些灵感,为后面做无监督目标检测提供些灵感。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值