-
Notifications
You must be signed in to change notification settings - Fork 0
/
atom.xml
237 lines (129 loc) · 43.8 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Rick Universe</title>
<link href="https://rickustc.github.io/atom.xml" rel="self"/>
<link href="https://rickustc.github.io/"/>
<updated>2024-07-01T08:30:40.514Z</updated>
<id>https://rickustc.github.io/</id>
<author>
<name>Rick Wang</name>
</author>
<generator uri="https://hexo.io/">Hexo</generator>
<entry>
<title>DDIM</title>
<link href="https://rickustc.github.io/2024/DDIM/"/>
<id>https://rickustc.github.io/2024/DDIM/</id>
<published>2024-06-30T16:00:00.000Z</published>
<updated>2024-07-01T08:30:40.514Z</updated>
<content type="html"><![CDATA[<p>开始学习一些扩散模型的加速采样算法</p><span id="more"></span><p>这里的加速采样主要是reverseprocess中不用逐步进行概率的transformation</p><p>回顾之前的要逼近的概率分布:</p><p>$p(x_{t-1}|x_t,{}) = $</p>]]></content>
<summary type="html"><p>开始学习一些扩散模型的加速采样算法</p></summary>
<category term="generative model" scheme="https://rickustc.github.io/tags/generative-model/"/>
</entry>
<entry>
<title>扩散模型如何做inverse problem</title>
<link href="https://rickustc.github.io/2024/%E6%89%A9%E6%95%A3%E6%A8%A1%E5%9E%8B%E5%A6%82%E4%BD%95%E5%81%9Ainverse%20problem/"/>
<id>https://rickustc.github.io/2024/%E6%89%A9%E6%95%A3%E6%A8%A1%E5%9E%8B%E5%A6%82%E4%BD%95%E5%81%9Ainverse%20problem/</id>
<published>2024-06-26T17:00:35.000Z</published>
<updated>2024-06-28T07:59:23.437Z</updated>
<content type="html"><![CDATA[<p>扩散模型怎么做超分,inpainting,MRI reconstruction...这些inverseproblem?</p><p>对于有measure process的逆问题和没有显示measureprocess的逆问题如何区分?linear的可逆问题和non-linear的可逆问题如何区分?</p><span id="more"></span><p>先计划着看一些综述和notes</p><p>这里先码上一些链接:</p><p>https://github.com/yuanzhi-zhu/DiffPIR?tab=readme-ov-file</p><p>https://zhuanlan.zhihu.com/p/675716426</p><p>https://drive.google.com/file/d/18KfSKzS7dOaF15VJx8q_MXCG2yhmVd12/view</p><p>https://zhuanlan.zhihu.com/p/687625682</p>]]></content>
<summary type="html"><p>扩散模型怎么做超分,inpainting,MRI reconstruction...这些inverse
problem?</p>
<p>对于有measure process的逆问题和没有显示measure
process的逆问题如何区分?linear的可逆问题和non-linear的可逆问题如何区分?</p></summary>
<category term="扩散模型 图像恢复" scheme="https://rickustc.github.io/tags/%E6%89%A9%E6%95%A3%E6%A8%A1%E5%9E%8B-%E5%9B%BE%E5%83%8F%E6%81%A2%E5%A4%8D/"/>
</entry>
<entry>
<title>外参内参的推导</title>
<link href="https://rickustc.github.io/2024/%E5%86%85%E5%8F%82%E5%92%8C%E5%A4%96%E5%8F%82%E7%9A%84%E6%8E%A8%E5%AF%BC/"/>
<id>https://rickustc.github.io/2024/%E5%86%85%E5%8F%82%E5%92%8C%E5%A4%96%E5%8F%82%E7%9A%84%E6%8E%A8%E5%AF%BC/</id>
<published>2024-06-25T16:00:00.000Z</published>
<updated>2024-06-26T05:30:18.478Z</updated>
<content type="html"><![CDATA[<p>补充一些3D视觉的基础内容</p><span id="more"></span><blockquote><p>[!一个问题] 什么是坐标系</p></blockquote><p>坐标系是观察世界的角度,不同坐标系是观察世界的不同角度,不同的点在不同坐标系下坐标不同</p><blockquote><p>[!一个问题] 存在哪几个坐标系</p></blockquote><p>一共有像素坐标系,图像坐标系,摄像机坐标系,世界坐标系四个坐标系。对像素坐标系的研究是在摄像机坐标系下某个点投影到相机成像平面,我们需要它的坐标然而实际情况中比如在3D视觉里我们更加一般化的要考虑2D成像平面的坐标点,反投影的3D坐标,这个时候深度信息往往未知</p><blockquote><p>[!一个问题] 内参是什么</p></blockquote><p>内参是3D到2D投影矩阵内参转换是说,在<font color="#ff0000">摄像机坐标系</font>下,给定的<font color="#ff0000">空间点</font>的坐标是齐次坐标A,求对应的<font color="#ff0000">图像坐标系下</font><font color="#ff0000">图像点</font> 的齐次坐标坐标在哪个位置。</p><blockquote><p>[!一个问题] 为什么引入齐次坐标</p></blockquote><p>齐次坐标下平移旋转这种仿射变换可以表示成线性变换(平移不是线性变换)</p><blockquote><p>[!一个问题] 外参是什么</p></blockquote><p><strong>相机坐标系并不是一个“稳定”的坐标系,其会随着相机的移动而改变坐标的原点和各个坐标轴的方向,用该坐标系下坐标进行计算,显然不是一个明智的选择</strong></p><blockquote><p>(每个人都有自己的相机,小A在自己的坐标系下说这个点是(1,0,0)点,小B在自己的坐标系下说这个点是(0,1,0))点,显然乱套。</p></blockquote><p>因此需要引进一个稳定不变坐标系:<strong>世界坐标系</strong>,该坐标系是绝对不变,SLAM中的视觉里程计就是求解相机在世界坐标系下的运动轨迹有了这个坐标系对于空间中的任意一个固定的点,我们都有他的绝对坐标(世界坐标系下的坐标),然后根据外参得到这个相机下的相机坐标,在根据该相机的内参,得到该点投影到相机成像平面的坐标。</p><p>最后看一下齐次坐标矩阵推导,这里的推导比较简单,就是一些矩阵运算<span class="math inline">\(P' = \left[ \begin{array}{cccc} \alpha& 0 & c_x & 0 \\ 0 & \beta & c_y & 0 \\ 0 &0 & 1 & 0 \end{array} \right] \left[ \begin{array}{c} x \\ y \\z \\ 1 \end{array} \right] = \mathcal{MP} \\ = K \begin{bmatrix} I &0 \end{bmatrix} P\)</span></p><p>K就是内参矩阵 <span class="math inline">\(P' = K \begin{bmatrix}I & 0 \end{bmatrix} P = K \begin{bmatrix} I & 0 \end{bmatrix}\begin{bmatrix} R & T \\ 0 & 1 \end{bmatrix} P_w = K\begin{bmatrix} R & T \end{bmatrix} P_w = \mathcal{M} P_w\)</span>R和T是外参矩阵</p><p>reference: <ahref="https://www.cnblogs.com/armcvai/p/17131688.html#15%E4%B8%89%E7%BB%B4%E6%97%8B%E8%BD%AC%E6%AC%A7%E6%8B%89%E8%A7%92%E6%97%8B%E8%BD%AC%E7%9F%A9%E9%98%B5%E4%B9%8B%E9%97%B4%E7%9A%84%E8%BD%AC%E6%8D%A2">万字长文概述单目3D目标检测算法- 嵌入式视觉 - 博客园</a> <ahref="https://zhuanlan.zhihu.com/p/387679038">面向量产的3D目标与车道线检测</a><ahref="https://blog.csdn.net/driving111/article/details/137696716">动驾驶中的单目3D 车道线检测——综述_3d车道线检测-CSDN博客</a> <ahref="https://www.bilibili.com/video/BV1mT4y1o7Q2/?spm_id_from=333.337.top_right_bar_window_history.content.click">计算机视觉之三维重建(深入浅出SfM与SLAM核心算法)——1.摄像机几何_哔哩哔哩_bilibili</a><ahref="https://blog.csdn.net/Janeiskangs/article/details/138327468">自动驾驶---Perception之IPM图和BEV图_bevipm-CSDN博客</a> <ahref="https://leijiezhang001.github.io/lane-det-from-BEV/">Apply IPM inLane Detection from BEV | LeijieZhang</a></p><p>https://leijiezhang001.github.io/lane-det-from-BEV/</p>]]></content>
<summary type="html"><p>补充一些3D视觉的基础内容</p></summary>
<category term="3D视觉" scheme="https://rickustc.github.io/tags/3D%E8%A7%86%E8%A7%89/"/>
</entry>
<entry>
<title>能量模型是分类器</title>
<link href="https://rickustc.github.io/2024/%E8%83%BD%E9%87%8F%E6%A8%A1%E5%9E%8B%E6%98%AF%E5%88%86%E7%B1%BB%E5%99%A8/"/>
<id>https://rickustc.github.io/2024/%E8%83%BD%E9%87%8F%E6%A8%A1%E5%9E%8B%E6%98%AF%E5%88%86%E7%B1%BB%E5%99%A8/</id>
<published>2024-06-24T16:00:00.000Z</published>
<updated>2024-06-25T09:55:17.666Z</updated>
<content type="html"><![CDATA[<p>本片要讲的是论文《Your Diffusion Model is Secretly a Zero-Shot Classifier》</p><span id="more"></span><p>首先这篇文章让我想起来之前看过的一篇论文, 用能量模型来做分类器,能量模型把数据分布建模成能量:$p(\mathbf{x}) = \frac{e^{-E(\mathbf{x})}}{Z}$</p><p>其中概率和能量成反比,概率越高,能量越低</p><blockquote><p>能量模型建模的两个主要难点就是 配分函数如何求解或者近似,以及如何从分布中采样</p></blockquote><p>能量模型建模联合概率的方式是同时输入x和y,成对的xy能量小,不成对的xy能量大 例如,如果是普通判别网络做mnist分类:</p><ul><li>$y = f_w(x)$</li><li>x:784维向量</li><li>y:10维向量</li><li>w神经网络f的参数</li></ul><p>能量模型做分类:</p><ul><li>$E = f_w(x,y)$</li><li>输入794维向量</li></ul><p>能量模型如何构建?</p><p>$\text{假设数据集为} (x, y) \in (\mathbb{R}^D, \mathbb{R}), y \in {0, 1, 2, \ldots, K-1},\ \text{能量函数由神经网络参数化}<br>E(x, y; \theta) = -NN_{\theta}(x, y)[y], \text{这里的}[y]\text{表示不同的标签}。$</p><p>如何对$p(x,y)$进行建模?</p><img src="/2024/%E8%83%BD%E9%87%8F%E6%A8%A1%E5%9E%8B%E6%98%AF%E5%88%86%E7%B1%BB%E5%99%A8/image-20240625163125331.png" class="" title="image-20240625163125331"><p>$\begin{align*}<br>\ln p_{\theta}(x, y) &= \ln p_{\theta}(y | x) + \ln p_{\theta}(x) \<br>&= \ln \left( \frac{\exp{NN_{\theta}(x)[y]}}{\sum_{y} \exp{NN_{\theta}(x)[y]}} \right) + \ln \left( \frac{\sum_{y} \exp{NN_{\theta}(x)[y]}}{Z_{\theta}} \right) \<br>&= \ln \text{softmax} {NN_{\theta}(x)[y]} + { \text{LogSumExp}<em>{y} {NN</em>{\theta}(x)[y]} - \ln Z_{\theta} }<br>\end{align*}$</p><p>可以看到同时建模分类和生成</p><p>对这个似然求导又会遇到老朋友,从$p_{\theta}(x)$中采样,这时候我们再一次利用朗之万动力学这个依靠数据梯度的梯度下降方法(SGLD),具体算法如下:</p><img src="/2024/%E8%83%BD%E9%87%8F%E6%A8%A1%E5%9E%8B%E6%98%AF%E5%88%86%E7%B1%BB%E5%99%A8/image-20240625163542609.png" class="" title="image-20240625163542609"><h1>Classifier-free diffusion guidance</h1><h2 id="classifier-guidence">classifier guidence</h2><p>得分函数的一个良好性质是使得我们不用去考虑归一化分母:</p><p>$\nabla_x \log \tilde{p}(x) = \nabla_x \log (p(x) \cdot Z) = \nabla_x (\log p(x) + \log Z) = \nabla_x \log p(x),$</p><p>利用贝叶斯公式,我们将条件生成拆解生一个生成器和一个分类器</p><p>$p(x \mid y) = \frac{p(y \mid x) \cdot p(x)}{p(y)} \<br>\implies \log p(x \mid y) = \log p(y \mid x) + \log p(x) - \log p(y) \<br>\implies \nabla_x \log p(x \mid y) = \nabla_x \log p(y \mid x) + \nabla_x \log p(x),$</p><p>$p(y∣x)$ 正是分类器和其他判别模型试图拟合的内容:xxx 是某个高维输入,而 y 是目标标签。如果我们有一个可微分的判别模型来估计 $p(y∣x)$,那么我们也可以轻松获得 $\nabla_x \log p(y|x)$。将无条件扩散模型转换为条件模型所需要的只是一个分类器,Sohl-Dickstein 等人和 Song 等人提到,扩散模型可以通过这种方式事后进行条件化,但 Dhariwal 和 Nichol 真正强调了这一点,并展示了分类器引导如何通过增强条件信号显著提高样本质量,即使在与传统条件建模结合使用时也是如此。为此,他们将条件项按一个因子进行缩放:</p><p>$\nabla_x \log p_{\gamma}(x|y) = \nabla_x \log p(x) + \gamma \nabla_x \log p(y|x)$</p><p>其中,$\gamma$被称为引导尺度,将其调高到超过 1 的效果是放大条件信号的影响。</p><p>事实上这意味着我们将分布的条件部分提升到一个幂次,这对应于调整该分布的温度:γ\gammaγ 是一个逆温度参数。如果 γ>1\gamma > 1γ>1,这会通过将概率质量从最不可能的值转移到最可能的值来使分布变得更加尖锐并聚焦于其模式(即温度降低)。分类器引导允许我们仅对捕捉条件信号影响的分布部分应用这种温度调节。</p><p>在语言建模中,现在很常见的是先训练一个强大的无条件语言模型,然后根据需要将其适应下游任务(通过少样本学习或微调)。表面上看,分类器引导使得图像生成能够实现同样的效果:可以先训练一个强大的无条件模型,然后在测试时根据需要使用一个单独的分类器对其进行条件化。</p><p>不幸的是,有一些问题使得这种方法不切实际。最重要的是,因为扩散模型是通过逐步去噪输入来操作的,任何用于引导的分类器也需要能够应对高噪声水平,以便在整个采样过程中提供有用的信号。这通常需要专门训练一个用于引导的分类器,在这种情况下,可能更容易端到端地训练一个传统的条件生成模型(或至少微调一个无条件模型以合并条件信号)。</p><p>但即使我们有一个噪声鲁棒的分类器,分类器引导在其效果上也是有限的,分类器经常会学习到一些不鲁棒的相关性(即使是那些经过训练对高斯噪声具有鲁棒性的分类器),结果是它们相对于输入的梯度可能指向不理想的方向。。</p><p>$p_{\gamma}(x \mid y) \propto p(x) \cdot p(y \mid x)^{\gamma}.$</p><h2 id="classifier-free">classifier free</h2><p>不需要训练一个单独的分类器。相反,我们训练一个条件扩散模型 p(x∣y)p(x \mid y)p(x∣y),并引入条件丢失(conditioning dropout):有一定比例的时间,条件信息 yyy 被移除(10-20% 的比例通常效果较好)。在实践中,通常用一个特殊的输入值来表示条件信息的缺失。由此得到的模型现在可以在提供条件信号时作为条件模型 p(x∣y)p(x \mid y)p(x∣y) 运行,也可以在没有条件信号时作为无条件模型 p(x)p(x)p(x) 运行。你可能会认为这会以条件建模性能为代价,但实际上这种影响似乎可以忽略不计。</p><p>这对我们有什么帮助呢?回想之前的贝叶斯定理,但让我们反过来应用</p><p>$p(y \mid x) = \frac{p(x \mid y) \cdot p(y)}{p(x)} \<br>\implies \log p(y \mid x) = \log p(x \mid y) + \log p(y) - \log p(x) \<br>\implies \nabla_x \log p(y \mid x) = \nabla_x \log p(x \mid y) - \nabla_x \log p(x).\nabla_x \log p_{\gamma}(x \mid y) = \nabla_x \log p(x) + \gamma (\nabla_x \log p(x \mid y) - \nabla_x \log p(x)) \<br>\nabla_x \log p_{\gamma}(x \mid y) = (1 - \gamma) \nabla_x \log p(x) + \gamma \nabla_x \log p(x \mid y).$</p><p>为什么这比分类器引导效果好得多?主要原因是我们从生成模型构建了“分类器”。标准分类器可以取巧,忽略大部分输入 xxx 而仍然获得有竞争力的分类结果,而生成模型则没有这种奢侈。这使得生成的梯度更加鲁棒。另外,我们只需训练一个(生成)模型,并且条件丢失(conditioning dropout)很容易实现。</p><p>值得注意的是,从分类器无引导(classifier-free guidance)理念的发表到 OpenAI 的 GLIDE 模型的问世,时间窗口非常短,而 GLIDE 模型利用这一理念取得了巨大的效果,以至于有时这个理念被归功于后者!简单而强大的理念往往会迅速被采纳。在功效与简洁性的比例方面,分类器无引导与 dropout 相当,在我看来,真的是一个改变游戏规则的创新!</p><p>(事实上,GLIDE 论文中提到,他们最初训练了一个文本条件模型,并仅在微调阶段应用了条件丢失。或许这样做有充分的理由,但我怀疑这只是因为他们决定将这个理念应用于他们之前已经训练好的模型上!)</p><p>显然,引导代表了一种权衡:它显著提高了对条件信号的遵从性以及整体样本质量,但代价是多样性的巨大损失。在条件生成建模中,这通常是一个可以接受的权衡,因为条件信号往往已经捕捉了我们实际关心的大部分变异性,如果我们需要多样性,我们也可以简单地修改我们提供的条件信号。</p><p>后面关于这方面会出两篇代码上的讲解</p><h1>本文的重点:</h1><p>待更新…</p><p>预计后面更点多模态的文章,先从几篇综述开始</p><h2 id="参考:">参考:</h2><p><a href="https://www.bilibili.com/video/BV1Bh411r7k9/?spm_id_from=333.337.search-card.all.click&vd_source=1fc065f050bce8320b3a173f446bbc81">https://www.bilibili.com/video/BV1Bh411r7k9/?spm_id_from=333.337.search-card.all.click&vd_source=1fc065f050bce8320b3a173f446bbc81</a></p><p><a href="https://github.com/jmtomczak/intro_dgm">https://github.com/jmtomczak/intro_dgm</a></p><p><a href="https://www.zhihu.com/question/499485994/answer/2552791458">https://www.zhihu.com/question/499485994/answer/2552791458</a></p><p><a href="https://www.youtube.com/watch?v=cO6_gIsQYug">https://www.youtube.com/watch?v=cO6_gIsQYug</a></p><p><a href="https://arxiv.org/abs/1912.03263">https://arxiv.org/abs/1912.03263</a></p><p><a href="https://sander.ai/2022/05/26/guidance.html">https://sander.ai/2022/05/26/guidance.html</a></p>]]></content>
<summary type="html"><p>本片要讲的是论文《Your Diffusion Model is Secretly a Zero-Shot Classifier》</p></summary>
<category term="generative model" scheme="https://rickustc.github.io/tags/generative-model/"/>
</entry>
<entry>
<title>SDE视角的扩散模型</title>
<link href="https://rickustc.github.io/2024/SDE%E8%A7%86%E8%A7%92%E7%9A%84DDPM/"/>
<id>https://rickustc.github.io/2024/SDE%E8%A7%86%E8%A7%92%E7%9A%84DDPM/</id>
<published>2024-06-19T16:00:00.000Z</published>
<updated>2024-06-21T09:42:49.661Z</updated>
<content type="html"><![CDATA[<p>连续视角的扩散模型,用SDE描述</p><span id="more"></span><h1 id="为什么要用sde描述随机过程">为什么要用SDE描述随机过程:</h1><p>中间过程的扩散噪声图<spanclass="math inline">\(x_t\)</span>有两个观察</p><ul><li><p>当t固定的时候可以<spanclass="math inline">\(x_t\)</span>看做一个随机变量,满足<spanclass="math inline">\(N(\sqrt{\overline\alpha_t} x_0,{1-\overline\alpha_t}I)\)</span>分布的随机变量</p></li><li><p>当x固定的时候,去改变t,也就是得到<spanclass="math inline">\(x_0,x_1...x_T\)</span>这样一条序列,也就是完成了一次采样,固定了一条采样轨迹</p></li></ul><p>基于对于<spanclass="math inline">\(x_t\)</span>的两个观察,可以认为<spanclass="math inline">\(x_t\)</span>实际上是一个随机过程(关于x和t的函数<spanclass="math inline">\(f(x,t)\)</span>,描述随机过程的方式就有SDE,我们用SDE描述随机过程</p><h1id="如何描述从基于tanformation的离散序列到sde描述的连续过程">如何描述:从基于tanformation的离散序列到SDE描述的连续过程</h1><p>scoremodel和DDPm都是从离散时间点出发,考虑正向和反向的离散的序列:</p><p><span class="math inline">\(x_0,x_1...x_T\)</span> <spanclass="math inline">\(x_T,x_T-1...x_0\)</span></p><p>用SDE考虑这一过程就是考虑离散过程-->连续过程的转化,使得这个过程更加的一般</p><p>$t,->0 \ 正向:x_t-x_{t+}, \ 反向:x_{t+} - x_t \ $</p><h2 id="score-based-diffusion-process">score-based diffusionprocess</h2><p>forward process</p><p>$dx = f_t(x) , dt + g_t , dw $</p><p>对应的离散形式是</p><p><span class="math inline">\(x_{t+\Delta t} - x_t = f_t(x_t) \Delta t+ g_t \sqrt{\Delta t} \, \varepsilon_t, \quad \varepsilon \sim\mathcal{N}(0, I)\)</span></p><p>reverse process:</p><p><span class="math inline">\(dx = \left[ f_t(x) - g_t^2 \nabla_x \logp_t(x) \right] dt + g_t dw\)</span></p><p>对应的离散形式是:</p><p><span class="math inline">\(x_t - x_{t+\Delta t} = - \left[f_{t+\Delta t}(x_{t+\Delta t}) - g_{t+\Delta t}^2 \nabla_{x_{t+\Deltat}} \log p(x_{t+\Delta t}) \right] \Delta t + g_{t+\Delta t}\sqrt{\Delta t} \, \varepsilon\)</span></p><p>ddpm和score model的SDE视角</p><p>VE-SDE: NCSN</p><p>VP-SDE: DDPM</p><p>这篇文章还比较粗糙,后面还会补充...</p><p>参考:</p><p>https://space.bilibili.com/13355688?spm_id_from=333.788.0.0</p>]]></content>
<summary type="html"><p>连续视角的扩散模型,用SDE描述</p></summary>
</entry>
<entry>
<title>ncsn原理解释</title>
<link href="https://rickustc.github.io/2024/ncsn%E5%8E%9F%E7%90%86%E8%A7%A3%E9%87%8A/"/>
<id>https://rickustc.github.io/2024/ncsn%E5%8E%9F%E7%90%86%E8%A7%A3%E9%87%8A/</id>
<published>2024-06-14T16:00:00.000Z</published>
<updated>2024-06-20T02:51:14.313Z</updated>
<content type="html"><![CDATA[<p>score maching模型的里程碑之作</p><span id="more"></span>]]></content>
<summary type="html"><p>score maching模型的里程碑之作</p></summary>
</entry>
<entry>
<title>DDPM</title>
<link href="https://rickustc.github.io/2024/DDPM/"/>
<id>https://rickustc.github.io/2024/DDPM/</id>
<published>2024-06-09T16:00:00.000Z</published>
<updated>2024-06-20T02:44:56.523Z</updated>
<content type="html"><![CDATA[<p>这一章要开始讲DDPM了</p><span id="more"></span><h1 id="离散扩散和vae">离散扩散和VAE</h1><p>表面上看DDPM和VAE很类似?</p><p>VAE的loss写作</p><p><span class="math inline">\(\mathcal{L}(\theta, \phi; x, z) =\mathbb{E}_{q_\phi(z|x)}[\log p_\theta(x|z)] - D_{KL}(q_\phi(z|x) \|p(z))\)</span></p><p>包含KL loss和reconstruction loss</p><p>VAE是把图像编码到高斯噪声(KLloss),再从高斯噪声解码到图像(重建loss)</p><p>但是VAE本质上是属于高斯混合模型,如果可以的话,这个模型也想采样更复杂的z!(详细理解可以看之前的VAE文章)</p><p>而DDPM主要是定义了一个transformation,这个transformation是一条langveinMCMC,能把输入的随机变量真正变到高斯分布,这个离散过程对应着一个SDE,然后逆向过程也对应着一个逆SDE,这个逆向SDE以类似的方式收敛到图像分布,从而能够在逆向阶段(reverseprocess)产生图像样本(sample )</p><p>DDPM的最大的优点在哪呢?我不需要去考虑这个复杂的后验分布<spanclass="math inline">\(p(z|x)\)</span>了,因为我直接变换到一个简单的分布,并且全部专注在如何做生成上,当然缺点也有,这个简单分布不像后验分布一样具有表征(representationlearning)的意义</p><h1 id="如何理解离散扩散">如何理解离散扩散</h1><p>DPM的原理是,定义了一条马尔科夫链:</p><p>马尔科夫链的角度看联合分布,联合分布等于链开始的节点概率乘一堆条件概率,</p><p><span class="math inline">\(q(x^{(0...T)}) = q(x^{(0)}) \prod_{t=1}^Tq(x^{(t)}|x^{(t-1)})\)</span></p><p>对连续扩散过程而言,step size足够小的时候,<spanclass="math inline">\(q(x^{(t)}|x^{(t-1)})\)</span>作为转移核,当转移核是高斯分布时,该马尔科夫链的稳态分布也是高斯分布</p><p>当然这些说的都是概率,我们更关心的是样本</p><p>DPM运用的前向概率transformation和反向产生样本的方法是祖先采样:即利用前一次<em>采样</em>结果的分布数据来生成这一次的<em>采样</em>结果,走完这条马尔科夫链就是采样出最终的数据分布。</p><p>这里参考<ahref="https://lilianweng.github.io/posts/2021-07-11-diffusion-models/">1</a>的推导</p><p><span class="math inline">\(\begin{aligned}q(\mathbf{x}_{t-1} \vert \mathbf{x}_t, \mathbf{x}_0)&= q(\mathbf{x}_t \vert \mathbf{x}_{t-1}, \mathbf{x}_0) \frac{q(\mathbf{x}_{t-1} \vert \mathbf{x}_0) }{ q(\mathbf{x}_t \vert\mathbf{x}_0) } \\&\propto \exp \Big(-\frac{1}{2} \big(\frac{(\mathbf{x}_t -\sqrt{\alpha_t} \mathbf{x}_{t-1})^2}{\beta_t} + \frac{(\mathbf{x}_{t-1}- \sqrt{\bar{\alpha}_{t-1}} \mathbf{x}_0)^2}{1-\bar{\alpha}_{t-1}} -\frac{(\mathbf{x}_t - \sqrt{\bar{\alpha}_t}\mathbf{x}_0)^2}{1-\bar{\alpha}_t} \big) \Big) \\&= \exp \Big(-\frac{1}{2} \big(\frac{\mathbf{x}_t^2 -2\sqrt{\alpha_t} \mathbf{x}_t \color{blue}{\mathbf{x}_{t-1}}\color{black}{+ \alpha_t} \color{red}{\mathbf{x}_{t-1}^2} }{\beta_t} +\frac{ \color{red}{\mathbf{x}_{t-1}^2} \color{black}{- 2\sqrt{\bar{\alpha}_{t-1}} \mathbf{x}_0} \color{blue}{\mathbf{x}_{t-1}}\color{black}{+ \bar{\alpha}_{t-1}\mathbf{x}_0^2} }{1-\bar{\alpha}_{t-1}} - \frac{(\mathbf{x}_t -\sqrt{\bar{\alpha}_t} \mathbf{x}_0)^2}{1-\bar{\alpha}_t} \big) \Big) \\&= \exp\Big( -\frac{1}{2} \big(\color{red}{(\frac{\alpha_t}{\beta_t} + \frac{1}{1 -\bar{\alpha}_{t-1}})} \mathbf{x}_{t-1}^2 -\color{blue}{(\frac{2\sqrt{\alpha_t}}{\beta_t} \mathbf{x}_t +\frac{2\sqrt{\bar{\alpha}_{t-1}}}{1 - \bar{\alpha}_{t-1}} \mathbf{x}_0)}\mathbf{x}_{t-1} \color{black}{ + C(\mathbf{x}_t, \mathbf{x}_0) \big)\Big)}\end{aligned}\)</span></p><p>利用前向的<spanclass="math inline">\(p(x_t|x_0)\)</span>的分布,预估出一个<spanclass="math inline">\(\mathbf{x}_0 =\frac{1}{\sqrt{\bar{\alpha}_t}}(\mathbf{x}_t - \sqrt{1 -\bar{\alpha}_t}\boldsymbol{\epsilon}_t)\)</span></p><p>最终得到的参数化的目标为:<span class="math inline">\(\begin{aligned}\boldsymbol{\mu}_\theta(\mathbf{x}_t, t) &=\color{cyan}{\frac{1}{\sqrt{\alpha_t}} \Big( \mathbf{x}_t - \frac{1 -\alpha_t}{\sqrt{1 - \bar{\alpha}_t}}\boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t) \Big)} \\\text{Thus }\mathbf{x}_{t-1} &= \mathcal{N}(\mathbf{x}_{t-1};\frac{1}{\sqrt{\alpha_t}} \Big( \mathbf{x}_t - \frac{1 -\alpha_t}{\sqrt{1 - \bar{\alpha}_t}}\boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t) \Big),\boldsymbol{\Sigma}_\theta(\mathbf{x}_t, t))\end{aligned}\)</span></p><p>推导的这里写的比较模糊,具体的可以详细看看参考[],本文的重点是给出离散DDPM的动机以及直观解释。公式推导也不是难点☻</p><img src="/2024/DDPM/image-20240620091705839.png" class=""><h1 id="ddpm比dpm的改进点">DDPM比DPM的改进点</h1><h1 id="qa">QA</h1><blockquote><p>几个QA:</p><ol type="1"><li><p>为什么学到了x_0到x_t的噪声不能用这个噪声直接得到原图??</p><p>回答:因为本质上要做分布的transformation</p><p>假设你手头现在就一张图片,加上噪声,送进网络学到了这个噪声,那你反向怎么做?直接减去这个噪声?这样的话你只是得到了原始的图像,但是并不是在做生成!真正的生成是要你从<spanclass="math inline">\(p(x_0|x_1)\)</span>这个分布里采样,这个采样要怎么做?<spanclass="math inline">\(p(x_0|x_1) =\frac{p(x_1|x_0)p(x_0)}{p(x_1)}\)</span> ok <spanclass="math inline">\(p(x_0)\)</span>我们不知道,没法做。用前面学到的噪声不是从这个分布采样,顶多是记住了前向加的噪声,能还原到原始的<spanclass="math inline">\(x_0\)</span>那一个点,而不是分布里采样得到的</p></li></ol></blockquote><blockquote><ol start="2" type="1"><li><p>扩散模型加噪音改为渐变成纯色(纯黑或白、灰)还有效果吗</p><p>变成纯黑或者纯白,意味着网络在生成的时候接受一样的输入,这样网络倾向于输出每个label的平均值(这样loss最小),生成效果会不好。从分布的映射角度思考会更好,最好输入是一个随机的分布,然后靠算法实现分布的transformation</p></li></ol></blockquote><blockquote><ol start="3" type="1"><li>为什么reverseprocess的时候不是学的单步噪声,为什么实际网络训练的时候直接学一个<spanclass="math inline">\(x_0\)</span>到任意<spanclass="math inline">\(x_t\)</span>的多样的的噪声</li></ol><p>学这个跨步噪声一方面公式推出来是这个样子,另一方面因为我们在计算时为了计算后验分布引入了<spanclass="math inline">\(x_0\)</span>这个条件,不学单步噪声是因为没意义,我们要做的是分布的transformation。这里我们反复强调了分布的transformation,因为generativeModel最终的就是如何拟合概率和如何进行sample!</p></blockquote><blockquote><p>一点民科的想法:</p><p>去噪有点像在一个大的流形学习数据在哪里</p><img src="/2024/DDPM/image-20240618131122259.png" class="" title="image-20240618131122259"><p>图中黑色是加噪(往外走) 红色是往回走,是网络要学的部分</p><p>而扩散更像是走路,在正向的基础上,反向的时候沿着某个梯度走</p><img src="/2024/DDPM/image-20240618131607952.png" class="" title="image-20240618131607952"><p>扩散真正训练起来和去噪非常像,加了各种尺度的噪声</p><p>去噪加朗之万采样 <==> sm加朗之万采样 <=> 扩散模型</p><p>虽然从扩散的角度其实是为了做 transform,实现反向马尔可夫链每一步的采样,但是底层的逻辑还是去学那个数据梯度,这点sm 和去噪,扩散,跑着殊途同归</p><ul><li>判断一个生成模型的好坏,可以从以下三点看:<ul><li>采样是否迅速?</li><li>模型生成结果的多样性是否充足?</li><li>生成样本是否高质量?</li></ul></li></ul></blockquote><p>下一篇会讲SDE视角下的连续时间扩散模型</p><p>最后,多读读原论文和代码,"只接受二手知识就跟只抽二手烟差不多",而我这文章可能算是四手烟了都,看多了容易呛着</p><p>参考:</p><p>[1]https://lilianweng.github.io/posts/2021-07-11-diffusion-models/</p><p>[2] Jascha Sohl-Dickstein, Eric A. Weiss, Niru Maheswaranathan, andSurya Ganguli. Deep unsupervised learning using nonequilibriumthermodynamics. 2015. <ahref="https://arxiv.org/abs/1503.03585">arXiv:1503.03585</a></p><p>[3] Calvin Luo. Understanding diffusion models: a unifiedperspective. 2022. <ahref="https://arxiv.org/abs/2208.11970">arXiv:2208.11970</a>.</p><p>[4] Jonathan Ho, Ajay Jain, and Pieter Abbeel. Denoising diffusionprobabilistic models. 2020. <ahref="https://arxiv.org/abs/2006.11239">arXiv:2006.11239</a>.</p>]]></content>
<summary type="html"><p>这一章要开始讲DDPM了</p></summary>
<category term="generative model" scheme="https://rickustc.github.io/tags/generative-model/"/>
</entry>
<entry>
<title>GAN</title>
<link href="https://rickustc.github.io/2024/GAN/"/>
<id>https://rickustc.github.io/2024/GAN/</id>
<published>2024-04-26T08:11:47.000Z</published>
<updated>2024-04-27T05:46:45.243Z</updated>
<content type="html"><![CDATA[<span id="more"></span>]]></content>
<summary type="html"><span id="more"></span>
</summary>
</entry>
<entry>
<title>贝叶斯的两个理解角度</title>
<link href="https://rickustc.github.io/2024/%E8%B4%9D%E5%8F%B6%E6%96%AF%E7%9A%84%E4%B8%A4%E7%A7%8D%E7%90%86%E8%A7%A3%E8%A7%92%E5%BA%A6/"/>
<id>https://rickustc.github.io/2024/%E8%B4%9D%E5%8F%B6%E6%96%AF%E7%9A%84%E4%B8%A4%E7%A7%8D%E7%90%86%E8%A7%A3%E8%A7%92%E5%BA%A6/</id>
<published>2024-04-25T17:00:35.000Z</published>
<updated>2024-04-27T06:01:21.172Z</updated>
<content type="html"><![CDATA[<p>When you have <strong>eliminated</strong> the<strong>impossible</strong>, whatever remains, however<strong>improbable</strong>, must be the truth...</p><span id="more"></span><p>时间线: <ahref="https://www.zhihu.com/search?q=托马斯·贝叶斯&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A%221545994922%22%7D">托马斯·贝叶斯</a>(ThomasBayes)在1763提出,用来解决逆概率问题</p><p>贝叶斯:</p><ul><li>根据证据修正先验</li><li>推断因子</li></ul><p>下面具体解释这两个角度</p><ul class="task-list"><li><p><label><input type="checkbox"checked="" />怎么理解修正先验?</label></p><p><span class="math inline">\(P(A|B) =P(A)\frac{P(B|A)}{P(B)}\)</span></p></li></ul><p>P(A)是先验概率。P(B|A)/P(B)称为"可能性函数"(Likelyhood),这是一个调整因子,也就是新信息B带来的调整,作用是将先验概率(之前的主观判断)调整到更接近真实概率。</p><p>如果"可能性函数"P(B|A)/P(B)>1,意味着"先验概率"被增强,事件A的发生的可能性变大;</p><p>如果"可能性函数"=1,意味着B事件无助于判断事件A的可能性;</p><p>如果"可能性函数"<1,意味着"先验概率"被削弱,事件A的可能性变小。</p><ul class="task-list"><li><label><input type="checkbox"checked="" />怎么理解推断因子?</label></li></ul><p><span class="math inline">\(P(z_j|x) = \frac{P(z_j,x)}{\sum_zP(x|z_i)P(z_i)}\)</span></p><p>事实上,当初统计学家在回归问题中引入L2正则,只是出于防止矩阵病态造成不可求逆矩阵,后来才发现结果居然更好了。</p><p>当我们对抛硬币做做参数估计的时候,加入10次都是正的那很容易得到一个很不准的MLE</p><p>参数估计:</p><p>点估计:MLE,MAP(通常是优化问题),矩估计,贝叶斯估计</p><p>reference:</p><p><ahref="https://zhuanlan.zhihu.com/p/392500906">极大似然估计、极大后验估计和贝叶斯估计</a></p><p>https://www.zhihu.com/question/61298823/answer/1545994922</p>]]></content>
<summary type="html"><p>When you have <strong>eliminated</strong> the
<strong>impossible</strong>, whatever remains, however
<strong>improbable</strong>, must be the truth...</p></summary>
<category term="概率论 ML数学" scheme="https://rickustc.github.io/tags/%E6%A6%82%E7%8E%87%E8%AE%BA-ML%E6%95%B0%E5%AD%A6/"/>
</entry>
<entry>
<title>VAE:变分推断、MC估计和重要性采样</title>
<link href="https://rickustc.github.io/2024/VAE%EF%BC%9A%E5%8F%98%E5%88%86%E6%8E%A8%E6%96%AD%E3%80%81MC%E4%BC%B0%E8%AE%A1%E5%92%8C%E9%87%8D%E8%A6%81%E6%80%A7%E9%87%87%E6%A0%B7/"/>
<id>https://rickustc.github.io/2024/VAE%EF%BC%9A%E5%8F%98%E5%88%86%E6%8E%A8%E6%96%AD%E3%80%81MC%E4%BC%B0%E8%AE%A1%E5%92%8C%E9%87%8D%E8%A6%81%E6%80%A7%E9%87%87%E6%A0%B7/</id>
<published>2024-04-25T16:00:00.000Z</published>
<updated>2024-04-27T11:45:24.883Z</updated>
<content type="html"><![CDATA[<p>本文将从表征学习的角度以及隐变量模型的角度探讨VAE模型,重点讲述VAE的三个技术</p><span id="more"></span><h1 id="隐变量的意义">隐变量的意义</h1><h1 id="高斯混合模型">高斯混合模型</h1><p>VAE从概率密度估计的角度来说是一种mixture model</p><p>基本的高斯混合模型写做:</p><p><span class="math inline">\(p(x) = \sum_{i=1}^{k} w_i \mathcal{N}(x |\mu_i, \Sigma_i)\)</span></p><p>其中的i是指第i个高斯分布,<spanclass="math inline">\(u_i\)</span>和<spanclass="math inline">\(\Sigma_i\)</span>指的是第i个高斯分布的均值和方差</p><p>但是高斯混合模型的拟合能力是有限的,假如我们用一簇无穷多的高斯分布来拟合最终的分布,那这个拟合能力不久非常好了吗?怎么去建模这个无穷多(infinite)的分布呢?</p><img src="/2024/VAE%EF%BC%9A%E5%8F%98%E5%88%86%E6%8E%A8%E6%96%AD%E3%80%81MC%E4%BC%B0%E8%AE%A1%E5%92%8C%E9%87%8D%E8%A6%81%E6%80%A7%E9%87%87%E6%A0%B7/image-20240426131217788-1714108353673-1.png" class="" width=""><p>这图摘自S9868 Deeplearning课程,非常形象的展示了混合模型做了什么:用高斯分布把数据流形填满</p><p>怎么做无限混合呢?VAE给出的解答是把累加变成了积分</p><p><span class="math inline">\(p_{\theta}(x) = \int_{z} \mathcal{N}(x;g_{\theta}(z), \Sigma_{\theta}(z)) \mathcal{N}(z; 0, I) dz\)</span></p><p>也即是假设混合高斯的权重符合一个分布,属于隐变量<spanclass="math inline">\(z\)</span>,并且我们的高斯分布是隐变量参数化的结果,即式中的条件分布,分别参数化了高斯分布的均值<spanclass="math inline">\(g_{\theta}\)</span>和方差<spanclass="math inline">\(\Sigma_{\theta}(z))\)</span></p><img src="/2024/VAE%EF%BC%9A%E5%8F%98%E5%88%86%E6%8E%A8%E6%96%AD%E3%80%81MC%E4%BC%B0%E8%AE%A1%E5%92%8C%E9%87%8D%E8%A6%81%E6%80%A7%E9%87%87%E6%A0%B7/image-20240426131714727.png" class="" title="image-20240426131714727"><p>S9868 也给出了无限混合的感性可视化,参数化帮助我们的mixturemodel更加的flexible了,能自己学习怎么去填满这个数据流形。</p><p>这里的<span class="math inline">\(P(z)\)</span>和<spanclass="math inline">\(P_\theta(x|z)\)</span>都假设的高斯分布,当然我们也能makean infinite mixture of the autoregressive distribution and so on.,从这个角度来说mixture分布是meta model 可以用其他的密度估计模型替代</p><p>这个概率摸底建模是一个积分的无穷项,这里我们需要用到统计学的一个基本技术,用MC采样来估计这个积分</p><p><span class="math inline">\(p_{\theta}(x) = \intp_{\theta}(x|z)p_z(z)dz = \mathbb{E}_{z \sim p_z(z)}[p_{\theta}(x|z)]\approx \frac{1}{M} \sum_{i=1}^{M} p_{\theta}(x|z^{(i)}), \quad z^{(i)}\sim p_z\)</span></p><blockquote><p>MC采样的直观理解是求平均值的这个过程本身就蕴含了采样过程</p></blockquote><p>当我们概率建模有了,接下来就是计算极大似然来优化参数!</p><p><span class="math inline">\(E_{x \sim p_{data} }logP_{\theta}(x)\)</span></p><blockquote><p>极大似然认为最优的分布参数是一个定值,因此我们把数据扔进去优化一个maximal的似然值</p></blockquote><p><span class="math inline">\(\theta^* = \underset{\theta}{\arg\min}\frac{1}{M} \sum_{i=1}^{N} \log \left( \sum_{j=1}^{M}\mathcal{N}\left(x^{(i)}; g_{\theta}^{\mu}\left(z^{(j)}\right),g_{\theta}^{\Sigma}\left(z^{(j)}\right)\right) \right)\)</span></p><blockquote><p>以上都是在拟合概率,但是对于神经网络而言我们有的标签不是概率这太抽象了,我们只有从Pdata中获得的样本,如何优化这个混合模型?</p></blockquote><p>把方差固定,优化这个似然值就变成优化<spanclass="math inline">\(||x-g_{\theta}^{\mu}||\)</span>,训练的步骤是我们采样一堆隐变量z,扔进网络<spanclass="math inline">\(g_{\theta}\)</span>中产生一堆高斯分布的均值,然后在和一个batch的样本<spanclass="math inline">\(x\)</span> 计算L2norm,这就是我们要的似然值.</p><h1 id="重要性采样">重要性采样</h1><p>我们在建模概率的时候是利用的MC采样来估计积分</p><p><span class="math inline">\(p_{\theta}(x) \approx \frac{1}{M} \left(p_{\theta}(x|z^{(1)}) + p_{\theta}(x|z^{(2)}) + p_{\theta}(x|z^{(3)}) +\ldots \right)\)</span></p><p>遇到一个问题,往往高维空间MC采样的效率很低,往往会变成这样:</p><p><span class="math inline">\(p_{\theta}(x) \approx \frac{1}{M} \left(0 + p_{\theta}(x|z^{(2)}) + 0 + \ldots \right)\)</span></p><p>这意味着要想精确的估计概率,必须要大量的采样,采样效率很低</p><p>这里引出本文的第二个技术,重要性采样:</p><p><span class="math inline">\(p_{\theta}(x) = \mathbb{E}_{z \simp_z}[p_{\theta}(x|z)] = \int p_z(z)p_{\theta}(x|z)dz = \int\frac{p_z(z)}{q_z(z)} p_{\theta}(x|z)q_z(z)dz = \mathbb{E}_{z \simq_z}\left[\frac{p_z(z)}{q_z(z)} p_{\theta}(x|z)\right]\)</span></p><p>重要性采样给出一种不用在原始分布p中采样,而在新的分布q中采样,这是一种减少方差的采样技术</p><p>最优的<span class="math inline">\(q(z)\)</span>正比于<spanclass="math inline">\(p(z)P_{\theta}(x|z)\)</span> 后者正比于<spanclass="math inline">\(P(x,z)\)</span> 它又正比于<spanclass="math inline">\(p_{\theta}(z|x)\)</span>,所以可以证明最优的<spanclass="math inline">\(q(z)\)</span>等于<spanclass="math inline">\(p_{\theta}(z|x)\)</span></p><p><span class="math inline">\(p_{\theta}(x) \approx \frac{1}{M}\sum_{j=1}^{M} \frac{p_z(z^{(j)})}{p_{\theta}(z^{(j)}|x)}p_{\theta}(x|z^{(j)})\)</span>, <span class="math inline">\(z^{(j)} \simp_{\theta}(Z|x)\)</span></p><p>最开始的</p><p>在重要性采样的语境下,<spanclass="math inline">\(p_{\theta}(z|x)\)</span> 这个z就是和建模<spanclass="math inline">\(p_{\theta}(x)\)</span>最相关的z</p><h1 id="变分推断">变分推断</h1><p>高斯混合模型的有点是隐变量分布是高斯分布,重要性采样的效率更高但是这里又出现了一个难以采样的分布<spanclass="math inline">\(P_{\theta}(z|x)\)</span>这个时候引入最后一个重要的技巧,变分推断(Variational inference)</p><blockquote><p>顺便吐槽一句,很多的教程都从变分推断出发,丝毫不讨论生成的过程,这和我生成模型又有什么关系呢:D</p></blockquote>]]></content>
<summary type="html"><p>本文将从表征学习的角度以及隐变量模型的角度探讨VAE模型,重点讲述VAE的三个技术</p></summary>
<category term="DGM" scheme="https://rickustc.github.io/tags/DGM/"/>
<category term="LVM" scheme="https://rickustc.github.io/tags/LVM/"/>
<category term="VAE" scheme="https://rickustc.github.io/tags/VAE/"/>
</entry>
<entry>
<title>深度学习中的正则化</title>
<link href="https://rickustc.github.io/2023/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%AD%E7%9A%84%E6%AD%A3%E5%88%99%E5%8C%96/"/>
<id>https://rickustc.github.io/2023/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%AD%E7%9A%84%E6%AD%A3%E5%88%99%E5%8C%96/</id>
<published>2023-09-12T19:11:35.000Z</published>
<updated>2024-04-27T05:46:07.172Z</updated>
<content type="html"><![CDATA[<p>最近在看集成学习,集成学习中对基学习器的要求是和而不同,及满足两个条件:误差<span class="math inline">\(\epsilon<0.5\)</span>且具有多样性,由此引出一系列多样性方法,其和正则化非常类似。借助课上提到的框架对正则化进行梳理。并且试图统一绝大部分ml和dl的正则化方法<span id="more"></span></p><h1 id="正则化的定义">1.正则化的定义</h1><p>正则化:旨在通过对学习算法的修改,减少泛化误差(而不是训练误差,并且可能以提高训练误差为代价)</p><h1id="正则化的背景方差与偏差欠拟合与过拟合">2.正则化的背景:方差与偏差,欠拟合与过拟合</h1><p>统计学中的过拟合欠拟合:对应模型的小偏差大方差</p><p>方差偏差</p><p>模型训练中的过拟合:训练刚开始的时候,训练误差和测试误差都下降。在到达一个临界点之后,训练集的误差下降,测试集的误差上升了,这个时候就进入了过拟合区域</p><p>过拟合欠拟合</p><h1 id="正则化的分类">3.正则化的分类</h1><h2 id="对输入样本">3.1 对输入样本</h2><p>对输入样本扰动敏感的学习器:神经网络,决策树等</p><p>对输入样本扰动不敏感的学习器:线性学习器,支持向量机(这俩都是线性分类器),朴素贝叶斯,k近邻</p><p>数据增强:</p><p>数据扰动(噪声)</p><h2 id="对输入属性">3.2 对输入属性</h2><p>Bagging</p><p>降维:PCA,SVD,AutoEncoder,LDA</p><p>特征选择</p><h2 id="对输出属性">3.3 对输出属性</h2><p>label smooth</p><p>Dropout</p><h2 id="对模型参数">3.4 对模型参数</h2><p>L1正则化</p><p>L2正则化</p><p>SVM中的松弛变量</p><p>参数共享(CNN,RNN)</p><h2 id="对模型训练">3.5 对模型训练</h2><p>半监督学习</p><p>多任务学习</p><p>提前终止</p><p>对抗训练</p><p>知识蒸馏</p><p>多级别监督loss</p><h1 id="reference">Reference</h1><p><a href="https://www.jianshu.com/p/ecb531b1ab8f">正则化详解</a></p><p><ahref="https://blog.csdn.net/BigData_Mining/article/details/81631249">正则化总结的比较好比较全面的文章</a></p>]]></content>
<summary type="html"><p>最近在看集成学习,集成学习中对基学习器的要求是和而不同,及满足两个条件:误差
<span class="math inline">\(\epsilon
&lt;0.5\)</span>且具有多样性,由此引出一系列多样性方法,其和正则化非常类似。借助课上提到的框架对正则化进行梳理。并且试图统一绝大部分ml和dl的正则化方法</summary>
<category term="正则化" scheme="https://rickustc.github.io/tags/%E6%AD%A3%E5%88%99%E5%8C%96/"/>
</entry>
</feed>