<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>DBSCAN on Chang Luo</title>
		<link>https://www.luochang.ink/tags/dbscan/</link>
		<description>Recent content in DBSCAN on Chang Luo</description>
		<generator>Hugo</generator>
		<language>zh-CN</language>
		
		
		
		
			<lastBuildDate>Sat, 19 Apr 2025 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://www.luochang.ink/tags/dbscan/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>DNN 模型聚类特征更新方法</title>
				<link>https://www.luochang.ink/posts/cluster_label_assign/</link>
				<pubDate>Sat, 19 Apr 2025 00:00:00 +0000</pubDate>
				<guid>https://www.luochang.ink/posts/cluster_label_assign/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;本文探讨如何在 DNN 模型中天级更新聚类特征时，保持聚类标签的稳定性。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;GitHub 项目地址：&lt;a href=&#34;https://github.com/luochang212/label-assignment&#34; target=&#34;_blank&#34;&gt;label-assignment&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;本文的主要内容包括：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;使用 &lt;code&gt;BLIP-2&lt;/code&gt; 将图片转为 embedding&lt;/li&gt;&#xA;&lt;li&gt;使用匈牙利算法建立重训练标签到原标签的映射&#xA;&lt;ul&gt;&#xA;&lt;li&gt;开发以 &lt;strong&gt;样本重合率&lt;/strong&gt; 为度量的方法&lt;/li&gt;&#xA;&lt;li&gt;开发以 &lt;strong&gt;类心距离&lt;/strong&gt; 为度量的方法&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;赋予 embedding 近似聚类 ID 的方法：最近邻法&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;时至今日，多塔模型仍以 ID 类特征为主。将模型特征以 raw data 的形式直接送入模型，效果往往不好。因此，我们通常先将特征 ID 化，然后用 &lt;code&gt;mmh3&lt;/code&gt; 哈希打散后，再送入模型。其中，&lt;strong&gt;特征 ID 化&lt;/strong&gt; 是一个重要步骤，如果 ID 的粒度太细，细到极致相当于每个样本一个 ID，这时样本就无法和与之相似的样本通过 ID 进行交互；如果 ID 的粒度太粗，则 ID 下的样本过多，此时模型无法从中学到指向足够明确的信息。&lt;/p&gt;&#xA;&lt;p&gt;将模型特征 ID 化有很多方法，比如 聚类（无监督）、分类（有监督）、量化等等。本文仅讨论 &lt;strong&gt;聚类算法&lt;/strong&gt; 及其在深度学习模型中的应用。&lt;/p&gt;&#xA;&lt;h2 id=&#34;一引子频繁变更索引的代价&#34;&gt;一、引子：频繁变更索引的代价&lt;/h2&gt;&#xA;&lt;p&gt;为了理解聚类算法产生的聚类 ID 是如何在深度模型中发生作用的，有必要介绍一下 &lt;strong&gt;嵌入层 (Embedding Layer)&lt;/strong&gt; 的工作原理。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;嵌入层是聚类 ID 与深度模型连接的桥梁&lt;/strong&gt;。嵌入层的输入是聚类 ID，输出是该聚类 ID 对应的 embedding。在嵌入层中，聚类 ID 的每个枚举值都对应一个可学习的 embedding。如下图，假设聚类 ID 有 5 个枚举值 &lt;code&gt;[0, 1, 2, 3, 4]&lt;/code&gt;，枚举值对应的索引分别为 &lt;code&gt;idx0&lt;/code&gt;, &lt;code&gt;idx1&lt;/code&gt; &amp;hellip; &lt;code&gt;idx4&lt;/code&gt;。当一个样本进入模型，它会根据聚类 id 号（比如 2 号）去找对应的索引（&lt;code&gt;idx2&lt;/code&gt;），然后将索引下的 N 维 embedding 取回。嵌入层在有些地方也被称为码本 (codebook).&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
