zehua

Zehua

CNN+DiffuseVAE Presentation

2025-01-12

每个 PPT 我都只做了半部分的介绍,另一半不是我做的,并且我对另一半 PPT 的美观程度持保留态度,我也失去了把它们也补充介绍到这里的动力,所以我只搞了我任务内的演讲稿。

同时初版是有每页 PPT 的图片的, 但是后来发现这图片太大了,我这个小服务器承受不了,一进这个网站服务器就开始加班了,考虑再三我把下面的所有 PPT 图片都删掉了,只剩下孤零零的光杆文字,所以整个网站显得空落落的,有一种队友四个人在打先锋团,我独自在下路补兵的美感,随之而来的先是聊天记录的点两下,然后是问号,这种心境和我重看写了个什么勾八网站的感觉是一样的,即无奈又好笑。

CNN

对于神经网络的训练,分为三步,第一步是前向传播,这里我们用激活函数引入了非线性特性,然后是损失函数的计算,这关系到预测值是否接近真实值,最后我们根据损失函数计算误差梯度,反向传播给隐藏层和输入层来更新网络参数。

Pour l'entraînement de CNN, il y a trois étapes principales, la première est la propagation avant, on utilise une fonction d'activation pour introduire des caractéristiques non linéaires, ensuite le calcul de la fonction de perte, cela détermine si les valeurs prédites sont proches des valeurs réelles, enfin, on calcul les gradients d'erreur à partir de la fonction de perte, et effectuons la rétropropagation vers la couche cachée et la couche d'entrée pour mettre à jour les paramètres du réseau.

这里有一个批量归一化操作,它在训练过程中不是必须的,但是在大参数模型中非常重要。它主要是集中每一层的激活值,让其分布接近于标准高斯分布,可以更快的收敛并且可以看作正则化操作,避免过拟合问题。

Il y a une opération de batch normalisation , qui n'est pas obligatoire pendant le processus d'entraînement, mais qui est très importante dans les modèles avec un grand nombre de paramètres. Elle sert principalement à concentrer les valeurs d'activation de chaque couche, les rapprochant d'une distribution gaussienne standard. Cela permet une convergence plus rapide et peut être considéré comme une opération de régularisation, évitant ainsi les problèmes de overfitting.

  • 将每一层的激活值归一化,使其分布更加集中

  • 这使得模型能够以较大的学习率进行训练,从而加快收敛速度。

  • 与此同时,可以减少协变量偏移

  • 减少了对训练数据的过拟合

1998年,Yann LeCun等人提出了LeNet-5,用于手写数字识别,是最早的 CNN 原型,包含了卷积、池化、全连接等核心组件。

En 1998, Yann LeCun et al. ont proposé LeNet-5, utilisé pour la reconnaissance des chiffres manuscrits. Il s'agit du premier prototype de CNN, intégrant des composants clés tels que la convolution, le pooling et les couches entièrement connectées.

这是他的网络架构,首先如果我们有一张32✖️32的输入图片,我们对他进行卷积操作,6个大小为 5x5 的卷积核,得到一个 28x28 的输出(根据卷积运算的性质和公式),然后再进行下采样,这里就是池化层,他们选用平均池化,然后再重复一遍 卷积-池化这样的操作最后到达全连接神经网络来输出节点

Voici l'architecture de ce réseau : tout d'abord, si nous avons une image d'entrée de 32✖️32, nous appliquons une opération de convolution avec 6 filtres de taille 5x5, ce qui génère une sortie de 28x28 (selon les propriétés et la formule de la convolution). Ensuite, une opération de sous-échantillonnage est effectuée, càd la couche de pooling, ici sous forme de pooling moyen. Ensuite, on répète l'opération de convolution-pooling. En fin, on arrive au réseau de neurones entièrement connecté pour produire les sorties.

Alex et al. ont remporté un grand succès dans une compétition de reconnaissance visuelle, réduisant le taux d'erreur d'environ 26 % à 15 %. Ce succès est considéré comme une étape majeure pour Deep learning dans le domaine de la vision par ordinateur.

创新点:

  • 加深网络层数,使用更大卷积核: 5 层卷积层 + 3 个全连接层。

  • Augmentation de la profondeur du réseau et utilisation de noyaux de convolution plus grands: 5 couches de convolution et 3 couches entièrement connectées.

  • 使用 ReLU 激活函数: 解决了 Sigmoid 和 Tanh 激活函数中的梯度消失问题。

  • Fonction d'activation ReLU : Il a résolu du problème de disparition du gradient rencontré dans les fonctions d'activation Sigmoid et Tanh.

  • 重叠池化: 采用3×3 的池化核,但步长仅为 2,导致在移动的时候池化窗口彼此重叠,这样可以保留更多的细节

  • Pooling avec chevauchement : utilisation de noyaux de pooling de 3×3, mais avec un pas de 2, ce qui entraîne un chevauchement des fenêtres de pooling. Cela permet de préserver davantage de détails.

  • GPU训练: 他们首次使用了两块GPU进行训练,打开了GPU训练深度学习的大门,促进了 NVIDIA 公司的发展。

  • Entraînement sur GPU : ils ont été les premiers à utiliser GPU pour l'entraînement, ouvrant la voie à l'utilisation des GPU pour Deep learning et contribuant au développement de l'entreprise NVIDIA.

2014年,由牛津大学视觉几何组(Visual Geometry Group, VGG)提出,主要用于图像分类任务。

En 2014, Le modèle VGG a été proposé , principalement utilisé pour les tâches de classification d'images.

创新点:

  • 多个小卷积代替一个大卷积核: 前面的AlexNet使用了一个大卷积核,这导致了它的参数量很大,这里的改进是,小卷积核可以减少参数量,多个卷积层能获得较大的感受野。

  • Remplacement d'un grand noyau de convolution par plusieurs petits noyaux : Dans AlexNet, un grand noyau de convolution était utilisé, ce qui entraînait un grand nombre de paramètres. La solution ici consiste à utiliser de plusieurs petits noyaux de convolution pour réduire le nombre de paramètres et obtenir un plus grand champ réceptif.

  • 加深网络深度: VGG-16 有 16 个带有可学习参数的层,也就是卷积层加上全连接层一共有16个。

  • Augmentation de la profondeur du réseau : Par exemple VGG-16 possède 16 couches avec des paramètres appris, c'est-à-dire des couches de convolution et des couches entièrement connectées. Ou par exemple VGG-19 est 19 couches

  • 五个 卷积 + 池化 结构块

  • Cinq blocs de convolution + pooling

En 2015, Google 团队提出了一种新的网络模块结构——Inception 模块

En 2015, l'équipe de Google a proposé une nouvelle structure de module de réseau, le module Inception.

其核心思想是在同一个 Inception 模块中,并行使用不同大小的卷积核,从而捕获不同尺度的特征。

Dans un même module Inception, on utilise des noyaux de convolution de tailles différentes en parallèle, afin de capturer des caractéristiques à différentes échelles.

小卷积核(例如 1×1 和 3×3)可以捕捉局部特征。 大卷积核(例如 5×5)可以捕捉更大范围的上下文信息。

  • Les petits noyaux (1×1 et 3×3) capturent des caractéristiques locales.

  • Les grands noyaux (5×5) capturent les informations contextuelles sur une plus grande étendue.

  • 最大池化用于捕获低频特征(如背景或轮廓)。 使用1×1 卷积进行通道的升降维,从而降低计算量。

  • Le max pooling capture des caractéristiques les arrière-plans、les contours.

一个典型的 Inception 模块包含 4 条并行分支:

Un module Inception typique comprend quatre branches parallèles.

  • 这个分支是为了升降维度,这是1x1 卷积核的特定用处,可以降低计算量

  • Cette branche est pour augmenter ou la réduire la dimension, c'est l'utilisation spécifique des noyaux de convolution 1×1, ce qui permet de réduire la charge de calcul.

  • 最后把四个分支拼接起来的到最终输出。

  • Enfin, les quatre branches sont concaténées pour obtenir la sortie finale.

最重要的是,他通过残差连接解决了les problèmes de disparition ou d'explosion du gradient.

Le plus important est que il a amélioré les problèmes de disparition ou d'explosion du gradient.

  • 把第 l 层的输出直接加到第 (l+2) 层的输入上,这个是权重这个是偏置,正常的神经网络应该没有这一项。

  • La sortie de la couche L est directement ajoutée à l'entrée de la couche L+2. Ici, W est le poids b est le biais . Normalement, un réseau neuronal normal n'inclurait pas ce terme .

  • 这样做后,梯度能在反向传播时直接回传到 a_l,使深层网络的训练更稳定。

Comme ça, le gradient peut être transmis directement à a_l lors de la rétropropagation. Rendre l'entraînement des réseaux profonds beaucoup plus stable.

1月14日更新:

说的时候还行,回答问题的时候听错问题了 🙃

DiffuseVAE

DiffuseVAE是建立在VAE模型(变分自编码器)和扩散模型(DDPM)的基础上的,也就是说它是由两个不同的模型组合起来的,对于图片的左半部分,是VAE的训练图示,他有一个编码器和一个解码器。

DiffuseVAE est basé sur le modèle VAE (Autoencodeur Variationnel) et le modèle de diffusion (DDPM). Autrement dit, il s'agit d'une combinaison de deux modèles différents. Pour la partie gauche de l'image, il s'agit d'une illustration de l'entraînement du VAE, qui comprend un encodeur et un décodeur.

编码器负责把一个复杂的图片中的特征提取出来,保存到潜在空间中,叫做 Z ,简单来说,这个过程可以视为降维操作。然后我们经过解码器,利用特征把图片恢复出来,产生相似、但全新的图片。

L'encodeur est chargé d'extraire les caractéristiques d'une image complexe et de les stocker dans l'espace latent, appeléZ. En termes simples, ce processus peut être considéré comme une opération de réduction de dimension. Ensuite, à l'aide du décodeur, nous décodons ces caractéristiques pour reconstruire l'image, produisant ainsi une nouvelle image qui est similaire, mais entièrement nouvelle.

更详细的来说:

En détail :

对于这个流程,我们要使用神经网络来学习编码器和解码器的参数,一个是 theta 一个是phi。通过优化 \theta ,我们就可以让潜在变量概率分布 q_\theta(z \mid x)接近真实的后验概率分布,也就是在给定输入的情况下潜在空间的概率分布,然后通过优化 \phi,我们可以获得更合理的条件概率分布 p_\phi(x|z)

Dans ce processus, nous utilisons un réseau de neurones pour apprendre les paramètres de l'encodeur et du décodeur, notés\theta et\phi. En optimisant\theta, nous pouvons rapprocher la distribution de probabilité latenteq_\theta(z|x) de la vraie distribution a posteriori, c'est-à-dire dans le cas où l'entrée est donnée. Ensuite, en optimisant\phi, nous obtenons une distribution de probabilité conditionnelle p_\phi(x|z)plus raisonnable

右边是DDPM的训练流程,DDPM是扩散模型的算法名称,它的算法流程分为两个部分

À droite se trouve le processus d'entraînement de DDPM, qui est le nom d'algorithme du modèle de diffusion. Son processus est divisé en deux parties :

第一,是加噪过程,我们往一张图片里加噪音,一直到这样,第一时刻的图片叫做 x0 最后一个时刻的图片叫做 xT,其中的噪音我们都使用高斯噪声。

  1. Le processus d'ajout de bruit : Nous ajoutons du bruit à une image progressivement, jusqu'à ce qu'elle devienne entièrement bruitée. L'image au premier instant est appeléex_0, et celle au dernier instant est appeléex_T.Et Le bruit utilisé dans chaque étape est un bruit gaussien.

第二,是去噪过程,我们根据第xT时刻的纯噪音图像,一点点去除噪音,一直恢复出x0时刻的图像,它是和 x_0 相似 且 全新的一张图片,能生成新图片的原因是高斯白噪声的随机性,因为我们要从一个噪声来恢复出图像,这个纯噪声是随机的,所以结果是全新的图片。

  1. Le processus de débruitage : À partir de l'image bruitée au momentx_T, nous supprimons progressivement le bruit pour reconstruire l'image de l'instantx_0. Cette image est similaire àx_0 et est également entièrement nouvelle. La capacité de générer une nouvelle image provient de la nature aléatoire du bruit blanc gaussien : puisque l'image est reconstruite à partir d'un bruit aléatoire, le résultat final est une image unique et nouvelle.

这是他们两个之间的对比,VAE的速度更快,但是生成质量不高,Diffusion 训练很慢,但是生成质量高,并且现在主流的图片生成的工具,都是基于DDPM。

Voici une comparaison entre les deux : le VAE est plus rapide, mais la qualité des images générées est faible. En revanche, le modèle de diffusion (DDPM) est très lent à entraîner, mais il génère des images de haute qualité. Par ailleurs, la plupart des outils de génération d'images actuels sont basés sur DDPM.

因此想法就是把它们两个结合到一起,既想要VAE的速度,同时还能有高质量的结果,这就是DiffuseVAE的来源。

L'idée est donc de combiner les deux : profiter de la rapidité du VAE tout en obtenant des résultats de haute qualité, ce qui est à l'origine de DiffuseVAE.

更详细的来说,我们希望把VAE特有的潜在空间引入到DDPM中,如果可以对DDPM进行特征提取操作,也就是,降维操作,那么就可以加速它的训练过程。

Plus précisément, nous souhaitons intégrer l'espace latent caractéristique du VAE dans le DDPM. Si nous pouvons appliquer une opération d'extraction de caractéristiques (c'est-à-dire une réduction de dimension) sur le DDPM, alors il serait possible d'accélérer son processus d'entraînement.

另一方面,原论文中提出了一个新的生成模型的架构,也就是先使用VAE进行初步优化,再使用DDPM进行精细化。也就是我们第一页所展示的结构图。在这个过程中,我们对VAE的训练结果作为DDPM算法的输入,然后产生更高精度的图像

Par ailleurs, l'article original propose une nouvelle architecture de modèle génératif, qui consiste à utiliser le VAE pour une optimisation préliminaire, suivie du DDPM pour une optimisation plus fine. Cela correspond au schéma que nous avons présenté sur la première page. Dans ce processus, les résultats de l'entraînement du VAE servent d'entrée à l'algorithme DDPM, permettant ainsi de générer des images d'une précision encore plus élevée.

以上就是DiffuseVAE的核心思想,下面我们要使用数学公式来更详细的看他们的工作。

Voici l'idée centrale de DiffuseVAE. Nous allons maintenant utiliser des formules mathématiques pour voir leur travail de manière plus détaillée.

我们的目标是最大化似然函数,这个公式经过一系列的变形,可以得到这个公式,我们要注意两点,第一这里是大于等于符号,因为由于实际中数据维度过高,我们无法数学求解,因此我们会采用一种近似分布的方法,叫做变分下界(ELBO),所以我们的最终目标是最小化损失函数。

Notre objectif est de maximiser la fonction de vraisemblance. Après une série de transformations, nous obtenons cette formule. Il est important de noter deux points :

  1. Ici, c'est le symbole "supérieur ou égal" , car dans la pratique, en raison de la dimension des données est trop élevée , il est difficile de résoudre ce problème mathématiquement. Nous utilisons donc une méthode basée sur une distribution approchée, appelée borne inférieure variationnelle (ELBO). Par conséquent, notre objectif final est de minimiser une fonction de perte.

第二,他可以被分成VAE和DDPM各自的公式:

  1. Cette fonction peut être divisée en deux parties, correspondant respectivement au VAE et au DDPM :

在VAE中,这一项是数据拟合项,l'image généré soit similaire à l'image d'entrée,这一项是正则化项,限制 Z 的分布为标准正态分布,qui facilite l'échantillonnage pendant décodeur.

DDPM 的这一项是为了精细化图片。

Dans le VAE, ce terme correspond à l'ajustement des données, garantissant que l'image générée soit similaire à l'image d'entrée. Ce terme est une régularisation qui contraint la distribution deZ à suivre une distribution normale standard, ce qui facilite l'échantillonnage pendant le processus de décodage. Le terme du DDPM, quant à lui, est utilisé pour affiner l'image.

不要担心,我不会讲解数学证明过程,我不想让你们在演讲的时候睡觉,我只在这里稍微解释一下,这就是这个公式,这里有我们之前提到的所有参数,编码器的、解码器的,都通过神经网络来实现。

Ne vous inquiétez pas, je ne vais pas expliquer le processus de démonstration mathématique. Je ne veux pas que vous vous endormiez pendant la présentation. Je vais simplement donner une petite explication ici . Voici donc la formule, qui inclut tous les paramètres mentionnés précédemment : ceux de l'encodeur et du décodeur, qui sont tous implémentés à l'aide de réseaux de neurones.

最重要的是这里,它的分母是加噪过程,这个过程没有训练参数,只是对一张图片按步添加噪声,然后分子是去噪过程,这里我们要利用神经网络学习 \phi参数,如果我们学习到了一个很好的 \phi,那么去噪过程应该完美地等于加噪过程的逆过程,因此这个期望项就会最大。也就是说,我们希望这个比值大,那么说明反向过程就越好,生成的图片结果就越好。

La partie la plus importante se trouve ici : le dénominateur représente le processus d’ajout de bruit, qui n’a pas de paramètres d’entraînement. Il s’agit simplement d’ajouter du bruit à une image étape par étape. Le numérateur, en revanche, correspond au processus de débruitage. Dans cette étape, nous utilisons un réseau de neurones pour apprendre les paramètres\phi. Si nous apprenons une bonne valeur pour\phi, alors le processus de débruitage devrait correspondre parfaitement à l’inverse du processus d’ajout de bruit. Par conséquent, cette espérance sera maximisée.

我们通俗来讲,DDPM是时光倒流,回到过去, \phi的优化决定了你能否真正回到你想回到的过去

Pour le dire simplement, le DDPM peut être vu comme un voyage dans le temps, un retour vers le passé. L'optimisation de\theta détermine si vous pouvez réellement revenir au passé que vous souhaitez retrouver, si les paramètres sont faux , peux être vous allez 回到侏罗纪时代

这两个就是DiffuseVAE的核心公式

Du coup ,c'est le formule principale de DiffuseVAE.