Saudações leitor. Quando eu era criança e estudei na escola, minha matéria preferida era matemática, minha matéria preferida era devido ao fato de que eu realmente adoro resolver problemas, em algum momento da minha vida comecei a compor para mim problemas obviamente insolúveis e tentei-os para resolver, forçando completamente sua mente a pensar sobre uma abordagem para resolver um problema insolúvel, às vezes descobria-se que um problema insolúvel só parecia ser devido à omissão de alguns momentos não óbvios. Meu amor por resolver problemas me influenciou muito, por isso resolvo constantemente quaisquer problemas de cabeça, não só matemáticos, mas também de outras áreas. Ao longo da minha vida, acumulei muitas ideias (soluções), desde uma impressora 3D em aço até um método para resolver o problema do descarte de rejeitos radioativos de usinas nucleares.Certamente muitas ideias não são realmente realizáveis, por um motivo ou outro, e algumas provavelmente foram inventadas antes de mim, e eu simplesmente não sabia sobre elas (isso já aconteceu). No meu últimoNo artigo, mencionei (eu mesmo não sei por quê) que descobri um novo tipo de número com o qual você pode treinar redes neurais. Eu queria abrir um serviço de treinamento de redes neurais usando esses números, mas dada a pandemia e minha saúde precária, pensei que de repente eu era realmente o primeiro a pensar nesses números e seria extremamente ruim se eu morresse e o conhecimento sobre esses números fosse embora mim. Por isso, resolvi escrever este artigo, no qual falarei em detalhes sobre esses números e como usá-los para treinar redes neurais. Devo dizer desde já que não elaborei todas as fórmulas necessárias para trabalhar com esses números, já que estava ocupado com minha própria linguagem de programação, isso é apenas uma ideia, não uma implementação pronta.
Para entender completamente o que será discutido no artigo, você precisa ter conhecimento sobre a estrutura de redes neurais de feedforward simples.
Suponha que você precise treinar uma rede neural feedforward com algum tipo de conjunto de treinamento, no qual há exemplos do que é alimentado na entrada da rede neural e o que se espera que seja recebido na saída. Nesse caso, você pode escrever uma função, vamos chamá-la de aptidão (como em um algoritmo genético), uma rede neural e uma amostra de treinamento são fornecidas como entrada para tal função, e a função retorna um número de 0 a 1, o número corresponde a quanto a rede neural dada é treinada por esta amostra, onde 0 não é treinado tanto quanto possível, 1 é treinado idealmente. Usando essa função de aptidão, a rede neural pode ser representada como uma função matemática em que os argumentos são os pesos da rede neural, e o resultado é o resultado da função de aptidão aplicada à rede neural com os pesos e amostra de treinamento dados. Comecei a pensar "como encontrar o máximo dessa função?"Na minha cabeça eu apresentei um gráfico tridimensional de uma função com 2 argumentos e pensei que se adicionarmos a condição de que cada peso será limitado a algum intervalo finito de valores possíveis, então este gráfico pode ser dividido em duas partes, em uma parte do gráfico o primeiro argumento tem os mesmos valores de seu alcance possível, e a segunda parte do gráfico tem todos os valores restantes do argumento, então analise em qual parte o máximo é maior, pegue esta parte e divida-a da mesma forma, mas já contando com outro argumento, após o qual a parte obtida como resultado da segunda divisão é novamente necessária dividido em dois com base no primeiro argumento. Essa divisão em partes deve ser feita até que os valores do resultado da função na área obtidos na divisão tenham flutuações muito grandes.Quaisquer argumentos da parte resultante do gráfico são pesos apropriados. Para um melhor entendimento, explicarei o acima com um exemplo.
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 , . , ( ""). .