Htm et texte
Problèmes de retard
Supposons qu'il existe quatre niveaux de la hiérarchie des chaînes qui sont successivement reconnus - lettres en syllabes, syllabes en mots, mots en phraséologie. Lors de la reconnaissance de chaque niveau, un cycle d'un réseau neuronal devrait passer. Si ANN lit une lettre par cycle, alors la reconnaissance des signes de plus haut niveau sera très tardive. Si ANN doit faire des prévisions et choisir des actions, cela ne convient pas du tout.Dans l'ENS, ce problème n'est pas très prononcé, car souvent (par exemple, lors de la reconnaissance de la parole à l'oreille), les neurones fonctionnent beaucoup plus rapidement que le niveau hiérarchique suivant n'apparaît.Pour l'ANN, le problème peut être résolu si l'arrivée du prochain signe est artificiellement retardée jusqu'à ce que tous les niveaux de hiérarchie soient reconnus. J'appelle cette méthode "avec une profondeur de reconnaissance adaptative". Nous avons un cycle avec une postcondition - alors qu'au moins un neurone de plus a été reconnu, ne lisez pas le signe suivant dans les capteurs, mais continuez de reconnaître ce qui est. C'est pour déboguer de tels cas que la complication du temps virtuel NeuroTime est utile, comme décrit dans un article précédent .Un autre problème se pose: chaque cycle de reconnaissance prend du temps, et les neurones qui se souviennent que leurs conditions préalables viennent d'être activées peuvent être désactivés pendant ce temps, et dans le cycle suivant, ils ne fonctionneront pas comme ils le devraient. Ce problème peut être résolu si deux types de connexions sont établies - relativement parlant, instantanément «up» et avec des retards «forward». Les connexions «up» envoient des signaux dans un cycle avec une profondeur de reconnaissance adaptative, et pendant ce temps aucun neurone n'est désactivé (n'a pas le temps de se désactiver, si par concept). Ce n'est qu'à la fin du cycle, quand vient le temps de traiter les signaux "en avant", que le tic du monde et l'horloge tic tac, et les neurones sont désactivés.Ces connexions peuvent (mais pas nécessairement) être divisées en différents neurones à l'intérieur du neurocluster. Auparavant, lorsque je travaillais avec des neurones individuels, c'était comme ça: le cluster devenait plus compliqué, le modèle abstrait de quatre neurones par cluster ...
... transformé en huit neurones: en
même temps, les connexions de contrôle des neurones à l'intérieur du cluster (choix des modes 1 / 2, etc.) ) ne sont pas affichés, car ils ne sont pas là - ils sont virtuels: au sein du cluster, il s'est avéré beaucoup plus facile de transférer l'activation avec du code C ++ (tel que cluster.neuronTemporalOutput.activate ()) que pour créer des connexions, pensez aux retards de signal et aux seuils.Des neurones aux clusters - déduplication
Par la suite, tous les neurones ont été réunis en un cluster encore plus fortement - par exemple, certains neurones n'ont pas besoin de connexions entrantes, car il est activé par programme à partir d'autres neurones du cluster, et son seul but est d'envoyer des signaux via les connexions sortantes. Certains autres neurones n'ont pas besoin de connexions sortantes, car ils transfèrent l'activation par programme à un autre neurone du cluster. Si nous avons un neurone qui produit une mémoire - activation des signes - ses connexions sont dirigées «vers le bas», alors il a le même ensemble de connexions que le neurone du même cluster qui reçoit les signaux de ces signes - ils n'ont qu'une direction différente (vers le haut ) Alors pourquoi dupliquer les communications, gaspiller la mémoire? C'est là que de nouveaux modèles de neuroclusters sont apparus, où les neurones ont été virtualisés - des conteneurs de connexion séparément (axones et dendrites), des neurones avec des potentiels d'action séparément.Cela a non seulement économisé de la mémoire, mais a également accéléré les calculs, car cela a augmenté leur localité. ANN est devenu plus petit et visuellement:
Et il est devenu plus facile d'afficher les hiérarchies à plusieurs niveaux:
Compression et oubli d'informations
Une fois reconnus, les caractères de niveau supérieur peuvent inhiber les caractères de niveau inférieur. Ensuite, les bas niveaux seront oubliés plus rapidement et effaceront la chaîne de mémoire. Seul le cluster qui s'est activé peut ralentir, et seuls les signes qu'il reconnaît - car il est déjà répertorié dans la chaîne de mémoire et a déjà pris en compte ces informations enfant, et il ne sera pas perdu lors d'un tel freinage. Comment ralentir? Il n'est pas conseillé de désactiver complètement les signes enfants "inférieurs", il suffit de ne réduire que la force de la connexion pour que la connexion à la chaîne mémoire soit plus rapide. En effet, dans les prochains ticks, les informations peuvent toujours être utiles, même si le symptôme semble être pris en compte, alors ne vous précipitez pas pour le supprimer instantanément.De plus, la compression des informations conduit au fait qu'il n'est presque pas pertinent que l'ANN lise des textes orthographiés ou écrits. Seule la signification de haut niveau restera dans la finale, et les liens vers la lecture lettre par lettre seront rapidement supprimés.Chaînage hiérarchique
Les algorithmes de distinction des chaînes généralisantes examinés ci-dessus devraient pouvoir fonctionner avec des situations où seules des caractéristiques de haut niveau restent dans la chaîne finale. Même si ces signes sont différents et que leur commun se retrouve au plus profond. Pour ce faire, l'étape d'envoi de l'activation doit également se faire avec une profondeur adaptative - afin d'envoyer l'activation aux signes de niveau le plus bas, de sorte qu'un signe qui se produit dans les deux chaînes, mais a été supprimé pour la compression des données, soit toujours trouvé.L'inhibition des signes reconnus est très importante lors de la mise en évidence de généralisations - si la généralisation sélectionne une chaîne déjà connue, alors elle inhibera tout ce qui est superflu et aucune tautologie ne sera créée - répétition ou prise. De plus, s'il existe de nombreuses fonctionnalités dans la nouvelle chaîne généralisée, seuls les niveaux les plus élevés y entreront. Ce n'est pas difficile, étant donné que le code de mémorisation / reconnaissance est commun aux deux algorithmes - c'est-à-dire la mémorisation, cette généralisation avec deux chaînes de tête.Source: https://habr.com/ru/post/fr388707/
All Articles