提交 2b85bb09 编写于 作者: W wizardforcel

2020-12-11 18:37:54

上级 f6ac0ec8
......@@ -28,8 +28,8 @@ CycleGAN 是一种**生成对抗网络**(**GAN**),用于跨域传输任务
CycleGAN 中有两个生成器网络,如下所示:
1. **生成器`A`**:学习映射![](img/5ee63015-1266-4f90-b3cc-dca5d99f293e.png),其中`X`是源域,`Y`是目标域。 它从源域`A`拍摄图像,并将其转换为与目标域`B`相似的图像。 基本上,网络的目的是学习映射,以使`G(X)``Y`相似。
2. **生成器`B`**:学习映射![](img/4afb529e-38ff-40f5-b294-dd6545cd5251.png),然后从目标域`B`中获取图像,并将其转换为与源域`A`中的图像相似的图像。类似地, 网络要学习另一个映射,以便`F(G(X))`类似于`X`)。
1. **生成器`A`**:学习映射`G: X -> Y`,其中`X`是源域,`Y`是目标域。 它从源域`A`拍摄图像,并将其转换为与目标域`B`相似的图像。 基本上,网络的目的是学习映射,以使`G(X)``Y`相似。
2. **生成器`B`**:学习映射`F: Y -> X`,然后从目标域`B`中获取图像,并将其转换为与源域`A`中的图像相似的图像。类似地, 网络要学习另一个映射,以便`F(G(X))`类似于`X`)。
这两个网络的架构相同,但我们分别对其进行训练。
......@@ -183,11 +183,11 @@ CycleGAN 总体上由两种架构组成:生成器和判别器。 生成器架
对抗性损失是实际分布`A``B`的图像与生成器网络生成的图像之间的损失。 我们有两个映射功能,我们将对两个映射应用对抗性损失。
映射![](img/4777940b-3156-48bb-8ab8-a0b8d3d97978.png)的对抗损失如下所示:
映射`G: X -> Y`的对抗损失如下所示:
![](img/f278fd84-eb49-4d88-a98e-31396fe4ea3a.png)
在此,`x`是来自分布`A`的一个域的图像,`y`是来自分布`B`的另一个域的图像。判别器![](img/c420501d-952a-4e5b-84b0-0aa891624a10.png)试图区分`G`映射(![](img/e57cd8de-afc5-4e00-a0d4-b87786d7318f.png))生成的图像和来自不同的分布`B`的真实图像`y`。判别器![](img/e0cef545-08a1-4089-a238-9b6945c1d821.png)试图区分`F`映射生成的图像(![](img/968121df-410e-4bff-9e76-57d447e34db5.png))和来自分布`A`的真实图像`x``G`的目的是使对抗损失函数最小 对抗对手`D`,后者不断尝试使其最大化。
在此,`x`是来自分布`A`的一个域的图像,`y`是来自分布`B`的另一个域的图像。判别器`D[y]`试图区分`G`映射(`G(x)`)生成的图像和来自不同的分布`B`的真实图像`y`。判别器`D[x]`试图区分`F`映射生成的图像(`F(y)`)和来自分布`A`的真实图像`x``G`的目的是使对抗损失函数最小 对抗对手`D`,后者不断尝试使其最大化。
......@@ -197,7 +197,7 @@ CycleGAN 总体上由两种架构组成:生成器和判别器。 生成器架
仅使用对抗损失的问题在于,网络可以将同一组输入图像映射到目标域中图像的任何随机排列。 因此,任何学习的映射都可以学习类似于目标分布的输出分布。 ![](img/95c36bf0-5253-4227-9d80-7ab5e826094a.png)和![](img/de2f63f2-3d6f-4cb6-90d0-9a9789508d31.png)之间可能有许多可能的映射功能。 循环一致性损失通过减少可能的映射数来克服了这个问题。 周期一致映射功能是可以将图像`x`从域`A`转换为域`B`中的另一个图像`y`并生成原始图像的功能。
仅使用对抗损失的问题在于,网络可以将同一组输入图像映射到目标域中图像的任何随机排列。 因此,任何学习的映射都可以学习类似于目标分布的输出分布。 `x[i]``y[i]`之间可能有许多可能的映射功能。 循环一致性损失通过减少可能的映射数来克服了这个问题。 周期一致映射功能是可以将图像`x`从域`A`转换为域`B`中的另一个图像`y`并生成原始图像的功能。
前向循环一致性映射功能如下所示:
......@@ -225,7 +225,7 @@ CycleGAN 总体上由两种架构组成:生成器和判别器。 生成器架
![](img/b72c39e8-2d9b-487b-83df-3b73ab2c550f.png)
在此,![](img/a04311c3-8eb2-45e2-98c0-e691deb818e0.png)是第一个对抗性损失,![](img/c9de7008-1df0-4381-92f5-fcfc5aa276a3.png)是第二个对抗性损失。 在生成器`A`和判别器`B`上计算第一个对抗损失。在生成器`B`和判别器`A`上计算第二个对抗损失。
在此,`l[GAN](G, D[Y], X, Y)`是第一个对抗性损失,`l[GAN](F, D[X], Y, X)`是第二个对抗性损失。 在生成器`A`和判别器`B`上计算第一个对抗损失。在生成器`B`和判别器`A`上计算第二个对抗损失。
要训​​练 CycleGAN,我们需要优化以下功能:
......
......@@ -1349,7 +1349,13 @@ patchgan_discriminator.save_weights("discriminator.h5")
在 20、50、150 和 200 个时代(从左到右) 之后,图像如下所示:
![](img/81830986-deb9-4db9-9dba-518aa6313466.png) ![](img/515bff70-925a-4f3b-a995-470637fd676e.png) ![](img/550e5193-b6a1-49ba-81eb-cd1fe71c7634.png) ![](img/277d3877-16f5-4ce5-b5f0-2703bc2d3075.png)
![](img/81830986-deb9-4db9-9dba-518aa6313466.png)
![](img/515bff70-925a-4f3b-a995-470637fd676e.png)
![](img/550e5193-b6a1-49ba-81eb-cd1fe71c7634.png)
![](img/277d3877-16f5-4ce5-b5f0-2703bc2d3075.png)
每个块均包含垂直堆叠的外观标签,生成的照片和实际图像。 我建议您将网络训练 1000 个纪元。 如果一切顺利,则在 1000 个时期之后,生成器网络将开始生成逼真的图像。
......
......@@ -164,13 +164,13 @@
在有监督的情况下,模型的任务是找到样本的正确标签,假设已正确标记了训练集的存在,并且有可能将估计值与正确值进行比较。 术语**受监督**源自外部*教具*的概念,该教具在每次预测后提供准确而即时的反馈。 该模型可以使用这种反馈作为误差的度量,从而执行减少误差所需的校正。
更正式地说,如果我们假设数据生成过程,则![](img/ea0ccb2d-9b21-4eb1-b9c5-4bf2675f5c7c.png)数据集的获取方式为:
更正式地说,如果我们假设数据生成过程,则`P_data(x_bar, y)`数据集的获取方式为:
![](img/c7e60603-2d54-4e9f-90b6-acbbb6fc56e5.png)
如上一节中所述,所有样本必须是独立于**且从数据生成过程中均匀采样的****IID**)值相等。 特别是,所有类别都必须代表实际分布(例如,如果`p(y = 0) = 0.4``p(y = 1) = 0.6`,则比例应为 40% 或 60%)。 但是,为了避免偏差,当类别之间的差异不是很大时,合理的选择是完全均匀的采样,并且对于`y = 1, 2, ..., M`具有相同的代表数。
通用分类器![](img/91b8220c-e8df-436d-98be-2c519efcb45d.png)可以通过两种方式建模:
通用分类器`c(x_bar, θ_bar)`可以通过两种方式建模:
* 输出预测类的参数化函数
* 参数化的概率分布,为每个输入样本输出分类概率
......@@ -284,7 +284,7 @@ x(t) = 1.169t + 0.628
**聚类分析**(通常简称为**聚类**)是一项任务的示例,我们希望在其中找到大量样本之间的共同特征。 在这种情况下,我们总是假设存在数据生成过程![](img/a5fd4b73-81fb-4a6a-b653-25f369c85104.png),并将数据集`X`定义为:
**聚类分析**(通常简称为**聚类**)是一项任务的示例,我们希望在其中找到大量样本之间的共同特征。 在这种情况下,我们总是假设存在数据生成过程`P_data(X)`,并将数据集`X`定义为:
![](img/6a44d736-7aea-47d8-b3b7-5f48d10e36e5.png)
......@@ -292,7 +292,7 @@ x(t) = 1.169t + 0.628
![](img/a5e03fb9-969b-4595-aaaa-2c2777cbc5db.png)
在先前的公式中,引入了常数`ε`以避免被零除。 显然`d(a, c) < d(a, b) ⇒ s(a, c) > s(a, b)`。 因此,给定每个群集的代表![](img/fba84550-7fae-4228-ad4f-02618cc35ca1.png),我们可以考虑以下规则来创建一组分配的向量:
在先前的公式中,引入了常数`ε`以避免被零除。 显然`d(a, c) < d(a, b) ⇒ s(a, c) > s(a, b)`。 因此,给定每个群集的代表`μ_bar[i]`,我们可以考虑以下规则来创建一组分配的向量:
![](img/57dee268-a1df-4c52-a95e-fa6fa1a320fb.png)
......
......@@ -88,7 +88,7 @@
* 在对`L`进行特征分解之后(考虑非正规图拉普拉斯`L[u] = D-W`并求解方程`L[u]·v =λDv`,很容易计算特征值和特征向量 ),则空特征值始终以多重性出现`p`
* 如果`G`是无向图(因此`wij] ≥ 0, ∀i, j`),则连接的组件数等于`p`(空特征值的多重性)。
* 如果`A`![](img/055b1708-309e-409f-ab58-e4017eae690d.png)`ℜ^N``Θ``A`的可数子集(即`X`是可计数的子集,因为样本数始终是有限的),向量`v∈ℜ^N`对于`Θ`被称为**指标向量**,给定`θ[i] ∈ Θ`,如果`θ[i] ∈ A``v^(i) = 1`,否则`v^(i) = 0`。 例如,如果我们有两个向量`a = (1, 0)``b = (0, 0)`(因此,`Θ = {a, b}`),我们认为`A = {(1, n)}`其中`n ∈ [1, 10]`,向量`v = (1, 0)`是一个指标向量,因为`a ∈ A``b ∉ A`
* 如果`A`包含于`ℜ^N``Θ``A`的可数子集(即`X`是可计数的子集,因为样本数始终是有限的),向量`v∈ℜ^N`对于`Θ`被称为**指标向量**,给定`θ[i] ∈ Θ`,如果`θ[i] ∈ A``v^(i) = 1`,否则`v^(i) = 0`。 例如,如果我们有两个向量`a = (1, 0)``b = (0, 0)`(因此,`Θ = {a, b}`),我们认为`A = {(1, n)}`其中`n ∈ [1, 10]`,向量`v = (1, 0)`是一个指标向量,因为`a ∈ A``b ∉ A`
* `L`的第一个`p`特征向量(对应于空特征值)是每个连接的分量`C[1], C[2], ..., C[p]`
因此,如果数据集由`M`个样本`x[i] ∈ ℜ^N`以及图`G`与亲和力矩阵`W^(M×M)`相关联,Shi 和 Malik 建议建立矩阵`B ∈ ℜ^(M×p)`包含第一个`p`特征向量作为列,并使用诸如 K 均值的更简单方法对行进行聚类。 实际上,每一行代表样本在`p`维子空间上的投影,其中非凸性由可以封装在规则球中的子区域表示。
......
......@@ -305,9 +305,15 @@ print(np.sum(pca.explained_variance_ratio_))
一些常见的内核如下:
* **径向基函数****RBF**)或高斯核:![](img/be7df07d-e755-4712-9b16-409ec45c4d9d.png)
* `p`为![](img/464465b9-c466-4538-8f60-33259f9424d7.png)的多项式内核
* 乙状结肠内核:![](img/f1b5b271-2c9d-46d2-99c5-e00687a24f4c.png)
* **径向基函数****RBF**)或高斯核:
![](img/be7df07d-e755-4712-9b16-409ec45c4d9d.png)
* `p`为多项式内核:
![](img/464465b9-c466-4538-8f60-33259f9424d7.png)
* Sigmoid 内核:
![](img/f1b5b271-2c9d-46d2-99c5-e00687a24f4c.png)
对于非常大的数据集,该过程仍然相当昂贵(但是可以预先计算并存储内核值,以避免浪费额外的时间),但是它比标准投影更有效。 此外,其具有允许在可能进行线性辨别的空间中提取主要成分的优点。 现在,让我们将 RBF 内核 PCA 应用于上一个屏幕快照中显示的半月数据集。 `gamma` 参数等于`1 /σ^2`。 在这种特殊情况下,主要问题是存在双重重叠。 考虑到原始标准偏差约为 1.0(即`σ^2 = 1`),我们至少需要三个标准偏差才能区分 他们适当; 因此,我们将设置`γ = 10`
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册