Comprendre le modĂšle d'apprentissage automatique qui brise CAPTCHA

Bonjour à tous! Ce mois-ci, OTUS recrute un nouveau groupe sur le cours Machine Learning . Selon la tradition établie, à la veille du début du cours, nous partageons avec vous la traduction de matériel intéressant sur le sujet.



La vision par ordinateur est l'un des sujets les plus pertinents et les plus recherchĂ©s de l'IA [1], cependant, les mĂ©thodes actuelles de rĂ©solution de problĂšmes utilisant des rĂ©seaux de neurones convolutifs sont sĂ©rieusement critiquĂ©es en raison du fait que de tels rĂ©seaux sont facilement trompĂ©s. Pour ne pas ĂȘtre infondĂ©, je vais vous expliquer plusieurs raisons: les rĂ©seaux de ce type donnent un rĂ©sultat incorrect avec une grande confiance pour les images naturelles qui ne contiennent pas de signaux statistiques [2], sur lesquels les rĂ©seaux de neurones convolutionnels s'appuient, pour les images qui Ă©taient auparavant correctement classĂ©es, mais dans lequel un pixel [3] ou des images avec des objets physiques qui ont Ă©tĂ© ajoutĂ©s Ă  la scĂšne mais n'ont pas eu Ă  changer le rĂ©sultat de la classification [4] a changĂ©. Le fait est que si nous voulons crĂ©er des machines vraiment intelligentes,il nous semble raisonnable d'investir dans l'Ă©tude de nouvelles idĂ©es.

L’une de ces nouvelles idĂ©es est l’application par Vicarious du rĂ©seau cortical rĂ©cursif (RCN), qui s’inspire des neurosciences. Ce modĂšle prĂ©tendait ĂȘtre extrĂȘmement efficace pour briser le captcha de texte, provoquant ainsi beaucoup de discussions autour de lui . J'ai donc dĂ©cidĂ© d'Ă©crire plusieurs articles, chacun expliquant un certain aspect de ce modĂšle. Dans cet article, nous parlerons de sa structure et de la façon dont la gĂ©nĂ©ration d'images prĂ©sentĂ©es dans les matĂ©riaux de l'article principal sur RCN [5] est gĂ©nĂ©rĂ©e.

Cet article suppose que vous ĂȘtes dĂ©jĂ  familier avec les rĂ©seaux de neurones convolutionnels, je vais donc en tirer de nombreuses analogies.

Pour se préparer à la connaissance des RCN, vous devez comprendre que les RCN sont basés sur l'idée de séparer la forme (esquisse de l'objet) de l'apparence (sa texture) et qu'il s'agit d'un modÚle génératif, et non discriminant, afin que nous puissions générer des images en l'utilisant, comme dans un générateur réseaux antagonistes. De plus, une structure hiérarchique parallÚle est utilisée, similaire à l'architecture des réseaux de neurones convolutionnels, qui commence par l'étape de détermination de la forme de l'objet cible dans les couches inférieures, puis son apparence est ajoutée sur la couche supérieure. Contrairement aux réseaux de neurones convolutifs, le modÚle que nous envisageons repose sur une riche base théorique de modÚles graphiques, au lieu de sommes pondérées et de descente de gradient. Examinons maintenant les caractéristiques de la structure RCN.

Couches d'entités


Le premier type de couche dans RCN est appelĂ© la couche d'entitĂ©s. Nous considĂ©rerons le modĂšle progressivement, supposons donc pour l'instant que toute la hiĂ©rarchie du modĂšle se compose uniquement de couches de ce type empilĂ©es les unes sur les autres. Nous passerons de concepts abstraits de haut niveau Ă  des fonctionnalitĂ©s plus spĂ©cifiques des couches infĂ©rieures, comme le montre la figure 1 . Une couche de ce type se compose de plusieurs nƓuds situĂ©s dans un espace bidimensionnel, de la mĂȘme maniĂšre que les cartes caractĂ©ristiques des rĂ©seaux de neurones convolutifs.


Figure 1 : plusieurs couches d'entitĂ©s situĂ©es l'une au-dessus de l'autre avec des nƓuds dans un espace Ă  deux dimensions. La transition de la quatriĂšme Ă  la premiĂšre couche signifie la transition du gĂ©nĂ©ral au particulier.

Chaque nƓud se compose de plusieurs canaux, chacun reprĂ©sentant une caractĂ©ristique distincte. Les canaux sont des variables binaires qui prennent la valeur True ou False, indiquant si un objet correspondant Ă  ce canal existe dans l'image gĂ©nĂ©rĂ©e finale dans les coordonnĂ©es (x, y) du nƓud. À tous les niveaux, les nƓuds ont le mĂȘme type de canaux.

Par exemple, prenons une couche intermĂ©diaire et parlons de ses canaux et des couches ci-dessus pour simplifier l'explication. La liste des canaux sur cette couche sera une hyperbole, un cercle et une parabole. Sur un certain parcours lors de la gĂ©nĂ©ration d'image, les calculs des couches sus-jacentes ont nĂ©cessitĂ© un cercle dans la coordonnĂ©e (1,1). Ainsi, le nƓud (1, 1) aura un canal correspondant Ă  l'objet «cercle» dans la valeur True. Cela affectera directement certains nƓuds de la couche infĂ©rieure, c'est-Ă -dire que les entitĂ©s de niveau infĂ©rieur associĂ©es au cercle dans le voisinage (1,1) seront dĂ©finies sur True. Ces objets de niveau infĂ©rieur peuvent ĂȘtre, par exemple, quatre arcs d'orientations diffĂ©rentes. Lorsque les fonctionnalitĂ©s de la couche infĂ©rieure sont activĂ©es, elles activent les canaux sur les couches encore plus bas jusqu'Ă  ce que la derniĂšre couche soit atteinte,gĂ©nĂ©ration d'images. La visualisation de l'activation est indiquĂ©e dansGraphique 2 .

Vous pouvez demander, comment deviendra-t-il clair que la représentation d'un cercle est de 4 arcs? Et comment RCN sait-elle qu'elle a besoin d'un canal pour représenter le cercle? Des canaux et leurs liaisons avec d'autres couches seront formés au stade de la formation de la MRC.


Figure 2: Flux d'informations dans les couches d'entitĂ©s. Les nƓuds de signes sont des capsules contenant des disques reprĂ©sentant des canaux. Certaines des couches supĂ©rieures et infĂ©rieures ont Ă©tĂ© prĂ©sentĂ©es sous la forme d'un parallĂ©lĂ©pipĂšde Ă  des fins de simplification, cependant, en rĂ©alitĂ©, elles sont Ă©galement constituĂ©es de nƓuds caractĂ©ristiques en tant que couches intermĂ©diaires. Veuillez noter que la couche intermĂ©diaire supĂ©rieure se compose de 3 canaux et la deuxiĂšme couche se compose de 4 canaux.

Vous pouvez indiquer une méthode trÚs rigide et déterministe pour générer le modÚle adopté, mais pour les personnes, les petites perturbations de la courbure du cercle sont toujours considérées comme un cercle, comme vous pouvez le voir sur la figure 3 .


Figure 3: De nombreuses variantes de la construction d'un cercle de quatre arcs courbes de la figure 2.

Il serait difficile de considĂ©rer chacune de ces variations comme un nouveau canal distinct dans la couche. De mĂȘme, le regroupement des variations dans la mĂȘme entitĂ© facilitera grandement la gĂ©nĂ©ralisation en nouvelles variations lorsque nous adapterons RCN Ă  la classification au lieu de la gĂ©nĂ©ration un peu plus tard. Mais comment changer la MRC pour profiter de cette opportunitĂ©?

Sous-Ă©chantillonnage des couches


Pour ce faire, vous avez besoin d'un nouveau type de couche - la couche de regroupement. Il est situé entre deux couches de signes et sert d'intermédiaire entre elles. Il se compose également de canaux, mais ils ont des valeurs entiÚres, pas binaires.

Pour illustrer le fonctionnement de ces calques, revenons Ă  l'exemple du cercle. Au lieu d'exiger 4 arcs avec des coordonnĂ©es fixes de la couche d'entitĂ©s au-dessus de celle-ci en tant que caractĂ©ristique d'un cercle, la recherche sera effectuĂ©e sur la couche de sous-Ă©chantillons. Ensuite, chaque canal activĂ© dans la couche de sous-Ă©chantillon sĂ©lectionnera un nƓud sur la couche sous-jacente Ă  son voisinage pour permettre une lĂ©gĂšre distorsion de l'entitĂ©. Ainsi, si nous Ă©tablissons une communication avec 9 nƓuds directement en dessous du nƓud de sous-Ă©chantillon, le canal de sous-Ă©chantillon, chaque fois qu'il est activĂ©, sĂ©lectionnera uniformĂ©ment l'un de ces 9 nƓuds et l'activera, et l'indice du nƓud sĂ©lectionnĂ© sera l'Ă©tat du canal de sous-Ă©chantillon - un entier. Dans la figure 4vous pouvez voir plusieurs exĂ©cutions, oĂč chaque exĂ©cution utilise un ensemble diffĂ©rent de nƓuds de niveau infĂ©rieur, respectivement, vous permettant de crĂ©er un cercle de diffĂ©rentes maniĂšres.


Figure 4: Fonctionnement des couches de sous-Ă©chantillonnage. Chaque image de cette image GIF est un lancement distinct. Les nƓuds de sous-Ă©chantillonnage sont cubĂ©s. Dans cette image, les nƓuds de sous-Ă©chantillon ont 4 canaux Ă©quivalents Ă  4 canaux de la couche d'entitĂ©s en dessous. Les couches supĂ©rieures et infĂ©rieures ont Ă©tĂ© complĂštement supprimĂ©es de l'image.

MalgrĂ© le fait que nous avions besoin de la variabilitĂ© de notre modĂšle, il serait prĂ©fĂ©rable qu'il reste plus restreint et ciblĂ©. Dans les deux figures prĂ©cĂ©dentes, certains cercles semblent trop Ă©tranges pour vraiment les interprĂ©ter comme des cercles en raison du fait que les arcs ne sont pas interconnectĂ©s, comme le montre la figure 5. Nous aimerions Ă©viter de les gĂ©nĂ©rer. Ainsi, si nous pouvions ajouter un mĂ©canisme de sous-Ă©chantillonnage des canaux pour coordonner la sĂ©lection des nƓuds d'entitĂ©s et se concentrer sur les formes continues, notre modĂšle serait plus prĂ©cis.


Figure 5: Nombreuses options pour construire un cercle. Ces options que nous voulons supprimer sont marquées de croix rouges.

Les auteurs du RCN ont utilisé la connexion latérale dans les couches de sous-échantillonnage à cette fin. Essentiellement, les canaux de sous-échantillonnage auront des liens avec d'autres canaux de sous-échantillonnage de l'environnement immédiat, et ces liens ne permettront pas à certaines paires d'états de coexister dans deux canaux simultanément. En fait, la zone d'échantillonnage de ces deux canaux sera simplement limitée. Dans diverses versions du cercle, ces connexions, par exemple, ne permettront pas à deux arcs adjacents de s'éloigner l'un de l'autre. Ce mécanisme est illustré à la figure 6.. Encore une fois, ces relations sont établies au stade de la formation. Il convient de noter que les réseaux neuronaux artificiels modernes de vanille n'ont pas de connexions latérales dans leurs couches, bien qu'ils existent dans les réseaux neuronaux biologiques et on suppose qu'ils jouent un rÎle dans l'intégration des contours dans le cortex visuel (mais, franchement, le cortex visuel a un appareil plus complexe que cela ne pourrait paraßtre dans la déclaration précédente).


Figure 6: GIF- RCN . , . , RCN , , . .

Jusqu'Ă  prĂ©sent, nous avons parlĂ© de couches intermĂ©diaires de RCN, nous n'avons que la couche la plus haute et la couche la plus basse qui interagissent avec les pixels de l'image gĂ©nĂ©rĂ©e. La couche supĂ©rieure est une couche d'entitĂ©s rĂ©guliĂšre, oĂč les canaux de chaque nƓud seront des classes de notre ensemble de donnĂ©es Ă©tiquetĂ©. Lors de la gĂ©nĂ©ration, nous sĂ©lectionnons simplement l'emplacement et la classe que nous voulons crĂ©er, allons au nƓud avec l'emplacement spĂ©cifiĂ© et disons qu'il active le canal de la classe que nous avons sĂ©lectionnĂ©e. Cela active certains des canaux de la couche de sous-Ă©chantillons en dessous, puis la couche d'entitĂ©s en dessous, et ainsi de suite, jusqu'Ă  ce que nous atteignions la derniĂšre couche d'entitĂ©s. Sur la base de votre connaissance des rĂ©seaux de neurones convolutifs, vous devriez penser que la couche supĂ©rieure aura un seul nƓud, mais ce n'est pas le cas, et c'est l'un des avantages du RCN,mais une discussion de ce sujet dĂ©passe le cadre de cet article.

La derniÚre couche d'entités sera unique. Rappelez-vous, j'ai parlé de la façon dont les MRC séparent la forme de l'apparence? C'est cette couche qui sera chargée d'obtenir la forme de l'objet généré. Ainsi, cette couche devrait fonctionner avec des caractéristiques de trÚs bas niveau, les blocs de construction les plus élémentaires de toute forme, ce qui nous aidera à générer la forme souhaitée. Les petites bordures tournant sous différents angles conviennent parfaitement, et ce sont précisément elles que les auteurs de la technologie utilisent.

Les auteurs ont sĂ©lectionnĂ© les attributs du dernier niveau pour reprĂ©senter une fenĂȘtre 3x3 qui a une bordure avec un certain angle de rotation, qu'ils appellent un descripteur de patch. Le nombre d'angles de rotation qu'ils ont choisi est 16. De plus, pour pouvoir ajouter une apparence plus tard, vous avez besoin de deux orientations pour chaque rotation afin de pouvoir dire si l'arriĂšre-plan est Ă  gauche ou Ă  droite, s'il s'agit de bordures extĂ©rieures et une orientation supplĂ©mentaire dans le cas de limites internes (c'est-Ă -dire Ă  l'intĂ©rieur de l'objet). La figure 7 montre les caractĂ©ristiques du dernier assemblage de couches et la figure 8 montre comment les descripteurs des correctifs peuvent gĂ©nĂ©rer une certaine forme.


Figure 7: . 48 ( ) , 16 3 . – 45 . “IN " , “OUT” — .


8: «i» .

Maintenant que nous avons atteint la derniĂšre couche de signes, nous avons un diagramme sur lequel les limites de l'objet sont dĂ©terminĂ©es et la comprĂ©hension de savoir si la zone est en dehors de la frontiĂšre est interne ou externe. Il reste Ă  ajouter une apparence, dĂ©signant chaque zone restante de l'image comme IN ou OUT et peindre sur la zone. Un champ alĂ©atoire conditionnel peut aider ici. Sans entrer dans les dĂ©tails mathĂ©matiques, nous attribuons simplement Ă  chaque pixel de l'image finale une distribution de probabilitĂ© par couleur et Ă©tat (IN ou OUT). Cette distribution reflĂ©tera les informations obtenues Ă  partir de la bordure de la carte. Par exemple, s'il y a deux pixels adjacents, dont l'un est IN et l'autre OUT, la probabilitĂ© qu'ils aient une couleur diffĂ©rente augmente considĂ©rablement. Si deux pixels adjacents se trouvent sur des cĂŽtĂ©s opposĂ©s de la bordure intĂ©rieure, la probabilitĂ©qui aura une couleur diffĂ©rente augmentera Ă©galement. Si les pixels se trouvent Ă  l'intĂ©rieur de la bordure et ne sont sĂ©parĂ©s par rien, la probabilitĂ© qu'ils aient la mĂȘme couleur augmente, mais les pixels externes peuvent avoir une lĂ©gĂšre dĂ©viation les uns des autres, etc. Pour obtenir l'image finale, il vous suffit de faire une sĂ©lection Ă  partir de la distribution de probabilitĂ© conjointe que nous venons d'installer. Pour rendre l'image gĂ©nĂ©rĂ©e plus intĂ©ressante, nous pouvons remplacer les couleurs par la texture. Nous ne discuterons pas de cette couche car RCN peut effectuer la classification sans ĂȘtre basĂ© sur l'apparence.Pour obtenir l'image finale, il vous suffit de faire une sĂ©lection Ă  partir de la distribution de probabilitĂ© conjointe que nous venons d'installer. Pour rendre l'image gĂ©nĂ©rĂ©e plus intĂ©ressante, nous pouvons remplacer les couleurs par la texture. Nous ne discuterons pas de cette couche car RCN peut effectuer la classification sans ĂȘtre basĂ© sur l'apparence.Pour obtenir l'image finale, il vous suffit de faire une sĂ©lection Ă  partir de la distribution de probabilitĂ© conjointe que nous venons d'installer. Pour rendre l'image gĂ©nĂ©rĂ©e plus intĂ©ressante, nous pouvons remplacer les couleurs par la texture. Nous ne discuterons pas de cette couche car RCN peut effectuer la classification sans ĂȘtre basĂ© sur l'apparence.

Eh bien, nous terminerons ici pour aujourd'hui. Si vous voulez en savoir plus sur RCN, lisez cet article [5] et l'annexe avec des documents supplémentaires, ou vous pouvez lire mes autres articles sur les conclusions logiques , la formation et les résultats de l'utilisation de RCN sur divers ensembles de données .

Sources:


  1. [1] R. Perrault, Y. Shoham, E. Brynjolfsson, et al., The AI ​​Index 2019 Annual Report (2019), Human-Centered AI Institute - Stanford University.
  2. [2] D. Hendrycks, K. Zhao, S. Basart, et al., Natural Adversarial Exemples (2019), arXiv: 1907.07174.
  3. [3] J. Su, D. Vasconcellos Vargas et S. Kouichi, One Pixel Attack for Fooling Deep Neural Networks (2017), arXiv: 1710.08864.
  4. [4] M. Sharif, S. Bhagavatula, L. Bauer, A General Framework for Adversarial Exemples with Objectives (2017), arXiv: 1801.00349.
  5. [5] D. George, W. Lehrach, K. Kansky, et al., A Generative Vision Model that Trains with High Data Efficiency and Break Text-based CAPTCHAs (2017), Science Mag (Vol 358 — Issue 6368).
  6. [6] H. Liang, X. Gong, M. Chen, et al., Interactions Between Feedback and Lateral Connections in the Primary Visual Cortex (2017), Proceedings of the National Academy of Sciences of the United States of America.

: « : ».

Source: https://habr.com/ru/post/undefined/


All Articles