Lecteur de salutations. Quand j'étais enfant et que j'étudiais à l'école, ma matière préférée était les mathématiques, ma matière préférée était due au fait que j'aime vraiment résoudre des problèmes, à un moment de ma vie, j'ai commencé à composer des problèmes manifestement insolubles pour moi-même et les ai essayés pour résoudre, en poussant complètement votre esprit à réfléchir à une approche pour résoudre un problème insoluble, il s'est parfois avéré qu'un problème insoluble ne semblait l'être qu'à cause de l'omission de certains moments non évidents. Mon amour pour la résolution de problèmes m'a beaucoup influencé, c'est pourquoi je résous constamment tous les problèmes dans ma tête, non seulement mathématiques, mais aussi dans d'autres domaines. Au cours de ma vie, j'ai accumulé de nombreuses idées (solutions), d'une imprimante 3D en acier à une méthode pour résoudre le problème de l'élimination des déchets radioactifs des centrales nucléaires.Certes, de nombreuses idées ne sont pas réellement réalisables, pour une raison ou une autre, et certaines ont probablement été inventées avant moi, et je ne les connaissais tout simplement pas (cela s'est déjà produit). Dans mon dernierDans l'article, j'ai mentionné (je ne sais pas pourquoi) que j'ai proposé un nouveau type de nombres avec lesquels vous pouvez entraîner les réseaux de neurones. Je voulais ouvrir un service de formation des réseaux de neurones à l'aide de ces chiffres, mais étant donné la pandémie et ma mauvaise santé, j'ai pensé que du coup j'étais vraiment le premier à penser à ces chiffres et que ce serait extrêmement mauvais si je mourais et que la connaissance de ces chiffres disparaisse moi. Par conséquent, j'ai décidé d'écrire cet article, dans lequel je parlerai en détail de ces chiffres et comment les utiliser pour entraîner les réseaux de neurones. Je dois dire tout de suite que je n'ai pas élaboré toutes les formules nécessaires pour travailler avec de tels nombres, car j'étais occupé avec mon propre langage de programmation, ce n'est qu'une idée, pas une implémentation toute faite.
Afin de bien comprendre ce qui sera discuté dans l'article, vous devez avoir des connaissances sur la structure des réseaux de neurones simples à feedforward.
Supposons que vous ayez besoin de former un réseau de neurones à action directe ayant une sorte d'ensemble d'entraînement, dans lequel il y a des exemples de ce qui est alimenté à l'entrée du réseau de neurones et de ce qui devrait être reçu en sortie. Pour un tel cas, vous pouvez écrire une fonction, appelons-la fitness (comme dans un algorithme génétique), un réseau de neurones et un échantillon d'entraînement sont donnés à l'entrée d'une telle fonction, et la fonction renvoie un nombre de 0 à 1, le nombre correspond à combien ce réseau de neurones est entraîné par cet échantillon, où 0 n'est pas formé autant que possible, 1 est idéalement formé. En utilisant une telle fonction de fitness, le réseau de neurones peut être représenté comme une fonction mathématique dans laquelle les arguments sont les poids du réseau de neurones, et le résultat est le résultat de la fonction de fitness appliquée au réseau de neurones avec les poids et l'échantillon d'entraînement donnés. J'ai commencé à me demander "comment trouver le maximum d'une telle fonction?"Dans ma tête, j'ai présenté un graphique en 3 dimensions d'une fonction avec 2 arguments et j'ai pensé que si nous ajoutons la condition que chaque poids sera limité à une plage finie de valeurs possibles, alors ce graphique peut être divisé en deux parties, dans une partie du graphique le premier argument a les mêmes valeurs de sa plage possible, et la deuxième partie du graphique a toutes les valeurs restantes de l'argument, puis analysez dans quelle partie le maximum est plus grand, prenez cette partie et divisez-la de la même manière, mais en vous appuyant déjà sur un autre argument, après quoi la partie obtenue à la suite de la deuxième division est à nouveau nécessaire divisé en deux sur la base du premier argument. Une telle division en parties doit être effectuée jusqu'à ce que les valeurs du résultat de la fonction dans la zone obtenue à partir de la division présentent des fluctuations trop importantes.Tous les arguments de la partie résultante du graphique sont des poids appropriés. Pour une meilleure compréhension, je vais vous expliquer ce qui précède avec un exemple.

y(x) = sin x, x [-4, 4], , , . 2 , x [-4, 0], x [0, 4], , [0, 2] [2, 4]. - , 1, [pi * 999999 / 2000000, pi / 2], x . . - , , , . [0, 1], , . "". , , , , . : sin([-pi, pi]) = [-1, 1]. , , , , . : [-3, 6] - [-12, 7] = [-10, 18]. , [3, 3]. ? , , , , . feedforward :
- ,
fintess
2 , , . , fitness . fitness ,
,
. , . , , - fitness , , , , - . , , , , .
, , , . , . : [1, 2] [4, 5], , [5, 7], 5 1 4, 6 , 6 , 5. , . , , 0, . , [a, b] x , n , x , . f ( 0 1) , x. f f1, f1(x) = f(x) * n. n , f1 , , x . f1 0, , , , , . , f1. , f1 , , youtube (, ), , , - . ( x) , [0, 1], , , .
fitness , . , , , . , , , , , . , , ? ? , , , , . :
- , y(x) = 1
fintess
2 , , . , fitness . fitness ,
,
,
2 , , . , fitness . fitness ,
,
4
5- , 5
, (: 3 ([0, 1], [20, 40], [100, 101]) ), , , 1 2- . , . [1, 2, y(x) = 1], [4, 5, y(x) = 1], [5, 7, y(x) = 1 - |0.5 - x| * 2]. y(x) = 1 - |0.5 - x| * 2? , , , . y(x) = x, , 2 . , , 2- , , . , , , .. [a1, b1, y1(x) = f1(x)] + [a2, b2, y2(x) = f2(x)] = [a3, b3, y3(x) = f3(x)], f3 a1, b1, a2, b2, f1 f2, , . , , .
P. S. , . , . , , . , 80%. , , ( , , ). ( ), - ( ), , . , () , - , , . , , . 200 , . , ( ""). .