WEBVTT

00:00.690 --> 00:05.730
Bonjour et bienvenue dans le cours d’apprentissage en profondeur dans la presse, nous avons découvert ce que sont

00:05.810 --> 00:07.290
les réseaux de neurones convolutionnels.

00:07.350 --> 00:11.050
Et aujourd'hui, nous allons plonger dans la convolution de l'étape 1.

00:11.100 --> 00:18.530
Donc, c’est la fonction de convolution et nous essayons de rester à l’écart des mathématiques et de garder les choses intuitives.

00:18.540 --> 00:25.110
Mais je ne pouvais pas m'empêcher de partager cette formule pour vous parce que c'est si simple, une convolution est fondamentalement une

00:25.110 --> 00:31.380
intégration combinée des deux fonctions et elle vous montre comment une fonction modifie l'autre ou modifie la forme de l'autre et

00:31.470 --> 00:36.520
si vous en avez un. Si vous avez fait un traitement du signal ou en génie

00:36.520 --> 00:42.030
électrique ou une profession où le traitement du signal est requis, vous auriez inévitablement rencontré une fonction de

00:42.030 --> 00:42.390
conclusion.

00:42.390 --> 00:44.090
C'est assez populaire maintenant.

00:44.100 --> 00:49.490
Encore une fois, nous allons garder les lumières de mathématiques ou les séparer.

00:49.500 --> 00:56.190
Et si vous souhaitez entrer dans les mathématiques derrière les réseaux de neurones convolutionnels, une

00:56.520 --> 01:05.010
excellente lecture supplémentaire est Introduction aux réseaux de neurones convolutionnels de Jensine Wu, professeur à l'Université de Nanjing en

01:05.010 --> 01:05.820
Chine.

01:05.820 --> 01:12.780
Cet article a été publié littéralement il y a quelques jours, il y a cinq ou six jours. Il

01:12.780 --> 01:17.690
s'adresse plus particulièrement aux débutants qui connaissent bien les réseaux de neurones

01:18.250 --> 01:23.700
convolutifs, de sorte que les mathématiques devraient être accessibles par courrier électronique au professeur Johnson.

01:23.730 --> 01:32.040
Et oui, il a déclaré que son objectif était de créer ou de décomposer les éléments complexes afin que les personnes novices dans ce

01:32.040 --> 01:33.360
domaine puissent comprendre.

01:33.360 --> 01:40.680
Et aussi, il a mentionné qu’il avait de la documentation disponible sur sa page d’accueil, donc si vous supprimez vous-même les deux dernières parties et

01:40.680 --> 01:47.220
que vous allez simplement aimer Slash W. J. En accédant à la page d’accueil

01:47.220 --> 01:52.380
correspondant à sa page d’accueil, vous pourrez trouver d’autres didacticiels et matériels qui n’ont pas été

01:52.380 --> 01:59.120
publiés en tant que papiers, mais il les utilise dans ses didacticiels afin que vous puissiez les trouver utiles, alors parcourez-les

01:59.130 --> 02:05.130
si vous ' d aimerais avoir une introduction aux mathématiques derrière les réseaux de neurones de coalition et construire

02:05.130 --> 02:08.470
en quelque sorte une base solide autour de cette zone.

02:08.550 --> 02:12.570
Mais nous allons continuer et nous allons parler de la convolution.

02:12.570 --> 02:17.160
Alors, quelle est la bonne solution en termes intuitifs, ici à gauche.

02:17.160 --> 02:21.690
Nous avons une image d'entrée au moment où nous en avons discuté, c'est ainsi que nous allons examiner les images simplement et des

02:21.690 --> 02:22.750
zéros pour simplifier les choses.

02:22.950 --> 02:25.050
Et vous pouvez voir le visage souriant ici.

02:25.090 --> 02:28.660
Ensuite, nous avons un détecteur de fonctions, qui comporte donc une matrice trois sur trois.

02:28.740 --> 02:30.120
Doit-il être trois par trois.

02:30.150 --> 02:31.920
Non ce n'est pas.

02:31.920 --> 02:35.810
Alex net je pense utilise sept par sept.

02:35.850 --> 02:41.640
Et puis, un autre de ces célèbres utilise des détecteurs de fonctionnalités cinq à cinq.

02:41.640 --> 02:48.270
Ils peuvent être différents, mais vous verrez généralement qu’ils sont trois par trois et que vous savez pourquoi les faire trois

02:48.270 --> 02:52.110
par trois, nous allons donc rester fidèles à la méthode conventionnelle.

02:52.170 --> 02:57.510
Avec un détecteur de fonctions trois-en-trois, ces détecteurs sont également des termes importants car vous

02:57.510 --> 02:58.710
pourriez les rencontrer.

02:58.710 --> 03:04.080
Il existe de nombreux termes différents pour le détecteur de fonctionnalités, mais les plus

03:04.110 --> 03:09.540
courants sont ceux de détecteur de fonctionnalités. Eik pourrait l’entendre appeler le noyau ou le filtre.

03:09.540 --> 03:14.760
Ainsi, dans ce cours, nous utiliserons indifféremment un filtre ou un détecteur de

03:14.760 --> 03:23.670
caractéristiques, mais gardons simplement à l’esprit qu’il porte ces noms et que l’opération de coalition est indiquée par un X dans un cercle.

03:23.670 --> 03:31.230
Comme vous l'avez vu dans les formules précédentes et ici, ce qui se passe est intuitif ou imaginez simplement ce qui se

03:31.230 --> 03:34.980
passe réellement à l'arrière-plan plutôt que sur le plan mathématique.

03:35.010 --> 03:40.740
Eh bien, vous prenez ce détecteur de fonctionnalité ou ce filtre et vous le mettez sur votre image comme vous le voyez à gauche.

03:40.740 --> 03:48.120
Donc, vous couvrez par exemple dans le cas en haut à gauche les neuf pixels dans

03:48.450 --> 03:58.760
le coin en haut à gauche et vous multipliez chacun par une valeur de valeur. en position d'un 1 par position environ

03:58.780 --> 04:04.980
1 1 numéro de position ou 0 1 0 1 0 2 par

04:05.090 --> 04:08.670
0 2 et ainsi de suite.

04:08.670 --> 04:13.410
Il s’agit donc d’une multiplication par élément sur ces matrices.

04:13.410 --> 04:14.460
Et puis vous additionnez le résultat.

04:14.460 --> 04:20.010
Donc, dans ce cas, rien ne correspond, c'est donc toujours 0 par 0 0 ou par 1.

04:20.010 --> 04:21.280
Donc, le résultat est zéro.

04:21.530 --> 04:26.610
Et ici, vous pouvez voir que l’un d’eux correspondait à la gauche.

04:26.610 --> 04:28.120
Et donc nous avons un 1 ici.

04:28.120 --> 04:30.820
Rien ne correspondait rien ne correspondait rien ne correspondait pas.

04:30.890 --> 04:38.100
Ensuite, nous passons au lancer suivant de manière à ce que l’étape à laquelle nous nous déplaçons appelle tout ce

04:38.100 --> 04:38.610
filtre.

04:38.610 --> 04:40.570
Nous avons donc ici une foulée d’un pixel.

04:40.680 --> 04:45.820
Ici, vous pouvez voir à nouveau quelque chose qui correspond au coin inférieur droit de la foulée,

04:46.110 --> 04:50.850
mais un autre situé au bas, au centre, correspond à la mesure du rien.

04:50.970 --> 04:52.040
La foulée est un.

04:52.170 --> 04:53.930
Vous pouvez changer la foulée.

04:54.330 --> 04:56.260
Vous pouvez en faire un deux.

04:56.340 --> 04:58.580
Vous allez en avoir trois comme vous voudrez.

04:58.830 --> 05:02.770
Le cas échéant, celui qui fonctionne bien est généralement ou deux.

05:02.800 --> 05:04.280
Donc, c'est ce que les gens s'en tiennent.

05:04.600 --> 05:09.480
Et nous parlerons de la progression vers la fin de ce tutoriel.

05:09.520 --> 05:14.170
Donc, ici nous avons donc nous correspondons absolument quand j'entends dire que vous pouvez voir que nous en avons deux

05:14.170 --> 05:17.270
parce que deux d'entre eux ont été appariés et ainsi de suite.

05:17.290 --> 05:24.830
Donc là-bas, nous en avons un autre qui correspond et nous avons terminé.

05:24.830 --> 05:27.770
Alors, qu'est-ce qu'on a créé?

05:27.800 --> 05:28.600
Droite.

05:28.820 --> 05:31.860
Quelques choses importantes ici.

05:31.970 --> 05:38.240
L'image de droite est appelée une carte de caractéristiques a aussi plusieurs termes, elle peut aussi être appelée parfois,

05:38.870 --> 05:40.530
il peut être une caractéristique.

05:41.000 --> 05:46.280
Donc, dans votre blog et votre opérateur d'opération de volution, quelque chose ne devient pas

05:46.280 --> 05:53.680
compliqué, il devient convolu et cela a parfois comme je me dis de me tromper, mais le terme correct est convolution,

05:53.700 --> 05:57.900
c'est une sorte de fonctionnalité ancienne être appelé la carte d'activation.

05:58.040 --> 06:02.510
Mais nous allons appeler cela une carte de fonctionnalités dans ce cours afin de pouvoir l'appeler

06:03.500 --> 06:06.300
à n'importe laquelle de ces choses et qu'avons-nous fait ici.

06:06.320 --> 06:09.910
Comme vous pouvez le constater, nous avons réduit la taille de l'image.

06:09.920 --> 06:15.500
C'est le numéro un et c'est la chose importante que je voulais mentionner à propos de votre image d'entrée, du texte de

06:15.500 --> 06:17.090
la fonction et de la foulée.

06:17.240 --> 06:21.690
Si vous en avez une, l'image est réduite un peu, mais si vous en avez le droit,

06:21.690 --> 06:25.410
l'image en produira davantage, de sorte que la fonctionnalité sera encore plus réduite.

06:25.610 --> 06:33.950
Et c’est une fonction très importante du détecteur de caractéristiques de cette étape de convolution: réduire

06:33.950 --> 06:42.100
la taille de l’image, car ce sera plus facile à traiter et plus rapide.

06:42.110 --> 06:51.830
Ce sera le cas et vous ne serez qu’une famille car imaginez, comme ici, une image sept sur sept, mais

06:51.860 --> 06:55.310
imaginez si vous avez une bonne photo.

06:55.700 --> 07:02.270
Ou si vous avez une image de 256 pixels sur 56 pixels, c’est un très grand nombre de pixels que j’ai choisi, que

07:02.900 --> 07:06.940
ce soit x carré ou comme si vous disposiez de 300 mais 300 pixels.

07:07.060 --> 07:13.400
Donc, nous ne sommes pas confus avec le R. G. La B 256 doit dire que nous avons une image 300 x

07:13.400 --> 07:14.720
300 en taille et en pixels.

07:14.780 --> 07:22.640
Ensuite, vous avez 300 nombres carrés de pixels, ce qui est un nombre énorme. Par conséquent, les détecteurs de fonctions réduiront la taille

07:23.360 --> 07:27.580
de l’image. Par conséquent, une foulée de deux est réellement bénéfique.

07:27.740 --> 07:29.970
Mais alors, la question est de savoir si nous perdons des informations.

07:29.990 --> 07:34.520
Perdons-nous des informations lorsque nous appliquons le détecteur de caractéristiques?

07:34.520 --> 07:40.580
Bien certaines informations que nous perdons bien sûr car nous avons moins de valeurs et de matrice résultante.

07:40.700 --> 07:45.950
Mais en même temps, l’objectif du détecteur de caractéristiques est de détecter certaines caractéristiques, certaines

07:45.950 --> 07:48.170
parties de l’image qui sont intégrales.

07:48.620 --> 07:53.150
Ainsi, par exemple, si vous réfléchissez de la sorte, le détecteur de fonctions comporte un

07:53.150 --> 07:54.080
certain motif.

07:54.080 --> 07:57.950
Le nombre le plus élevé sur votre carte de caractéristiques correspond au moment où ce modèle correspond.

07:57.950 --> 08:04.820
En fait, le nombre le plus élevé que vous pouvez obtenir est dans un exemple tout simplifié, c’est lorsque la fonctionnalité correspond exactement

08:04.820 --> 08:10.550
et que vous pouvez voir que le nombre quatre que nous avons dans notre carte des fonctionnalités est exactement.

08:10.550 --> 08:16.910
Donc, si vous le regardez ici, c'est exactement là que se trouve ce détecteur de fonctions, car il n'y en a

08:16.910 --> 08:21.460
que quatre et il correspondait parfaitement pour que vous puissiez voir cette partie ici.

08:21.470 --> 08:23.220
Donc, la fonctionnalité a été détectée ici.

08:23.450 --> 08:32.340
Et comme nous en avons discuté au tout début de cette section, il décrit comment nous voyons les choses et comment nous les

08:32.430 --> 08:33.080
reconnaissons.

08:33.090 --> 08:40.410
Nous ne regardons pas chaque pixel pour ainsi dire dans ce que nous voyons sur une image ou dans la vie réelle.

08:40.410 --> 08:46.440
Nous ne regardons pas chaque image, nous ne regardons pas les caractéristiques mais le nez, le

08:47.070 --> 08:55.110
chapeau, la plume, les yeux sous les petites marques noires sous les yeux du guépard pour distinguer le guépard du léopard

08:55.110 --> 08:57.470
et la forme du train.

08:57.480 --> 09:02.610
Nous ne faisons pas la distinction entre un train à grande vitesse et un train normal, etc., afin de ne

09:02.610 --> 09:08.110
pas examiner tout ce que nous examinons, ce que nous préservons et c'est ce que la carte des fonctionnalités nous aide à préserver.

09:08.110 --> 09:15.480
En fait, c’est ce que cela nous permet d’avancer et de nous débarrasser de toutes les choses inutiles qui,

09:15.570 --> 09:22.740
même en tant qu’êtres humains, ne traitent pas autant d’informations dans vos yeux qu’à un moment donné, comme des

09:22.740 --> 09:28.680
gigaoctets d’informations, si vous regardez chaque point. sinon des téraoctets d'informations vous parviennent par seconde

09:28.680 --> 09:35.640
et nous pouvons continuer car nous nous débarrassons de ce qui est inutile, nous nous concentrons uniquement sur

09:35.640 --> 09:41.510
les fonctionnalités importantes qui sont importantes pour nous et c'est exactement ce que fait la

09:41.640 --> 09:42.270
fonctionnalité.

09:42.270 --> 09:51.030
Nous passons maintenant à cette image. Nous créons une carte des fonctionnalités. Ainsi, la première de celles-ci est celle que nous venons de créer, mais

09:51.030 --> 09:54.300
comment se fait-il qu'il y en ait beaucoup.

09:54.300 --> 10:00.300
Mais nous créons plusieurs cartes de caractéristiques parce que nous utilisons des filtres différents.

10:00.300 --> 10:00.590
Droite.

10:00.630 --> 10:05.430
Et c’est une autre façon de conserver une grande quantité d’informations afin de ne

10:05.880 --> 10:12.600
pas nous limiter à une seule carte de caractéristiques, mais aussi ou plutôt, le réseau décide en fonction de sa formation

10:12.600 --> 10:18.030
et nous en discuterons à la fin de la section. Au cours de sa formation, il décide

10:18.120 --> 10:23.670
quelles fonctionnalités sont importantes pour certains types ou certaines catégories. Il les recherche et dispose donc de filtres

10:23.670 --> 10:26.070
différents. Nous en parlerons tout à l'heure.

10:26.160 --> 10:32.280
Mais fondamentalement, je vais appliquer ces filtres, donc pour obtenir cette carte de fonctionnalités, un filtre similaire à celui que nous avons vu a été

10:32.280 --> 10:36.270
appliqué, mais pour obtenir cette fonctionnalité, Mabbett a appliqué un filtre différent pour que cette fonctionnalité

10:36.270 --> 10:38.080
soit opérationnelle, ainsi que d'autres filtres.

10:38.370 --> 10:43.430
Et donc, fondamentalement, il crée simplement ces cartes de caractéristiques.

10:43.650 --> 10:49.700
Et en fait, c’est pourquoi, personnellement, je pense que le terme détecteur de caractéristiques est meilleur que les filtres.

10:49.710 --> 10:56.040
Rappelez-vous que nous avons ici ce filtre que nous pouvons également appeler un détecteur de fonctions. En

10:56.040 --> 10:59.440
fait, le mot détecteur de fonctions est mieux adapté.

10:59.490 --> 11:03.390
Et la raison en est que c'est ce que le but est juste.

11:03.390 --> 11:06.510
Nous ne voulons pas simplement nous ne voulons pas simplement filtrer notre image.

11:06.510 --> 11:10.220
Mais même si c'est un tout, c'est la même chose, juste une question de terminologie.

11:10.230 --> 11:11.990
Mais fondamentalement, nous voulons détecter les fonctionnalités.

11:12.000 --> 11:12.270
D'accord.

11:12.270 --> 11:19.680
Dans cet emplacement, nous allons à notre propre carte de fonctionnalités que nous avons détectée où certaines fonctionnalités sont dans l'image et cette

11:19.800 --> 11:24.240
carte de fonctionnalités que nous avons détectée où d'autres fonctionnalités sont où une

11:24.240 --> 11:30.350
certaine fonctionnalité spécifique est située et cette carte de fonctionnalités sera détecté où une certaine autre caractéristique est

11:30.350 --> 11:31.420
située sur l'image.

11:31.440 --> 11:33.420
C'est donc ce que nous faisons.

11:33.420 --> 11:40.470
Et écoutez, nous avons quelques exemples. Nous utilisons ici ceci et cela vient de Gip dot org.

11:40.610 --> 11:48.690
Leur documentation est un outil gratuit, comme la peinture, que vous pouvez utiliser pour ajuster vos images ou travailler avec

11:48.690 --> 11:49.550
vos images.

11:49.560 --> 11:56.490
Mais fondamentalement, ils ont quelques exemples intéressants dans leur documentation et ici ils ont une image du Taj Mahal et

11:56.490 --> 11:59.790
vous pouvez choisir le filtre que vous souhaitez appliquer.

11:59.880 --> 12:06.150
Donc, si vous téléchargez ce programme et que vous téléchargez une photo dessus, vous pouvez alors démarrer une matrice

12:06.150 --> 12:12.600
de conversion et appliquer des filtres. Vous verrez que ces éléments sont effectivement appliqués par ces matrices anglaises dans le

12:12.600 --> 12:15.240
traitement et la conception des images, etc.

12:15.240 --> 12:17.150
Voyons donc ce que nous obtenons de ce que nous obtenons.

12:17.240 --> 12:21.520
Donc, si nous appliquons ce filtre cinq au milieu moins un on est un on est un moins un.

12:21.690 --> 12:23.780
Vous pouvez voir que cela accentue l'image.

12:23.890 --> 12:29.010
Et c'est donc très intuitif si vous y réfléchissez.

12:29.010 --> 12:36.300
Donc 5 est le pixel du pixel principal comme au milieu du filtre ou du détecteur de caractéristiques,

12:36.600 --> 12:43.410
puis moins un moins un un, un type réduit les pixels situés autour du un de manière

12:44.430 --> 12:45.000
intuitive.

12:46.170 --> 12:47.020
Puis flou.

12:47.040 --> 12:54.150
Donc, fondamentalement, prend une importance égale donne une signification égale à tous les pixels qui sont tous au centre et,

12:54.150 --> 12:59.070
par conséquent, il les combine ensemble et vous obtenez une amélioration du flou.

12:59.070 --> 13:03.860
Donc ici vous pouvez voir que cela fait moins un et un et ensuite vous obtenez des zéros exacts.

13:03.870 --> 13:11.100
Donc, vous avez supprimé pour supprimer les pixels autour du principal au centre et vous ne gardez que celui-ci à un moins, ce qui vous

13:11.100 --> 13:15.610
donne un avantage et cela était un peu plus difficile à comprendre comment cela fonctionne.

13:16.290 --> 13:20.700
Comme probablement plus difficile simplement de penser intuitivement à la détection de bord.

13:20.700 --> 13:23.340
Bon alors celui-ci a probablement plus de sens.

13:23.340 --> 13:25.860
Bon vous leur prenez un moyen.

13:25.850 --> 13:28.880
Vous réduisez le milieu.

13:29.050 --> 13:36.180
Vous aimez probablement la force du pixel du milieu, puis vous recherchez ceux que vous recherchez.

13:36.420 --> 13:41.980
Ceux que vous voyez augmenter la force de ceux qui les entourent.

13:42.090 --> 13:43.910
Donc, vous avez ceux là.

13:44.720 --> 13:45.610
Oui cela est.

13:45.690 --> 13:50.700
Cela vous donne l’impression que l’on prend et vous pouvez voir lequel vous allez y arriver et en diriger un autre.

13:50.700 --> 13:58.130
Donc la clé ici est que c'est symétrique et que vous pouvez voir que l'image devient asymétrique

13:58.140 --> 14:03.580
aussi, alors vous avez comme ce genre de sentiment de se distinguer.

14:03.840 --> 14:08.910
Et c’est ce que vous obtenez lorsque vous avez des inconvénients ici et qu’ici encore, c’est très, cela devient

14:08.970 --> 14:13.860
un peu technique maintenant mais au moins, nous pouvons obtenir une sorte d’intuitive et Lissa les examinera

14:13.860 --> 14:14.160
rapidement.

14:14.160 --> 14:21.480
Donc, il y a plus de netteté, il y a du flou, il y a un bord détecté et un boss, comme vous

14:21.480 --> 14:27.350
pouvez le voir, ce sont d'excellents exemples de la même image, mais nous obtenons des cartes détaillées.

14:27.360 --> 14:32.430
Nous utilisons donc différents détecteurs de caractéristiques pour obtenir différentes cartes de caractéristiques de la

14:32.430 --> 14:40.380
même image. Nous avons donc maintenant beaucoup des dernières versions de cette image où, dans chacune d'entre elles, nous avons essayé de détecter

14:40.440 --> 14:44.920
certaines choses en ces termes, elles ne sont pas applicables. à nous.

14:44.940 --> 14:50.460
Leur second patron ne nous est probablement pas applicable en termes de réseaux de neurones convolutionnels, mais la détection de

14:50.550 --> 14:51.630
l’âge est importante.

14:51.630 --> 14:58.590
Nous voulons détecter les bords améliorer les bords probablement pas flou accentuer ainsi certaines choses comme texte énervé.

14:58.580 --> 15:02.450
Probablement le plus important pour notre type de travail.

15:02.460 --> 15:07.560
Et en termes de compréhension des ordinateurs, ils décideront eux-mêmes, ou les réseaux de neurones décideront eux-mêmes de ce

15:07.560 --> 15:12.900
qui est important, de ce qui ne l'est pas et ce ne sera probablement même pas reconnaissable à l'œil humain.

15:12.900 --> 15:14.910
Vous ne pourrez pas comprendre ce que signifient ces fonctionnalités.

15:14.910 --> 15:22.530
Mais l’ordinateur décidera et c’est la beauté des réseaux de neurones qu’ils peuvent traiter autant de choses différentes et comprendre

15:22.530 --> 15:28.950
sans même avoir cette intuition ou sans avoir cette explication, pourquoi ils comprendront quelles caractéristiques sont

15:28.950 --> 15:34.380
importantes pour eux, que nous ayons un nom pas que ce soit un tout

15:34.810 --> 15:39.830
qui est une question non pertinente pour le réseau de neurones artificiels.

15:39.990 --> 15:41.260
Et mon préféré.

15:41.280 --> 15:50.940
Voici une image de Geoffrey Hinton de Geoffrey Hinton passée à travers l'un de ces filtres.

15:50.940 --> 15:53.070
Très bien, cela nous amène à la fin de Teresa Tauriel.

15:53.070 --> 15:55.460
J'espère que vous avez apprécié l'apprentissage de la convolution.

15:55.470 --> 16:02.490
La conclusion à retenir est que la convolution est le principal objectif de notre évolution. Elle

16:02.490 --> 16:08.280
consiste à rechercher les caractéristiques de votre image à l’aide du détecteur de caractéristiques,

16:08.340 --> 16:15.710
de les placer dans une carte des caractéristiques. pour nous à vous le savez, car s’ils sont

16:15.720 --> 16:19.280
complètement mélangés, nous avons perdu le modèle.

16:19.350 --> 16:25.110
Et en même temps, il est important de comprendre que la plupart du temps, les fonctionnalités qu'un

16:25.110 --> 16:32.430
réseau de neurones détectera et utiliseront pour reconnaître certaines images et que Klaas ne signifiera rien pour les humains, mais néanmoins, elles

16:32.460 --> 16:33.120
fonctionnent.

16:33.120 --> 16:34.420
Et c'est ce que la convolution est.

16:34.440 --> 16:36.280
Et j'ai hâte de vous voir prochainement Tauriel.

16:36.300 --> 16:37.980
Jusque-là profiter de l'apprentissage.
