Jump to content

possivel uso de redes neurais em loterias, vale a pena, e quais usar ?


Omesmo

Recommended Posts

links úteis:
 

Spoiler

https://colab.research.google.com/

O Colab, ou "Colaboratory", permite escrever e executar Python no navegador e conta com o seguinte:
- Nenhuma configuração necessária
- Acesso a GPUs sem custo financeiro
- Compartilhamento fácil

===========================================================================

indicado por @walt

https://medium.com/@polanitzer/how-to-guess-accurately-3-lottery-numbers-out-of-6-using-lstm-model-e148d1c632d6

 

 

com o gpt em alta e a facilidade de novas ideias achei interessante discutir sobre o assunto do possivel uso de redes neurais em loterias

começar com uma pequena lista de redes neurais existentes

  1. Perceptron simples: é a rede neural mais simples, usada para problemas de classificação binária. Consiste em um único neurônio que recebe uma entrada e produz uma saída.

  2. Redes neurais de alimentação direta (feedforward): essas redes são compostas por uma série de camadas de neurônios, onde os sinais de entrada são transmitidos pela rede, camada por camada, até a camada de saída. Essas redes são usadas principalmente para problemas de classificação e regressão.

  3. Redes neurais recorrentes (recurrent): diferentemente das redes de alimentação direta, as redes neurais recorrentes permitem a conexão entre neurônios de camadas anteriores e neurônios de camadas posteriores. Essas redes são usadas principalmente para problemas de sequência, como previsão de séries temporais e análise de texto.

  4. Redes neurais convolucionais (convolutional): essas redes são usadas principalmente em problemas de visão computacional, como reconhecimento de imagem e classificação. Eles são compostos por camadas de neurônios chamados "filtros" que convoluem a entrada para extrair características relevantes.

  5. Redes neurais de Kohonen (self-organizing): essas redes são usadas principalmente para visualização de dados e agrupamento. Eles são compostos por neurônios organizados em uma rede bidimensional e são treinados para formar agrupamentos de dados semelhantes.

  6. Redes neurais de memória de longo prazo (long short-term memory - LSTM): essas redes são um tipo de rede neural recorrente que pode lembrar informações por um período mais longo. Eles são frequentemente usados para processamento de linguagem natural e reconhecimento de fala.

  7. Redes neurais geradoras adversárias (generative adversarial networks - GAN): essas redes são usadas para gerar dados sintéticos realistas, como imagens e vídeos. Eles são compostos por duas redes: uma rede geradora que cria dados sintéticos e uma rede discriminadora que tenta distinguir entre dados reais e sintéticos.

  8. Redes neurais autoencoder: essas redes são usadas para reduzir a dimensionalidade de dados e extrair características relevantes. Eles são compostos por duas partes: um codificador que transforma os dados de entrada em uma representação compacta e um decodificador que reconstrói os dados de saída a partir da representação compacta.

  9. Redes neurais de memória externa (memory augmented neural networks): essas redes usam uma memória externa para armazenar informações relevantes e facilitar o aprendizado de tarefas complexas, como aprendizado de máquina por reforço.

  10. Redes neurais profundas (deep neural networks): essas redes são compostas por muitas camadas de neurônios e são usadas para aprender representações complexas de dados. Eles são frequentemente usados em problemas de visão computacional, processamento de linguagem natural e reconhecimento de fala.

  11. Redes neurais de feedback (feedback networks): essas redes utilizam um mecanismo de feedback que permite ao neurônio ou conjunto de neurônios reajustar seu próprio peso ou a saída do conjunto de neurônios.

  12. Redes neurais de aprendizado profundo (deep learning networks): são redes neurais com múltiplas camadas que utilizam algoritmos de aprendizado de máquina para modelar e abstrair dados complexos.

  13. Redes neurais de Mapa Auto-Organizável (self-organizing map): essas redes utilizam algoritmos de aprendizado não-supervisionado para mapear dados multidimensionais em um mapa bidimensional de neurônios.

  14. Redes neurais de impulso (spiking neural networks): são redes neurais que usam impulsos em vez de sinais contínuos para transmitir informações.

  15. Redes neurais dinâmicas (dynamical neural networks): são redes neurais que modelam sistemas dinâmicos complexos, como sistemas biológicos, econômicos e físicos.

  16. Redes neurais de feedback temporal (temporal feedback neural networks): essas redes utilizam um mecanismo de feedback para permitir a retroalimentação temporal na rede.

  17. Redes neurais probabilísticas (probabilistic neural networks): são redes neurais que utilizam técnicas de probabilidade para modelar e classificar dados.

  18. Redes neurais de Hopfield: são redes neurais usadas para solução de problemas de otimização, como o problema do caixeiro viajante e o problema de coloração de grafos.

  19. Redes neurais de Boltzmann restrita (restricted Boltzmann machines): são redes neurais usadas para aprendizado não-supervisionado de representações de dados, geralmente em problemas de visão computacional.

  20. Redes neurais de atenção (attention networks): são redes neurais usadas em tarefas de processamento de linguagem natural que permitem que a rede preste atenção a partes específicas da entrada.

  21. Redes neurais de memória de curto prazo (short-term memory networks): são redes neurais usadas para lidar com sequências de entrada, como processamento de linguagem natural e reconhecimento de fala.

  22. Redes neurais de memória episódica (episodic memory networks): são redes neurais usadas para modelar a memória episódica, ou seja, a capacidade de lembrar eventos específicos.

  23. Redes neurais liquidas (liquid-state machines): são redes neurais compostas por neurônios altamente interconectados que são usados para modelar sistemas dinâmicos.

  24. Redes neurais de fluxo (flow-based neural networks): são redes neurais usadas para modelar distribuições de probabilidade.

  25. Redes neurais de polinômio radial (radial basis function networks): são redes neurais usadas para aproximar funções em espaços multidimensionais.

  26. Redes neurais de crescimento de árvores (growing neural trees): são redes neurais que crescem dinamicamente a medida que recebem novos dados de entrada, permitindo adaptação a novos padrões.

  27. Redes neurais convolucionais (convolutional neural networks): são redes neurais usadas para processamento de imagens, utilizando filtros convolucionais para detectar características específicas nas imagens.

  28. Redes neurais de adversários geradores (generative adversarial networks): são redes neurais compostas por um gerador e um discriminador que trabalham em conjunto para gerar dados sintéticos que se assemelham aos dados reais.

  29. Redes neurais de memória de longo prazo (long-term memory networks): são redes neurais usadas para lidar com sequências de entrada e lembrar informações por um longo período de tempo.

  30. Redes neurais de rede recorrente (recurrent neural networks): são redes neurais que permitem que informações sejam transmitidas de uma etapa de tempo para a próxima, permitindo a modelagem de sequências de dados.

  31. Redes neurais hierárquicas (hierarchical neural networks): são redes neurais compostas por múltiplas camadas que processam informações em diferentes níveis de abstração.

  32. Redes neurais híbridas (hybrid neural networks): são redes neurais compostas por diferentes tipos de camadas e que são usadas para resolver problemas complexos.

  33. Redes neurais de aprendizado não supervisionado: essas redes neurais são usadas para encontrar padrões escondidos nos dados sem o uso de rótulos ou categorias pré-determinadas. O objetivo é encontrar estruturas ou padrões nos dados que possam ser úteis para outras tarefas de aprendizado de máquina.

  34. Redes neurais autoencoder: essas redes neurais são projetadas para aprender uma representação compacta de dados de entrada, encontrando padrões ocultos na distribuição dos dados.

  35. Redes neurais geradoras: essas redes neurais são projetadas para gerar novos dados que sigam uma distribuição semelhante à dos dados de treinamento, o que requer a descoberta de padrões escondidos nos dados de entrada.

  36. Redes neurais de Kohonen (Self-Organizing Maps): essas redes neurais são projetadas para encontrar agrupamentos e padrões nos dados de entrada e criar um mapa topológico dos padrões identificados.

  37. Redes neurais de denoising: essas redes neurais são usadas para remover o ruído de dados de entrada, o que requer a identificação de padrões escondidos nos dados que não são ruído.

 

nao sei se tem repetidas, e ela falou que tem mais, mas a limitação de linhas dificulta

depois eu vou tentar editar para deixar os nomes das redes em negrito "talvez, ainda nao sei, se me der animo de fazer"

  • Like 3
Link to comment
Share on other sites

rapaz !

 

aí complica, muitas opções para escolher.

 

eu pretendo, em um momento futuro, na sequencia dos meus estudos com o Método de Turing, usar o perceptron, mas isto lá na 10ª geração !

 

no momento, comecei a analisar o caso da lotofácil, por meio da 7ª geração !

 

levei 18 meses, para sair da primeira até a quinta, e a sexta, precisei de 3 meses !!

 

não sei quanto tempo ainda demorarei para terminar a sétima, mas, vai evoluir até a décima.

 

sei que cada geração, é um conjunto de degraus que subo.

 

só espero que ao final da subida, não estar no topo de um daqueles templos asteca :) 

Link to comment
Share on other sites

2 horas atrás, Eolocos disse:

muitas opções para escolher.

sim, muita coisa, mas nao vamos usar todas

pelo que o gpt me explicou um primeiro ponto que temos que fazer é normalizar os dados

Citar
 

A normalização é uma técnica importante em machine learning, usada para transformar os dados em uma escala comum. Ela é frequentemente usada em redes neurais, por exemplo, para ajudar a evitar que os dados de entrada tenham uma influência excessiva sobre o treinamento do modelo.

Quando os dados possuem escalas diferentes, como no exemplo que você mencionou em que o valor mínimo é 1 e o valor máximo é 100, é difícil comparar diretamente esses dados com outros conjuntos de dados que possuem diferentes escalas. Normalizar os dados para uma escala comum, como a escala entre 0 e 1, pode tornar mais fácil comparar e combinar diferentes conjuntos de dados.

Além disso, a normalização também pode ajudar a acelerar o treinamento do modelo, já que os valores normalizados podem tornar a superfície de erro mais suave e, portanto, mais fácil de otimizar durante o processo de treinamento.

no caso seria

(X_norm = (X - X_min) / (X_max - X_min)),

exemplo da mega com a dezena 50

(50-1)/(60-1)

 

  • Like 1
Link to comment
Share on other sites

tem as funções de ativação,

sabe aquelas equações complicadas

tipo:

eq1

o gpt falou que é isso

Function sigmoid(x As Double) As Double
    sigmoid = 1 / (1 + Exp(-x))
End Function
Citar

Uma função de ativação é usada em uma rede neural para introduzir uma não-linearidade nas saídas dos neurônios. Sem a não-linearidade, uma rede neural seria apenas uma combinação linear de entradas e pesos, o que limitaria sua capacidade de modelar relacionamentos complexos entre as entradas e as saídas.

Ao introduzir uma função de ativação, a saída do neurônio é transformada em um valor não-linear. Isso permite que a rede neural modele relações mais complexas, como reconhecimento de padrões, classificação de imagens, detecção de anomalias, entre outros. Além disso, a função de ativação também ajuda a regularizar a rede neural, evitando overfitting (quando a rede neural se ajusta muito bem aos dados de treinamento e não generaliza bem para novos dados).

Existem muitas funções de ativação diferentes, cada uma com suas próprias vantagens e desvantagens em diferentes cenários. A escolha da função de ativação depende do tipo de problema que está sendo resolvido e da arquitetura da rede neural em si.

 

  • Like 1
Link to comment
Share on other sites

11 hours ago, Omesmo said:

sim, muita coisa, mas nao vamos usar todas

pelo que o gpt me explicou um primeiro ponto que temos que fazer é normalizar os dados

no caso seria

(X_norm = (X - X_min) / (X_max - X_min)),

exemplo da mega com a dezena 50

(50-1)/(60-1)

 

 

a normalização é algo comum a muitos processos estatísticos, usado mesmo em eletronica :)

 

10 hours ago, Omesmo said:

tem as funções de ativação,

sabe aquelas equações complicadas

tipo:

eq1

o gpt falou que é isso

Function sigmoid(x As Double) As Double
    sigmoid = 1 / (1 + Exp(-x))
End Function

 

 

a tal sigmóide provê ou +1 ou -1 em função da entrada, se me lembro de algo assim

Link to comment
Share on other sites

12 horas atrás, Omesmo disse:

sim, muita coisa, mas nao vamos usar todas

pelo que o gpt me explicou um primeiro ponto que temos que fazer é normalizar os dados

no caso seria

(X_norm = (X - X_min) / (X_max - X_min)),

exemplo da mega com a dezena 50

(50-1)/(60-1)

 

 

Olá apenas uma sugestão, e se usar a diferença entre o

sorteio e o valor esperado por posição*,

por exemplo da dupla sena:

 

V.e.m.*       = 07-15-22-29-36-44

conc 2488 = 12-27-33-36-44-49

 

Usar |12-07| ; |27-15| ; |33-22| ; |36-29| ; |44-36| ; |49-44|

 

Usar:  05-12-11-07-08-05

 

Talvez em módulo daí não se tem valores negativos.

 

Sds,

Sphgf

 

 

Link to comment
Share on other sites

4 horas atrás, Sphgf disse:

Talvez em módulo daí não se tem valores negativos.

esse é apenas um tipo de pré processamento de dados

  1. Imputação de dados faltantes: técnica utilizada para preencher os valores faltantes em um conjunto de dados, através da substituição desses valores por algum valor estimado ou calculado a partir dos dados existentes.

  2. Redução de dimensionalidade: técnica utilizada para reduzir a quantidade de variáveis em um conjunto de dados, de forma a facilitar o treinamento do modelo e evitar o fenômeno conhecido como "maldição da dimensionalidade". Algumas técnicas de redução de dimensionalidade são a Análise de Componentes Principais (PCA) e a Análise de Fatores.

  3. Seleção de características: técnica utilizada para selecionar as variáveis mais relevantes para o modelo, descartando as que não contribuem significativamente para a predição. Isso pode ajudar a melhorar a precisão do modelo e reduzir o tempo de treinamento.

  4. Normalização: técnica utilizada para ajustar os dados em uma escala comum, de forma a evitar que os dados com maior magnitude dominem os dados com menor magnitude durante o treinamento do modelo.

  5. Discretização: técnica utilizada para converter variáveis contínuas em variáveis discretas, agrupando os valores em intervalos ou categorias.

  6. Transformação de dados: técnica utilizada para transformar os dados de entrada, de forma a facilitar o treinamento do modelo ou melhorar a performance. Algumas técnicas de transformação de dados são a normalização por logaritmo e a normalização por raiz quadrada.

Citar

Essas são apenas algumas das técnicas de pré-processamento de dados mais comuns. A escolha da técnica adequada depende do tipo de dados e do problema a ser resolvido, e pode ser uma etapa crítica para obter bons resultados com modelos de aprendizado de máquina.

 

  • Like 2
Link to comment
Share on other sites

19 minutes ago, Omesmo said:

agora eu fiquei em duvida

é mais facil ganhar jogando aleatorio,

ou escolher entre tantas variaveis de processamento para tentar descobrir as dezenas do proximo sorteio?

🤔

 

entoces, que fazer ?

 

é aqui que entra em cena o matemático !

 

ele simplesmente, reduz e simplifica o problema !

 

quem sabe matemática, olha praquele bicho de 7 cabeças, diz pra ele:

 

" vc não tem 7 cabeças, isto é apenas um caso de múltiplas personalidades, e vc também não é tão grande assim, é apenas o teu ego do tamanho da inflação venezuelana !"

 

e simplesmente, transforma um dragão de 7 cabeças em um trevo de 3 folhas, o problema agora é simplesmente:

 

"bem me quer, mal me quer !"

 

quem não sabe matemática ( eu ), olha pra aquele bichão, treme as pernas e sai em busca de armadura, lança e espada.

 

no final, o bicho usa a lança como palito de dentes, após destroçar o "cavaleiro de armadura brilhante"

 

:) 

Link to comment
Share on other sites

Pois é...

 

Nunca vi alguem publicar alguma coisa para loterias usando Redes Neurais.

 

Já tentei até fazer um curso. Mas depois de muitas tentativas, SEM SUCESSO, dei uma parada.

 

Ainda estou vendo o DRAGÃO...rsrs

 

Pelo que andei lendo as LSTM são interessantes para uso com séries de dados temporais... Ajudariam a prever determinado valor com base na série de dados analisada.

 

Como usar com loterias é que pega (pra mim, por enquanto). Analisar o que e que tipo de dados fornecer.

 

Acho que está mais para bicho de sete cabeças... Não é só dragão não.

  • Like 2
Link to comment
Share on other sites

24 minutos atrás, DixieJoe disse:

Como usar com loterias é que pega (pra mim, por enquanto). Analisar o que e que tipo de dados fornecer.

esse é o intuito desse topico, estudarmos o passo a passo
acho que nesse ponto que o gpt  pode ajudar nos dando exemplos e respondendo a duvidas

 

 
Spoiler
como eu faria para ajustar os dados de entrada, por exemplo 1 data e numeros inteiros que representam os dados?

 

Se você tem uma sequência de dados que inclui datas e valores numéricos e deseja ajustá-los para uso como entrada em uma rede neural recorrente (RNN), há algumas etapas que você pode seguir:

  1. Converter a data em um formato numérico: A maioria das bibliotecas de processamento de dados e de deep learning em Python, como Pandas e Numpy, possuem funções para trabalhar com datas e horas. Você pode usar essas funções para converter a data em um formato numérico, como o número de dias desde uma data de referência ou o número de segundos desde o início de um ano.

  2. Normalizar os valores numéricos: É comum normalizar os valores numéricos para que eles estejam na mesma escala. Isso ajuda a rede neural a aprender mais rapidamente e pode melhorar sua precisão. Para normalizar os valores numéricos, você pode usar uma técnica como a normalização Z-score, que subtrai a média dos valores e divide pelo desvio padrão.

  3. Transformar os dados em sequências: Para usar a RNN, você precisa transformar os dados em uma sequência de entrada que possa ser passada para a rede. Isso pode ser feito criando janelas de tempo, onde cada janela inclui um intervalo de tempo fixo e os valores correspondentes. Por exemplo, se você deseja prever os valores para os próximos 7 dias, pode criar janelas de tempo de 7 dias e alimentá-las para a RNN.

  4. Dividir os dados em conjuntos de treinamento, validação e teste: Para treinar e avaliar sua rede neural, você precisa dividir seus dados em conjuntos de treinamento, validação e teste. O conjunto de treinamento é usado para treinar a rede, o conjunto de validação é usado para ajustar os hiperparâmetros da rede e o conjunto de teste é usado para avaliar a precisão final da rede.

  5. Converter os dados em tensores: Finalmente, você precisa converter seus dados em tensores que possam ser usados como entrada para a RNN. Bibliotecas como Numpy e Tensorflow têm funções para converter matrizes e sequências em tensores, que são adequados para serem usados como entrada na RNN.

  1.  

  • Like 1
Link to comment
Share on other sites

ola como a previsao do uso da matematica ja foi procado que vai até certo ponto  unas 70% da aposta, entao dentro dos 70% se voce nao achar os padroes basicos rotativos essenciais eles vao te engolir facil facil,

entao voce tem cruzar com estes padroes, cada loteria tem os seus, se voce encontra referencias voce começa 

 a sentir o cheiro do grande premio

  • Like 1
Link to comment
Share on other sites

46 minutes ago, Omesmo said:

esse é o intuito desse topico, estudarmos o passo a passo
acho que nesse ponto que o gpt  pode ajudar nos dando exemplos e respondendo a duvidas

 

 
  Hide contents
Para normalizar os valores numéricos, você pode usar uma técnica como a normalização Z-score, que subtrai a média dos valores e divide pelo desvio padrão.
  1.  

 

Z-score - pdf em portugues, pode ajudar !

 

https://geam.paginas.ufsc.br/files/2020/02/feature-scaling.pdf

 

 

Link to comment
Share on other sites

35 minutos atrás, Eolocos disse:

 

Z-score - pdf em portugues, pode ajudar !

 

https://geam.paginas.ufsc.br/files/2020/02/feature-scaling.pdf

 

 

kkk, é para tentar facilitar?
prefiro essa formula em escel
=(E6-MÉDIA(D5:F7))/DESVPADP(D5:F7)
 

Para calcular o desvio padrão em estatística, você pode seguir os seguintes passos:

    Calcule a média dos valores do conjunto de dados
    Para cada valor, subtraia a média e eleve o resultado ao quadrado
    Some todos os resultados da etapa anterior
    Divida o resultado obtido por n-1, onde n é o número de valores no conjunto de dados
    Tire a raiz quadrada do resultado obtido na etapa anterior para obter o desvio padrão

Em VBA, você pode criar uma função para calcular o desvio padrão usando esses passos. Aqui está um exemplo de função VBA que calcula o desvio padrão de um intervalo de células:

vbnet

Function desvioPadrao(intervalo As Range) As Double
    Dim media As Double
    Dim somaDosQuadrados As Double
    Dim n As Integer
    
    n = intervalo.Cells.Count
    
    For Each celula In intervalo
        somaDosQuadrados = somaDosQuadrados + ((celula.Value - media) ^ 2)
        media = media + celula.Value
    Next celula
    
    media = media / n
    desvioPadrao = (somaDosQuadrados / (n - 1)) ^ 0.5
End Function

 

  • Like 1
Link to comment
Share on other sites

38 minutes ago, Omesmo said:

kkk, é para tentar facilitar?
prefiro essa formula em escel
=(E6-MÉDIA(D5:F7))/DESVPADP(D5:F7)
 

Para calcular o desvio padrão em estatística, você pode seguir os seguintes passos:

    Calcule a média dos valores do conjunto de dados
    Para cada valor, subtraia a média e eleve o resultado ao quadrado
    Some todos os resultados da etapa anterior
    Divida o resultado obtido por n-1, onde n é o número de valores no conjunto de dados
    Tire a raiz quadrada do resultado obtido na etapa anterior para obter o desvio padrão

Em VBA, você pode criar uma função para calcular o desvio padrão usando esses passos. Aqui está um exemplo de função VBA que calcula o desvio padrão de um intervalo de células:

vbnet

Function desvioPadrao(intervalo As Range) As Double
    Dim media As Double
    Dim somaDosQuadrados As Double
    Dim n As Integer
    
    n = intervalo.Cells.Count
    
    For Each celula In intervalo
        somaDosQuadrados = somaDosQuadrados + ((celula.Value - media) ^ 2)
        media = media + celula.Value
    Next celula
    
    media = media / n
    desvioPadrao = (somaDosQuadrados / (n - 1)) ^ 0.5
End Function

 

 

 

:) 

 

sei que é complicado a princípio.

 

mas, entender os conceitos e teorias, por trás dos códigos, ajuda muito a procurar opções.

 

:) 

 

Link to comment
Share on other sites

dias atrás, passeando num sebo ( loja que vende livros usados ) vi um livro sobre análise multivariada de dados.

 

no fim de semana passado, ao ler um tópico aqui do fórum, sobre redes neurais,

 

@Joh2010

 

citou este assunto e me lembrei do livro.

 

voltei na loja, comprei o tal livro, e de quebra, tinha um outro lá, coleção Schaum - Estatística.

 

agora, é o caso, de começar a aprender estes conceitos, para usar como escudo contra o dragão :) 

Link to comment
Share on other sites

1 minuto atrás, Eolocos disse:

citou este assunto e me lembrei do livro.

 

voltei na loja, comprei o tal livro, e de quebra, tinha um outro lá, coleção Schaum - Estatística.

 

agora, é o caso, de começar a aprender estes conceitos, para usar como escudo contra o dragão

esses livros são bons para quando olhar para o dragão e der dor de barriga pelo nervosismo , levar eles para o banheiro e usar como calmante do nervosismo, o problema é que o banheiro passa a ser a nova area de descanso kkkkkk

  • Like 1
Link to comment
Share on other sites

o ruim do gpt é que tem limites de linhas, aí quando é algo mais complexo ele para no meio
tentei fazer um pedido para ver quais funções e suas interligações, ela cismou de declarar as variaveis aí parava no meio,
 

Spoiler


' Função para inicializar os pesos das conexões
Sub InicializarPesos(pesos as Variant)
    ' código para inicializar os pesos
End Sub

' Função para propagar para frente
Function PropagarParaFrente(entrada as Variant, pesos as Variant) as Variant
    Dim camadaEntrada as Variant
    Dim camadaEscondida as Variant
    Dim camadaSaida as Variant
    
    ' código para propagar a entrada para a camada escondida
    ' código para propagar a camada escondida para a camada de saída
    
    PropagarParaFrente = camadaSaida
End Function

' Função para propagar para trás
Sub PropagarParaTras(entrada as Variant, saidaEsperada as Variant, pesos as Variant)
    Dim camadaEntrada as Variant
    Dim camadaEscondida as Variant
    Dim camadaSaida as Variant
    Dim erroSaida as Variant
    
    ' código para propagar a entrada para a camada escondida
    ' código para propagar a camada escondida para a camada de saída
    ' código para calcular o erro de saída
    
    ' código para propagar o erro de saída para a camada de saída
    ' código para propagar o erro da camada de saída para a camada escondida
    ' código para atualizar os pesos das conexões
End Sub

' Função para treinar a rede
Sub TreinarRede(dadosTreinamento as Variant, saidaEsperada as Variant, numEpocas as Integer, taxaAprendizagem as Double)
    Dim pesos as Variant
    
    ' código para inicializar os pesos das conexões
    
    For epoca = 1 To numEpocas
        For i = 1 To UBound(dadosTreinamento, 1)
            entrada = dadosTreinamento(i, )
            saida = PropagarParaFrente(entrada, pesos)
            saidaEsperada = saidaEsperada(i, )
            PropagarParaTras(entrada, saidaEsperada, pesos)
        Next i
    Next epoca
End Sub

' Função para prever o próximo valor
Function PreverProximoValor(entrada as Variant, pesos as Variant) as Variant
    Dim proximoValor as Variant
    
    ' código para prever o próximo valor com base nas entradas e nos pesos
    
    PreverProximoValor

 


e como eu nao sabia se tinha mais eu pedi sem declaração das variaveis, só para saber os blocos necessaríssimos e como eles se ligavam

Spoiler


' Função para inicializar os pesos das conexões
Sub InicializarPesos(pesos)
    ' código para inicializar os pesos
End Sub

' Função para propagar para frente
Function PropagarParaFrente(entrada, pesos)
    ' código para propagar a entrada para a camada escondida
    ' código para propagar a camada escondida para a camada de saída
    ' retorna a camada de saída
End Function

' Função para propagar para trás
Sub PropagarParaTras(entrada, saidaEsperada, pesos)
    ' código para propagar a entrada para a camada escondida
    ' código para propagar a camada escondida para a camada de saída
    ' código para calcular o erro de saída
    ' código para propagar o erro de saída para a camada de saída
    ' código para propagar o erro da camada de saída para a camada escondida
    ' código para atualizar os pesos das conexões
End Sub

' Função para treinar a rede
Sub TreinarRede(dadosTreinamento, saidaEsperada, numEpocas, taxaAprendizagem)
    ' código para inicializar os pesos das conexões
    ' loop de épocas
        ' loop de dados de treinamento
            ' propagar para frente
            ' propagar para trás
        ' próximo dado de treinamento
    ' próxima época
End Sub

' Função para prever o próximo valor
Function PreverProximoValor(entrada, pesos)
    ' código para prever o próximo valor com base nas entradas e nos pesos
    ' retorna o próximo valor previsto
End Function

 

Citar
 

Esses são os blocos básicos para implementar uma rede LSTM simples em VBA. No entanto, dependendo do seu problema e das suas necessidades, pode ser necessário adicionar outras funções ou blocos de código para pré-processar os dados, avaliar a precisão da rede, salvar os pesos das conexões após o treinamento, entre outras coisas. Mas esses blocos são um bom ponto de partida para implementar uma rede LSTM em VBA.

 
Para salvar os pesos das conexões após o treinamento, você pode criar uma função chamada "SalvarPesos" que recebe como parâmetro o nome do arquivo em que os pesos serão salvos e a matriz de pesos da rede neural. Essa função deve ser chamada logo após o treinamento da rede neural ser concluído.

Aqui está a implementação da função "SalvarPesos" em VBA:

vbnet

Sub SalvarPesos(nomeArquivo, pesos)
    ' Abre o arquivo para escrever os pesos
    Open nomeArquivo For Output As #1

    ' Loop pelos pesos da rede neural
    For i = 1 To UBound(pesos, 1)
        For j = 1 To UBound(pesos, 2)
            ' Escreve o peso no arquivo
            Print #1, pesos(i, j)
        Next j
    Next i

    ' Fecha o arquivo
    Close #1
End Sub

Para chamar a função "SalvarPesos" após o treinamento da rede neural, você pode modificar a função "TreinarRede" para incluir a chamada da função "SalvarPesos". A função "TreinarRede" pode ser modificada da seguinte maneira:

vbnet

' Função para treinar a rede e salvar os pesos
Sub TreinarRedeESalvarPesos(dadosTreinamento, saidaEsperada, numEpocas, taxaAprendizagem, nomeArquivoPesos)
    ' código para inicializar os pesos das conexões
    ' loop de épocas
        ' loop de dados de treinamento
            ' propagar para frente
            ' propagar para trás
        ' próximo dado de treinamento
        ' Salva os pesos da rede neural
        SalvarPesos nomeArquivoPesos, pesos
    ' próxima época
End Sub

Agora, para treinar a rede neural e salvar os pesos após o treinamento, basta chamar a função "TreinarRedeESalvarPesos" passando o nome do arquivo em que os pesos serão salvos. Por exemplo:

kotlin

Sub Main()
    ' código para carregar os dados de treinamento e a saída esperada
    ' código para chamar a função TreinarRedeESalvarPesos
    TreinarRedeESalvarPesos dadosTreinamento, saidaEsperada, 100, 0.1, "pesos.txt"
End Sub

Observe que a função "TreinarRedeESalvarPesos" chama a função "SalvarPesos" para salvar os pesos da rede neural no arquivo "pesos.txt".


acho que assim é possivel pedir por cada bloco em separado para montar o projeto

ao que eu vi cada bloco é até simples , o problema é a complexidade do conjunto todo

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...