Etude des r´ ´ eseaux de neurones sur la st´ eganalyse
Marc CHAUMONT
1,2,3, Dino IENCO
1,4, J´ erˆ ome PASQUET
1,3, Lionel PIBRE
1,31Universit´e de Montpellier
2Universit´e de Nˆımes
3CNRS
4IRSTEA
19 Mai 2016
1/24
Introduction
Un r´ eseau de neurones ? Pourquoi faire ?
Des r´ esultats impressionnants !
RM+EC CNN FNN
Max 24.93% 7.94% 8.92%
Min 24.21% 7.01% 8.44%
Variance 0.14 0.12 0.16 Average 24.67% 7.4% 8.66%
Table : R´ esultats de st´ eganalyse (P
E) avec S-UNIWARD, 0.4 bpp, sc´ enario clairvoyant pour RM+EC, CNN et FNN.
L’insertion a ´ et´ e faite dans un sc´ enario artificiel !
2/24
1
Les r´ eseaux de neurones convolutionnels (CNNs)
2
L’histoire de cet article
3
Exp´ erimentations
4
Conclusion
3/24
Sommaire
1
Les r´ eseaux de neurones convolutionnels (CNNs)
2
L’histoire de cet article
3
Exp´ erimentations
4
Conclusion
4/24
Un exemple de r´ eseau
image 256
256 F(0)
Kerrnel Filtered image 252
252
Layer 1 16 kernels
5x5 Label=0/1
16 feature map 124 x 124 pooling
Gaussian
pooling
Layer 2 16 kernels
3x3 16 feature map
61 x 61 Fully connected
layers
ReLU ReLU
Softmax
Convolutional layers Classification
128 neurons
128 neurons
Layer 3 16 kernels 3x3
16 feature map 29 x 29
pooling pooling
Layer 4 16 kernels 3x3
16 feature map 13 x 13
Layer 5 16 kernels
5x5 pooling
Gaussian Gaussian Gaussian Gaussian
16 feature map 4 x 4
Figure : Sch´ ema du r´ eseau de Qian et al.
Inspir´ e du r´ eseau de Krizhevsky et al. 2012 Moins bon de 3% ` a 4% par rapport ` a RM+EC
A. Krizhevsky, I. Sutskever, and G. E. Hinton, ”ImageNet Classification with Deep Convolutional Neural Networks,” inAdvances in Neural Information Processing Systems 25, NIPS, 2012.
Y. Qian, J. Dong, W. Wang, and T. Tan, ”Deep Learning for Steganalysis via Convolutional Neural Networks,”
inProceedings of SPIE Media Watermarking, Security, and Forensics, 2015.
5/24
Le pr´ e-traitement sp´ ecifique ` a la st´ eganalyse
F
(0)= 1 12
−1 2 −2 2 −1
2 −6 8 −6 2
−2 8 −12 8 −2
2 −6 8 −6 2
−1 2 −2 2 −1
Appliquer ce noyau sur les images d’entr´ ee permet au r´ eseau de converger plus rapidement.
6/24
Les r´ eseaux convolutionnels
image 256
256 F(0)
Kerrnel Filtered image 252
252
Layer 1 16 kernels
5x5 Label=0/1
16 feature map 124 x 124 pooling
Gaussian
pooling
Layer 2 16 kernels
3x3 16 feature map
61 x 61 Fully connected
layers
ReLU ReLU
Softmax
Convolutional layers Classification
128 neurons
128 neurons
Layer 3 16 kernels 3x3
16 feature map 29 x 29
pooling pooling
Layer 4 16 kernels 3x3
16 feature map 13 x 13
Layer 5 16 kernels
5x5 pooling
Gaussian Gaussian Gaussian Gaussian
16 feature map 4 x 4
Figure : Sch´ ema du r´ eseau de Qian et al.
Une couche est compos´ ee de plusieurs ´ el´ ements : La convolution,
L’application d’une fonction d’activation, Le pooling (sous-´ echantillonnage), La normalisation.
7/24
La convolution
image 256
256 F(0)
Kerrnel Filtered image 252
252
Layer 1 16 kernels
5x5 Label=0/1
16 feature map 124 x 124 pooling
Gaussian
pooling
Layer 2 16 kernels
3x3 16 feature map
61 x 61 Fully connected
layers
ReLU ReLU
Softmax
Convolutional layers Classification
128 neurons
128 neurons
Layer 3 16 kernels 3x3
16 feature map 29 x 29
pooling pooling
Layer 4 16 kernels 3x3
16 feature map 13 x 13
Layer 5 16 kernels
5x5 pooling
Gaussian Gaussian Gaussian Gaussian
16 feature map 4 x 4
Figure : Sch´ ema du r´ eseau de Qian et al.
La premi` ere couche :
˜ I
k(1)= I
(0)? F
k(1)(1) Les autres couches :
I ˜
k(l)=
i=K(l−1)
X
i=1
I
i(l−1)? F
k(l),i(2)
8/24
Les fonctions d’activation
image 256
256 F(0)
Kerrnel Filtered image 252
252
Layer 1 16 kernels
5x5 Label=0/1
16 feature map 124 x 124 pooling
Gaussian
pooling
Layer 2 16 kernels
3x3 16 feature map
61 x 61 Fully connected
layers
ReLU ReLU
Softmax
Convolutional layers Classification
128 neurons
128 neurons
Layer 3 16 kernels 3x3
16 feature map 29 x 29
pooling pooling
Layer 4 16 kernels 3x3
16 feature map 13 x 13
Layer 5 16 kernels
5x5 pooling
Gaussian Gaussian Gaussian Gaussian
16 feature map 4 x 4
Figure : Sch´ ema du r´ eseau de Qian et al.
Il existe de nombreuses fonctions d’activation : Valeur absolue : f (x) = |x|,
Tangente hyperbolique : f (x) = tanh(x),
ReLU (Rectified Linear Unit ) : f (x) = max(0, x), Gaussienne : f (x) =
ex2
σ2
.
9/24
Le pooling
image 256
256 F(0)
Kerrnel Filtered image 252
252
Layer 1 16 kernels
5x5 Label=0/1
16 feature map 124 x 124 pooling
Gaussian
pooling
Layer 2 16 kernels
3x3 16 feature map
61 x 61 Fully connected
layers
ReLU ReLU
Softmax
Convolutional layers Classification
128 neurons
128 neurons
Layer 3 16 kernels 3x3
16 feature map 29 x 29
pooling pooling
Layer 4 16 kernels 3x3
16 feature map 13 x 13
Layer 5 16 kernels
5x5 pooling
Gaussian Gaussian Gaussian Gaussian
16 feature map 4 x 4
Figure : Sch´ ema du r´ eseau de Qian et al.
Op´ eration locale calcul´ ee sur un voisinage : Moyenne locale (conserve le signal),
Maximum local (invariance ` a la translation), Sous-´ echantillonnage.
10/24
La normalisation
image 256
256 F(0)
Kerrnel Filtered image 252
252
Layer 1 16 kernels
5x5 Label=0/1
16 feature map 124 x 124 pooling
Gaussian
pooling
Layer 2 16 kernels
3x3 16 feature map
61 x 61 Fully connected
layers
ReLU ReLU
Softmax
Convolutional layers Classification
128 neurons
128 neurons
Layer 3 16 kernels 3x3
16 feature map 29 x 29
pooling pooling
Layer 4 16 kernels 3x3
16 feature map 13 x 13
Layer 5 16 kernels
5x5 pooling
Gaussian Gaussian Gaussian Gaussian
16 feature map 4 x 4
Figure : Sch´ ema du r´ eseau de Qian et al.
Lorsque l’on normalise entre les feature maps : norm(u
x,yg) = u
x,y1 +
αNmin(F,g−bN/2c+N)
P
g0=max(0,g−bN/2c)
(u
x,yg0)
2!
β(3)
11/24
Les couches fully connected
image 256
256 F(0)
Kerrnel Filtered image 252
252
Layer 1 16 kernels
5x5 Label=0/1
16 feature map 124 x 124 pooling
Gaussian
pooling
Layer 2 16 kernels
3x3 16 feature map
61 x 61 Fully connected
layers
ReLU ReLU
Softmax
Convolutional layers Classification
128 neurons
128 neurons
Layer 3 16 kernels 3x3
16 feature map 29 x 29
pooling pooling
Layer 4 16 kernels 3x3
16 feature map 13 x 13
Layer 5 16 kernels
5x5 pooling
Gaussian Gaussian Gaussian Gaussian
16 feature map 4 x 4
Figure : Sch´ ema du r´ eseau de Qian et al.
La partie fully connected est compos´ ee de plusieurs ´ el´ ements : Deux couches enti` erement connect´ ees,
Une fonction appel´ ee Softmax qui normalise les valeurs entre [0,1],
Le r´ eseau donne une valeur cover (resp. st´ ego).
12/24
Notre r´ eseau
image 256
256 F(0)
Kerrnel Filtered image 252
252
Layer 1 16 kernels
5x5 Label=0/1
16 feature map 124 x 124 pooling
Gaussian
pooling
Layer 2 16 kernels
3x3 16 feature map
61 x 61 Fully connected
layers
ReLU ReLU
Softmax
Convolutional layers Classification
128 neurons
128 neurons
Layer 3 16 kernels 3x3
16 feature map 29 x 29
pooling pooling
Layer 4 16 kernels 3x3
16 feature map 13 x 13
Layer 5 16 kernels
5x5 pooling
Gaussian Gaussian Gaussian Gaussian
16 feature map 4 x 4
Figure : Sch´ ema du r´ eseau de Qian et al.
image 256
256 F(0)
Kernel Filtered image 252
252
Layer 1 64 kernels
7x7 Label=0/1
64 feature map 127 x 127
ReLU ReLU
Layer 2 16 kernels 5x5
16 feature map 127 x 127 Fully connected
layers
ReLU ReLU
Softmax Convolutional layers Classification
1000 neurons
1000 neurons
stride 2
Figure : Sch´ ema de notre r´ eseau.
13/24
Sommaire
1
Les r´ eseaux de neurones convolutionnels (CNNs)
2
L’histoire de cet article
3
Exp´ erimentations
4
Conclusion
14/24
Toute une histoire
15/24
Sommaire
1
Les r´ eseaux de neurones convolutionnels (CNNs)
2
L’histoire de cet article
3
Exp´ erimentations
4
Conclusion
16/24
Exp´ erimentations
40 000 images cover de taille 256×256 provenant de BossBase,
S-UNIWARD avec 0.4 bits par pixel,
Utilisation du simulateur avec la mˆ eme cl´ e d’insertion, Apprentissage sur 60 000 images.
Pourquoi utiliser la mˆ eme cl´ e ? Ce n’´ etait pas volontaire...
Il y a une erreur de documentation dans la version C++ de S-UNIWARD,
Qian et al. ont fait la mˆ eme erreur.
17/24
Utilisation d’une seule cl´ e d’insertion
Lorsque l’on utilise qu’une seule cl´ e d’insertion...
La cl´ e d’insertion initialise le g´ en´ erateur de la s´ equence de nombres pseudo-al´ eatoires
⇒ la s´ equence de nombres pseudo-al´ eatoires ∈ [0,1]
nest toujours la mˆ eme !
L’insertion va se faire toujours au mˆ eme endroit et avec la mˆ eme polarit´ e (-1 ou +1).
18/24
Impact sur l’insertion
Figure : Probabilit´ e de modification. En blanc les zones avec les plus fortes probabilit´ es et en noir celles avec les probablit´ es les plus faibles.
19/24
R´ esultats
40 000 images cover de taille 256×256 provenant de BossBase,
S-UNIWARD avec 0.4 bpp,
Simulateur avec la mˆ eme cl´ e d’insertion, Apprentissage sur 60 000 images.
RM+EC CNN FNN
Max 24.93% 7.94% 8.92%
Min 24.21% 7.01% 8.44%
Variance 0.14 0.12 0.16 Average 24.67% 7.4% 8.66%
Table : R´ esultats de st´ eganalyse (P
E) avec S-UNIWARD, 0.4 bpp, sc´ enario clairvoyant pour RM+EC, CNN et FNN.
En utilisant des cl´ es d’insertion diff´ erentes, le mˆ eme r´ eseau avec plus de neurones obtient 38.1% de probabilit´ e d’erreur !
20/24
Sommaire
1
Les r´ eseaux de neurones convolutionnels (CNNs)
2
L’histoire de cet article
3
Exp´ erimentations
4
Conclusion
21/24
Conclusion de cette histoire
Faire attention ` a l’impl´ ementation et ` a la documentation des logiciels (peu importe leur provenance),
Toujours utiliser diff´ erentes cl´ es d’insertion ! Le Rich Models n’est pas efficace pour d´ etecter un ph´ enom` ene spatial.
Les CNNs ne sont pas morts... il y a toujours de l’espoir !
A. Xu, H. Z. Wu, and Y. Q. Shi, ”Structural Design of Convolutional Neural Networks for Steganalysis,” in IEEE Signal Processing Letters,vol. 23, no. 5, pp. 708-712, May 2016.
22/24
Fin
Merci de votre attention !
23/24
Cover-Source Mismatch
Pourquoi avoir fait des tests dans le sc´ enario avec Cover-Source Mismatch ?
Nous n’avions pas encore connaissance de cette erreur lors des tests !
24/24