Existence intelligente et pas tout à fait rationnelle

Mon éditorial sur You Tube

Je continue avec le sujet de l’intelligence artificielle. Je développe sur le contenu de ma dernière mise à jour en anglais : « Thinking Poisson, or ‘WTF are the other folks doing?’ ». Je veux bâtir un raisonnement cohérent en ce qui concerne le bien-fondé et la méthode d’utiliser un réseau neuronal comme outil de prédiction dans les sciences sociales. Je sens que pour le faire j’ai besoin de prendre du recul et d’articuler clairement les sources de ma fascination avec les réseaux neuronaux. Je me souviens la première fois que j’avais utilisé, d’une façon encore très maladroite, un algorithme très simple de réseau neuronal (regardez « Ce petit train-train des petits signaux locaux d’inquiétude »). Ce qui m’avait fasciné, à l’époque, c’était la possibilité de regarder, de l’extérieur, une chose – une chose logique – apprendre. C’était comme si j’observais quelqu’un qui trouve son chemin à tâtons avec les yeux bandés, seulement ce quelqu’un était une séquence de 6 équations.

Il y a deux ans, j’ai présenté, dans une conférence, quelques preuves empiriques que la civilisation humaine a pour trait essentiel de maximiser l’absorption d’énergie de l’environnement. En fait, les changements technologiques de notre civilisation depuis 1960 ont pour effet d’accroître ladite absorption d’énergie. C’est l’un des sentiers intellectuels qui me passionnent. Lorsque je réfléchis sur les différentes manifestations de vie biologique, toute espèce maximise son absorption d’énergie. Nous, les humains, ne faisons pas exception à cette règle. Dans un autre article, j’ai présenté une application créative de la bonne vieille fonction de production – telle que vous pouvez la trouver dans l’article de Charles Cobb et Paul Douglas – au phénomène d’adaptation des sociétés humaines à leur environnements locaux, vu la quantité d’énergie et d’alimentation disponible. La conclusion générale que je tire de la recherche présentée dans ces deux articles est que l’existence des sociétés humaines est une histoire d’apprentissage intelligent, quoi qu’imparfaitement rationnel, à plusieurs niveaux. Pas vraiment original, vous direz. Oui, pas très original, mais ça donne de l’inspiration et ça excite ma curiosité.

Les histoires, ça se déroule. Je suis curieux où est-ce que cette existence intelligente et pas tout à fait rationnelle peut bien nous mener. C’est logique. Je suis chercheur dans les sciences de société et j’essaie de prédire, encore et encore, comme je reçois de l’information nouvelle, quelle forme va prendre la société dans l’avenir. Comment allons-nous adapter aux changements climatiques ? Comment pouvons-nous arrêter ou inverser ces changements ? Comment nous comporterons-nous, en Europe, si une pénurie alimentaire à l’échelle continentale survient ? Quelle va être la loi de demain ? Va-t-elle punir toute offense verbale à la sensibilité de quiconque ? La loi va-t-elle règlementer l’accès à l’eau potable ? Comment voterons-nous dans les élections parlementaires, dans 100 ans ? Y-aura-t-il des élections parlementaires ?

Autant des questions qui provoquent deux types d’attitude. « Qui sait ? Il y a tellement de variables en jeu qu’il est impossible de dire quoi que ce soit de ne serait-ce que moyennement raisonnable » est la première. « Qui sait ? Essayons de formuler des hypothèses, pour commencer. Les hypothèses, ça donne un point de départ. Ensuite, nous pouvons évaluer l’information nouvelle, que nous gagnerons dans l’avenir, en vue de ces hypothèses et comprendre un peu plus de ce qui se passe ». Ça, c’est la deuxième approche possible et moi, j’y souscris. Je suis chercheur, la science est ma passion, je suis curieux et je préfère savoir plutôt qu’ignorer.

Ça fait pratiquement un an que je m’efforce de mettre au point un concept d’entreprise financière que j’ai baptisé EneFin. En général, il s’agit de stimuler le développement des nouvelles sources d’énergie – surtout des petites installations locales basés sur les renouvelables – à travers un mécanisme financier qui combine une structure coopérative avec des solutions typiquement capitalistes, un peu comme dans le financement participatif type « crowdfunding ». Il y a quelque chose d’étrange dans cette idée, ou plutôt dans mes tentatives de la développer. À première vue, ça semble attrayant dans sa simplicité. Lorsque je m’y prends à décrire et développer cette idée, soit comme un business plan soit comme un article scientifique, je bute contre… Voilà, je ne sais pas exactement contre quoi. Il y a comme un blocage dans mon cerveau. Comme j’essaie de comprendre la nature de ce blocage, ça semble être quelque chose comme de la complexité résiduelle. C’est comme si une partie de mon intellect me disait, encore et encore : « Ce truc est plus complexe que tu crois. Tu n’as pas découvert toutes les cartes de ce jeu. Il est trop tôt pour présenter ça comme idée toute faite. Il faut que tu continues à chercher et découvrir, avant de présenter ».

EneFin est un concept essentiellement financier. La finance, ça tend à marcher en boucle de rétroaction : les phénomènes qui, juste un instant avant, étaient la cause et la force motrice de quelque chose, deviennent l’effet du même quelque chose. C’est l’une des raisons pourquoi les méthodes stochastiques classiques, comme la régression linéaire, donnent des résultats très insatisfaisants en ce qui concerne la prédiction des marchés financiers. La méthode stochastique a pour but de trouver une fonction mathématique qui donne une représentation mathématiquement cohérente des données empiriques – une fonction – avec aussi petite erreur type que possible. La prédiction strictement dite consiste à projeter cette fonction dans un futur possible et incertain. La qualité de prédiction se juge, en fait, après coup, donc lorsque le futur de jadis est devenu le passé, ne serait-ce qu’immédiat, du présent. Il y a une assomption profondément cachée dans cette méthode : c’est l’assomption que nous savons tout ce qu’il y a à savoir.

La méthode stochastique requiert de dire ouvertement que l’échantillon des données empiriques que j’utilise pour tracer une fonction est un échantillon représentatif. Suivant la logique de de Moivre – Laplace, mon échantillon a de la valeur stochastique seulement lorsque sa moyenne arithmétique est identique à celle de la moyenne à observer dans la réalité en général ou bien elle est suffisamment proche de cette moyenne réelle pour que la différence soit insignifiante. Dire que mon observation de la réalité est représentative de cette réalité, ça crée une perspective cognitive spéciale, ou je prétends de savoir tout ce qu’il est nécessaire de savoir sur le monde qui m’entoure.

Si vous travaillez sur un projet et quelqu’un vous dit « Va dans la direction A, je sais parfaitement que j’ai raison », vous répondrez, probablement, « Avec tout mon respect, non, tu ne peux pas savoir à coup sûr si tu as raison. La réalité, ça change et ça surprend ». Voilà le talon d’Achille de la méthode stochastique. Bien qu’officiellement différente du bon vieux déterminisme, elle en garde certaines caractéristiques. Avec tous ses avantages indéniables, elle est très exposée à l’erreur d’observation incomplète.

Il y a cette blague à propos des sciences économiques, qu’elles sont l’art de formuler des pronostics qui ne tiennent pas. Cruelle et exagérée, la blague, néanmoins fréquemment vraie. C’est probablement pour ça qu’un créneau légèrement différent s’est développé dans les sciences sociales, celui qui puise des sciences physiques et qui utilise des modèles théoriques comme le mouvement Brownien ou bien le mouvement d’Itô . Dans cette approche, la fonction des données empiriques inclue explicitement une composante de changement aléatoire.

Un réseau neuronal va dans une direction encore un peu différente. Au lieu d’assembler toutes les observations empiriques et en tirer une fonction commune, un réseau neuronal expérimente avec des petits sous-ensembles de l’échantillon complet. Après chaque expérience, le réseau teste sa capacité d’obtenir le résultat égal à une valeur de référence. Le résultat de ce test est ensuite utilisé comme information additionnelle dans des expériences ultérieures. L’intelligence artificielle connaît le succès qu’elle connaît parce que savons que certaines séquences des fonctions mathématiques ont la capacité d’optimiser des fonctions réelles, par exemple le fonctionnement d’un robot de nettoyage des planchers.

Si une séquence d’actions possède la capacité de s’optimiser elle-même, elle se comporte comme l’intelligence d’un organisme vivant : elle apprend. Voilà la méthode dont j’ai besoin pour travailler à fond mon idée de solution financière pour les énergies renouvelables. Le financier, ça contient des multiples boucles de rétroaction entre les variables en jeu, qui sont un gros problème pour les modèles stochastiques. Pour un réseau neuronal, les boucles de rétroaction, c’est précisément ce que l’intelligence artificielle du réseau est faite pour.

Par ailleurs, voilà que j’ai trouvé un article intéressant sur la méthodologie d’utilisation des réseaux neuronaux comme outils de prédiction alternatifs ou complémentaires vis-à-vis les modèles stochastiques. Olawoyin et Chen (2018[1]) discutent la valeur prédictive des plusieurs architectures possibles d’un perceptron à couches multiples. La valeur prédictive est évaluée en appliquant les perceptrons, d’une part, et un modèle ARIMA d’autre part à la prédiction des mêmes variables dans le même échantillon des données empiriques. Le perceptron à couches multiples se débrouille mieux que le modèle stochastique, quelles que soient les conditions exactes de l’expérience. Olawoyin et Chen trouvent deux trucs intéressants à propos de l’architecture du réseau neuronal. Premièrement, le perceptron basé sur la tangente hyperbolique comme fonction d’activation neuronale est généralement plus précis dans sa prédiction que celui basé sur la fonction sigmoïde. Deuxièmement, la multiplication des couches de neurones dans le perceptron ne se traduit pas directement en sa valeur prédictive. Chez Olawoyin et Chen, le réseau à 3 couches semble se débrouiller généralement mieux que celui à 4 couches.

Il est peut-être bon que j’explique cette histoire des couches. Dans un réseau neuronal artificiel, un neurone est une fonction mathématique avec une tâche précise à effectuer. Attribuer des coefficients aléatoires de pondération aux variables d’entrée est une fonction distincte du calcul de la variable de résultat à travers une fonction d’activation neuronale. J’ai donc deux neurones distincts : un qui attribue les coefficients aléatoires et un autre qui calcule la fonction d’activation. Logiquement, ce dernier a besoin des valeurs crées par le premier, donc l’attribution des coefficients aléatoires est la couche neuronale précédente par rapport au calcul de la fonction d’activation, qui est donc situé dans la couche suivante. De manière générale, si l’équation A requiert le résultat de l’équation B, l’équation B sera dans la couche précédente et l’équation A trouvera son expression dans la couche suivante. C’est comme dans un cerveau : pour contempler la beauté d’un tableau de Cézanne j’ai besoin de le voir, donc les neurones engagés directement dans la vision sont dans une couche supérieure et les neurones responsables des gloussements d’admiration font la couche suivante.

Pourquoi parler des couches plutôt que des neurones singuliers ? C’est une découverte que même moi, un néophyte à peine initié aux fondements des réseaux neuronaux, je comprends déjà : lorsque je place des neurones multiples dans la même couche fonctionnelle du réseau, je peux les mettre en compétition, c’est-à-dire les neurones de la couche suivante peuvent choisir entre les résultats différents apportés par les neurones distincts de la couche précédente. J’ai commencé à tester ce truc dans « Surpopulation sauvage ou compétition aux États-Unis ». Par ailleurs, j’avais alors découvert à peu près la même chose qu’Olawoyin et Chen (2018) présentent dans leur article : plus de complexité dans l’architecture d’un réseau neuronal crée plutôt plus de possibilités que plus de précision prédictive. Quand il s’agit de prédiction strictement dite, plus simple le réseau plus de précision il donne. En revanche, lorsqu’il est question de formuler des hypothèses alternatives précises, plus de complexité élargit le répertoire des comportements possibles du perceptron et donne plus d’envergure dans la description des états alternatifs de la même situation.  

Je continue à vous fournir de la bonne science, presque neuve, juste un peu cabossée dans le processus de conception. Je vous rappelle que vous pouvez télécharger le business plan du projet BeFund (aussi accessible en version anglaise). Vous pouvez aussi télécharger mon livre intitulé “Capitalism and Political Power”. Je veux utiliser le financement participatif pour me donner une assise financière dans cet effort. Vous pouvez soutenir financièrement ma recherche, selon votre meilleur jugement, à travers mon compte PayPal. Vous pouvez aussi vous enregistrer comme mon patron sur mon compte Patreon . Si vous en faites ainsi, je vous serai reconnaissant pour m’indiquer deux trucs importants : quel genre de récompense attendez-vous en échange du patronage et quelles étapes souhaitiez-vous voir dans mon travail ? Vous pouvez me contacter à travers la boîte électronique de ce blog : goodscience@discoversocialsciences.com .


[1] Olawoyin, A., & Chen, Y. (2018). Predicting the Future with Artificial Neural Network. Procedia Computer Science, 140, 383-392.

Deux intelligences alternatives

Mon éditorial sur You Tube

Me voilà à nouveau avec de l’énergie. Mon énergie à moi, bien sûr, mais aussi le sujet de l’énergie. Je donne satisfaction à mes trois obsessions scientifiques. Une, les solutions financières pour encourager la transition vers les énergies renouvelables. Deux, le lien entre les marchés financiers et le changement technologique. Trois, application de l’intelligence artificielle à l’étude de l’intelligence collective.

Dans ma dernière mise à jour en anglais – « We, the average national economy. Research and case study in finance » – j’ai commencé à esquisser la direction de ma recherche. J’ai plus ou moins repris le chemin analytique déjà signalé dans « Surpopulation sauvage ou compétition aux États-Unis » et je l’ai élargi à un échantillon plus grand de 56 pays. Apparemment, la croissance de l’efficience énergétique dans l’économie mondiale, de $8,08 par kilogramme d’équivalent pétrole en 1990 jusqu’à $10,76 en 2014, était accompagnée d’une accumulation presque équivalente en magnitude de capital, aussi bien d’actifs fixes que des soldes monétaires. Le truc intéressant c’est que ces deux composantes d’actifs du bilan de l’économie mondiale semblent garder une proportion plus ou moins constante l’une vis-à-vis de l’autre. En d’autres mots, un système complexe qui, dans ma base de données utilisée pour cette recherche, se compose de 56 pays, garde une liquidité plus ou moins constante tout en accumulant du capital et en accroissant son efficience énergétique.

Ça a tout l’air d’une intelligence collective : un système qui n’a aucune chance d’avoir un cerveau central et qui néanmoins se comporte comme un organisme. Il y a d’autre recherche qui en quelque sorte corrobore cette approche. Il y a ce modèle appelé MUSIASEM (Andreoni 2017[1] ; Velasco-Fernández et al 2018[2]) qui fournit une preuve empirique convaincante qu’en ce qui concerne l’énergie et l’efficience de son utilisation, l’économie mondiale se comporte comme un métabolisme adaptatif, dont l’adaptation se manifeste, entre autres, par un réarrangement géographique des moyens de production.

Je retourne donc, avec la persévérance d’un ivrogne qui essaie d’ouvrir la mauvaise porte d’entrée avec la bonne clé, au sujet de l’intelligence artificielle.  Je viens d’expérimenter un peu avec le réseau neuronal que j’utilise dans ce créneau spécifique de recherche et voilà qu’une fois de plus, cette chose m’a surpris. Je vous donne ici un compte rendu sélectif de ces surprises. Pour une description détaillée de la façon dont marche ce réseau neuronal précis, vous pouvez vous référer à « Surpopulation sauvage ou compétition aux États-Unis ». En passant du cas des États-Unis à l’échantillon général de plusieurs pays, j’ai juste ajouté une variable de plus, que j’avais déjà utilisé dans le passé (consultez, par exemple « Deux lions de montagne, un bison mort et moi ») : le déficit alimentaire par personne. C’est une variable des plus structurelles : elle est très idiosyncratique pays par pays, tout en restant très stable dans le temps. Immatriculation idéale d’un pays. D’autre part, moi, je suis ce chemin de découverte où j’assume que la nourriture, le pétrole et l’électricité se joignent, à un certain niveau, comme des manifestations différentes de la capacité de notre espèce de transformer l’énergie accessible dans notre environnement.

Alors, les surprises. Jusqu’alors, lorsque je travaillais avec ce réseau neuronal, il marchait à chaque fois. Je veux dire qu’il produisait un résultat dans chaque cas de figure, quoi que je lui impose comme conditions d’apprentissage. D’accord, ces résultats étaient parfois absurdes, mais il y en avait, des résultats. Dans ce cas précis, le réseau neuronal marche juste sous certaines conditions. Il coince souvent, c’est-à-dire il rend une erreur générale du type « NOMBRE ! », lorsque la magnitude des variables atteint des valeurs comme 40 ou – 40, donc lorsque les fonctions d’activation neurale s’affolent, puisqu’elles sont essentiellement faites à procéder avec des valeurs standardisées entre 0 et 1 (entre -1 et 1 pour la hyper-tangentielle). C’est du nouveau et moi, j’aime bien du nouveau. J’aime bien comprendre.

Alors, j’essaie de comprendre. Qu’est-ce qui a changé dans les conditions de départ, par rapport aux applications précédentes de ce même réseau neuronal ? Ce qui a changé très certainement c’est la quantité et la complexité des données empiriques originelles, donc de ce qui constitue le matériel primaire d’apprentissage. Dans ce cas précis, je donne à mon réseau neuronal N = 1228 cas « pays réel – année donnée ». Auparavant, je lui donnais entre 20 et 25 de telles incidences. J’ai envie de rire. De moi-même, je veux dire. C’est tellement évident ! Lorsque j’apprends quelque chose, la façon de le faire dépend de la complexité des informations d’entrée. Plus ces informations sont riches et complexes, plus de finesse je dois démontrer dans mon apprentissage. Apprendre à changer un tuyau sous mon levier de cuisine est simple. Apprendre la plomberie en général, y compris la méthode de changer une valve à gaz, est une tâche plus difficile, qui requiert une approche différente.

J’utilise un réseau neuronal pour simuler le comportement de l’intelligence collective d’une société. J’assume que les valeurs des variables empiriques représentent autant d’états différents et temporaires des processus distincts de changement social. La simulation d’intelligence collective, telle que la fait mon réseau neuronal, commence avec une assomption importante : toutes les variables pris en compte sont divisées en deux catégories, où une variable est considérée comme celle de résultat et toutes les autres comme celles d’entrée. J’assume que l’entité intelligente est orientée sur l’optimisation de la variable de résultat et les variables d’entrée sont instrumentales à cet effet. J’implique une fonction vitale dans mon entité intelligente. Je sais que les réseaux neuronaux beaucoup plus avancés que le mien sont capables de définir cette fonction par eux-mêmes et j’ai même quelques idées comment inclure cette composante dans mon propre réseau. Quoi qu’il en soit, une fonction vitale est quelque chose à avoir dans un réseau neuronal. Sans elle, à quoi bon ? Je veux dire, s’il n’y a rien à achever, la vie perd son sens et l’intelligence se réduit à la capacité de commander un autre verre et à consulter Twitter pour la millionième fois.

Lorsque je considère l’intelligence collective d’une société réelle et je définis sa fonction vitale de la façon décrite ci-dessus, c’est une simplification grossière. Comme j’approche cette fonction vitale sous un angle purement mathématique, ça a plus de sens. La variable de résultat est celle à laquelle mon réseau neuronal touche relativement le moins : il la modifie beaucoup moins que les variables d’entrée. La distinction entre la variable de résultat et les variables d’entrée signifie qu’une variable dans le lot – celle de résultat – ancre la simulation d’intelligence collective dans un contexte similaire à celui, connu à tous les économistes, de caeteris paribus, ou « autres facteurs constants ». Je peux donc orienter ma simulation de façon à montrer les états possibles de réalité sociales sous des différentes ancres de résultat. Qu’est-ce qui se passe si j’ancre mon système social à un certain niveau d’efficience énergétique ? Comment l’état hypothétique de cette société, produit par le réseau neuronal, va changer avec une autre ancre de résultat ? Quelles différences de comportement produis-je sous des fonctions vitales différentes ?

Maintenant, question de langage. Le réseau neuronal parle nombres. Il comprend les données numériques et il communique des résultats numériques. En principe, le langage numérique des fonctions d’activation de base, celui du sigmoïde et la hyper-tangentielle, se limite aux valeurs numériques standardisées entre 0 et 1. En fait, la hyper-tangentielle est un peu plus polyglotte et comprend aussi du patois entre -1 et 0. Dans ma communication avec le réseau neuronal j’encontre donc deux défis linguistiques : celui de parler à cette chose en des nombres standardisés qui correspondent aussi étroitement que possible à la réalité, et celui de comprendre correctement les résultats numériques rendus par le réseau.

J’ai donc cette base de données, N = 1228 occurrences « pays < > année », et je traduis les valeurs empiriques dedans en des valeurs standardisées. La procédure de base, la plus simple, consiste à calculer le maximum observé pour chaque variable séparément et ensuite diviser chaque valeur empirique de cette variable par ledit maximum. Si je ne me trompe, ça s’appelle « dénomination ». Dans une approche plus élaborée, je peux standardiser sous la courbe de distribution normale. C’est ce que vous avez comme standardisation dans des logiciels statistiques. Il y a un petit problème avec les valeurs empiriques qui, après standardisation, sont égales rigoureusement à 0 ou 1. En théorie, il faudrait les transformer en des machins comme 0,001 ou 0,999. En fait, s’il n’y en a pas beaucoup, de ces « 0 » et ces « 1 » dans l’échantillon offert à mon réseau neuronal comme matériel d’apprentissage, je peux les ignorer.

La question de langage sur laquelle je me concentre maintenant est celle de compréhension de ce que le réseau neuronal rend comme résultat. Mathématiquement, ce résultat est égal à xf = xi + ∑e , où xf est la valeur finale crachée par le réseau, xi est la valeur initiale, et ∑e est la somme d’erreurs locales ajoutée à la valeur initiale après n rondes d’expérimentation. Supposons que je fais n = 3000 rondes d’expérimentation. Qu’est-ce qu’exactement ma valeur finale xf ? Est-ce la valeur obtenue dans la ronde no. 3000 ? C’est ce que j’assume souvent, mais il y a des « mais » contre cette approche. Premièrement, si les erreurs locales « e » accumulées par le réseau sont généralement positives, les valeurs xf obtenues dans cette dernière ronde sont d’habitude plus élevées que les initiales. Quelles contorsions que je fasse avec la standardisation, xf = max(xi ; xf) et inévitablement xf > xi.

Encore, ce n’est pas le plus dur des cas. Il y a des situations où les erreurs locales sont plutôt négatives que positives et après leur accumulation j’ai ∑e < 0 et xf = xi + ∑e < 0 également. Vachement embarrassant. Puis-je avoir une offre négative d’argent ou une efficience énergétique négative ?

Je peux faire une esquive élégante à travers le théorème de de Moivre – Laplace et assumer que dans un grand nombre des valeurs expérimentales rendues par le réseau neuronal la valeur espérée est leur moyenne arithmétique, soit xf = [∑(xi + ei)] / n. Élégant, certes, mais est-ce une interprétation valide du langage dont le réseau neuronal me parle ? L’intelligence artificielle est une forme d’intelligence. Ça peut créer de la signification et pas seulement adopter la signification que je lui impose. Est-ce que ça parle de Moivre – Laplace ? Allez savoir…

Bon, ça c’est de la philosophie. Temps de passer à l’expérimentation en tant que telle. Je reprends plus ou moins le perceptron décrit dans « Surpopulation sauvage ou compétition aux États-Unis » : une couche neuronale d’entrée et observation, une couche de combine (attribution des coefficients de pondération, ainsi que de fonctions d’adaptation locale aux données observées), une couche d’activation (deux fonctions parallèles : sigmoïde et hyper-tangentielle) et finalement une couche de sélection. Dans cette dernière, j’introduis deux mécanismes complexes et alternatifs de décision. Tous les deux assument qu’une intelligence collective humaine démontre deux tendances contradictoires. D’une part, nous sommes collectivement capables de nous ouvrir à du nouveau, donc de relâcher la cohérence mutuelle entre les variables qui nous représentent. D’autre part, nous avons une tolérance limitée à la dissonance cognitive. Au-delà de ce seuil de tolérance nous percevons le surplus du nouveau comme du mauvais et nous nous protégeons contre. Le premier mécanisme de sélection prend la moindre erreur des deux. Les deux neurones dans la couche d’activation produisent des activations concurrentes et le neurone de sélection, dans ce schéma-ci, choisit l’activation qui produit la moindre valeur absolue d’erreur. Pourquoi valeur absolue et non pas l’erreur en tant que telle ? Eh bien, l’erreur d’activation peut très bien être négative. Ça arrive tout le temps. Si j’ai une erreur négative et une positive, la moindre valeur des deux sera, arithmétiquement, l’erreur négative, même si son écart de la valeur d’activation est plus grand que celui de l’erreur positive. Moi, je veux minimiser l’écart et je le minimise dans l’instant. Je prends l’expérience qui me donne moins de dissonance cognitive dans l’instant.

 

Le deuxième mécanisme de sélection consiste à tirer la moyenne arithmétique des deux erreurs et de la diviser ensuite par un coefficient proportionnel au nombre ordinal de la ronde d’expérimentation. Cette division se fait uniquement dans les rondes d’expérimentation strictement dite, pas dans la phase d’apprentissage sur les données réelles. J’explique cette distinction dans un instant. Ce mécanisme de sélection correspond à une situation où nous, l’intelligence collective, sommes rationnels dans l’apprentissage à partir de l’expérience directe de réalité empirique – donc nous pondérons toute la réalité de façon uniforme – mais dès que ça vient à expérimentation pure, nous réduisons la dissonance cognitive dans le temps. Nous percevons l’expérience antérieure comme plus importante que l’expérience subséquente.

Le réseau neuronal travaille en deux étapes. D’abord, il observe les données empiriques, donc les N = 1228 occurrences « pays < > année » dans la base de données de départ. Il les observe activement : à partir de l’observation empirique n = 2 il ajoute l’erreur sélectionnée dans la ronde précédente aux valeurs standardisées des variables d’entrée et il touche pas à la variable de résultat. Après les 1228 rondes d’apprentissage le réseau passe à 3700 rondes d’expérimentation. Je ne sais pas pourquoi, mais j’aime arrondir le boulot total de mon perceptron à 5000 rondes au total. En tout cas, dans les 3700 rondes d’expérimentation, le réseau ajoute l’erreur de la ronde précédente aux variables d’entrée calculées dans la même ronde précédente.

En ce qui concerne le travail avec les variables d’entrée, le perceptron accumule l’expérience en forme d’une moyenne mouvante. Dans la première ronde d’expérimentation, le neurone d’observation dans la première couche du réseau tire la moyenne arithmétique des 1228 valeurs de la phase d’apprentissage et il y ajoute l’erreur sélectionnée pour propagation dans la dernière, 1228ième ronde d’apprentissage. Dans la deuxième ronde d’expérimentation, le perceptron tire la moyenne arithmétique des 1227 rondes d’apprentissage et de la première ronde d’expérimentation et il y ajoute l’erreur sélectionnée dans la première ronde d’expérimentation et ainsi de suite. La couche d’entrée du réseau est donc un peu conservative et perçoit les résultats d’expériences nouvelles à travers la valeur espérée, qui, à son tour, est construite sur la base du passé. Ça a l’air familier, n’est-ce pas ? En revanche, en ce qui concerne la variable de résultat, le perceptron est plus conservatif. Il tire la moyenne arithmétique des 1228 valeurs empiriques, comme valeur espérée, et il s’y tient. Encore une fois, je veux simuler une tendance à réduire la dissonance cognitive.

Côté langage, je teste deux manières d’écouter à ce que me dit mon perceptron. La première consiste à prendre, classiquement si j’ose dire, les valeurs standardisées produites par la dernière, 3700ième ronde expérimentale et les de-standardiser en les multipliant par les maximums enregistrés empiriquement dans la base de données de départ. Dans la deuxième méthode, je tire la moyenne arithmétique de toute la distribution de la variable donnée, donc valeurs empiriques et valeurs expérimentales prises ensemble. Je raisonne en termes du théorème de de Moivre – Laplace et j’assume que la signification d’un grand ensemble des nombres est la valeur espérée, soit la moyenne arithmétique.

En ce qui concerne mes variables, leur catalogue général est donné dans le tableau ci-dessous. Après le tableau, je continue avec la description.

Tableau 1

Code de la variable Description de la variable
Q/E PIB par kg d’équivalent pétrole d’énergie consommé (prix constants, 2011 PPP $) – VARIABLE DE RÉSULTAT
CK/PA Capital immobilisé moyen par une demande nationale de brevet (millions de 2011 PPP $, prix constants)
A/Q Amortissement agrégé d’actifs fixes comme % du PIB
PA/N Demandes nationales de brevet par 1 million d’habitants
M/Q Offre agrégée d’argent comme % du PIB
E/N Consommation finale d’énergie en kilogrammes d’équivalent pétrole par tête d’habitant
RE/E Consommation d’énergie renouvelable comme % de la consommation totale d’énergie
U/N Population urbaine comme % de la population totale
Q Produit Intérieur Brut (millions de 2011 PPP $, prix constants)
Q/N PIB par tête d’habitant (2011 PPP $, prix constants)
N Population
DA/N Déficit alimentaire par tête d’habitant (kcal par jour)

Je fais travailler mon réseau neuronal avec ces variables avec 4 fonctions vitales différentes, donc en mettant 4 variables différentes dans la catégorie de résultat à optimiser : le déficit alimentaire par personne, population urbaine comme % de la population totale, efficience énergétique de l’économie, et finalement les actifs fixes par une demande de brevet. En ce qui concerne l’importance que j’attache à cette dernière variable, vous pouvez consulter « My most fundamental piece of theory ». J’ai choisi les variables que je considère intuitivement comme structurelles. Intuitivement, j’ai dit.

Au départ, les moyennes arithmétiques de mes variables – donc leur valeurs statistiquement espérées – sont les suivantes :

Q/E = $8,72 par kg d’équivalent pétrole ;

CK/PA = $3 534,8 par demande de brevet ;

A/Q = 14,2% du PIB ;

PA/N = 158,9 demandes de brevet par 1 million d’habitants ;

M/Q = 74,6% du PIB en masse monétaire ;

E/N = 3007,3 kg d’équivalent pétrole par personne par an ;

DA/N = 26,4 kcal par personne par jour ;

RE/E = 16,05% de la consommation totale d’énergie ;

U/N = 69,7% de la population ;

Q = $1 120 874,23 mln ;

Q/N = $22 285,63 par tête d’habitant  ;

N = 89 965 651 personnes ;

Ça, c’est le point empirique de départ. C’est une société relativement opulente, quoi qu’avec des petits problèmes alimentaires, plutôt grande, moyennement avide d’énergie, et généralement moyenne, comme c’était à espérer. Deux variables font exception à cette tendance : le pourcentage de population urbaine et l’offre d’argent. L’urbanisation moyenne mondiale est à présent aux environs de 55%, pendant que notre échantillon se balance vers 70%. L’offre d’argent dans l’économie mondiale est couramment de presque 125% du PIB et notre échantillon fait gentiment 74,6%. Maintenant, allons voir ce que le réseau neuronal peut apprendre si sa fonction vitale est orientée sur un déficit alimentaire stable par personne par jour, donc DA/N est la variable de résultat. Tableaux no. 2 et 3, ci-dessous, présentent les résultats d’apprentissage, pendant que les Graphes 1 – 4, plus loin, donnent un aperçu de la manière dont le réseau apprend sous des conditions différentes.

Je commence par discuter la méta-variable de base : l’erreur locale du réseau. Graphes 1 et 2 donnent une idée de différence entre les deux stratégies d’apprentissage sous considération. L’apprentissage par la moindre erreur est paradoxal. Durant les 1228 rondes empiriques, il conduit effectivement à la réduction de l’erreur, comme tout gentil perceptron devrait le faire. Néanmoins, dès que le réseau passe à expérimenter avec lui-même, l’erreur croît à chaque ronde consécutive. Le réseau se balance de plus en plus entre des états alternatifs. Intéressant : lorsque le réseau est programmé pour choisir la moindre erreur, il génère de plus en plus d’erreur. En revanche, l’apprentissage par erreur moyenne décroissante – donc la stratégie qui reflète une tendance croissante à réduire la dissonance cognitive – ça marche de façon modèle. L’erreur dans la phase empirique est réduite à un niveau très bas et ensuite, dans la phase d’expérimentation pure, elle tend vers zéro.

Lorsque je passe à la fonction d’adaptation, donc à la distance Euclidienne moyenne entre les variables du réseau (Graphes 3 et 4) la différence entre les deux stratégies d’apprentissage est un peu moins prononcée, quoi que visible. Dans les deux cas, la cohésion interne du réseau change en deux phases bien distinctes. Aussi longtemps que le perceptron travaille avec les 1228 observations empiriques, sa cohésion oscille très fortement. Dès que ça passe à expérimenter avec soi-même, les oscillations s’éteignent, mais de deux façons différentes. Le perceptron qui choisit la moindre erreur et apprend uniformément dans le temps (Graphe 3) fixe sa cohésion interne à un niveau relativement bas et ensuite il accroît à nouveau l’amplitude d’oscillation. En revanche, le perceptron qui tire la moyenne de ses erreurs locales et démontre une résistance croissante aux informations nouvelles (Graphe 4) se tient très fermement au niveau de cohésion atteint vers la fin de la phase d’apprentissage sur les données empiriques.

Je vois ici deux intelligences différentes, qui représentent deux façons de représenter un phénomène bien connu, celui de résistance à la dissonance cognitive. Le perceptron qui apprend par la moindre erreur réduit sa dissonance sur le champ et localement, sans le faire à long terme. Celui qui apprend par l’erreur moyenne et la divise par le nombre ordinal de la ronde consécutive d’expérimentation agit différemment : il tolère plus d’erreur localement mais se ferme progressivement sur le long terme.

Dans la mesure où je les considère comme représentations d’une intelligence collective, j’y vois des analogies intéressantes à notre ordre social. Le perceptron qui apprend par la moindre erreur semble plus intelligent que celui qui tire l’erreur moyenne et se raidit à mesure d’apprendre. C’est comme si des controverses locales à propos des changements climatiques étaient plus fertiles en apprentissage qu’un système de savoir très codifié et rigide.

En ce qui concerne les résultats, les deux intelligences alternatives se comportent aussi de manière très différente. En général, l’intelligence qui choisit la moindre erreur locale mais s’en fout du passage de temps (Tableau 2) produit des valeurs plus élevées que celle qui tire l’erreur moyenne et développe le sentiment d’avoir appris tout ce qu’il y avait à apprendre (Tableau 3). En fait, la première ajoute à toutes les variables du perceptron, pendant que la deuxième les réduit toutes.

Je veux me pencher sur l’interprétation de ces nombres, donc sur la façon de comprendre ce que le réseau neuronal veut me dire. Les nombres du tableau 2 semblent vouloir dire que si nous – la civilisation – voulons accroître notre efficience énergétique, il nous faut accroître significativement la cadence de l’innovation. Je le vois surtout dans le pourcentage du PIB pris par l’amortissement d’actifs fixes : la variable A/Q. Plus ce pourcentage est élevé, plus rapide est la cadence de rotation des technologies. Pour avoir une efficience énergétique moyenne, comme civilisation, à un niveau à peine 50% plus élevé que maintenant, il nous faudrait accélérer la rotation des technologies d’à peu près 25%.

Il y a une variable collatérale à l’innovation, dans ma base de données : CK/PA ou le coefficient d’actifs fixes par une demande de brevet. C’est en quelque sorte le montant de capital qu’une invention moyenne peut se nourrir avec. Dans cette simulation avec le réseau neuronal vous pouvez voir que les différences de magnitude de CK/PA sont tellement grandes qu’elles en deviennent intéressantes. Le perceptron qui apprend avec la résistance croissante à l’information nouvelle donne des valeurs négatives de CK/PA, ce qui semble absurde. Absurde, peut-être, mais pourquoi ? C’est l’une de ces situations lorsque je me pose des questions de fond sur ce qu’est intelligence collective.

Tableau 2

Apprentissage par la moindre erreur, uniforme dans le temps
Valeurs de la 3700ième ronde expérimentale  

Valeurs des moyennes espérées

 

Q/E = $15,80 par kg d’équivalent pétrole ;

 

CK/PA = $78 989,68 par demande de brevet ;

 

A/Q = 25% du PIB ;

 

PA/N = 1 426,24 demandes de brevet par 1 million d’habitants;

 

M/Q = 167,49% du PIB en masse monétaire ;

 

E/N = 7 209,06 kg d’équivalent pétrole par personne par an ;

 

RE/E = 37,45% de consommation totale d’énergie en renouvelables ;

 

U/N = 115,88% ( ! ) de la population en villes ;

 

Q = $7 368 088,87 mln ;

 

Q/N = $63 437,19 par tête d’habitant ;

 

N = 553 540 602 personnes ;

 

Variable de résultat >> DA/N = 26,40 kcal par personne par jour

Q/E = $12,16 par kg d’équivalent pétrole ;

 

CK/PA = $42 171,01 par demande de brevet ;

 

A/Q = 19% du PIB ;

 

PA/N = 770,85 demandes de brevet par 1 million d’habitants ;

 

M/Q = 120,56% du PIB en masse monétaire ;

 

E/N = 5 039,16 kg d’équivalent pétrole par personne par an ;

 

RE/E = 25,34% de consommation totale d’énergie en renouvelables ;

 

U/N = 77,21% de la population totale en villes;

 

Q = $3 855 530,27 mln ;

 

Q/N = $41 288,52 par tête d’habitant ;

 

N = 295 288 302 personnes ;

 

Variable de résultat >> DA/N = 26,40 kcal par personne par jour

Tableau 3

Apprentissage par erreur moyenne décroissante à mesure des rondes d’expérimentation
Valeurs de la 3700ième ronde expérimentale  

Valeurs des moyennes espérées

 

Q/E = $7,41 par kg d’équivalent pétrole ;

 

CK/PA = ($2 228,03) par demande de brevet ;

 

A/Q = 11% du PIB ;

 

PA/N = 101,89 demandes de brevet par 1 mln d’habitants ;

 

M/Q = 71,93% du PIB en masse monétaire ;

 

E/N = 3 237,24 kg d’équivalent pétrole par personne par an ;

RE/E = 10,21% de la consommation totale d’énergie en renouvelables ;

 

U/N  = 65% de la population totale en villes ;

 

Q = $730 310,21 mln ;

 

Q/N = $25 095,49 par tête d’habitant ;

 

N = 15 716 495 personnes ;

 

Variable de résultat >> DA/N = 26,40 kcal par personne par jour ;

Q/E = $8,25 par kg d’équivalent pétrole ;

 

CK/PA = ($3 903,81) par demande de brevet ;

 

A/Q = 14% du PIB ;

 

PA/N = 101,78 demandes de brevet par 1 mln d’habitants ;

 

M/Q = 71,52% du PIB en masse monétaire ;

 

E/N = 3 397,75 kg d’équivalent pétrole par personne par an ;

 

RE/E = 12,64%  de la consommation totale d’énergie en renouvelables ;

 

U/N = 75,46% de la population totale en villes ;

 

Q = $615 711,51 mln  ;

 

Q/N = $24 965,23 par tête d’habitant ;

 

N = 2 784 733,90 personnes ;

 

Variable de résultat >> DA/N = 26,40 kcal par personne par jour ;

Graphe 1

Graphe 2

Graphe 3

Graphe 4

Je continue à vous fournir de la bonne science, presque neuve, juste un peu cabossée dans le processus de conception. Je vous rappelle que vous pouvez télécharger le business plan du projet BeFund (aussi accessible en version anglaise). Vous pouvez aussi télécharger mon livre intitulé “Capitalism and Political Power”. Je veux utiliser le financement participatif pour me donner une assise financière dans cet effort. Vous pouvez soutenir financièrement ma recherche, selon votre meilleur jugement, à travers mon compte PayPal. Vous pouvez aussi vous enregistrer comme mon patron sur mon compte Patreon . Si vous en faites ainsi, je vous serai reconnaissant pour m’indiquer deux trucs importants : quel genre de récompense attendez-vous en échange du patronage et quelles étapes souhaitiez-vous voir dans mon travail ?

[1] Andreoni, V. (2017). Energy Metabolism of 28 World Countries: A Multi-scale Integrated Analysis. Ecological Economics, 142, 56-69

[2] Velasco-Fernández, R., Giampietro, M., & Bukkens, S. G. (2018). Analyzing the energy performance of manufacturing across levels using the end-use matrix. Energy, 161, 559-572

Surpopulation sauvage ou compétition aux États-Unis

 

Mon éditorial sur You Tube

 

Me revoilà à vous casser les pieds avec les réseaux neuronaux et leur application dans les sciences sociales. Je reste essentiellement dans l’univers de l’efficience énergétique. J’enchaîne donc sur « Tenez-vous bien, chers Autrichiens ». Cette fois, je m’y prends à la plus grande économie du monde, celle des États-Unis, et leur efficience énergétique. Les Américains aiment la compétition et c’est bien que j’inclue dans le réseau neuronal : la compétition entre neurones.

Comme d’habitude, c’est un peu de chaos, dans mon cheminement intellectuel. Hier, j’ai eu cette idée : suivant la structure logique de mon perceptron, j’obtiens des schémas de comportement différents de sa part. Et si je mettais ces comportements en compétition de quelque sorte ? Et si je construisais un perceptron qui organise cette compétition ?

Je veux donc mettre mes neurones en compétition entre eux. Je veux dire, pas mes neurones à moi, strictement parlé, juste les neurones de mon perceptron. J’avais commencé à mapper cette idée dans un fichier Excel, un peu à tâtons. Tout d’abord, les acteurs. Qui est en compétition contre qui ? Jusqu’alors, j’ai identifié deux grandes distinctions fonctionnelles parmi les comportements possibles de mon perceptron. Premièrement, c’est la distinction entre deux fonctions d’activation de base : la fonction sigmoïde d’une part et la tangente hyperbolique d’autre part. Deuxièmement, j’ai observé une différence prononcée lorsque j’introduis dans mon perceptron l’auto observation (rétropropagation) de la cohésion, comprise comme la distance Euclidienne entre les variables. Je construis donc quatre neurones d’activation, comme des combinaisons de ces possibilités :

 

Le neurone de sortie no.1 : le sigmoïde de base

Le neurone de sortie no.2 : la tangente hyperbolique de base

Le neurone de sortie no.3 : sigmoïde avec observation de la cohésion

Le neurone de sortie no.4 : la tangente hyperbolique avec observation de la cohésion

 

Les neurones de sortie 1 et 2 sont connectés au sentier synaptique suivant : absorption des variables d’entrée dans la première couche (neurone d’observation), suivie par l’attribution des coefficients aléatoires de pondération à chaque variable et la sommation des variables d’entrée ainsi pondérées (neurone de pondération) dans la couche cachée. Le neurone de pondération crache la moyenne pondérée des variables d’entrée, et on la met comme argument dans la fonction d’activation neurale (neurone de traitement) et celle-ci crache un résultat. Le neurone d’observation compare ce résultat à la valeur espérée de la variable de résultat, une mesure d’erreur locale est prise et le perceptron ajoute cette erreur aux valeurs des variables d’entrée dans la ronde suivante d’expérimentation.

 

Les neurones de sortie 3 et 4 impliquent un sentier synaptique un peu plus complexe. Tout d’abord, dans la couche d’entrée du perceptron, j’ajoute un neurone parallèle à celui qui génère les coefficients aléatoires. Ce deuxième neurone s’active après la première ronde d’expérimentation. Lorsque celle-ci à pris lieu, ce neurone calcule les distances Euclidiennes entre les variables, il rend une distance moyenne pour chaque variable séparément, ainsi que la distance moyenne entre toutes les variables. En fait, c’est un job pour tout une séquence synaptique à part, mais pour simplifier je décris ça comme un neurone. Je vois sa place dans la couche d’entrée puisque sa fonction essentielle est celle d’observation. Observation complexe, certes, observation quand même. J’appelle ce neurone « neurone de cohésion perçue » et j’assume qu’il a besoin d’un partenaire dans la couche cachée, donc d’un neurone qui combine la perception de cohésion avec le signal nerveux qui vient de la perception des variables d’entrée en tant que telles. Je baptise ce deuxième neurone caché « neurone de pondération par cohésion ».

 

Bon, j’en étais à la compétition. Compétition veut dire sélection. Lorsque j’entre en compétition contre entité A, cela implique l’existence d’au moins une entité B qui va choisir entre moi et A.

Le choix peut être digital ou analogue. Le choix digital c’est 0 ou 1, avec rien au milieu. B va choisir moi ou bien A et le vainqueur prend toute la cagnotte. Le choix analogue laisse B faire un panier des participations respectives de moi et de A. B peut prendre comme 60% de moi et 40% de A, par exemple. Comme je veux introduire dans mon perceptron la composante de compétition, j’ajoute une couche neuronale supplémentaire, avec un seul neurone pour commencer, le neurone de sélection. Ce neurone reçoit les signaux de la part des 4 neurones de sortie et fait son choix.

 

Important : c’est un jeu lourd en conséquences. La sélection faite dans une ronde d’expérimentation détermine la valeur d’erreur qui est propagée dans la ronde suivante dans tous les quatre neurones de sortie. Le résultat de compétition à un moment donné détermine les conditions de compétition aux moments ultérieurs.

 

Le signal nerveux envoyé par les neurones de sortie c’est l’erreur locale d’estimation. Le neurone de sélection fait son choix entre quatre erreurs. Plus loin, je discute les résultats des différentes stratégies de ce choix. Pour le moment, je veux montrer le contexte empirique de ces stratégies.  Ci-dessous, j’introduis deux graphes qui montrent l’erreur générée par les quatre neurones de sortie au tout début du processus d’apprentissage, respectivement dans les 20 premières rondes d’expérimentation et dans les 100 premières rondes. Vous pouvez voir que la ligne noire sur les deux graphes, qui représente l’erreur crachée par le neurone de sortie no. 4, donc par la tangente hyperbolique avec observation de la cohésion, est de loin la plus grande et la plus variable. Celle générée par le sigmoïde avec observation de la cohésion est substantiellement moindre, mais elle reste bien au-dessus des erreurs qui viennent des neurones de sortie no. 1 et 2, donc ceux qui s’en foutent de la cohésion interne du perceptron.

Je me demande qu’est-ce que l’apprentissage, au juste ? Les deux graphes montrent trois façons d’apprendre radicalement différentes l’une de l’autre. Laquelle est la meilleure ? Quelle est la fonction éducative de ces erreurs ? Lorsque je fais des essais où je me goure juste un tout petit peu, donc lorsque j’opère comme les neurones de sortie 1 et 2, je suis exact et précis, mais je m’aventure très près de mon point d’origine. J’accumule peu d’expérience nouvelle, en fait. En revanche, si mes erreurs se balancent dans les valeurs comme celles montrées par la ligne noire, donc par la tangente hyperbolique avec observation de la cohésion, j’ai peu de précision mais j’accumule beaucoup plus de mémoire expérimentale.

 

Quatre stratégies de sélection se dessinent, équivalentes à trois types de compétition entre les neurones de sortie. Sélection façon 1 : le neurone de sélection choisit le neurone de sortie qui génère la moindre erreur des quatre. D’habitude, c’est le neurone qui produit la tangente hyperbolique sans observation de la cohésion. C’est une compétition où le plus précis et le plus prévisible gagne à chaque fois. Sélection façon 2 : c’est le neurone qui génère l’erreur la plus grande qui a l’honneur de propager son erreur dans les générations suivantes du perceptron. Normalement c’est le neurone de sortie no.4 : la tangente hyperbolique avec observation de la cohésion. Sélection no. 3 : Le neurone de sélection tire la moyenne arithmétique des quatre erreurs fournies par les quatre neurones de sortie. Logiquement, le neurone de sortie qui génère l’erreur la plus grande va dominer. Cette sélection est donc une représentation mathématique de hiérarchie entre les neurones de sortie.

 

Finalement, la compétition conditionnelle à une condition prédéfinie. Je prends le mode de sélection no. 2, donc je choisis l’erreur la plus grande des quatre et je la compare à un critère. Disons me j’espère que le perceptron génère une erreur plus grande que la croissance moyenne annuelle standardisée de l’efficience énergétique du pays en question. Dans le cas des États-Unis cette valeur-jauge est de 0,014113509. Si un neurone quelconque de sortie (soyons honnêtes, ce sera la tangente hyperbolique qui observe sa propre cohésion) génère une erreur supérieure à 0,014113509, cette erreur est propagée dans la prochaine ronde d’expérimentation. Sinon, l’erreur à propager est 0. C’est donc une condition où je dis à mon perceptron : soit tu apprends vite et bien, soit tu n’apprends pas du tout.

 

Bon, passons aux actes. Voilà, ci-dessous, la liste de mes variables.

 

Code de la variable Description de la variable
Q/E PIB par kg d’équivalent pétrole d’énergie consommé (prix constants, 2011 PPP $) – VARIABLE DE RÉSULTAT

 

CK/PA Capital immobilisé moyen par une demande nationale de brevet (millions de 2011 PPP $, prix constants)

 

A/Q Amortissement agrégé d’actifs fixes comme % du PIB

 

PA/N Demandes nationales de brevet par 1 million d’habitants

 

M/Q Offre agrégée d’argent comme % du PIB

 

E/N Consommation finale d’énergie en kilogrammes d’équivalent pétrole par tête d’habitant

 

RE/E Consommation d’énergie renouvelable comme % de la consommation totale d’énergie

 

U/N Population urbaine comme % de la population totale

 

Q Produit Intérieur Brut (millions de 2011 PPP $, prix constants)

 

Q/N PIB par tête d’habitant (2011 PPP $, prix constants)

 

N Population

 

 

Je prends ces variables et je les mets dans mon perceptron enrichi avec ce neurone de sélection. Je simule quatre cas alternatifs de sélection, comme discutés plus haut. Voilà, dans le prochain tableau ci-dessous, les résultats de travail de mon perceptron après 5000 rondes d’apprentissage. Remarquez, pour la stratégie de sélection avec condition prédéfinie, les 5000 rondes tournent en à peine 72 rondes, puisque toutes les autres rendent erreur 0.

 

Valeur 1990 Valeur 2014 Sélection de la moindre erreur Sélection de l’erreur la plus grande Moyenne des erreurs – hiérarchie Compétition conditionnelle au seuil prédéfini
Q/E $                   4,83 $                         7,46 $                         9,39 $                       38,18 $                       34,51 $                       34,16
CK/PA 291,84 185,38 263,29 1 428,92 1 280,59 1 266,39
A/Q 14,5% 15,0% 19,0% 79,1% 71,4% 70,7%
PA/N 358,49 892,46 1 126,42 4 626,32 4 180,92 4 138,29
M/Q 71,0% 90,1% 113,6% 464,7% 420,0% 415,8%
E/N 7 671,77 6 917,43 8 994,27 40 063,47 36 109,61 35 731,13
RE/E 4,2% 8,9% 11,2% 45,6% 41,3% 40,8%
U/N 75,3% 81,4% 102,4% 416,5% 376,6% 372,7%
Q 9 203 227,00 16 704 698,00 21 010 718,45 85 428 045,72 77 230 318,76 76 445 587,64
Q/N $ 36 398,29 $ 52 292,28 $  65 771,82 $ 267 423,42 $ 241 761,31 $ 239 304,79
N 252 847 810 319 448 634 401 793 873 1 633 664 524 1 476 897 088 1 461 890 454

 

Oui, juste la sélection no. 1 semble être raisonnable. Les autres stratégies de compétition rendent des valeurs absurdement élevées. Quoi que là, il faut se souvenir du truc essentiel à propos d’un réseau neuronal artificiel : c’est une structure logique, pas organique. Structure logique veut dire un ensemble de proportions. Je transforme donc ces valeurs absolues rendues par mon perceptron en des proportions par rapport à la valeur de la variable de résultat. La variable de résultat Q/E est donc égale à 1 et les valeurs des variables d’entrée {CK/PA ; A/Q ; PA/N ; M/Q ; E/N ; RE/E ; U/N ; Q ; Q/N ; N} sont exprimées comme des multiples de 1. Je montre les résultats d’une telle dénomination dans le tableau suivant, ci-dessous. Comment les lire ? Eh bien, si vous lisez A/Q = 0,02024, cela veut dire que l’amortissement agrégé d’actifs fixes pris comme pourcentage du PIB est égal à la fraction 0,02024 du coefficient Q/E etc. Chaque colonne de ce tableau de valeurs indexées représente une structure définie par des proportions par rapport à Q/E. Vous pouvez remarquer que pris sous cet angle, ces résultats de simulation du réseau neuronal ne sont plus aussi absurdes. Comme ensembles de proportions, ce sont des structures tout à fait répétitives. La différence c’est la valeur-ancre, donc efficience énergétique. Intuitivement, j’y vois des scénarios différents d’efficience énergétique des États-Unis en cas ou la société américaine doit s’adapter à des niveaux différents de surpopulation et cette surpopulation est soit gentille (sélection de la moindre erreur) soit sauvage (toutes les autres sélections).

 

 

  Valeurs indexées sur la variable de résulat
Valeur 1990 Valeur 2014 Sélection de la moindre erreur Sélection de l’erreur la plus grande Moyenne des erreurs – hiérarchie Compétition conditionnelle au seuil prédéfini
Q/E 1,00000 1,00000 1,00000 1,00000 1,00000 1,00000
CK/PA 60,41009 24,83314 28,13989 37,41720 37,12584 37,08887
A/Q 0,03005 0,02007 0,02024 0,02071 0,02070 0,02070
PA/N 74,20624 119,55525 119,98332 121,18428 121,14657 121,14178
M/Q 0,14703 0,12070 0,12097 0,12173 0,12171 0,12171
E/N 1 588,03883 926,66575 958,89830 1 049,32878 1 046,48878 1 046,12839
RE/E 0,00864 0,01194 0,01194 0,01196 0,01196 0,01196
U/N 0,15587 0,10911 0,10911 0,10911 0,10911 0,10911
Q 1 905 046,16228 2 237 779,02450 2 237 779,02450 2 237 779,02450 2 237 779,02450 2 237 779,02450
Q/N 7 534,35896 7 005,12942 7 005,12942 7 005,12942 7 005,12942 7 005,12942
N 52 338 897,00657 42 793 677,11833 42 793 677,11833 42 793 677,11833 42 793 677,11833 42 793 677,11833

 

Je continue à vous fournir de la bonne science, presque neuve, juste un peu cabossée dans le processus de conception. Je vous rappelle que vous pouvez télécharger le business plan du projet BeFund (aussi accessible en version anglaise). Vous pouvez aussi télécharger mon livre intitulé “Capitalism and Political Power”. Je veux utiliser le financement participatif pour me donner une assise financière dans cet effort. Vous pouvez soutenir financièrement ma recherche, selon votre meilleur jugement, à travers mon compte PayPal. Vous pouvez aussi vous enregistrer comme mon patron sur mon compte Patreon . Si vous en faites ainsi, je vous serai reconnaissant pour m’indiquer deux trucs importants : quel genre de récompense attendez-vous en échange du patronage et quelles étapes souhaitiez-vous voir dans mon travail ?

Tenez-vous bien, chers Autrichiens

 

Mon éditorial sur You Tube

 

Je réfléchis sur ce qu’est intelligence et j’y réfléchis comme je gagne de l’expérience avec une forme très simple d’intelligence artificielle, un perceptron à couches multiples. Vous direz : « Encore ? Tu ne t’es pas ennuyé à mort avec ce truc ? » Eh bien, non. Pas du tout. Je sens intuitivement que je ne fais que commencer ce voyage intellectuel.

Alors, qu’est-ce que je fais ? Je commence par prendre un ensemble de données empiriques.  Chaque variable empirique est un phénomène stimulant distinct. Je leur assigne des coefficients aléatoires de pondération et je sur la base de ces valeurs pondérées je calcule, à travers une fonction d’activation neurale, la valeur d’une variable de résultat. Je compare, par soustraction, cette valeur avec une valeur espérée de référence. Je multiplie la différence par la dérivée locale de la fonction neurale d’activation et je considère le résultat comme une erreur locale. Je produis donc une variation momentanée d’une certaine structure logique et je compare cette variation à un état de référence. La spécificité de chaque variation locale réside dans le mélange unique des coefficients de pondération des phénomènes stimulants.

A ce stade-là, j’expérimente avec la perception proprement dite. C’est ça, la perception. Je suis confronté à un certain nombre des phénomènes de réalité. Le trait important d’un perceptron est que c’est moi, son utilisateur, donc une Intelligence Externe, qui détermine la nature de ces phénomènes. C’est moi qui donne la distinction entre la variable A et la variable B etc.  Dans la perception réelle, la définition des phénomènes se fait par expérimentation. Je marche à travers ce gros truc hétérogène et j’essaie voir quelle est la meilleure façon de ne pas buter constamment contre ces trucs plus petits. En fin de compte, il semble approprié de distinguer le gros truc comme « forêt » et les petits trucs comme « arbres », mettre en place des règles précises de distinguer un arbre d’un autre ainsi que pour distinguer les espaces libres entre eux.

Le perceptron que j’utilise est donc une structure phénoménologique prédéterminée. Je viens de dire que c’est moi, son utilisateur, qui la prédétermine, mais ce n’est pas tout à fait vrai. Mes variables d’entrée correspondent aux données quantitatives que je peux assembler. Dans la structure logique de mon perceptron, je reproduis celle des bases des données publiquement accessibles, comme celle de la Banque Mondiale.

Ce que j’expérimente avec, à travers le perceptron, est donc une structure phénoménologique prédéterminée par ces bases des données. Si la structure phénoménologique est donnée comme exogène, que reste-t-il à expérimenter avec ? Allons pas à pas. Ces coefficients aléatoires de pondération que mon perceptron attribue aux variables d’entrée reflètent l’importance relative et temporaires des phénomènes que ces variables représentent. Le tout – le perceptron – est censé faire quelque chose, produire un changement. L’importance des phénomènes reflète donc ce qu’ils font dans ce tout. Le phénomène donné joue-t-il un rôle important ou pas tout à fait ? Allons donc voir. Attribuons à ce phénomène des rôles d’importance variable et observons le résultat final, donc la variable de résultat.

Ici, il est bon de rappeler un truc à la frontière des maths et de la vie réelle. Les valeurs de variables d’entrée représentent l’état temporaire des processus qui produisent ces variables. Ma taille en centimètres reflète le processus de la croissance de mon corps, précédé par le processus de mélange de mon matériel génétique, dans les générations de mes ancêtres. La consommation d’énergie par tête d’habitant reflète le résultat temporaire de tout ce qui s’est passé jusqu’alors et qui avait une influence quelconque sur ladite consommation d’énergie. Lorsque le perceptron expérimente avec l’importance des rôles respectifs des variables d’entrée, il expérimente avec l’influence possible des différentes séquences d’évènements.

L’apprentissage d’un perceptron devrait conduire à un état de minimisation d’erreur locale, lorsque la combinaison d’influences respectives de la part des variables d’entrée rend possible une approche asymptotique de la fonction d’activation neuronale vers la valeur espérée de la variable de résultat. Ce résultat d’apprentissage est une sorte de perception optimale par rapport à ce que je veux. Monsieur désire une efficience énergétique de l’économie nationale proche de $10 constants 2011 par 1 kilogramme d’équivalent pétrole consommé ? Rien de plus facile, répond le perceptron. Monsieur prend une population plus grande de 3 millions d’habitants, donc plus de 8%, avec un zest de plus en termes de consommation d’énergie par tête d’habitant, quoi que ladite tête d’habitant va consommer un peu moins de Produit Intérieur Brut par an et voilà ! Monsieur a bien les (presque) 10 dollars par kilogramme d’équivalent pétrole. Monsieur désire autre chose ?

Le perceptron simule donc la perception mais en fait il fait autre chose : il optimise la connexion fonctionnelle entre les variables. Ce type de réseau neuronal devrait plutôt s’appeler « expéritron » ou quelque chose de pareil, car l’essence de son fonctionnement c’est l’expérimentation qui tend vers une erreur minimale. Comment l’optimise-t-il ? C’est le mécanisme de rétropropagation. Le perceptron calcule l’erreur locale d’estimation et ensuite – c’est-à-dire dans la prochaine ronde d’expérimentation – il ajoute cette erreur à la valeur des variables d’entrée. Dans la prochaine ronde d’expérimentation, la valeur de chaque variable d’entrée sujette à la pondération aléatoire va être la valeur initiale plus l’erreur enregistrée dans la ronde précédente.

Une seule et même erreur est ajoutée à l’estimation quantitative de chaque phénomène distinct de réalité. Le fait d’ajouter l’erreur est vaguement équivalent à la mémoire d’une entité intelligente. L’erreur est une pièce d’information et je veux l’emmagasiner pour qu’elle serve mon apprentissage. Dans la version de base de mon perceptron, chaque phénomène de réalité – chaque variable d’entrée – absorbe cette information d’exactement de la même façon. C’est une mémoire concentrée sur les échecs et voilà la grosse différence par rapport à l’intelligence humaine. Cette dernière aime apprendre sur des succès. Une tentative réussie immédiatement donne une gratification à notre système nerveux et ça marche nettement mieux que l’apprentissage à travers des échecs.

Question : comment construire un réseau neuronal qui apprend sur des succès plutôt que sur des échecs ? Un échec est relativement facile à représenter mathématiquement : c’est une erreur d’estimation. Un succès veut dire que j’ai essayé d’avancer dans une direction et ça a marché. Disons que j’ai une variable chère à mon cœur, comme l’efficience énergétique d’économie nationale, donc ces dollars de Produit Intérieur Brut obtenus avec 1 kilogramme d’équivalent pétrole. J’espère d’avancer par X dollars, mais grâce à mon génie indéniable tout comme avec l’aide de la Providence divine, j’ai avancé par Y dollars et Y > X. Alors la différence Y – X est la mesure de mon succès. Jusqu’à ce point, ça à l’air identique à ce que fait le perceptron classique : ça soustrait.

Question : comment utiliser la différence d’une soustraction comme quelque chose à amplifier comme succès au lieu de la minimiser en tant que la mesure d’un échec ? Réponse : il faut utiliser une fonction d’activation neurale qui amplifie un certain type de déviation, la positive. La première idée qui me vient à l’esprit est de mettre dans le perceptron une formule logique du type « si Y – X > 0, alors fais A, mais en revanche si Y – X ≤ 0, alors fais B ». Ça a l’air enfantin à première vue. Seulement si ça doit se répéter 5000 fois, comme je le fais d’habitude avec ce perceptron, çççaa raaalentiîîit terriblement. Je pense à quelque chose de plus simple : et si je calculais immédiatement la valeur exponentielle de l’erreur locale ? Si Y – X > 0, alors la valeur exponentielle va être nettement supérieure à celle de Y – X ≤ 0. Je teste avec l’Autriche et les données sur son efficience énergétique. Non, ça marche pas : j’obtiens une variable de résultat rigoureusement égale à la valeur espérée déjà après 30 rondes d’expérimentation – ce qui est pratiquement la vitesse de la lumière dans l’apprentissage d’un perceptron  – mais les variables d’entrée prennent des valeurs ridiculement élevées. Tenez : il leur faudrait être 42 millions au lieu de 8 millions, à ces Autrichiens. Impensable.

Bon. Bon gré mal gré, faudra que j’aille dans cette formule « si A, alors B, sinon va te faire … ». Tenez-vous bien, chers Autrichiens. J’observe et je raisonne. Ce que vous avez accompli vraiment, entre 1990 et 2014, c’est passer de 9,67 dollars de PIB par kilogramme d’équivalent pétrole à 11,78 dollars, donc une différence de 1,22 dollars. Si mon perceptron rend une erreur positive supérieure à cet accomplissement, je le laisse la rétropropager sans encombre. En revanche, tout ce qui n’est pas un succès est un échec, donc toute erreur en-dessous de ce seuil de référence, y compris une erreur négative, je la divise par deux avant de la rétropropager. J’amplifie des succès et je réduis l’impact mémorisé des échecs. Résultat ? Tout devient plus petit. L’efficience énergétique après les 5000 rondes expérimentales est à peine plus grande qu’en 1990 – 9,93 dollars – la population se rétrécit à moins de 3 millions, la consommation d’énergie et le PIB par tête d’habitant sont coupés par 4.

Ça alors ! Lorsque je parlais d’apprentissage à travers les succès, je m’attendais à quelque chose de différent. Bon. Je mets une muselière sur mon perceptron : tout en laissant l’apprendre sur les succès, comme dans le cas cité, j’ajoute la composante d’apprentissage sur la cohésion mutuelle entre les variables. Consultez « Ensuite, mon perceptron réfléchit » ou bien « Joseph et le perceptron » pour en savoir plus sur ce trait particulier. Ça se réfère à l’intelligence collective des fourmis. Peu ambitieux mais ça peut marcher. Résultat ? Très similaire à celui obtenu avec cette fonction particulière (apprentissage sur cohésion) et avec la rétroprogation de base, donc vers l’échec minimal. Faut que j’y réfléchisse.

Je continue à vous fournir de la bonne science, presque neuve, juste un peu cabossée dans le processus de conception. Je vous rappelle que vous pouvez télécharger le business plan du projet BeFund (aussi accessible en version anglaise). Vous pouvez aussi télécharger mon livre intitulé “Capitalism and Political Power”. Je veux utiliser le financement participatif pour me donner une assise financière dans cet effort. Vous pouvez soutenir financièrement ma recherche, selon votre meilleur jugement, à travers mon compte PayPal. Vous pouvez aussi vous enregistrer comme mon patron sur mon compte Patreon . Si vous en faites ainsi, je vous serai reconnaissant pour m’indiquer deux trucs importants : quel genre de récompense attendez-vous en échange du patronage et quelles étapes souhaitiez-vous voir dans mon travail ?

Ensuite, mon perceptron réfléchit

 

Mon éditorial sur You Tube

 

Je vais au fond des choses, dans ma recherche courante. Comme vous le savez peut-être, je suis en train de combler une grosse lacune dans mon éducation scientifique : j’apprends les rudiments d’intelligence artificielle (consultez « Joseph et le perceptron » par exemple). Je pense que j’ai déjà compris quelques trucs, surtout le principe général du réseau neuronal appelé « perceptron ». Au fin fond de la science moderne, il y a cette observation générale : les choses, elles surviennent comme des instances momentanées et locales des structures sous-jacentes. Disons que je suis assis, là, devant mon ordinateur, j’écris, et tout à coup il me vient à l’esprit que je pourrais démolir l’univers entier et le reconstruire à nouveau. Je dois le faire instantanément, en une fraction de seconde. Après tout, l’absence totale de l’univers peut poser des problèmes. Alors, je démolis et je reconstruis mon univers entier. Je le fais plusieurs fois de suite, comme mille fois. Question : après chaque reconstruction de l’univers, suis-je le même Krzysztof Wasniewski que j’étais dans l’univers précèdent ? Eh bien, tout ce que je sais de la science me dit : presque. Dans chaque instance consécutive de l’univers je suis presque le même moi. Des petits détails diffèrent. C’est précisément ce que fait le réseau neuronal du type perceptron. Il crée plusieurs instances possibles de la même structure logique et chaque instance particulière est originale par des petits détails.

Question : qu’est-ce que ferait un perceptron qui serait à ma place, donc qui découvrirait qu’il est une instance parmi plusieurs autres, temporairement présente dans un univers momentané ? Ça dépend quelle est sa fonction d’activation. Si mon perceptron travaille avec la fonction sigmoïde, il accumule l’expérience et produit une série de plus en plus récurrente d’instances de lui-même, tout en relâchant un peu les gonds de sa structure. Il devient à la fois plus souple et plus répétitif. En revanche, si la fonction d’activation c’est la tangente hyperbolique, le perceptron devient très susceptible et en même temps rigide. Il produits des instances de lui-même par des à-coups soudains, il se balance loin de son état initial mais après, il retourne très près ce cet état initial et à la longue, il n’apprend pas vraiment beaucoup.

Comme j’expérimente avec le perceptron, j’ai découvert deux types d’apprentissage : le sigmoïde rationnel et systématique d’une part, et la tangente hyperbolique violente et émotionnelle d’autre part. Ces deux sentiers de traitement de l’expérience ont leur expression mathématique et moi, en ce moment, j’essaie de comprendre le lien entre ces structures mathématiques et l’économie. Plus je fais de la recherche et de l’enseignement en sciences sociales, plus je suis convaincu que l’approche behavioriste est l’avenir des sciences économiques. Les modèles économiques reflètent et généralisent notre compréhension du comportement humain. Mes observations à propos du perceptron se traduisent en un débat long-présent dans les sciences économiques : l’état doit-il intervenir pour atténuer les chocs quantitatifs sur les marchés ou bien doit-il s’abstenir d’intervention et laisser les marchés apprendre à travers les chocs ?

L’application des deux fonctions neuronales – le sigmoïde et la tangente hyperbolique – me permet de reconstruire ces deux alternatives. Le sigmoïde est parfait pour simuler un marché protégé des chocs. La structure logique de la fonction sigmoïde la rend pareille à un pare-chocs. Le sigmoïde absorbe tout excès de stimulation et rend un résultat lissé et domestiqué. En revanche, la tangente hyperbolique est hyper-réactive dans sa structure logique et semble être une bonne représentation d’un marché dépourvu des ceintures de sécurité.

Je prends donc le modèle financier que je suis en train de développer pour le marché de l’énergie – donc la solution qui permet aux petits fournisseurs locaux d’énergies renouvelables de bâtir une base financière tout en créant des liens durables avec leurs clients (consultez « More vigilant than sigmoid », par exemple) – et j’utilise le perceptron pour expérimenter. Ici, il y a une question méthodologique que jusqu’alors j’hésitais à poser directement et que je dois répondre, d’une façon ou d’une autre : qu’est-ce que le perceptron représente, au juste ? Quel type d’environnement expérimental peut être associé avec la façon dont le perceptron apprend ? Mon idée est de faire le parallèle avec l’intelligence collective, donc de défendre l’assomption que le perceptron représente l’apprentissage qui réellement prend lieu dans une structure sociale. Question : comment donner de l’assise intellectuelle à cette assomption ? Le sentier le plus évident passe par la théorie d’essaims que j’avais déjà discuté dans « Joseph et le perceptron » ainsi que dans « Si je permets plus d’extravagance ». Si le perceptron est capable de varier sa fonction interne d’adaptation , donc de passer entre des degrés différents d’association entre ses variables, alors ce perceptron peut être une représentation acceptable de l’intelligence collective.

Ça, c’est fait. J’ai déjà vérifié. Mon perceptron produit de la variation dans sa fonction d’adaptation et qui plus est, il la produit de façons différentes suivant la fonction d’activation utilisée, soit le sigmoïde ou bien la tangente hyperbolique. Point de vue théorie d’essaims, il est collectivement intelligent, mon perceptron.

Ceci fait et dit, j’ai déjà découvert que le sigmoïde – donc le marché assisté par des institutions anticycliques – apprend plus (il accumule plus de mémoire expérimentale) et il produit un modèle financier plus étoffé en termes de finance et d’investissement. Il produit des prix d’énergie plus élevés, aussi. En revanche, la tangente hyperbolique – soit le marché sans protection – apprend moins (accumule moins de mémoire expérimentale) et il produit un marché final avec moins de capital financier offert et moins d’investissement, tout en gardant les prix d’énergie à un niveau relativement plus bas. En plus, la tangente hyperbolique produit plus de risque, dans la mesure où elle rend plus de disparité entre des différentes instances expérimentales que le sigmoïde.

Bon, un instant de réflexion : à quoi bon ? Je veux dire : qui peut faire un usage pratique de ce que je suis en train de découvrir ? Réfléchissons : je fais tout ce bazar de recherche avec l’aide d’un réseau neuronal pour explorer le comportement d’une structure sociale vis-à-vis d’un schéma financier nouveau dans le marché d’énergies renouvelables. Logiquement, cette science devrait servir à introduire et développer un tel schéma. Dans la finance, la science ça sert à prédire les prix et les quantités d’instruments financiers en circulation, ainsi qu’à prédire la valeur agrégée du marché prix dans sa totalité. J’ai déjà expérimenté avec les valeurs que peut prendre la capitalisation « K » du financement participatif pour les énergies renouvelables et j’ai découvert que cette capitalisation peut varier en présence d’une fourchette des prix « PQ – PB » constante. Pour savoir ce que veulent dire ces symboles, le mieux est de consulter « De la misère, quoi ». Je peux donc faire une simulation des états possibles du marché, donc de la proportion entre la capitalisation K et les prix d’énergie, avec ces deux scénarios alternatifs en tête : marché protégé contre variation cyclique ou bien un marché pleinement exposé à des telles variations. Ensuite, l’expérimentation que j’ai conduite jusqu’alors m’a permis de cerner les variations possibles de consommation d’énergie, ainsi que de l’investissement brut en la capacité de génération d’énergie, encore une fois avec variations cycliques ou pas.

J’ai donc trois variables – capitalisation du financement participatif, investissement brut et quantité d’énergie consommée – dont la variation je peux simuler avec mon perceptron. C’est donc quelque chose de similaire aux équations de la physique quantique, donc un outil analytique qui permet de formuler des hypothèses très précises à propos de l’état futur du marché.

Deux idées me viennent à l’esprit. Premièrement, je peux prendre les données que j’avais déjà utilisées dans le passé pour développer mon concept EneFin (consultez, par exemple : « Je recalcule ça en épisodes de chargement des smartphones »), donc les profils des pays Européens particuliers et de voir où exactement mon perceptron peut aller à partir de ces positions. Y-aura-t-il de la convergence ? Y-aura-t-il un schéma récurrent de changement ?

Deuxièmement, je peux (et je veux) retourner à la recherche que j’avais déjà faite en automne 2018 à propos de l’efficience énergétique d’économies nationales. A l’époque, j’avais découvert que lorsque je transforme les données empiriques brutes de façon à simuler l’occurrence d’un choc soudain dans les années 1980 et ensuite l’absorption de ce choc, ce modèle particulier a nettement plus de pouvoir explicatif qu’une approche basée sur l’extraction des tendances a long-terme. Consultez « Coefficients explosifs court-terme » pour en savoir plus à ce sujet. Il se peut que l’échantillon empirique que j’avais utilisé raconte une histoire complexe – composée d’un changement agité façon tangente hyperbolique combiné avec quelque chose de plus pondéré façon sigmoïde – et que l’histoire hyper-tangentielle soit la plus forte des deux. Alors, le scénario possible à construire avec la fonction sigmoïde pourrait représenter quelque chose comme un apprentissage collectif beaucoup plus calme et plus négocié, avec des mécanismes anticycliques.

Ce deuxième truc, l’efficience énergétique, ça m’a inspiré. Aussitôt dit, aussitôt fait. Chaque économie nationale montre une efficience énergétique différente, donc j’assume que chaque pays est un essaim intelligent distinct. J’en prends deux : Pologne, mon pays natal, et Autriche, qui est presque à côté et j’adore leur capitale, Vienne. J’ajoute un troisième pays – les Philippines – pour faire un contraste marqué. Je prends les données que j’avais déjà utilisées dans ce brouillon d’article et je les utilise dans un perceptron. Je considère l’efficience énergétique en tant que telle, soit le coefficient « Q/E » de PIB par 1 kg d’équivalent pétrole de consommation finale d’énergie, comme ma variable de résultat. Le tenseur des variables d’entrée se compose de : i) le coefficient « K/PA » de capital fixe par une demande locale de brevet ii) le coefficient « A/Q » d’amortissement agrégé divisé par le PIB iii) le coefficient « PA/N » de nombre de demandes de brevet locales par 1000 habitants iv) le coefficient « E/N » de consommation d’énergie par tête d’habitant v) le coefficient « U/N » de la population urbaine comme fraction de la population entière du pays vi) le coefficient « Q/N » de PIB par tête d’habitant vii) la part « R/E » d’énergies renouvelables dans la consommation totale d’énergie et enfin viii) deux variables d’échelle, soit « Q » pour le PIB agrégé et « N » pour la population.

Chaque variable contient 25 observations annuelles, de 1990 à 2014, parmi lesquelles j’identifie la valeur maximale et je l’utilise ensuite comme base de standardisation. Le perceptron, il se sent vraiment à l’aise seulement dans un univers standardisé. Le « Q/E » standardisé pour année « ti » est donc égal à Q/E(ti)/max(Q/E) sur Q/E(1990) ≤ x ≤ Q/E(2014) et ainsi de suite pour chaque variable. Je prends les 25 valeurs standardisées pour chaque variable et je les donne à mon perceptron comme matériel d’apprentissage. Le perceptron, il commence par assigner à chaque valeur standardisée un coefficient aléatoire W(x) de pondération et pour chaque il fait ∑W(x)*x, donc la somme des produits « coefficient de pondération multiplié par la valeur locale standardisée ».

Le ∑W(x)*x est ensuite utilisé dans la fonction d’activation neurale : le sigmoïde y = 1 / (1 + e-∑W(x)*x) ou bien la tangente hyperbolique y = (e2*∑W(x)*x – 1) / (e2*∑W(x)*x + 1). Pour chaque période d’observation je calcule aussi la fonction d’adaptation locale, ce qui commence par le calcul des distances Euclidiennes entre cette variable et les autres. La distance Euclidienne ? Eh bien, je prends la valeur x1 et celle de x, par exemple Q/E(1995) – U/N(1995). Bien sûr, on ne parle que valeurs standardisées.  Je fais donc Q/E(1995) – U/N(1995) et pour s’assurer qu’il n’ait pas de négativité compromettante, je tire la racine carrée du carré de la différence arithmétique, soit {[Q/E(1995) – U/N(1995)]2}0,5. Avec M variables au total, et 1 ≤ j ≤ M – 1, pour chacune d’elles je fais V(xi) = {xi + ∑[(xi – xj)2]0,5}/M et ce V(xi) c’est précisément la fonction d’adaptation.

J’utilise V(xi) dans une troisième version du perceptron, le sigmoïde modifié

y = 1 / (1 + e-∑V(x)*W(x)*x)

donc une forme d’intelligence qui assume que plus une variable d’entrée est distante d’autres variables d’entrée, plus elle est importante dans la perception de mon perceptron. C’est la vieille histoire de distinction entre un arbre et un ours grizzli, dans une forêt. Un ours, ça déteint nettement sur un fond forestier et il vaut mieux y attacher une attention particulière. Le perceptron basé sur le sigmoïde modifié contient un tantinet d’apprentissage profond : ça apprend sa propre cohésion interne (distance Euclidienne entre variables).

Quel que soit la version du perceptron, il produit un résultat partiellement aléatoire et ensuite il le compare à la valeur espérée de la variable de résultat. La comparaison est complexe. Tout d’abord, le perceptron fait Er(Q/N ; t) = y(t) – Q/E(t) et il constate, bien sûr, qu’il s’est gouré, donc que Er(Q/N ; t) = y(t) – Q/E(t) ≠ 0. C’est normal avec tous ces coefficients aléatoires de pondération. Ensuite, mon perceptron réfléchit sur l’importance de cette erreur locale et comme la réflexion n’est pas vraiment un point fort de mon perceptron, il préfère prendre refuge dans les maths et calculer la dérivée locale y’(t). De tout en tout, le perceptron prend l’erreur locale et la multiplie par la dérivée locale de la fonction d’activation neurale et cette valeur complexe  y’(t-1)*[y(t-1) – Q/E(t-1)] est ensuite ajoutée à la valeur de chacune variable d’entrée dans la ronde suivante d’expérimentation.

Les 25 premières rondes d’expérimentation sont basées sur les données réelles pour les années 1990 – 2014 et c’est donc du matériel d’apprentissage. Les rondes suivantes, en revanche, sont de l’apprentissage pur : le perceptron génère les variables d’entrée comme valeurs de la ronde précédente plus y’(t-1)*[y(t-1) – Q/E(t-1)].

Bon, appliquons. J’itère mon perceptron sur 5000 rondes d’expérimentation. Première chose : ce truc est-il intelligent ? Sur la base de la théorie d’essaims j’assume que si la cohésion générale des données, mesurée comme 1/V(x) donc comme l’inverse de la fonction d’adaptation, change significativement sur les 5000 essais, ‘y-a de l’espoir pour intelligence. Ci-dessous, je présente les graphes de cohésion pour la Pologne et les Philippines. Ça promet. Le sigmoïde, ça se désassocie de façon systématique : la ligne bleue sur les graphes descend résolument. Le sigmoïde modifié, ça commence par plonger vers un niveau de cohésion beaucoup plus bas que la valeur initiale et ensuite ça danse et oscille. La tangente hyperbolique prend bien garde de ne pas sembler trop intelligente, néanmoins ça produit un peu de chaos additionnel. Toutes les trois versions du perceptron semblent (formellement) intelligentes.

Le truc intéressant c’est que le changement de cohésion diffère fortement suivant le pays étudié. Je ne sais pas encore quoi penser de ça. Maintenant, les résultats des 5000 rondes expérimentales. Il y a des régularités communes pour tous les trois pays étudiés. Le sigmoïde et la tangente hyperbolique produisent un état avec efficience énergétique égale (ou presque) à celle de 2014 – donc de la dernière année des données empiriques – et toutes les autres variables fortement en hausse : plus de population, plus de PIB, plus d’innovation, plus d’énergies renouvelables etc. Le sigmoïde modifié ajoute aussi à ces variables mais en revanche, il produit une efficience énergétique nettement inférieure à celle de 2014, à peu près égale à celle de 2008 – 2009.

J’essaie de comprendre. Est-ce que ces résultats veulent dire qu’il y a un sentier possible d’évolution sociale où on devient plus ou moins créatifs et chaotiques – donc où la cohésion entre nos décisions économiques décroit – et en même temps nous sommes comme plus grands et plus intenses en termes de consommation d’énergie et des biens ?

Je continue à vous fournir de la bonne science, presque neuve, juste un peu cabossée dans le processus de conception. Je vous rappelle que vous pouvez télécharger le business plan du projet BeFund (aussi accessible en version anglaise). Vous pouvez aussi télécharger mon livre intitulé “Capitalism and Political Power”. Je veux utiliser le financement participatif pour me donner une assise financière dans cet effort. Vous pouvez soutenir financièrement ma recherche, selon votre meilleur jugement, à travers mon compte PayPal. Vous pouvez aussi vous enregistrer comme mon patron sur mon compte Patreon . Si vous en faites ainsi, je vous serai reconnaissant pour m’indiquer deux trucs importants : quel genre de récompense attendez-vous en échange du patronage et quelles étapes souhaitiez-vous voir dans mon travail ?

What are the practical outcomes of those hypotheses being true or false?

 

My editorial on You Tube

 

This is one of those moments when I need to reassess what the hell I am doing. Scientifically, I mean. Of course, it is good to reassess things existentially, too, every now and then, but for the moment I am limiting myself to science. Simpler and safer than life in general. Anyway, I have a financial scheme in mind, where local crowdfunding platforms serve to support the development of local suppliers in renewable energies. The scheme is based on the observable difference between prices of electricity for small users (higher), and those reserved to industrial scale users (lower). I wonder if small consumers would be ready to pay the normal, relatively higher price in exchange of a package made of: a) electricity and b) shares in the equity of its suppliers.

I have a general, methodological hypothesis in mind, which I have been trying to develop over the last 2 years or so: collective intelligence. I hypothesise that collective behaviour observable in markets can be studied as a manifestation of collective intelligence. The purpose is to go beyond optimization and to define, with scientific rigour, what are the alternative, essentially equiprobable paths of change that a complex market can take. I think such an approach is useful when I am dealing with an economic model with a lot of internal correlation between variables, and that correlation can be so strong that it turns into those variables basically looping on each other. In such a situation, distinguishing independent variables from the dependent ones becomes bloody hard, and methodologically doubtful.

On the grounds of literature, and my own experimentation, I have defined three essential traits of such collective intelligence: a) distinction between structure and instance b) capacity to accumulate experience, and c) capacity to pass between different levels of freedom in social cohesion. I am using an artificial neural network, a multi-layer perceptron, in order to simulate such collectively intelligent behaviour.

The distinction between structure and instance means that we can devise something, make different instances of that something, each different by some small details, and experiment with those different instances in order to devise an even better something. When I make a mechanical clock, I am a clockmaker. When I am able to have a critical look at this clock, make many different versions of it – all based on the same structural connections between mechanical parts, but differing from each other by subtle details – and experiment with those multiple versions, I become a meta-clock-maker, i.e. someone who can advise clockmakers on how to make clocks. The capacity to distinguish between structures and their instances is one of the basic skills we need in life. Autistic people have a big problem in that department, as they are mostly on the instance side. To a severely autistic person, me in a blue jacket, and me in a brown jacket are two completely different people. Schizophrenic people are on the opposite end of the spectrum. To them, everything is one and the same structure, and they cannot cope with instances. Me in a blue jacket and me in a brown jacket are the same as my neighbour in a yellow jumper, and we all are instances of the same alien monster. I know you think I might be overstating, but my grandmother on the father’s side used to suffer from schizophrenia, and it was precisely that: to her, all strong smells were the manifestation of one and the same volatile poison sprayed in the air by THEM, and every person outside a circle of about 19 people closest to her was a member of THEM. Poor Jadwiga.

In economics, the distinction between structure and instance corresponds to the tension between markets and their underpinning institutions. Markets are fluid and changeable, they are like constant experimenting. Institutions give some gravitas and predictability to that experimenting. Institutions are structures, and markets are ritualized manners of multiplying and testing many alternative instances of those structures.

The capacity to accumulate experience means that as we experiment with different instances of different structures, we can store information we collect in the process, and use this information in some meaningful way. My great compatriot, Alfred Korzybski, in his general semantics, used to designate it as ‘the capacity to bind time’. The thing is not as obvious as one could think. A Nobel-prized mathematician, Reinhard Selten, coined up the concept of social games with imperfect recall (Harsanyi, Selten 1988[1]). He argued that as we, collective humans, accumulate and generalize experience about what the hell is going on, from time to time we shake off that big folder, and pick the pages endowed with the most meaning. All the remaining stuff, judged less useful on the moment, is somehow archived in culture, so as it basically stays there, but becomes much harder to access and utilise. The capacity to accumulate experience means largely the way of accumulating experience, and doing that from-time-to-time archiving. We can observe this basic distinction in everyday life. There are things that we learn sort of incrementally. When I learn to play piano – which I wish I was learning right now, cool stuff – I practice, I practice, I practice and… I accumulate learning from all those practices, and one day I give a concert, in a pub. Still, other things, I learn them sort of haphazardly. Relationships are a good example. I am with someone, one day I am mad at her, the other day I see her as the love of my life, then, again, she really gets on my nerves, and then I think I couldn’t live without her etc. Bit of a bumpy road, isn’t it? Yes, there is some incremental learning, but you become aware of it after like 25 years of conjoint life. Earlier on, you just need to suck ass and keep going.

There is an interesting theory in economics, labelled as « semi – martingale » (see for example: Malkiel, Fama 1970[2]). When we observe changes in stock prices, in a capital market, we tend to say they are random, but they are not. You can test it. If the price is really random, it should fan out according to the pattern of normal distribution. This is what we call a full martingale. Any real price you observe actually swings less broadly than normal distribution: this is a semi-martingale. Still, anyone with any experience in investment knows that prediction inside the semi-martingale is always burdened with a s**tload of error. When you observe stock prices over a long time, like 2 or 3 years, you can see a sequence of distinct semi-martingales. From September through December it swings inside one semi-martingale, then the Ghost of Past Christmases shakes it badly, people panic, and later it settles into another semi-martingale, slightly shifted from the preceding one, and here it goes, semi-martingaling for another dozen of weeks etc.

The central theoretical question in this economic theory, and a couple of others, spells: do we learn something durable through local shocks? Does a sequence of economic shocks, of whatever type, make a learning path similar to the incremental learning of piano playing? There are strong arguments in favour of both possible answers. If you get your face punched, over and over again, you must be a really dumb asshole not to learn anything from that. Still, there is that phenomenon called systemic homeostasis: many systems, social structures included, tend to fight for stability when shaken, and they are frequently successful. The memory of shocks and revolutions is frequently erased, and they are assumed to have never existed.

The issue of different levels in social cohesion refers to the so-called swarm theory (Stradner et al 2013[3]). This theory studies collective intelligence by reference to animals, which we know are intelligent just collectively. Bees, ants, hornets: all those beasts, when acting individually, as dumb as f**k. Still, when they gang up, they develop amazingly complex patterns of action. That’s not all. Those complex patterns of theirs fall into three categories, applicable to human behaviour as well: static coupling, dynamic correlated coupling, and dynamic random coupling.

When we coordinate by static coupling, we always do things together in the same way. These are recurrent rituals, without much room for change. Many legal rules, and institutions they form the basis of, are examples of static coupling. You want to put some equity-based securities in circulation? Good, you do this, and this, and this. You haven’t done the third this? Sorry, man, but you cannot call it a day yet. When we need to change the structure of what we do, we should somehow loosen that static coupling and try something new. We should dissolve the existing business, which is static coupling, and look for creating something new. When we do so, we can sort of stay in touch with our customary business partners, and after some circling and asking around we form a new business structure, involving people we clearly coordinate with. This is dynamic correlated coupling. Finally, we can decide to sail completely uncharted waters, and take our business concept to China, or to New Zealand, and try to work with completely different people. What we do, in such a case, is emitting some sort of business signal into the environment, and waiting for any response from whoever is interested. This is dynamic random coupling. Attracting random followers to a new You Tube channel is very much an example of the same.

At the level of social cohesion, we can be intelligent in two distinct ways. On the one hand, we can keep the given pattern of collective associations behaviour at the same level, i.e. one of the three I have just mentioned. We keep it ritualized and static, or somehow loose and dynamically correlated, or, finally, we take care of not ritualizing too much and keep it deliberately at the level of random associations. On the other hand, we can shift between different levels of cohesion. We take some institutions, we start experimenting with making them more flexible, at some point we possibly make it as free as possible, and we gain experience, which, in turn, allows us to create new institutions.

When applying the issue of social cohesion in collective intelligence to economic phenomena, we can use a little trick, to be found, for example, in de Vincenzo et al (2018[4]): we assume that quantitative economic variables, which we normally perceive as just numbers, are manifestations of distinct collective decisions. When I have the price of energy, let’s say, €0,17 per kilowatt hour, I consider it as the outcome of collective decision-making. At this point, it is useful to remember the fundamentals of intelligence. We perceive our own, individual decisions as outcomes of our independent thinking. We associate them with the fact of wanting something, and being apprehensive regarding something else etc. Still, neurologically, those decisions are outcomes of some neurons firing in a certain sequence. Same for economic variables, i.e. mostly prices and quantities: they are fruit of interactions between the members of a community. When I buy apples in the local marketplace, I just buy them for a certain price, and, if they look bad, I just don’t buy. This is not any form of purposeful influence upon the market. Still, when 10 000 people like me do the same, sort of ‘buy when price good, don’t when the apple is bruised’, a patterned process emerges. The resulting price of apples is the outcome of that process.

Social cohesion can be viewed as association between collective decisions, not just between individual actions. The resulting methodology is made, roughly speaking, of three steps. Step one: I put all the economic variables in my model over a common denominator (common scale of measurement). Step two: I calculate the relative cohesion between them with the general concept of a fitness function, which I can express, for example, as the Euclidean distance between local values of variables in question. Step three: I calculate the average of those Euclidean distances, and I calculate its reciprocal, like « 1/x ». This reciprocal is the direct measure of cohesion between decisions, i.e. the higher the value of this precise « 1/x », the more cohesion between different processes of economic decision-making.

Now, those of you with a sharp scientific edge could say now: “Wait a minute, doc. How do you know we are talking about different processes of decision making? Who do you know that variable X1 comes from a different process than variable X2?”. This is precisely my point. The swarm theory tells me that if I can observe changing a cohesion between those variables, I can reasonably hypothesise that their underlying decision-making processes are distinct. If, on the other hand, their mutual Euclidean distance stays the same, I hypothesise that they come from the same process.

Summing up, here is the general drift: I take an economic model and I formulate three hypotheses as for the occurrence of collective intelligence in that model. Hypothesis #1: different variables of the model come from different processes of collective decision-making.

Hypothesis #2: the economic system underlying the model has the capacity to learn as a collective intelligence, i.e. to durably increase or decrease the mutual cohesion between those processes. Hypothesis #3: collective learning in the presence of economic shocks is different from the instance of learning in the absence of such shocks.

They look nice, those hypotheses. Now, why the hell should anyone bother? I mean what are the practical outcomes of those hypotheses being true or false? In my experimental perceptron, I express the presence of economic shocks by using hyperbolic tangent as neural function of activation, whilst the absence of shocks (or the presence of countercyclical policies) is expressed with a sigmoid function. Those two yield very different processes of learning. Long story short, the sigmoid learns more, i.e. it accumulates more local errors (this more experimental material for learning), and it generates a steady trend towards lower a cohesion between variables (decisions). The hyperbolic tangent accumulates less experiential material (it learns less), and it is quite random in arriving to any tangible change in cohesion. The collective intelligence I mimicked with that perceptron looks like the kind of intelligence, which, when going through shocks, learns only the skill of returning to the initial position after shock: it does not create any lasting type of change. The latter happens only when my perceptron has a device to absorb and alleviate shocks, i.e. the sigmoid neural function.

When I have my perceptron explicitly feeding back that cohesion between variables (i.e. feeding back the fitness function considered as a local error), it learns less and changes less, but not necessarily goes through less shocks. When the perceptron does not care about feeding back the observable distance between variables, there is more learning and more change, but not more shocks. The overall fitness function of my perceptron changes over time The ‘over time’ depends on the kind of neural activation function I use. In the case of hyperbolic tangent, it is brutal change over a short time, eventually coming back to virtually the same point that it started from. In the hyperbolic tangent, the passage between various levels of association, according to the swarm theory, is super quick, but not really productive. In the sigmoid, it is definitely a steady trend of decreasing cohesion.

I want to know what the hell I am doing. I feel I have made a few steps towards that understanding, but getting to know what I am doing proves really hard.

I am consistently delivering good, almost new science to my readers, and love doing it, and I am working on crowdfunding this activity of mine. As we talk business plans, I remind you that you can download, from the library of my blog, the business plan I prepared for my semi-scientific project Befund  (and you can access the French version as well). You can also get a free e-copy of my book ‘Capitalism and Political Power’ You can support my research by donating directly, any amount you consider appropriate, to my PayPal account. You can also consider going to my Patreon page and become my patron. If you decide so, I will be grateful for suggesting me two things that Patreon suggests me to suggest you. Firstly, what kind of reward would you expect in exchange of supporting me? Secondly, what kind of phases would you like to see in the development of my research, and of the corresponding educational tools?

[1] Harsanyi, J. C., & Selten, R. (1988). A general theory of equilibrium selection in games. MIT Press Books, 1.

[2] Malkiel, B. G., & Fama, E. F. (1970). Efficient capital markets: A review of theory and empirical work. The journal of Finance, 25(2), 383-417.

[3] Stradner, J., Thenius, R., Zahadat, P., Hamann, H., Crailsheim, K., & Schmickl, T. (2013). Algorithmic requirements for swarm intelligence in differently coupled collective systems. Chaos, Solitons & Fractals, 50, 100-114.

[4] De Vincenzo, I., Massari, G. F., Giannoccaro, I., Carbone, G., & Grigolini, P. (2018). Mimicking the collective intelligence of human groups as an optimization tool for complex problems. Chaos, Solitons & Fractals, 110, 259-266.

Joseph et le perceptron

 

Mon éditorial sur You Tube

 

Voilà que mon idée d’appliquer l’intelligence artificielle pour simuler des décisions collectives – et plus particulièrement l’implémentation possible d’un schéma financier participatif à l’échelle locale – prend des couleurs. Je viens de travailler un peu sur l’idée de cohésion mutuelle entre les décisions collectives, bien dans l’esprit de ces articles que j’avais cité dans « Si je permets plus d’extravagance ». J’ai inclus la composante de cohésion dans le perceptron que je décris sur ce blog et applique dans ma recherche depuis à peu près 2 mois. Ça commence à donner des résultats intéressants : un perceptron qui prend en compte la cohésion relative de ses propres variables acquiert une certaine noblesse d’apprentissage profond. Vous avez pu lire les premiers résultats de cette approche dans « How can I possibly learn on that thing I have just become aware I do? ».

Depuis cette dernière mise à jour je me suis avancé un peu dans l’application de cette idée de cohésion et de la théorie d’essaims dans ma propre recherche. J’ai remarqué une différence nette entre la cohésion générée par le perceptron suivant la façon d’observer cette cohésion. Je peux adopter deux stratégies de simulation en ce qui concerne le rôle de la cohésion mutuelle entre variables. Stratégie no. 1 : je calcule la cohésion mutuelle entre les décisions représentées par les variables et je m’en arrête à l’observation. Le perceptron n’utilise donc pas la fonction d’adaptation comme paramètre dans le processus d’apprentissage : le réseau neuronal ne sait pas quel degré de cohésion il rend. J’ajoute donc une dimension additionnelle à l’observation de ce que fait le réseau neuronal mais je ne change pas la structure logique de réseau. Stratégie no. 2 : j’inclus les valeurs locales de la fonction d’adaptation – donc de la mesure de cohésion entre variables – comme paramètre utilisé par le perceptron. La cohésion mesurée dans la ronde d’expérimentation « k – 1 » est utilisée comme donnée dans la ronde « k ». La cohésion entre variables modifie la structure logique du réseau de façon récurrente. Je crée donc une composante d’apprentissage profond : le perceptron, initialement orienté sur l’expérimentation pure, commence à prendre en compte la cohésion interne entre ses propres décisions.

Cette prise en compte est indirecte. La cohésion des variables observée dans la ronde « k – 1 » s’ajoute, comme information additionnelle, aux valeurs de ces variables prise en compte dans la ronde « k ». Par conséquent, cette mesure de cohésion modifie l’erreur locale générée par le réseau et ainsi influence le processus d’apprentissage. Le mécanisme d’apprentissage sur la base de cohésion entre variables est donc identique au mécanisme de base de ce perceptron : la fonction d’adaptation, dont la valeur est inversement proportionnelle à la cohésion entre variables est une source d’erreur de plus. Le perceptron tend à minimiser l’erreur locale, donc il devrait, logiquement, minimiser la fonction d’adaptation aussi et ainsi maximiser la cohésion. Ça semble logique à première vue.

Eh bien, voilà que mon perceptron me surprend et il me surprend de façons différentes suivant la fonction d’activation qu’il utilise pour apprendre. Lorsque l’apprentissage se fait à travers la fonction sigmoïde, le perceptron rend toujours moins de cohésion à la fin des 5000 rondes d’expérimentation qu’il en rendait au début. Le sigmoïde à l’air de gonfler systématiquement la distance Euclidienne entre ses variables, quelle stratégie d’apprentissage que ce soit, la no. 1 ou bien la no. 2. Lorsque c’est la no. 2 (donc la cohésion est explicitement prise en compte) le perceptron génère une significativement moindre erreur cumulative et une plus grande cohésion à la fin. Moins d’erreur cumulative veut dire moins d’apprentissage : un perceptron apprend à travers l’analyse de ses propres erreurs. En même temps le sigmoïde qui doit activement observer sa propre cohésion devient un peu moins stable. La courbe d’erreur cumulative – donc la courbe essentielle d’apprentissage – devient un peu plus accidentée, avec des convulsions momentanées.

En revanche, lorsque mon perceptron s’efforce d’être intelligent à travers la tangente hyperbolique , il ne change pas vraiment la cohésion fondamentale entre variables. Il se comporte de façon typique à la tangente hyperbolique – donc il s’affole localement sans que ça change beaucoup à la longue – mais à la fin de la journée la cohésion générale entre variables diffère peu ou pas du tout par rapport à la position de départ. Pendant que le sigmoïde à l’air d’apprendre quelque chose à propos de sa cohésion – et ce quelque chose semble se résumer à dire qu’il faut vraiment la réduire, la cohésion – la tangente hyperbolique semble être quasi-inapte à apprendre quoi que ce soit de significatif. En plus, lorsque la tangente hyperbolique prend explicitement en compte sa propre cohésion, son erreur cumulative devient un peu moindre mais surtout son comportement devient beaucoup plus aléatoire, dans plusieurs dimensions. La courbe d’erreur locale acquiert beaucoup plus d’amplitude et en même temps l’erreur cumulative après 5000 rondes d’expérimentation varie plus d’une instance de 5000 à l’autre. La courbe de cohésion est tout aussi affolée mais à la fin de la journée y’a pas beaucoup de changement niveau cohésion.

J’ai déjà eu plusieurs fois cette intuition de base à propos de ces deux fonctions d’activation neurale : elles représentent des sentiers d’apprentissage fondamentalement différents. Le sigmoïde est comme un ingénieur enfermé à l’intérieur d’une capsule blindée. Il absorbe et amortit les chocs locaux tout en les menant gentiment dans une direction bien définie. La tangente hyperbolique quant à elle se comporte comme un chimpanzé névrotique : ça gueule à haute voix à la moindre dissonance, mais ça ne tire pas beaucoup de conclusions.  Je suis tenté de dire que le sigmoïde est comme intellect et la tangente hyperbolique représente les émotions. Réaction pesée et rationnelle d’une part, réaction vive et paniquarde d’autre part.

Je m’efforce de trouver une représentation graphique pour tout ce bazar, quelque chose qui soit à la fois synthétique et pertinent par rapport à ce que j’ai déjà présenté dans mes mises à jour précédentes. Je veux vous montrer la façon dont le perceptron apprend sous des conditions différentes. Je commence avec l’image. Ci-dessous, vous trouverez 3 graphes qui décrivent la façon dont mon perceptron apprend sous des conditions différentes. Plus loin, après les graphes, je développe une discussion.

 

Bon, je discute. Tout d’abord, les variables. J’en ai quatre dans ces graphes. La première, marquée comme ligne bleue avec des marques rouges discrètes, c’est l’erreur accumulée générée avec sigmoïde. Une remarque : cette fois, lorsque je dis « erreur accumulée », elle est vraiment accumulée. C’est la somme des toutes les erreurs locales, accumulées à mesure des rondes consécutives d’expérimentation. C’est donc comme ∑e(k) où « e(k) » est l’erreur locale – donc déviation par rapport aux valeurs initiales – observée sur les variables de résultat dans la k-tième ronde d’expérimentation. La ligne orange donne le même, donc l’erreur accumulée, seulement avec la fonction de tangente hyperbolique.

L’erreur accumulée, pour moi, elle est la mesure la plus directe de l’apprentissage compris de façon purement quantitative. Plus d’erreur accumulée, plus d’expérience mon perceptron a gagné. Quel que soit le scénario représenté sur les graphes, le perceptron accumule de l’apprentissage de manière différente, suivant la fonction neurale. Le sigmoïde accumule de l’expérience sans équivoque et d’une façon systématique. Avec la tangente hyperbolique, c’est différent. Lorsque j’observe cette courbe accidentée, j’ai l’impression intuitive d’un apprentissage par à-coups. Je vois aussi quelque chose d’autre, que j’ai même de la peine à nommer de manière précise. Si la courbe d’erreur accumulée – donc d’expérience rencontrée – descend abruptement, qu’est-ce que ça signifie ? Ce qui vient à mon esprit, c’est l’idée d’expériences contraires qui produisent de l’apprentissage contradictoire. Un jour, je suis très content par la collaboration avec ces gens de l’autre côté de la rue (l’autre côté de l’océan, de l’idéologie etc.) et je suis plein de conclusions comme « L’accord c’est mieux que la discorde » etc. Le jour suivant, lorsque j’essaie de reproduire cette expérience positive, ‘y-a du sable dans l’engrenage, tout à coup. Je ne peux pas trouver de langage commun avec ces mecs, ils sont nuls, ça ne semble aller nulle part de travailler ensemble. Chaque jour, je fais face à la possibilité équiprobable de me balancer dans l’un ou l’autre des extrêmes.

Je ne sais pas comme vous, mais moi je reconnais ce genre d’apprentissage. C’est du pain quotidien, en fait. Á moins d’avoir une méthode progressive d’apprendre quelque chose – donc le sigmoïde – nous apprenons fréquemment comme ça, c’est-à-dire en développant des schémas comportementaux contradictoires.

Ensuite, j’introduis une mesure de cohésion entre les variables du perceptron, comme l’inverse de la fonction d’adaptation, donc comme « 1/V(x) ». J’ai décidé d’utiliser cet inverse, au lieu de la fonction d’adaptation strictement dite, pour une explication plus claire. La fonction d’adaptation strictement dite est la distance Euclidienne entre les valeurs locales des variables de mon perceptron. Interprétée comme telle, la fonction d’adaptation est donc le contraire de la cohésion. Je me réfère à la théorie d’essaims, telle que je l’avais discutée dans « Si je permets plus d’extravagance ». Lorsque la courbe de « 1/V(x) » descend, cela veut dire moins de cohésion : l’essaim relâche ces associations internes. Lorsque « 1/V(x) » monte, une rigidité nouvelle s’introduit dans les associations de ce même essaim.

Question : puis-je légitimement considérer mes deux tenseurs – donc une collection structurée des variables numériques – comme un essaim social ? Je pense que je peux les regarder comme le résultat complexe d’activité d’un tel essaim : des décisions multiples, associées entre elles de manière changeante, peuvent être vues comme la manifestation d’apprentissage collectif.

Avec cette assomption, je vois, encore une fois – deux façons d’apprendre à travers les deux fonctions neurales différentes. Le sigmoïde produit toujours de la cohésion décroissante progressivement. L’essaim social qui marche selon ce modèle comportemental apprend progressivement (il accumule progressivement de l’expérience cohérente) et à mesure d’apprendre il relâche sa cohésion interne de façon contrôlée. L’essaim qui se comporte plutôt tangente hyperbolique fait quelque chose de différent : il oscille entre des niveaux différents de cohésion, comme s’il testait ce qui se passe lorsqu’on se permet plus de liberté d’expérimenter.

Bon, ça, ce sont mes impressions après avoir fait bosser mon perceptron sous des conditions différentes. Maintenant, puis-je trouver des connexions logiques entre ce que fait mon perceptron et la théorie économique ? Je dois me rappeler, encore et encore, que le perceptron, ainsi que tout le bazar d’intelligence collective, ça me sert à prédire l’absorption possible de mon concept financier dans le marché d’énergies renouvelables.

L’observation du perceptron suggère que le marché, il est susceptible de réagir à cette idée nouvelle de deux façons différentes : agitation d’une part et changement progressif d’autre part. En fait, en termes de théorie économique, je vois une association avec la théorie des cycles économiques de Joseph Schumpeter. Joseph, il assumait que changement technologique s’associe avec du changement social à travers deux sentiers distincts et parallèles : la destruction créative, qui fait souvent mal au moment donné, oblige la structure du système économique à changer de façon progressive.

Je continue à vous fournir de la bonne science, presque neuve, juste un peu cabossée dans le processus de conception. Je vous rappelle que vous pouvez télécharger le business plan du projet BeFund (aussi accessible en version anglaise). Vous pouvez aussi télécharger mon livre intitulé “Capitalism and Political Power”. Je veux utiliser le financement participatif pour me donner une assise financière dans cet effort. Vous pouvez soutenir financièrement ma recherche, selon votre meilleur jugement, à travers mon compte PayPal. Vous pouvez aussi vous enregistrer comme mon patron sur mon compte Patreon . Si vous en faites ainsi, je vous serai reconnaissant pour m’indiquer deux trucs importants : quel genre de récompense attendez-vous en échange du patronage et quelles étapes souhaitiez-vous voir dans mon travail ?

How can I possibly learn on that thing I have just become aware I do?

 

My editorial on You Tube

 

I keep working on the application of neural networks to simulate the workings of collective intelligence in humans. I am currently macheting my way through the model proposed by de Vincenzo et al in their article entitled ‘Mimicking the collective intelligence of human groups as an optimization tool for complex problems’ (2018[1]). In the spirit of my own research, I am trying to use optimization tools for a slightly different purpose, that is for simulating the way things are done. It usually means that I relax some assumptions which come along with said optimization tools, and I just watch what happens.

Vincenzo et al propose a model of artificial intelligence, which combines a classical perceptron, such as the one I have already discussed on this blog (see « More vigilant than sigmoid », for example) with a component of deep learning based on the observable divergences in decisions. In that model, social agents strive to minimize their divergences and to achieve relative consensus. Mathematically, it means that each decision is characterized by a fitness function, i.e. a function of mathematical distance from other decisions made in the same population.

I take the tensors I have already been working with, namely the input tensor TI = {LCOER, LCOENR, KR, KNR, IR, INR, PA;R, PA;NR, PB;R, PB;NR} and the output tensor is TO = {QR/N; QNR/N}. Once again, consult « More vigilant than sigmoid » as for the meaning of those variables. In the spirit of the model presented by Vincenzo et al, I assume that each variable in my tensors is a decision. Thus, for example, PA;R, i.e. the basic price of energy from renewable sources, which small consumers are charged with, is the tangible outcome of a collective decision. Same for the levelized cost of electricity from renewable sources, the LCOER, etc. For each i-th variable xi in TI and TO, I calculate its relative fitness to the overall universe of decisions, as the average of itself, and of its Euclidean distances to other decisions. It looks like:

 

V(xi) = (1/N)*{xi + [(xi – xi;1)2]0,5 + [(xi – xi;2)2]0,5 + … + [(xi – xi;K)2]0,5}

 

…where N is the total number of variables in my tensors, and K = N – 1.

 

In a next step, I can calculate the average of averages, thus to sum up all the individual V(xi)’s and divide that total by N. That average V*(x) = (1/N) * [V(x1) + V(x2) + … + V(xN)] is the measure of aggregate divergence between individual variables considered as decisions.

Now, I imagine two populations: one who actively learns from the observed divergence of decisions, and another one who doesn’t really. The former is represented with a perceptron that feeds back the observable V(xi)’s into consecutive experimental rounds. Still, it is just feeding that V(xi) back into the loop, without any a priori ideas about it. The latter is more or less what it already is: it just yields those V(xi)’s but does not do much about them.

I needed a bit of thinking as for how exactly should that feeding back of fitness function look like. In the algorithm I finally came up with, it looks differently for the input variables on the one hand, and for the output ones. You might remember, from the reading of « More vigilant than sigmoid », that my perceptron, in its basic version, learns by estimating local errors observed in the last round of experimentation, and then adding those local errors to the values of input variables, just to make them roll once again through the neural activation function (sigmoid or hyperbolic tangent), and see what happens.

As I upgrade my perceptron with the estimation of fitness function V(xi), I ask: who estimates the fitness function? What kind of question is that? Well, a basic one. I have that neural network, right? It is supposed to be intelligent, right? I add a function of intelligence, namely that of estimating the fitness function. Who is doing the estimation: my supposedly intelligent network or some other intelligent entity? If it is an external intelligence, mine, for a start, it just estimates V(xi), sits on its couch, and watches the perceptron struggling through the meanders of attempts to be intelligent. In such a case, the fitness function is like sweat generated by a body. The body sweats but does not have any way of using the sweat produced.

Now, if the V(xi) is to be used for learning, the perceptron is precisely the incumbent intelligent structure supposed to use it. I see two basic ways for the perceptron to do that. First of all, the input neuron of my perceptron can capture the local fitness functions on input variables and add them, as additional information, to the previously used values of input variables. Second of all, the second hidden neuron can add the local fitness functions, observed on output variables, to the exponent of the neural activation function.

I explain. I am a perceptron. I start my adventure with two tensors: input TI = {LCOER, LCOENR, KR, KNR, IR, INR, PA;R, PA;NR, PB;R, PB;NR} and output TO = {QR/N; QNR/N}. The initial values I start with are slightly modified in comparison to what was being processed in « More vigilant than sigmoid ». I assume that the initial market of renewable energies – thus most variables of quantity with ‘R’ in subscript – is quasi inexistent. More specifically, QR/N = 0,01 and  QNR/N = 0,99 in output variables, whilst in the input tensor I have capital invested in capacity IR = 0,46 (thus a readiness to go and generate from renewables), and yet the crowdfunding flow K is KR = 0,01 for renewables and KNR = 0,09 for non-renewables. If you want, it is a sector of renewable energies which is sort of ready to fire off but hasn’t done anything yet in that department. All in all, I start with: LCOER = 0,26; LCOENR = 0,48; KR = 0,01; KNR = 0,09; IR = 0,46; INR = 0,99; PA;R = 0,71; PA;NR = 0,46; PB;R = 0,20; PB;NR = 0,37; QR/N = 0,01; and QNR/N = 0,99.

Being a pure perceptron, I am dumb as f**k. I can learn by pure experimentation. I have ambitions, though, to be smarter, thus to add some deep learning to my repertoire. I estimate the relative mutual fitness of my variables according to the V(xi) formula given earlier, as arithmetical average of each variable separately and its Euclidean distance to others. With the initial values as given, I observe: V(LCOER; t0) = 0,302691788; V(LCOENR; t0) = 0,310267104; V(KR; t0) = 0,410347388; V(KNR; t0) = 0,363680721; V(IR ; t0) = 0,300647174; V(INR ; t0) = 0,652537097; V(PA;R ; t0) = 0,441356844 ; V(PA;NR ; t0) = 0,300683099 ; V(PB;R ; t0) = 0,316248176 ; V(PB;NR ; t0) = 0,293252713 ; V(QR/N ; t0) = 0,410347388 ; and V(QNR/N ; t0) = 0,570485945. All that stuff put together into an overall fitness estimation is like average V*(x; t0) = 0,389378787.

I ask myself: what happens to that fitness function when as I process information with my two alternative neural functions, the sigmoid or the hyperbolic tangent. I jump to experimental round 1500, thus to t1500, and I watch. With the sigmoid, I have V(LCOER; t1500) =  0,359529289 ; V(LCOENR; t1500) =  0,367104605; V(KR; t1500) =  0,467184889; V(KNR; t1500) = 0,420518222; V(IR ; t1500) =  0,357484675; V(INR ; t1500) =  0,709374598; V(PA;R ; t1500) =  0,498194345; V(PA;NR ; t1500) =  0,3575206; V(PB;R ; t1500) =  0,373085677; V(PB;NR ; t1500) =  0,350090214; V(QR/N ; t1500) =  0,467184889; and V(QNR/N ; t1500) = 0,570485945, with average V*(x; t1500) =  0,441479829.

Hmm, interesting. Working my way through intelligent cognition with a sigmoid, after 1500 rounds of experimentation, I have somehow decreased the mutual fitness of decisions I make through individual variables. Those V(xi)’s have changed. Now, let’s see what it gives when I do the same with the hyperbolic tangent: V(LCOER; t1500) =   0,347752478; V(LCOENR; t1500) =  0,317803169; V(KR; t1500) =   0,496752021; V(KNR; t1500) = 0,436752021; V(IR ; t1500) =  0,312040791; V(INR ; t1500) =  0,575690006; V(PA;R ; t1500) =  0,411438698; V(PA;NR ; t1500) =  0,312052766; V(PB;R ; t1500) = 0,370346458; V(PB;NR ; t1500) = 0,319435252; V(QR/N ; t1500) =  0,496752021; and V(QNR/N ; t1500) = 0,570485945, with average V*(x; t1500) =0,413941802.

Well, it is becoming more and more interesting. Being a dumb perceptron, I can, nevertheless, create two different states of mutual fitness between my decisions, depending on the kind of neural function I use. I want to have a bird’s eye view on the whole thing. How can a perceptron have a bird’s eye view of anything? Simple: it rents a drone. How can a perceptron rent a drone? Well, how smart do you have to be to rent a drone? Anyway, it gives something like the graph below:

 

Wow! So this is what I do, as a perceptron, and what I haven’t been aware so far? Amazing. When I think in sigmoid, I sort of consistently increase the relative distance between my decisions, i.e. I decrease their mutual fitness. The sigmoid, that function which sorts of calms down any local disturbance, leads to making a decision-making process like less coherent, more prone to embracing a little chaos. The hyperbolic tangent thinking is different. It occasionally sort of stretches across a broader spectrum of fitness in decisions, but as soon as it does so, it seems being afraid of its own actions, and returns to the initial level of V*(x). Please, note that as a perceptron, I am almost alive, and I produce slightly different outcomes in each instance of myself. The point is that in the line corresponding to hyperbolic tangent, the comb-like pattern of small oscillations can stretch and move from instance to instance. Still, it keeps the general form of a comb.

OK, so this is what I do, and now I ask myself: how can I possibly learn on that thing I have just become aware I do? As a perceptron, endowed with this precise logical structure, I can do one thing with information: I can arithmetically add it to my input. Still, having some ambitions for evolving, I attempt to change my logical structure, and I risk myself into incorporating somehow the observable V(xi) into my neural activation function. Thus, the first thing I do with that new learning is to top the values of input variables with local fitness functions observed in the previous round of experimenting. I am doing it already with local errors observed in outcome variables, so why not doubling the dose of learning? Anyway, it goes like: xi(t0) = xi(t-1) + e(xi; t-1) + V(xi; t-1). It looks interesting, but I am still using just a fraction of information about myself, i.e. just that about input variables. Here is where I start being really ambitious. In the equation of the sigmoid function, I change s = 1 / [1 + exp(∑xi*Wi)] into s = 1 / [1 + exp(∑xi*Wi + V(To)], where V(To) stands for local fitness functions observed in output  variables. I do the same by analogy in my version based on hyperbolic tangent. The th = [exp(2*∑xi*wi)-1] / [exp(2*∑xi*wi) + 1] turns into th = {exp[2*∑xi*wi + V(To)] -1} / {exp[2*∑xi*wi + V(To)] + 1}. I do what I know how to do, i.e. adding information from fresh observation, and I apply it to change the structure of my neural function.

All those ambitious changes in myself, put together, change my pattern of learing as shown in the graph below:

When I think sigmoid, the fact of feeding back my own fitness function does not change much. It makes the learning curve a bit steeper in the early experimental rounds, and makes it asymptotic to a little lower threshold in the last rounds, as compared to learning without feedback on V(xi). Yet, it is the same old sigmoid, with just its sleeves ironed. On the other hand, the hyperbolic tangent thinking changes significantly. What used to look like a comb, without feedback, now looks much more aggressive, like a plough on steroids. There is something like a complex cycle of learning on the internal cohesion of decisions made. Generally, feeding back the observable V(xi) increases the finally achieved cohesion in decisions, and, in the same time, it reduces the cumulative error gathered by the perceptron. With that type of feedback, the cumulative error of the sigmoid, which normally hits around 2,2 in this case, falls to like 0,8. With hyperbolic tangent, cumulative errors which used to be 0,6 ÷ 0,8 without feedback, fall to 0,1 ÷ 0,4 with feedback on V(xi).

 

The (provisional) piece of wisdom I can have as my takeaway is twofold. Firstly, whatever I do, a large chunk of perceptual learning leads to a bit less cohesion in my decisions. As I learn by experience, I allow myself more divergence in decisions. Secondly, looping on that divergence, and including it explicitly in my pattern of learning leads to relatively more cohesion at the end of the day. Still, more cohesion has a price – less learning.

 

I am consistently delivering good, almost new science to my readers, and love doing it, and I am working on crowdfunding this activity of mine. As we talk business plans, I remind you that you can download, from the library of my blog, the business plan I prepared for my semi-scientific project Befund  (and you can access the French version as well). You can also get a free e-copy of my book ‘Capitalism and Political Power’ You can support my research by donating directly, any amount you consider appropriate, to my PayPal account. You can also consider going to my Patreon page and become my patron. If you decide so, I will be grateful for suggesting me two things that Patreon suggests me to suggest you. Firstly, what kind of reward would you expect in exchange of supporting me? Secondly, what kind of phases would you like to see in the development of my research, and of the corresponding educational tools?

[1] De Vincenzo, I., Massari, G. F., Giannoccaro, I., Carbone, G., & Grigolini, P. (2018). Mimicking the collective intelligence of human groups as an optimization tool for complex problems. Chaos, Solitons & Fractals, 110, 259-266.

Si je permets plus d’extravagance

 

Mon éditorial sur You Tube

 

Je continue ma petite aventure intellectuelle avec l’application des réseaux neuronaux – donc de l’intelligence artificielle – à la simulation de l’intelligence collective des sociétés humaines. J’ai découvert un créneau de recherche – documenté dans la littérature – qui s’occupe presque exclusivement du sujet de l’intelligence collective en général. Voici donc un article par Stradner et al. (2013[1]) qui étudie les algorithmes afférents à la théorie d’essaims ou intelligence distribuée. Nous, les humains, nous hésitons toujours en ce qui concerne notre propre intelligence collective mais nous avons des idées bien arrêtées en ce qui concerne celle d’abeilles ou des fourmis. La théorie d’essaims est une approche behavioriste à l’intelligence collective : elle assume que l’action en général, intelligente ou pas tout à fait, peut être considérée comme collective si elle est coordonnée. L’intelligence collective d’un ensemble d’entités plus ou moins autonomes peut être observée comme coordination et plus exactement comme association. Nous pouvons percevoir toute action comme mouvement et alors nous pouvons juger de la coordination dans cette action par le degré d’association entre mouvements individuels.

 

Il y a trois classes d’association : dynamique aléatoire, dynamique corrélée et statique. La distinction se fait en fonction d’interactions observées entre les entités qui font l’ensemble donné. Si les interactions sont des contacts aléatoires, dépourvus des schémas habituels – sans ritualisation, si vous voulez – nous parlons d’association aléatoire. On s’associe, de temps à l’autre, mais on ne fait pas d’amis dans le processus. S’il y a échange d’information dans l’association aléatoire, nous perdons une part significative du contenu communiqué puisque nous n’avons pas de rituels sociaux pour le codage et décodage, ainsi que pour la reconnaissance de source. Si je suis un petit investisseur boursier, parmi une foule d’autres petits investisseurs que je ne croise que de façon accidentelle, c’est largement un cas d’association dynamique aléatoire.

 

L’intelligence dans association dynamique aléatoire, où est-elle ? Y-a-t-il une intelligence quelconque dans ce type d’interaction ? Une annonce publicitaire dans la télé c’est un message jeté en l’air dans l’espoir que quelqu’un l’attrape. Lorsqu’une nouvelle version de Renault Mégane est lancée, c’est un concept technologique introduit dans une population hétérogène, dans l’espoir de trouver un intérêt suffisamment prononcé de la part de certaines personnes dans cette population. Ce sont des cas d’interaction basée sur des associations dynamiques aléatoires. C’est un cas d’intelligence collective basée sur la méthode d’essai et erreur. On produit quelque changement et on sait que dans la plupart d’interactions sociales ce changement va être sans conséquence majeure, néanmoins on compte que d’une perspective probabiliste certaines interactions vont traduire de changement local en quelque chose de plus durable.

 

Dans l’expression « dynamique aléatoire » le mot « dynamique » veut dire que chaque entité dans l’essaim entre dans un nombre changeant d’interactions avec d’autres entités. Si je suis dans un essaim dynamique, je peux interagir avec 5 autres entités ou bien avec 50 autres, ça dépend. Lorsque « ça dépend » prend une forme récurrente, avec un schéma visible, ma position dans l’essaim devient dynamique corrélée. Le fait d’interagir avec entité A entraîne, avec une probabilité possible à définir, l’interaction avec l’entité B etc. Ce schéma répétitif permet de ritualiser la communication et de la faire plus efficiente, avec moins de pertes niveau contenu. Je retourne à l’exemple de la nouvelle version de Renault Mégane. Les agissements d’un concessionnaire Renault bien établi dans une communauté locale, lorsque ledit contacte ses clients fidèles locaux, c’est-à-dire ceux dont il sait que vu leur histoire de service prêté aux bagnoles Renault qu’ils ont maintenant les prédispose à acheter cette nouvelle bête bien attractive : ça c’est du dynamique corrélé.

 

Lorsque le schéma récurrent d’interaction devient rigide, donc lorsque chaque entité dans l’essaim interagit dans un réseau fixe d’autres entités – comme dans une structure cristalline – alors nous parlons d’association statique. Les interactions rigides sont hautement formalisées, y compris le mode de communication. Ce qui se passe dans un Parlement – enfin ce qui s’y passe officiellement – est ce type d’interaction.

 

Ces distinctions fondamentales peuvent être appliquées aux réseaux neuronaux et à l’intelligence artificielle qui s’ensuit. Les réseaux probabilistes, qui créent des agglomérations des phénomènes sur la base des traits distinctifs définis par observation, sans assomptions à priori, sont des formes d’association dynamique aléatoire. On se groupe autour de quelque chose qui émerge, dans cette situation précise, comme le truc le plus évident pour se grouper autour. L’algorithme appelé BEECLUST est un exemple de ce type d’intelligence collective. A l’autre extrémité nous avons des algorithmes pour simuler des relations plus ou moins statiques. L’un d’eux est le Réseau d’Hormones Artificielles. Imaginez un essaim d’abeilles – donc un BEECLUST – qui au lieu de s’agglomérer de façon tout à fait spontanée et spécifique à la situation donnée s’agrège autour d’un agent chimique, comme des phéromones. Si j’ai un petit univers fait des phénomènes décrits avec des variables quantitatives, je peux inclure un agent artificiel d’agglomération, comme une hormone artificielle. Dans un marché, je peux introduire une fonction qui distribue les actifs financiers parmi les agents économiques et imposer une règle d’agglomération autour de ces actifs financiers. L’idée générale est que si dans une structure associée aléatoirement j’introduis un agent d’agglomération contrôlé, je peux transformer des associations aléatoires en des associations corrélées ou même des associations statiques.

 

Le truc intéressant est de définir quel type d’association est le plus approprié pour le cas donné. Il y a une classe d’algorithmes qui suivent le modèle d’Embryogénèse Virtuelle (Thenius et al. 2009[2]). Dans cette approche, chaque entité dans l’essaim définit et redéfinit ses associations avec d’autres entités à mesure que l’essaim change de taille et/ou en fonction des conditions externes à l’essaim. C’est tout comme les cellules d’un embryon, qui redéfinissent leurs associations avec d’autres cellules au fur et à mesure de la croissance de l’organisme entier.

 

J’ai trouvé un autre article, par Kolonin et al. (2016[3]), qui va dans une direction tout à fait différente dans l’étude de l’intelligence collective. Kolonin et al assument qu’une structure intelligente – le cerveau humain par exemple – est d’habitude une structure complexe, composée des sous-structures distinctes. L’intelligence est l’interaction aussi bien entre ces sous-unités qu’à l’intérieur de chaque entité séparément. Une collectivité est habituellement formée de sous-groupes culturels qui se distinguent l’un de l’autre par leurs systèmes respectifs des croyances. La formation de ces sous-groupes suit un schéma quasi-colloïdal : un système des croyances a une frontière sémantique – comme une membrane cellulaire – qui définit la compatibilité relative de ce système avec d’autres systèmes.

Kolonin et al ont conduit une expérience avec la participation de 2784 utilisateurs des réseaux sociaux. L’expérience visait à étudier la manière dont cette population choisie de façon aléatoire se structurerait en des sous – groupes avec des systèmes distincts des croyances. La méthode expérimentale consistait à créer des conditions pour que ces 2784 individus se communiquent entre eux de façon typique à un réseau social, avec l’introduction des contraintes possibles.

La première découverte intéressante est qu’à mesure que de l’information nouvelle était mise en circulation dans le réseau expérimental, elle était utilisée par les participants pour former des systèmes des croyances de plus en plus distincts et divergents. La vitesse de divergence tend à croître avec le temps : l’utilité marginale de chaque nouvelle unité d’information est croissante. En plus, la divergence survenait de façon la plus dynamique lorsque la population expérimentale ne rencontrait aucune contrainte significative. Lorsque des contraintes contrôlées étaient imposées sur le groupe – manque relatif de ressources, par exemple – les sous – groupes commençaient à chercher des manières de combler les différences des croyances et de créer des liens intergroupes.

Alors là, si cette expérience par Kolonin et al était robuste en termes de rigueur scientifique, c’est toute une théorie nouvelle qui en émerge. On se pose des questions au sujet de cette violence verbale bizarroïde qui survient dans aussi bien que par l’intermédiaire des réseaux sociaux. L’expérience citée montre que c’est absolument normal. On prend une collectivité, on lui assure des conditions de vie décentes et on lui donne un medium de communication qui facilite le partage d’information. Cette collectivité semble être condamnée à se scinder en des sous-groupes qui vont développer des dissonances de plus en plus prononcées dans leurs systèmes des croyances. Seulement une pression environnementale sentie comme significative peut inciter à chercher l’accord.

J’essaie d’associer les deux lignes différentes de raisonnement dans les deux articles que je viens de citer. Y-a-t-il un lien entre la théorie d’essaims et les types possibles d’association dans un essaim, d’une part, et le phénomène découvert dans l’expérience de Kolonin et al ? Je me dis qu’une disparité de plus en plus poussée d’une collectivité, en des sous-groupes distincts avec des systèmes distincts des croyances, veut dire de moins en moins d’aléatoire dans les associations d’individus et de plus en plus de corrélation prévisible. Si je tends à faire copain avec un groupe des gens qui démontrent des croyances similaires aux miennes, et en même temps je crée une distance vis-à-vis de ces-mecs-qui-se-gourent-complétement-dans-leur-vision-du-monde, mes associations se ritualisent et deviennent plus rigides. Dans un cas extrême, une divergence très poussée des systèmes des croyances peut créer un essaim rigide, où chaque entité suit un protocole très strict dans ses relations avec les autres et chacun a peur d’aller au-delà de ce protocole.

Voilà encore un autre article, par de Vicenzo et al (2018[4]) avec lequel je reviens vers les algorithmes d’intelligence artificielle. L’algorithme général – ou plutôt le modèle d’algorithme – que Vicenzo et al présentent est un exemple d’apprentissage profond, spécifiquement orienté comme représentation des décisions humaines collectives. Il y a donc une partie perceptron, similaire à ce que j’utilise couramment dans ma recherche sur le marché de l’énergie, et une partie qui utilise la théorie d’essaims pour évaluer la qualité des solutions préalablement définies de façon expérimentale par le perceptron. Je sens que je vais y passer quelque temps, avec cet article. Pour le moment, cette lecture particulière me pousse à poser une question à la frontière de maths et de la philosophie : comment les nombres aléatoires existent-ils dans une structure intelligente ?

J’explique. Voilà un perceptron simple, comme celui que j’ai discuté dans « De la misère, quoi » où les variables d’entrée, groupées dans un tenseur, reçoivent des coefficients de pondération aléatoires. Tout logiciel, les langages de programmation compris, génèrent les nombres aléatoires comme, en fait, des nombres quasi-aléatoires. Le logiciel se réfère à une bibliothèque des nombres compris entre 0 et 1 et y conduit quelque chose comme tirage au sort. Les nombres que le logiciel rend après la commande du type « random » sont donc des nombres prédéfinis dans la bibliothèque. La pondération des variables d’entrée avec des coefficients aléatoires consiste donc, mathématiquement, à créer une combinaison locale entre le tenseur des variables en question avec un tenseur, beaucoup plus complexe, des nombres quasi-aléatoires. Comment est-ce que ça reflète l’intelligence humaine ? Lorsque quelqu’un me demande de dire un nombre au hasard, comme ça, par surprise, est-ce que mon cerveau crée ce nombre ou bien puise-je dans une bibliothèque des nombres dont l’existence même est au-delà de ma conscience momentanée ?

Vicenzo et al présentent une façon intéressante d’utiliser un perceptron pour simuler les décisions collectives : les variables d’entrée du perceptron peuvent être présentées comme autant des décisions distinctes. Lorsque dans ma recherche j’ai ce tenseur d’entrée fait des prix d’énergie, ainsi que de son coût lissé LCOE et du capital investi, ces variables composantes peuvent être vues comme autant des décisions. Si nous prenons plusieurs décisions distinctes, il est important de comprendre leurs liens mutuels. Pour le faire, Vincenzo et al utilisent une procédure communément appelée « NK » ou bien « paysage adaptatif ». Si j’ai N décisions variables dans mon tenseur d’entrée, chacune d’elles peut entrer en K = N – 1 interactions avec les K = N – 1 autres.

Pour chaque décision « di » de parmi l’ensemble de N = {d1, d2, …, dN} décisions je peux définir une fonction d’adaptation V(di). La fonction d’adaptation, à son tour, repose sur l’assomption que des décisions distinctes peuvent former un tout fonctionnel si elles sont mutuellement cohérentes. Je peux exprimer la cohérence mutuelle de quoi que ce soit avec deux opérations mathématiques de base : la distance Euclidienne ou la division. La distance Euclidienne c’est tout simplement de la soustraction qui a peur des minus, donc au lieu de calculer d1 – d2, je fais [(d1 – d2)2]0,5 , juste en cas où d2 > d1.

Ma fonction d’adaptation peut donc se présenter comme V(di) = {[(di – d1)2]0,5 + [(di – d2)2]0,5 + … + [(di – dK)2]0,5} ou bien comme V(di) = (di/d1 + di/d2 + … + di/dK). Laquelle de ces deux formes choisir pour un problème donné ? En théorie, la distance Euclidienne reflète la différence pendant que la division représente une proportion. Allez voir ce qui est plus approprié pour votre problème. Si nous appréhendons la différence d’opinion, par exemple, comme chez Kolonin et al, cité plus haut, la distance Euclidienne semble être plus appropriée. En revanche, lorsque je prends en compte la magnitude des résultats des décisions distinctes – comme des taux de rendement sur un portefeuille d’investissements distincts – je peux essayer la proportion, donc la division. En pratique, essayez voir ce qui marche niveau computation. Mon expérience personnelle avec les réseaux neuronaux est celle d’un néophyte, mais j’ai déjà appris un truc : un réseau neuronal c’est comme un mécanisme d’horlogerie. Y’a des combinaisons d’équations qui marchent et celles qui ne marchent pas, point à la ligne. Vous remplacez la tangente hyperbolique avec le sinus hyperbolique, avec le même ensemble des valeurs initiales, et le perceptron se cale.

Un autre truc que j’ai appris : les perceptrons, ça marche bien avec des valeurs numériques relativement petites et lissées. Je prends donc V(di) = {[(di – d1)2]0,5 + [(di – d2)2]0,5 + … + [(di – dK)2]0,5} et je lui fais faire deux pas de danse. Pas no. 1 : inclure di dans ce tenseur. La fonction d’adaptation d’une décision c’est la décision-même plus la somme de ses différences par rapport aux autres K décisions du lot. Ça donne V(di) = {di + [(di – d1)2]0,5 + [(di – d2)2]0,5 + … + [(di – dK)2]0,5}. Ensuite, je réduis la valeur de V(di) en la divisant par N, le nombre total des décisions dans le jeu. J’ai alors donne V(di) = {di + [(di – d1)2]0,5 + [(di – d2)2]0,5 + … + [(di – dK)2]0,5} / N et c’est à peu de choses près la version de travail en ce qui concerne la fonction d’adaptation. C’est suffisamment complexe pour refléter la structure du problème et c’est suffisamment simplifié pour être utilisé dans un algorithme.

Le temps est venu de mettre cette mise à jour en ligne, sur mon blog. C’est donc le temps de conclure. Comme je passe en revue la littérature sur le phénomène d’intelligence collective, je vois un dénominateur commun à toutes ces lignes de recherche extrêmement diverses : une intelligence collective est une culture et en tant que telle elle se caractérise par une certaine cohésion interne. Haute cohésion veut dire efficacité aux dépens de la découverte. Lorsque je relâche la cohésion et je permets plus d’extravagance, je peux découvrir plus mais la culture devient difficile à diriger et peut générer des conflits.

Je continue à vous fournir de la bonne science, presque neuve, juste un peu cabossée dans le processus de conception. Je vous rappelle que vous pouvez télécharger le business plan du projet BeFund (aussi accessible en version anglaise). Vous pouvez aussi télécharger mon livre intitulé “Capitalism and Political Power”. Je veux utiliser le financement participatif pour me donner une assise financière dans cet effort. Vous pouvez soutenir financièrement ma recherche, selon votre meilleur jugement, à travers mon compte PayPal. Vous pouvez aussi vous enregistrer comme mon patron sur mon compte Patreon . Si vous en faites ainsi, je vous serai reconnaissant pour m’indiquer deux trucs importants : quel genre de récompense attendez-vous en échange du patronage et quelles étapes souhaitiez-vous voir dans mon travail ?

[1] Stradner, J., Thenius, R., Zahadat, P., Hamann, H., Crailsheim, K., & Schmickl, T. (2013). Algorithmic requirements for swarm intelligence in differently coupled collective systems. Chaos, Solitons & Fractals, 50, 100-114.

[2] Thenius R, Bodi M, Schmickl T, Crailsheim K. (2009) Evolving virtual embryogenesis to structure complex controllers. PerAdaMagazine; 2009.

[3] Kolonin, A., Vityaev, E., & Orlov, Y. (2016). Cognitive architecture of collective intelligence based on social evidence. Procedia Computer Science, 88, 475-481.

[4] De Vincenzo, I., Massari, G. F., Giannoccaro, I., Carbone, G., & Grigolini, P. (2018). Mimicking the collective intelligence of human groups as an optimization tool for complex problems. Chaos, Solitons & Fractals, 110, 259-266.

More vigilant than sigmoid

My editorial on You Tube

 

I keep working on the application of neural networks as simulators of collective intelligence. The particular field of research I am diving into is the sector of energy, its shift towards renewable energies, and the financial scheme I invented some time ago, which I called EneFin. As for that last one, you can consult « The essential business concept seems to hold », in order to grasp the outline.

I continue developing the line of research I described in my last update in French: « De la misère, quoi ». There are observable differences in the prices of energy according to the size of the buyer. In many countries – practically in all the countries of Europe – there are two, distinct price brackets. One, which I further designated as PB, is reserved to contracts with big consumers of energy (factories, office buildings etc.) and it is clearly lower. Another one, further called PA, is applied to small buyers, mainly households and really small businesses.

As an economist, I have that intuitive thought in the presence of price forks: that differential in prices is some kind of value. If it is value, why not giving it some financial spin? I came up with the idea of the EneFin contract. People buy energy from a local supplier, in the amount Q, who sources it from renewables (water, wind etc.), and they pay the price PA, thus generating a financial flow equal to Q*PA. That flow buys two things: energy priced at PB, and participatory titles in the capital of their supplier, for the differential Q*(PA – PB). I imagine some kind of crowdfunding platform, which could channel the amount of capital K = Q*(PA – PB).

That K remains in some sort of fluid relationship to I, or capital invested in the productive capacity of energy suppliers. Fluid relationship means that each of those capital balances can date other capital balances, no hard feelings held. As we talk (OK, I talk) about prices of energy and capital invested in capacity, it is worth referring to LCOE, or Levelized Cost Of Electricity. The LCOE is essentially the marginal cost of energy, and a no-go-below limit for energy prices.

I want to simulate the possible process of introducing that general financial concept, namely K = Q*(PA – PB), into the market of energy, in order to promote the development of diversified networks, made of local suppliers in renewable energy.

Here comes my slightly obsessive methodological idea: use artificial intelligence in order to simulate the process. In classical economic method, I make a model, I take empirical data, I regress some of it on another some of it, and I come up with coefficients of regression, and they tell me how the thing should work if we were living in a perfect world. Artificial intelligence opens a different perspective. I can assume that my model is a logical structure, which keeps experimenting with itself and we don’t the hell know where exactly that experimentation leads. I want to use neural networks in order to represent the exact way that social structures can possibly experiment with that K = Q*(PA – PB) thing. Instead of optimizing, I want to see that way that possible optimization can occur.

I have that simple neural network, which I already referred to in « The point of doing manually what the loop is supposed to do » and which is basically quite dumb, as it does not do any abstraction. Still, it nicely experiments with logical structures. I am sketching its logical structure in the picture below. I distinguish four layers of neurons: input, hidden 1, hidden 2, and output. When I say ‘layers’, it is a bit of grand language. For the moment, I am working with one single neuron in each layer. It is more of a synaptic chain.

Anyway, the input neuron feeds data into the chain. In the first round of experimentation, it feeds the source data in. In consecutive rounds of learning through experimentation, that first neuron assesses and feeds back local errors, measured as discrepancies between the output of the output neuron, and the expected values of output variables. The input neuron is like the first step in a chain of perception, in a nervous system: it receives and notices the raw external information.

The hidden layers – or the hidden neurons in the chain – modify the input data. The first hidden neuron generates quasi-random weights, which the second hidden neuron attributes to the input variables. Just as in a nervous system, the input stimuli are assessed as for their relative importance. In the original algorithm of perceptron, which I used to design this network, those two functions, i.e. generating the random weights and attributing them to input variables, were fused in one equation. Still, my fundamental intent is to use neural networks to simulate collective intelligence, and intuitively guess those two functions are somehow distinct. Pondering the importance of things is one action and using that ponderation for practical purposes is another. It is like scientist debating about the way to run a policy, and the government having the actual thing done. These are two separate paths of action.

Whatever. What the second hidden neuron produces is a compound piece of information: the summation of input variables multiplied by random weights. The output neuron transforms this compound data through a neural function. I prepared two versions of this network, with two distinct neural functions: the sigmoid, and the hyperbolic tangent. As I found out, the way they work is very different, just as the results they produce. Once the output neuron generates the transformed data – the neural output – the input neuron measures the discrepancy between the original, expected values of output variables, and the values generated by the output neuron. The exact way of computing that discrepancy is made of two operations: calculating the local derivative of the neural function, and multiplying that derivative by the residual difference ‘original expected output value minus output value generated by the output neuron’. The so calculated discrepancy is considered as a local error, and is being fed back into the input neuron as an addition to the value of each input variable.

Before I go into describing the application I made of that perceptron, as regards my idea for financial scheme, I want to delve into the mechanism of learning triggered through repeated looping of that logical structure. The input neuron measures the arithmetical difference between the output of the network in the preceding round of experimentation, and that difference is being multiplied by the local derivative of said output. Derivative functions, in their deepest, Newtonian sense, are magnitudes of change in something else, i.e. in their base function. In the Newtonian perspective, everything that happens can be seen either as change (derivative) in something else, or as an integral (an aggregate that changes its shape) of still something else. When I multiply the local deviation from expected values by the local derivative of the estimated value, I assume this deviation is as important as the local magnitude of change in its estimation. The faster things happen, the more important they are, so do say. My perceptron learns by assessing the magnitude of local changes it induces in its own estimations of reality.

I took that general logical structure of the perceptron, and I applied it to my core problem, i.e. the possible adoption of the new financial scheme to the market of energy. Here comes sort of an originality in my approach. The basic way of using neural networks is to give them a substantial set of real data as learning material, make them learn on that data, and then make them optimize a hypothetical set of data. Here you have those 20 old cars, take them into pieces and try to put them back together, observe all the anomalies you have thus created, and then make me a new car on the grounds of that learning. I adopted a different approach. My focus is to study the process of learning in itself. I took just one set of actual input values, exogenous to my perceptron, something like an initial situation. I ran 5000 rounds of learning in the perceptron, on the basis of that initial set of values, and I observed how is learning taking place.

My initial set of data is made of two tensors: input TI and output TO.

The thing I am the most focused on is the relative abundance of energy supplied from renewable sources. I express the ‘abundance’ part mathematically as the coefficient of energy consumed per capita, or Q/N. The relative bend towards renewables, or towards the non-renewables is apprehended as the distinction between renewable energy QR/N consumed per capita, and the non-renewable one, the QNR/N, possibly consumed by some other capita. Hence, my output tensor is TO = {QR/N; QNR/N}.

I hypothesise that TO is being generated by input made of prices, costs, and capital outlays. I split my price fork PA – PB (price for the big ones minus price for the small ones) into renewables and non-renewables, namely into: PA;R, PA;NR, PB;R, and PB;NR. I mirror the distinction in prices with that in the cost of energy, and so I call LCOER and LCOENR. I want to create a financial scheme that generates a crowdfunded stream of capital K, to finance new productive capacities, and I want it to finance renewable energies, and I call KR. Still, some other people, like my compatriots in Poland, might be so attached to fossils they might be willing to crowdfund new installations based on non-renewables. Thus, I need to take into account a KNR in the game. When I say capital, and I say LCOE, I sort of feel compelled to say aggregate investment in productive capacity, in renewables, and in non-renewables, and I call it, respectively, IR and INR. All in all, my input tensor spells TI = {LCOER, LCOENR, KR, KNR, IR, INR, PA;R, PA;NR, PB;R, PB;NR}.

The next step is scale and measurement. The neural functions I use in my perceptron like having their input standardized. Their tastes in standardization differ a little. The sigmoid likes it nicely spread between 0 and 1, whilst the hyperbolic tangent, the more reckless of the two, tolerates (-1) ≥ x ≥ 1. I chose to standardize the input data between 0 and 1, so as to make it fit into both. My initial thought was to aim for an energy market with great abundance of renewable energy, and a relatively declining supply of non-renewables. I generally trust my intuition, only I like to leverage it with a bit of chaos, every now and then, and so I ran some pseudo-random strings of values and I chose an output tensor made of TO = {QR/N = 0,95; QNR/N = 0,48}.

That state of output is supposed to be somehow logically connected to the state of input. I imagined a market, where the relative abundance in the consumption of, respectively, renewable energies and non-renewable ones is mostly driven by growing demand for the former, and a declining demand for the latter. Thus, I imagined relatively high a small-user price for renewable energy and a large fork between that PA;R and the PB;R. As for non-renewables, the fork in prices is more restrained (than in the market of renewables), and its top value is relatively lower. The non-renewable power installations are almost fed up with investment INR, whilst the renewables could still do with more capital IR in productive assets. The LCOENR of non-renewables is relatively high, although not very: yes, you need to pay for the fuel itself, but you have economies of scale. As for the LCOER for renewables, it is pretty low, which actually reflects the present situation in the market.

The last part of my input tensor regards the crowdfunded capital K. I assumed two different, initial situations. Firstly, it is virtually no crowdfunding, thus a very low K. Secondly, some crowdfunding is already alive and kicking, and it is sort of slightly above the half of what people expect in the industry.

Once again, I applied those qualitative assumptions to a set of pseudo-random values between 0 and 1. Here comes the result, in the table below.

 

Table 1 – The initial values for learning in the perceptron

Tensor Variable The Market with virtually no crowdfunding   The Market with significant crowdfunding
Input TI LCOER         0,26           0,26
LCOENR         0,48           0,48
KR         0,01   <= !! =>         0,56    
KNR         0,01            0,52    
IR         0,46           0,46
INR         0,99           0,99
PA;R         0,71           0,71
PA;NR         0,46           0,46
PB;R         0,20           0,20
PB;NR         0,37           0,37
Output TO QR/N         0,95           0,95
QNR/N         0,48           0,48

 

The way the perceptron works means that it generates and feeds back local errors in each round of experimentation. Logically, over the 5000 rounds of experimentation, each input variable gathers those local errors, like a snowball rolling downhill. I take the values of input variables from the last, i.e. the 5000th round: they have the initial values, from the table above, and, on the top of them, there is cumulative error from the 5000 experiments. How to standardize them, so as to make them comparable with the initial ones? I observe: all those final output values have the same cumulative error in them, across all the TI input tensor. I choose a simple method for standardization. As the initial values were standardized over the interval between 0 and 1, I standardize the outcoming values over the interval 0 ≥ x ≥ (1 + cumulative error).

I observe the unfolding of cumulative error along the path of learning, made of 5000 steps. There is a peculiarity in each of the neural functions used: the sigmoid, and the hyperbolic tangent. The sigmoid learns in a slightly Hitchcockian way. Initially, local errors just rocket up. It is as if that sigmoid was initially yelling: ‘F******k! What a ride!’. Then, the value of errors drops very sharply, down to something akin to a vanishing tremor, and starts hovering lazily over some implicit asymptote. Hyperbolic tangent learns differently. It seems to do all it can to minimize local errors whenever it is possible. Obviously, it is not always possible. Every now and then, that hyperbolic tangent produces an explosively high value of local error, like a sudden earthquake, just to go back into forced calm right after. You can observe those two radically different ways of learning in the two graphs below.

Two ways of learning – the sigmoidal one and the hyper-tangential one – bring interestingly different results, just as differentiated are the results of learning depending on the initial assumptions as for crowdfunded capital K. Tables 2 – 5, further below, list the results I got. A bit of additional explanation will not hurt. For every version of learning, i.e. sigmoid vs hyperbolic tangent, and K = 0,01 vs K ≈ 0,5, I ran 5 instances of 5000 rounds of learning in my perceptron. This is the meaning of the word ‘Instance’ in those tables. One instance is like a tensor of learning: one happening of 5000 consecutive experiments. The values of output variables remain constant all the time: TO = {QR/N = 0,95; QNR/N = 0,48}. The perceptron sweats in order to come up with some interesting combination of input variables, given this precise tensor of output.

 

Table 2 – Outcomes of learning with the sigmoid, no initial crowdfunding

 

The learnt values of input variables after 5000 rounds of learning
Learning with the sigmoid, no initial crowdfunding
Instance 1 Instance 2 Instance 3 Instance 4 Instance 5
cumulative error 2,11 2,11 2,09 2,12 2,16
LCOER 0,7617 0,7614 0,7678 0,7599 0,7515
LCOENR 0,8340 0,8337 0,8406 0,8321 0,8228
KR 0,6820 0,6817 0,6875 0,6804 0,6729
KNR 0,6820 0,6817 0,6875 0,6804 0,6729
IR 0,8266 0,8262 0,8332 0,8246 0,8155
INR 0,9966 0,9962 1,0045 0,9943 0,9832
PA;R 0,9062 0,9058 0,9134 0,9041 0,8940
PA;NR 0,8266 0,8263 0,8332 0,8247 0,8155
PB;R 0,7443 0,7440 0,7502 0,7425 0,7343
PB;NR 0,7981 0,7977 0,8044 0,7962 0,7873

 

 

Table 3 – Outcomes of learning with the sigmoid, with substantial initial crowdfunding

 

The learnt values of input variables after 5000 rounds of learning
Learning with the sigmoid, substantial initial crowdfunding
Instance 1 Instance 2 Instance 3 Instance 4 Instance 5
cumulative error 1,98 2,01 2,07 2,03 1,96
LCOER 0,7511 0,7536 0,7579 0,7554 0,7494
LCOENR 0,8267 0,8284 0,8314 0,8296 0,8255
KR 0,8514 0,8529 0,8555 0,8540 0,8504
KNR 0,8380 0,8396 0,8424 0,8407 0,8369
IR 0,8189 0,8207 0,8238 0,8220 0,8177
INR 0,9965 0,9965 0,9966 0,9965 0,9965
PA;R 0,9020 0,9030 0,9047 0,9037 0,9014
PA;NR 0,8189 0,8208 0,8239 0,8220 0,8177
PB;R 0,7329 0,7356 0,7402 0,7375 0,7311
PB;NR 0,7891 0,7913 0,7949 0,7927 0,7877

 

 

 

 

 

Table 4 – Outcomes of learning with the hyperbolic tangent, no initial crowdfunding

 

The learnt values of input variables after 5000 rounds of learning
Learning with the hyperbolic tangent, no initial crowdfunding
Instance 1 Instance 2 Instance 3 Instance 4 Instance 5
cumulative error 1,1 1,27 0,69 0,77 0,88
LCOER 0,6470 0,6735 0,5599 0,5805 0,6062
LCOENR 0,7541 0,7726 0,6934 0,7078 0,7257
KR 0,5290 0,5644 0,4127 0,4403 0,4746
KNR 0,5290 0,5644 0,4127 0,4403 0,4746
IR 0,7431 0,7624 0,6797 0,6947 0,7134
INR 0,9950 0,9954 0,9938 0,9941 0,9944
PA;R 0,8611 0,8715 0,8267 0,8349 0,8450
PA;NR 0,7432 0,7625 0,6798 0,6948 0,7135
PB;R 0,6212 0,6497 0,5277 0,5499 0,5774
PB;NR 0,7009 0,7234 0,6271 0,6446 0,6663

 

 

Table 5 – Outcomes of learning with the hyperbolic tangent, substantial initial crowdfunding

 

The learnt values of input variables after 5000 rounds of learning
Learning with the hyperbolic tangent, substantial initial crowdfunding
Instance 1 Instance 2 Instance 3 Instance 4 Instance 5
cumulative error -0,33 0,2 -0,06 0,98 -0,25
LCOER (0,1089) 0,3800 0,2100 0,6245 0,0110
LCOENR 0,2276 0,5681 0,4497 0,7384 0,3111
KR 0,3381 0,6299 0,5284 0,7758 0,4096
KNR 0,2780 0,5963 0,4856 0,7555 0,3560
IR 0,1930 0,5488 0,4251 0,7267 0,2802
INR 0,9843 0,9912 0,9888 0,9947 0,9860
PA;R 0,5635 0,7559 0,6890 0,8522 0,6107
PA;NR 0,1933 0,5489 0,4252 0,7268 0,2804
PB;R (0,1899) 0,3347 0,1522 0,5971 (0,0613)
PB;NR 0,0604 0,4747 0,3306 0,6818 0,1620

 

The cumulative error, the first numerical line in each table, is something like memory. It is a numerical expression of how much experience has the perceptron accumulated in the given instance of learning. Generally, the sigmoid neural function accumulates more memory, as compared to the hyper-tangential one. Interesting. The way of processing information affects the amount of experiential data stored in the process. If you use the links I gave earlier, you will see different logical structures in those two functions. The sigmoid generally smoothes out anything it receives as input. It puts the incoming, compound data in the negative exponent of the Euler’s constant e = 2,72, and then it puts the resulting value as part of the denominator of 1. The sigmoid is like a bumper: it absorbs shocks. The hyperbolic tangent is different. It sort of exposes small discrepancies in input. In human terms, the hyper-tangential function is more vigilant than the sigmoid. As it can be observed in this precise case, absorbing shocks leads to more accumulated experience than vigilantly reacting to observable change.

The difference in cumulative error, observable in the sigmoid-based perceptron vs that based on hyperbolic tangent is particularly sharp in the case of a market with substantial initial crowdfunding K. In 3 instances on 5, in that scenario, the hyper-tangential perceptron yields a negative cumulative error. It can be interpreted as the removal of some memory, implicitly contained in the initial values of input variables. When the initial K is assumed to be 0,01, the difference in accumulated memory, observable between the two neural functions, significantly shrinks. It looks as if K ≥ 0,5 was some kind of disturbance that the vigilant hyperbolic tangent attempts to eliminate. That impression of disturbance created by K ≥ 0,5 is even reinforced as I synthetically compare all the four sets of outcomes, i.e. tables 2 – 5. The case of learning with the hyperbolic tangent, and with substantial initial crowdfunding looks radically different from everything else. The discrepancy between alternative instances seems to be the greatest in this case, and the incidentally negative values in the input tensor suggest some kind of deep shakeoff. Negative prices and/or negative costs mean that someone external is paying for the ride, probably the taxpayers, in the form of some fiscal stimulation.

I am consistently delivering good, almost new science to my readers, and love doing it, and I am working on crowdfunding this activity of mine. As we talk business plans, I remind you that you can download, from the library of my blog, the business plan I prepared for my semi-scientific project Befund  (and you can access the French version as well). You can also get a free e-copy of my book ‘Capitalism and Political Power’ You can support my research by donating directly, any amount you consider appropriate, to my PayPal account. You can also consider going to my Patreon page and become my patron. If you decide so, I will be grateful for suggesting me two things that Patreon suggests me to suggest you. Firstly, what kind of reward would you expect in exchange of supporting me? Secondly, what kind of phases would you like to see in the development of my research, and of the corresponding educational tools?