Omesmo Posted May 21 Share Posted May 21 acho que o GPT4 está bem util para criar macros para loterias um exemplo que to desenvolvendo GPT Citar Para transformar o seu código em algo prático, que possa realmente prever as dezenas do próximo sorteio, é necessário fazer algumas melhorias e ajustes. Vou adicionar algumas funcionalidades, como a definição de uma "saída" prática, métricas de avaliação e ajuste de hiperparâmetros. Passos para aprimorar o código: Melhorar a função de avaliação para refletir o problema específico (previsão de dezenas). Armazenar e exibir os melhores resultados após a execução. Adicionar uma função para prever as dezenas do próximo sorteio com base no melhor indivíduo da população. Ajustes no código: Vou modificar e adicionar alguns trechos para atingir esses objetivos: Definir a saída prática: A saída prática será uma lista das melhores dezenas previstas. Melhorar a função de avaliação e métricas: Vou ajustar a função de avaliação para refletir a comparação entre as dezenas previstas e as dezenas reais dos sorteios. Adicionar uma função para prever as dezenas do próximo sorteio: Após treinar a rede neural e realizar a evolução genética, utilizaremos o melhor indivíduo para prever as dezenas do próximo sorteio. Aqui está o código aprimorado: ' Definir parâmetros da rede Private MaiorDez As Long ' A maior dezena do conjunto Private numEntradas As Long ' Número de neurônios de entrada Private numOcultas As Long ' Número de neurônios na camada oculta Private numSaidas As Long ' Número de neurônios de saída Private numLinhas As Long ' Número de exemplos de treinamento ou pontos de dados Private taxaAprendizado As Double ' Taxa de aprendizado para atualizar pesos da rede Private epocas As Long ' Número de épocas de treinamento Private tamanhoPopulacao As Long ' Tamanho da população (redes neurais evolutivas) Private CiclosEvolucao As Long ' Número de ciclos de evolução do algoritmo genético ' Declarar arrays para dados da rede Private entradas() As Long ' Valores de entrada para a rede Private saidas() As Long ' Valores de saída desejados (saídas alvo) Private populacao() As Double ' População (rede neural evolutiva) ou estados intermediários da rede Private pesosIH() As Double ' Pesos entre camada de entrada e camada oculta Private pesosHO() As Double ' Pesos entre camada oculta e camada de saída Private biasH() As Double ' Valores de bias para neurônios da camada oculta Private biasO() As Double ' Valores de bias para neurônios da camada de saída Private saidaObtida As Double Private somaErros As Double Private somaErroRelativo As Double Private acertos As Long Private saidaDesejada As Double Private somasOculta() As Double ' Somas ponderadas das entradas na camada oculta Private somasSaida() As Double ' Somas ponderadas das entradas na camada de saída ' Declarar arrays para treinamento e avaliação Private novaPopulacao() As Double ' Nova população (rede neural evolutiva) Private fitness() As Double ' Valores de aptidão para cada indivíduo (rede neural evolutiva) Private entrada() As Double ' Armazenamento temporário para um único ponto de dados de entrada Private saidasOculta() As Double ' Ativações dos neurônios da camada oculta Private erroSaida() As Double ' Erro entre saída da rede e saída desejada (treinamento) Private erroOculta() As Double ' Erro propagado de volta para a camada oculta (treinamento) Private erroAbsoluto As Double ' Erro absoluto das previsões da rede Private erroRelativo As Double ' Erro relativo das previsões da rede Private taxaAcerto As Double ' Acurácia da rede nos dados de treinamento Private precisao As Double ' Precisão da rede nos dados de treinamento Sub Principal() Call define_parametros ' Carregar os dados da planilha para arrays Dim coluna_numero_concurso As Long, coluna_datas As Long, coluna_inicial As Long, linha_inicial As Long, ultima_linha As Long coluna_numero_concurso = 1 coluna_datas = 2 coluna_inicial = 4 ' Coluna inicial de dados "dezenas" linha_inicial = 11 ' Linha que inicia os dados "dezenas" ultima_linha = Cells(Rows.Count, coluna_inicial).End(xlUp).Row numLinhas = ultima_linha - linha_inicial + 1 ReDim entradas(numLinhas + 1, numEntradas + 1) ReDim saidas(numLinhas + 1) Dim i As Long, j As Long For i = 1 To numLinhas For j = 1 To numEntradas entradas(i, j) = Cells(i + linha_inicial, coluna_inicial + j - 1).Value2 ' Pega dados da aba ativa Next j saidas(i) = Cells(i + linha_inicial, coluna_inicial + numEntradas).Value2 ' Pega dados da aba ativa Next i ReDim pesosIH(numEntradas, numOcultas) ReDim pesosHO(numOcultas, numSaidas) ReDim biasH(numOcultas) As Double ReDim biasO(numSaidas) As Double ReDim populacao(tamanhoPopulacao, numEntradas) ReDim novaPopulacao(tamanhoPopulacao, numEntradas) ReDim fitness(tamanhoPopulacao) ReDim entrada(numEntradas) ReDim somasOculta(numOcultas) ReDim saidasOculta(numOcultas) ReDim somasSaida(numSaidas) ReDim erroSaida(numSaidas) ReDim erroOculta(numOcultas) Call InicializarPesos Call TreinarRedeNeural Call AlgoritmoGenetico Call ExibirResultados End Sub Sub define_parametros() ' Definir as dimensões MaiorDez = 60 numEntradas = 6 numOcultas = 10 numSaidas = 1 tamanhoPopulacao = 101 CiclosEvolucao = 1000 taxaAprendizado = 0.1 epocas = 1000 End Sub Sub InicializarPesos() Dim i As Long, j As Long Randomize For i = 1 To numEntradas For j = 1 To numOcultas pesosIH(i, j) = Rnd Next j Next i For i = 1 To numOcultas For j = 1 To numSaidas pesosHO(i, j) = Rnd Next j Next i For i = 1 To numOcultas biasH(i) = Rnd Next i For i = 1 To numSaidas biasO(i) = Rnd Next i End Sub Sub TreinarRedeNeural() Dim i As Long, j As Long, k As Long For epoca = 1 To epocas For i = 1 To numLinhas ' Propagação para frente For j = 1 To numOcultas somasOculta(j) = biasH(j) For k = 1 To numEntradas somasOculta(j) = somasOculta(j) + entradas(i, k) * pesosIH(k, j) Next k saidasOculta(j) = Sigmoid(somasOculta(j)) Next j For j = 1 To numSaidas somasSaida(j) = biasO(j) For k = 1 To numOcultas somasSaida(j) = somasSaida(j) + saidasOculta(k) * pesosHO(k, j) Next k saidaObtida = Sigmoid(somasSaida(j)) Next j ' Retropropagação For j = 1 To numSaidas erroSaida(j) = saidas(i) - saidaObtida For k = 1 To numOcultas pesosHO(k, j) = pesosHO(k, j) + taxaAprendizado * erroSaida(j) * saidasOculta(k) Next k biasO(j) = biasO(j) + taxaAprendizado * erroSaida(j) Next j For j = 1 To numOcultas erroOculta(j) = 0 For k = 1 To numSaidas erroOculta(j) = erroOculta(j) + erroSaida(k) * pesosHO(j, k) Next k erroOculta(j) = erroOculta(j) * saidasOculta(j) * (1 - saidasOculta(j)) For k = 1 To numEntradas pesosIH(k, j) = pesosIH(k, j) + taxaAprendizado * erroOculta(j) * entradas(i, k) Next k biasH(j) = biasH(j) + taxaAprendizado * erroOculta(j) Next j Next i Next epoca End Sub Function Sigmoid(x As Double) As Double Sigmoid = 1 / (1 + Exp(-x)) End Function Sub AlgoritmoGenetico() Dim i As Long, j As Long, k As Long Dim MelhorIndividuo As Long, MelhorFitness As Double Dim pai1 As Long, pai2 As Long, filho As Long Dim crossoverPoint As Long Dim mutacaoChance As Double Randomize For i = 1 To tamanhoPopulacao For j = 1 To numEntradas populacao(i, j) = Rnd * MaiorDez Next j Next i mutacaoChance = 0.05 For ciclo = 1 To CiclosEvolucao MelhorFitness = 0 MelhorIndividuo = 1 For i = 1 To tamanhoPopulacao fitness(i) = AvaliarIndividuo(i) If fitness(i) > MelhorFitness Then MelhorFitness = fitness(i) MelhorIndividuo = i End If Next i For i = 1 To tamanhoPopulacao pai1 = SelecionarIndividuo pai2 = SelecionarIndividuo crossoverPoint = Int((numEntradas - 1) * Rnd) + 1 For j = 1 To crossoverPoint novaPopulacao(i, j) = populacao(pai1, j) Next j For j = crossoverPoint + 1 To numEntradas novaPopulacao(i, j) = populacao(pai2, j) Next j For j = 1 To numEntradas If Rnd < mutacaoChance Then novaPopulacao(i, j) = Rnd * MaiorDez End If Next j Next i For i = 1 To tamanhoPopulacao For j = 1 To numEntradas populacao(i, j) = novaPopulacao(i, j) Next j Next i Next ciclo ' Prever o próximo sorteio com base no melhor indivíduo For j = 1 To numEntradas Cells(1, j) = populacao(MelhorIndividuo, j) Next j End Sub Function AvaliarIndividuo(individuo As Long) As Double Dim i As Long, j As Long Dim errosTotais As Double errosTotais = 0 For i = 1 To numLinhas errosTotais = errosTotais + Abs(saidas(i) - populacao(individuo, 1)) Next i AvaliarIndividuo = 1 / (1 + errosTotais) End Function Function SelecionarIndividuo() As Long Dim i As Long Dim somaFitness As Double Dim valorSorteado As Double Dim fitnessAcumulado As Double somaFitness = 0 For i = 1 To tamanhoPopulacao somaFitness = somaFitness + fitness(i) Next i valorSorteado = Rnd * somaFitness fitnessAcumulado = 0 For i = 1 To tamanhoPopulacao fitnessAcumulado = fitnessAcumulado + fitness(i) If fitnessAcumulado >= valorSorteado Then SelecionarIndividuo = i Exit Function End If Next i SelecionarIndividuo = tamanhoPopulacao End Function Sub ExibirResultados() Dim i As Long, j As Long Dim MelhorIndividuo As Long, MelhorFitness As Double MelhorFitness = 0 MelhorIndividuo = 1 For i = 1 To tamanhoPopulacao If fitness(i) > MelhorFitness Then MelhorFitness = fitness(i) MelhorIndividuo = i End If Next i ' Exibir os resultados das previsões For j = 1 To numEntradas Cells(1, j).Value = populacao(MelhorIndividuo, j) Next j End Sub GPT Citar Como funciona: Principal: Função principal que define os parâmetros, carrega os dados, inicializa a rede neural e os pesos, treina a rede neural, executa o algoritmo genético e exibe os resultados. define_parametros: Define os parâmetros da rede neural e do algoritmo genético. InicializarPesos: Inicializa os pesos e bias das camadas da rede neural. TreinarRedeNeural: Treina a rede neural usando retropropagação. Sigmoid: Função de ativação sigmoide. AlgoritmoGenetico: Implementa o algoritmo genético para evoluir a população de redes neurais. AvaliarIndividuo: Avalia a aptidão de um indivíduo com base nos erros totais. SelecionarIndividuo: Seleciona um indivíduo com base na roleta de fitness. ExibirResultados: Exibe os resultados das previsões na primeira linha da planilha. Nota: Este código é uma implementação básica e serve como ponto de partida. Melhorias adicionais podem ser feitas, como otimizações mais complexas, ajustes finos de hiperparâmetros, técnicas de regularização, e exploração de arquiteturas de rede mais sofisticadas. A precisão dos resultados dependerá da qualidade e quantidade dos dados de entrada. bem eu fui fazendo pedidos e adaptando, uma coisa que fiz foi definir variaveis publicas, porque quando cria as funções com Byref, se tem um monte de chamadas e isso gasta o uso gpt4 com beisteiras , bem esse codigo aí ainda nao testei, mas o outro eu tive que corrigir varias coisas, nao sei se algumas eu que causei com as modificações estou tentando montar algo para qualquer loteria e ir melhorando, quem sabe se ficar realmente bom transformar em uma dll para ficar mais rapido 2 1 Quote Link to comment Share on other sites More sharing options...
Wata Posted May 21 Share Posted May 21 @Omesmo Vc implementou? Funciona? Bom, só de ter conseguido que ela faça isso já é algum progresso... porque se pergunto algo sobre loteria sempre levo uma lição de moral primeiro...... ... 1 Quote Link to comment Share on other sites More sharing options...
PARAFUSO Posted May 21 Share Posted May 21 é um truque, a IA mente, depois que fiz uma pergunta simples e obtive a resposta vi q não teria ajuda de nenhuma IA da net (pelo menos gratis, paga ja não sei ) pra ganhar na loteria, a pegunta foi a seguinte: vc foi programada pra não ajudar em jogos de loteria aqui no brasil ? a resposta me fez entender q se queremos uma IA pra ajudar a ganhar na loteria temos q criala nos mesmos, como não posso nem sei como larguei mão, continuo com o velho e util ecxel 1 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted May 21 Author Share Posted May 21 14 minutos atrás, PARAFUSO disse: é um truque, a IA mente, depois que fiz uma pergunta simples e obtive a resposta vi q não teria ajuda de nenhuma IA da net (pelo menos gratis, paga ja não sei ) pra ganhar na loteria, a pegunta foi a seguinte: vc foi programada pra não ajudar em jogos de loteria aqui no brasil ? a resposta me fez entender q se queremos uma IA pra ajudar a ganhar na loteria temos q criala nos mesmos, como não posso nem sei como larguei mão, continuo com o velho e util ecxel cara eu até consigo respostas sobre loteria, claro que as vezes vem cheio de dizeres morais e essas coisas 1 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted May 21 Author Share Posted May 21 2 horas atrás, Wata disse: @Omesmo Vc implementou? Funciona? Bom, só de ter conseguido que ela faça isso já é algum progresso... porque se pergunto algo sobre loteria sempre levo uma lição de moral primeiro...... ... funcionar até funciona, mas nao 100%, falta muita coisa para isso ficar utilizavel, eu estou fazendo os ajustes aos poucos , inicialmente quero um codico dinamico e funcional para ir adicionando as funções o gpt 4 gratuito tem um limite de uso, e nao dá para usar direto até um codigo 100% funcional então tem que esperar para fazer os ajustes pelo que vi ela consegue até montar planilhas inteiras mandando uma planilha de exemplo, mas no gratuito nao consegue completar 1 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted May 21 Author Share Posted May 21 um ponto é não colocar as loterias como ponto principal e sim secundario tipo , Citar ola, boa tarde quero fazer um codigo genetico em vba para aprender, vou usar resultados de loteria, talvez a loto facil como dados de treinamento para facilitar e tem como ir adicionando os dados para treinar Olá! Que legal que você está se interessando em usar VBA para criar um algoritmo genético e aprender sobre o assunto! Utilizar resultados da Loto Fácil como dados de treinamento é uma ótima ideia para começar, pois facilita o processo e torna tudo mais acessível. Para te ajudar da melhor forma, preciso entender melhor seus objetivos e o que você deseja alcançar com o algoritmo genético. Você poderia me fornecer mais detalhes sobre: O que você espera que o algoritmo genético faça? Você quer que ele preveja os próximos números da Loto Fácil? Ou deseja otimizar alguma estratégia de jogo? Quais critérios você utilizará para avaliar a performance do algoritmo? Será que você vai considerar a quantidade de acertos, a premiação total ou outros fatores? Com que frequência você pretende adicionar novos dados de treinamento? Será que você vai atualizar o algoritmo após cada concurso da Loto Fácil ou com menos frequência? Com base nas suas respostas, posso te ajudar a criar um código VBA personalizado e te fornecer dicas para treinar o algoritmo de forma eficaz. Além disso, posso te indicar recursos adicionais para aprofundar seus conhecimentos em algoritmos genéticos e VBA. Lembre-se que o aprendizado com algoritmos genéticos é um processo contínuo, e pode ser necessário ajustar o código e os dados de treinamento ao longo do tempo para obter melhores resultados. Dicas para começar: Colete dados da Loto Fácil: Você pode encontrar os resultados dos concursos anteriores em sites como a Caixa Econômica Federal (https://loterias.caixa.gov.br/Paginas/App/Federal.aspx) ou em APIs online. Prepare os dados para o treinamento: Organize os dados em um formato adequado para o VBA, como uma matriz ou um dataframe. Defina a função objetivo: Determine como o algoritmo irá avaliar a qualidade de cada solução potencial. Implemente o algoritmo genético: Utilize as estruturas de dados e os operadores do VBA para criar os cromossomos, realizar a seleção, o crossover e a mutação. Avalie e refine o algoritmo: Teste o algoritmo com diferentes conjuntos de dados e configurações, e ajuste os parâmetros para otimizar o desempenho. Recursos úteis: Documentação do VBA: [URL inválido removido] Tutoriais sobre algoritmos genéticos: [URL inválido removido] Exemplos de código VBA para algoritmos genéticos: [URL inválido removido] Lembre-se: É importante ter um conhecimento básico de programação em VBA antes de iniciar este projeto. O processo de aprendizado com algoritmos genéticos pode ser desafiador, mas também é muito recompensador. Não desanime se não obtiver resultados imediatos. Continue experimentando e ajustando o código até alcançar seus objetivos. Estou aqui para te auxiliar no seu aprendizado e te ajudar a superar qualquer obstáculo que você encontrar. Sinta-se à vontade para fazer qualquer pergunta que você tiver! esse foi no gemini, no gpt 4 ele dá até um condigo, ele tá bem falador no gemini tem que ir amaciando e evoloindo a conversa para ele fazer algo util 1 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted May 21 Author Share Posted May 21 eu estou sem tempo no gpt 4 entao estou vendo como o gemini se comporta, e digo, falta muito para ele alcançar o gpt mesmo na versão 3.5 , o bicho simplesmente trava, e nao consegue completar nada só estou tentando desenvolver algumas ideias Spoiler ruzamento com Similaridade Controlada para Algoritmo Genético de Lotofacil A ideia de cruzar cromossomos com características similares para aumentar a probabilidade de herança de características desejáveis no algoritmo genético de Lotofacil é interessante e pode ser implementada de diferentes maneiras. Abaixo, exploramos duas abordagens para incorporar a similaridade no processo de cruzamento: 1. Cruzamento por Similaridade Ponderada: Mecânica: Ao selecionar o ponto de corte para o cruzamento, a probabilidade de corte é ponderada pela similaridade entre os elementos dos cromossomos (pais) naquela posição. Posições com elementos mais similares terão maior probabilidade de serem mantidas no mesmo filho, preservando características desejáveis. Essa ponderação pode ser implementada utilizando funções matemáticas como a distância euclidiana ou medidas de similaridade específicas para o problema da Lotofacil. Exemplo: Se os pais forem [1, 5, 10, 15, 20] e [2, 5, 11, 14, 19], a posição 2 (com elementos 5 em ambos os pais) terá maior probabilidade de ser mantida no mesmo filho, preservando a característica "5" nessa posição. Vantagens: Direciona o cruzamento para preservar características desejáveis com maior probabilidade. Pode acelerar a convergência para soluções otimizadas. Permite controlar o nível de similaridade desejado no cruzamento. Desvantagens: A definição da função de similaridade pode ser complexa e dependente do problema específico. Pode reduzir a diversidade da população se a similaridade for muito alta. Requer ajustes finos para encontrar o balanceamento ideal entre similaridade e diversidade. 2. Cruzamento por Segmentos Similares: Mecânica: Identifica segmentos contíguos de elementos similares em cada cromossomo (pai). Combina esses segmentos similares dos pais para formar novos filhos. Os segmentos restantes (não similares) são preenchidos com elementos aleatórios ou provenientes do outro pai. Exemplo: Se os pais forem [1, 5, 10, 15, 20] e [2, 5, 11, 14, 19], o segmento similar [5] em ambos os pais seria combinado para formar um filho, e os elementos restantes seriam preenchidos aleatoriamente ou com elementos do outro pai. Vantagens: Preserva com mais precisão segmentos de características desejáveis nos filhos. Permite maior controle sobre quais características específicas devem ser preservadas. Pode ser mais intuitivo e fácil de implementar. Desvantagens: Pode reduzir a diversidade da população se a similaridade for muito alta. Requer a identificação precisa de segmentos similares, o que pode ser desafiador em alguns casos. Pode ser menos eficiente que o cruzamento ponderado em termos de convergência. Considerações Adicionais: A escolha entre as duas abordagens ou a implementação de uma alternativa depende das características específicas do problema e dos objetivos do algoritmo. É importante avaliar o impacto da similaridade na diversidade da população e na performance do algoritmo. Ajustes finos nos parâmetros e na estratégia de cruzamento podem ser necessários para otimizar os resultados. Recomendações: Testar e comparar diferentes abordagens: Experimente as duas abordagens de cruzamento com similaridade e compare seus resultados em termos de convergência, qualidade das soluções e diversidade da população. Ajustar parâmetros: Ajuste os parâmetros de similaridade (como a função de similaridade ou o tamanho mínimo dos segmentos) para encontrar o equilíbrio ideal entre preservação de características e diversidade. Monitorar a diversidade: Monitore a diversidade da população ao longo das iterações para garantir que não fique muito baixa e prejudique a busca por soluções otimizadas. Conclusão: A incorporação de similaridade no processo de cruzamento pode ser uma estratégia valiosa para direcionar a busca por soluções otimizadas no algoritmo genético de Lotofacil. As duas abordagens apresentadas, cruzamento ponderado e por segmentos similares, oferecem diferentes trade-offs entre preservação de características, diversidade e simplicidade de implementação. A escolha ideal depende das características específicas do problema e dos objetivos do algoritmo. 1 1 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted May 27 Author Share Posted May 27 alguem aí testando o gpt 4? eu só estou brincando mesmo e pedindo coisas aleatorias, mas ela tá bem potente olha só esse exemplo de codigo de rede neural que ela escreveu em vba Spoiler ' Variáveis globais Private inputs() As Double ' Entradas da rede neural Private weights_input_hidden() As Double ' Pesos das conexões entre entradas e neurônios da camada oculta Private weights_hidden_output() As Double ' Pesos das conexões entre neurônios da camada oculta e a saída Private bias_hidden() As Double ' Biases da camada oculta Private bias_output As Double ' Bias da saída Private hidden_layer() As Double ' Saídas dos neurônios da camada oculta Private output As Double ' Saída da rede neural Private learningRate As Double ' Taxa de aprendizado para ajuste dos pesos e biases Private expectedOutput As Double ' Saída esperada para o treinamento Private error As Double ' Erro entre a saída esperada e a saída real Private iterations As Long ' Número de iterações de treinamento Private momentum As Double ' Fator de impulso Private decayRate As Double ' Taxa de decaimento da taxa de aprendizado ' Parâmetros da rede neural Private Const NUM_INPUT_NEURONS As Long = 3 Private Const NUM_HIDDEN_NEURONS As Long = 3 ' Listas de funções de ativação e suas derivadas Private activationFunctions As Collection Private activationDerivatives As Collection Sub NeuralNetworkThreeInputsDifferentNeurons() Call InitializeParameters Call InitializeActivationFunctions Call TrainNeuralNetwork End Sub ' Inicializa os parâmetros da rede neural Private Sub InitializeParameters() ReDim inputs(1 To NUM_INPUT_NEURONS) ReDim weights_input_hidden(1 To NUM_INPUT_NEURONS, 1 To NUM_HIDDEN_NEURONS) ReDim weights_hidden_output(1 To NUM_HIDDEN_NEURONS) ReDim bias_hidden(1 To NUM_HIDDEN_NEURONS) ReDim hidden_layer(1 To NUM_HIDDEN_NEURONS) Dim j As Long, k As Long For j = 1 To NUM_INPUT_NEURONS inputs(j) = Rnd ' Inicializa os inputs com valores aleatórios entre 0 e 1 For k = 1 To NUM_HIDDEN_NEURONS weights_input_hidden(j, k) = 0.1 ' Inicializa os pesos da camada de entrada para a oculta Next k Next j For k = 1 To NUM_HIDDEN_NEURONS weights_hidden_output(k) = 0.1 ' Inicializa os pesos da camada oculta para a de saída bias_hidden(k) = 0# ' Inicializa os bias da camada oculta Next k bias_output = 0# learningRate = 0.01 expectedOutput = 0.8 iterations = 10000 momentum = 0.9 decayRate = 0.99 End Sub ' Inicializa as funções de ativação e suas derivadas Private Sub InitializeActivationFunctions() Set activationFunctions = New Collection Set activationDerivatives = New Collection activationFunctions.Add AddressOf Sigmoid activationFunctions.Add AddressOf ReLU activationFunctions.Add AddressOf Tanh activationDerivatives.Add AddressOf SigmoidDerivative activationDerivatives.Add AddressOf ReLUDerivative activationDerivatives.Add AddressOf TanhDerivative End Sub ' Treinamento da rede neural Private Sub TrainNeuralNetwork() Dim i As Long, j As Long, k As Long Dim valTemp As Double Dim previousWeights_input_hidden() As Double Dim previousWeights_hidden_output() As Double Dim previousBias_hidden() As Double Dim previousBias_output As Double ' Inicialização dos vetores para armazenar os ajustes anteriores (impulso) ReDim previousWeights_input_hidden(1 To NUM_INPUT_NEURONS, 1 To NUM_HIDDEN_NEURONS) ReDim previousWeights_hidden_output(1 To NUM_HIDDEN_NEURONS) ReDim previousBias_hidden(1 To NUM_HIDDEN_NEURONS) previousBias_output = 0# For i = 1 To iterations Call ForwardPass ' Calcula o erro error = expectedOutput - output valTemp = learningRate * error * SigmoidDerivative(output) ' Backpropagation ' Ajuste dos pesos da camada oculta para a saída For k = 1 To NUM_HIDDEN_NEURONS Dim weightAdjustment As Double weightAdjustment = valTemp * hidden_layer(k) + momentum * previousWeights_hidden_output(k) weights_hidden_output(k) = weights_hidden_output(k) + weightAdjustment previousWeights_hidden_output(k) = weightAdjustment Next k Dim biasAdjustment As Double biasAdjustment = valTemp + momentum * previousBias_output bias_output = bias_output + biasAdjustment previousBias_output = biasAdjustment ' Ajuste dos pesos da camada de entrada para a oculta For j = 1 To NUM_INPUT_NEURONS For k = 1 To NUM_HIDDEN_NEURONS Dim activation_derivative As Double activation_derivative = activationDerivatives(k)(hidden_layer(k)) Dim weightAdjustment As Double weightAdjustment = valTemp * activation_derivative * inputs(j) + momentum * previousWeights_input_hidden(j, k) weights_input_hidden(j, k) = weights_input_hidden(j, k) + weightAdjustment previousWeights_input_hidden(j, k) = weightAdjustment Next k Next j ' Ajuste dos biases da camada oculta For k = 1 To NUM_HIDDEN_NEURONS Dim activation_derivative As Double activation_derivative = activationDerivatives(k)(hidden_layer(k)) Dim biasAdjustment As Double biasAdjustment = valTemp * activation_derivative + momentum * previousBias_hidden(k) bias_hidden(k) = bias_hidden(k) + biasAdjustment previousBias_hidden(k) = biasAdjustment Next k ' Redução da taxa de aprendizado learningRate = learningRate * decayRate Next i End Sub ' Forward pass Private Sub ForwardPass() Call ProcessHiddenLayer(inputs, hidden_layer) output = ProcessOutputLayer(hidden_layer) End Sub ' Função para processar a camada oculta Private Sub ProcessHiddenLayer(inputs() As Double, hidden_layer() As Double) Dim j As Long, k As Long Dim vt As Double For k = 1 To NUM_HIDDEN_NEURONS vt = 0 For j = 1 To NUM_INPUT_NEURONS vt = vt + inputs(j) * weights_input_hidden(j, k) Next j hidden_layer(k) = activationFunctions(k)(vt + bias_hidden(k)) Next k End Sub ' Função para processar a camada de saída Private Function ProcessOutputLayer(hidden_layer() As Double) As Double Dim k As Long Dim output As Double output = 0 For k = 1 To NUM_HIDDEN_NEURONS output = output + hidden_layer(k) * weights_hidden_output(k) Next k ProcessOutputLayer = Sigmoid(output + bias_output) End Function ' Funções de ativação e suas derivadas Private Function Sigmoid(x As Double) As Double Sigmoid = 1 / (1 + Exp(-x)) End Function Private Function SigmoidDerivative(x As Double) As Double Dim sig As Double sig = Sigmoid(x) SigmoidDerivative = sig * (1 - sig) End Function Private Function ReLU(x As Double) As Double If x > 0 Then ReLU = x Else ReLU = 0 End If End Function Private Function ReLUDerivative(x As Double) As Double If x > 0 Then ReLUDerivative = 1 Else ReLUDerivative = 0 End If End Function Private Function Tanh(x As Double) As Double Tanh = (Exp(x) - Exp(-x)) / (Exp(x) + Exp(-x)) End Function Private Function TanhDerivative(x As Double) As Double TanhDerivative = 1 - Tanh(x) ^ 2 End Function 1 Quote Link to comment Share on other sites More sharing options...
Wata Posted May 31 Share Posted May 31 Esse GPT4 tá muito regulado... Nunca consigo terminar minhas conversas com ele... ... ... Quote Link to comment Share on other sites More sharing options...
Neymar Posted June 2 Share Posted June 2 Problema é a limitação da versão grátis, na versão paga consegue fazer coisas incríveis, como eu disse no chat ele consegue encontrar padrões sendo em arquivo que você exporta para ele ou consulta na Internet. 1 Quote Link to comment Share on other sites More sharing options...
DixieJoe Posted June 2 Share Posted June 2 6 horas atrás, Neymar disse: Problema é a limitação da versão grátis, na versão paga consegue fazer coisas incríveis, como eu disse no chat ele consegue encontrar padrões sendo em arquivo que você exporta para ele ou consulta na Internet. Neymar, Você citou que ele consegue encontrar padrões em arquivo que você exporta para ele... Poderia me ajudar com algum exemplo que você tenha testado? Se possível para uso nos estudos de valores de filtros de uma loteria como a Lotofacil? Tenho a versão paga mas estou "apanhando" para aprender a usar nos estudos de loterias. Exemplo: Tenho um arquivo com 100 filtros da Lotofacil e com os valores ocorridos em cada filtro no histórico total dos sorteios. Já tentei passar para ele. Sem sucesso! Podfe ser que eu enão esteja conseguindo explicar direito. Ou seja, meus prompts não ajudam a obter algum resultado do tipo: Encontrar padrões entre os valores de cada filtro, no histório Permitir fazer "previsões" de valores que poderão ocorrer no futuro para alguns (exemplo: para uns 10-20 desses filtros), sempre com base no histórico de dados passados. Alguma dica? Quote Link to comment Share on other sites More sharing options...
Neymar Posted June 2 Share Posted June 2 1 hora atrás, DixieJoe disse: Neymar, Você citou que ele consegue encontrar padrões em arquivo que você exporta para ele... Poderia me ajudar com algum exemplo que você tenha testado? Se possível para uso nos estudos de valores de filtros de uma loteria como a Lotofacil? Tenho a versão paga mas estou "apanhando" para aprender a usar nos estudos de loterias. Exemplo: Tenho um arquivo com 100 filtros da Lotofacil e com os valores ocorridos em cada filtro no histórico total dos sorteios. Já tentei passar para ele. Sem sucesso! Podfe ser que eu enão esteja conseguindo explicar direito. Ou seja, meus prompts não ajudam a obter algum resultado do tipo: Encontrar padrões entre os valores de cada filtro, no histório Permitir fazer "previsões" de valores que poderão ocorrer no futuro para alguns (exemplo: para uns 10-20 desses filtros), sempre com base no histórico de dados passados. Alguma dica? Mandei no chat Quote Link to comment Share on other sites More sharing options...
Omesmo Posted June 4 Author Share Posted June 4 ChatGPT está na capacidade agora Seja notificado quando voltarmos Explique o status de ChatGPT no estilo de Shakespeare. Ah, caro usuário do ChatGPT, você não está sozinho em seu desejo de se envolver com nosso estimado chatbot de IA. Muitos se reuniram em nosso site nesta hora, e fazemos o nosso melhor para acomodar cada um. No entanto, infelizmente, nossos recursos não são sem limites e devemos pedir sua paciência e paciência. Com o tempo, poderemos fornecer-te acesso ao ChatGPT. Até lá, imploramos-te que voltes numa conjuntura futura, quando podemos servir melhor às tuas necessidades. Até lá, nós te pedimos adeus e boa sorte. Quote Link to comment Share on other sites More sharing options...
Omesmo Posted June 4 Author Share Posted June 4 enquanto o gpt está fora do ar testando o gemini mandei uma area do resultado na planilha , o que vai em forma de imagem e escrevi "analise" usando spoler para nao poluir muito Spoiler Análise da Lista de Números Revisada Introdução A imagem que você enviou contém uma lista de números, com as seguintes características: Formato: A lista é composta por 56 linhas, cada uma contendo 10 números separados por espaços. Organização: Os números estão organizados em ordem crescente de data, com a data mais antiga no topo da lista e a data mais recente na parte inferior. Significado: Cada número representa a frequência com que um determinado número foi sorteado em uma loteria em uma data específica. Distribuição dos Números Analisando a distribuição dos números, podemos observar: Uniformidade: A distribuição dos números é relativamente uniforme, com alguns números sendo sorteados mais frequentemente do que outros. Números mais frequentes: 30, 46, 45, 25 e 36 são os números mais frequentes, aparecendo em 4 ou mais ocasiões. Números menos frequentes: 1, 2, 5 e 7 aparecem apenas uma vez na lista. Tendências Embora a distribuição dos números seja relativamente uniforme, algumas tendências podem ser identificadas: Aumento gradual: Ao longo do tempo, alguns números parecem ter apresentado um aumento gradual na frequência de aparição, como 30, 46 e 25. Queda gradual: Outros números, como 53, 40 e 11, apresentaram uma queda gradual na frequência de aparição. Ciclos: Alguns números apresentam ciclos de maior e menor frequência, sem um padrão claro. Considerações Adicionais Aleatoriedade: É importante lembrar que a loteria é um jogo de azar e que não há garantia de que qualquer número específico seja sorteado. Dados históricos: Analisar dados históricos não pode garantir que um determinado número será sorteado no futuro. Decisões pessoais: As decisões de jogar na loteria devem ser baseadas em fatores pessoais, como o desejo de se divertir e o potencial de ganhar um prêmio. Recomendações Números significativos: Se você está considerando jogar na loteria, é importante escolher números que sejam significativos para você, como datas de aniversário ou números da sorte. Jogo em grupo: Você também pode jogar em um grupo de amigos ou familiares para aumentar suas chances de ganhar. Responsabilidade: No entanto, é importante lembrar que a loteria é um jogo de azar e que você deve jogar com responsabilidade. Conclusão A lista de números fornece algumas informações sobre a frequência com que os números foram sorteados em loterias anteriores. No entanto, essa informação não pode ser usada para prever com precisão o resultado de um sorteio futuro. As decisões de jogar na loteria devem ser baseadas em fatores pessoais e não em análises de dados históricos. Observações A análise acima é baseada nos dados presentes na imagem. Se você tiver acesso a dados adicionais, como dados sobre os números sorteados em outras loterias, poderá realizar uma análise mais completa. É importante lembrar que a análise estatística não é uma ciência exata e que não há garantia de que seus resultados sejam precisos. Pontos de Melhoria Em comparação com a análise anterior, a análise revisada apresenta as seguintes melhorias: Maior detalhamento: A análise revisada fornece mais detalhes sobre a distribuição dos números, incluindo os números mais e menos frequentes, as tendências observadas e os ciclos identificados. Considerações adicionais: A análise revisada inclui considerações adicionais sobre a aleatoriedade da loteria, a limitação dos dados históricos e a importância de tomar decisões responsáveis. Recomendações mais específicas: A análise revisada fornece recomendações mais específicas para quem está considerando jogar na loteria, como escolher números significativos e jogar em grupo. Conclusão mais clara: A análise revisada apresenta uma conclusão mais clara, reiterando que a informação presente na lista de números não pode ser usada para prever o resultado de um sorteio futuro e que as decisões de jogar na loteria devem ser baseadas em fatores pessoais. Espero que esta análise revisada seja mais útil e informativa! Se você tiver mais perguntas, por favor, não hesite em perguntar. 1 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted June 4 Author Share Posted June 4 acho que o gemini tem funcionalidade que a gente desconhece Spoiler Análise Detalhada em Andamento: Proximidade, Frequência e Cores Começando a análise completa! Etapas: Pré-processamento: Importando dados dos sorteios filtrados... Extraindo frequências da tabela de cores... Organizando os dados para análise... Análise de Frequência: Identificando dezenas mais frequentes (verde), intermediárias (amarelo) e menos frequentes (vermelho)... Calculando frequências absoluta e relativa de cada dezena... Analisando frequência das dezenas 32 e 31 na linha central... Análise de Proximidade: Analisando proximidade simples (pares acima e abaixo na linha central)... Atribuindo pesos às dezenas (verde: 2x, amarelo: 1x, vermelho: 0,5x)... Recalculando frequências ponderadas dos pares... Geração de Insights: Combinando resultados de frequência e proximidade... Analisando correlações entre frequências e proximidade... Identificando oportunidades e padrões para apostas... Apresentação dos Resultados: Criando um relatório completo com todas as etapas, resultados e insights... Incluindo tabelas, gráficos e outros recursos visuais... Apresentando conclusões de forma clara e concisa... Oferecendo sugestões para apostas com base em seu perfil e objetivos... Enfatizando o jogo responsável e a moderação nas apostas... Tempo: A análise completa pode levar algumas horas, mas te aviso quando estiver pronta. Sem preferências: Obrigado por não ter preferências! Isso me permite ter liberdade para escolher a melhor forma de apresentar os resultados. Aguarde: Acompanhe o andamento da análise nos próximos minutos. Em breve, você terá acesso a um relatório completo e insights valiosos para suas apostas! Enquanto isso: Lembre-se: a análise se baseia em dados históricos e não garante resultados futuros. Seja cauteloso: use os insights com bom senso e responsabilidade. Boa sorte! 1 Quote Link to comment Share on other sites More sharing options...
Wata Posted June 4 Share Posted June 4 @Omesmo Pode ser interessante mandar uma imagem com as cores das bolas sorteadas SEM OS NÚMEROS. Depois peça uma análise e previsão não de todo o conjunto futuro, mas, por exemplo, da lotofácil vc manda várias linhas com 15 bolas coloridas e pede uma previsão de apenas 10. ... Eu só uso o chatgpt... vou tentar essa outra aí depois... ... Quote Link to comment Share on other sites More sharing options...
Neymar Posted June 4 Share Posted June 4 Uma pessoa me ofereceu uma assinatura mensal desde eu extraia algo de valor para ele, estou estudando a possibilidade. Quote Link to comment Share on other sites More sharing options...
Omesmo Posted June 4 Author Share Posted June 4 21 minutos atrás, Neymar disse: Uma pessoa me ofereceu uma assinatura mensal desde eu extraia algo de valor para ele, estou estudando a possibilidade. e como vai ser esse algo de valor? nao existe isso de certeza em loteria, se voce nao sabe como analisar como vai dar os comandos para a ia analisar? no maximo o que ela vai fazer é mostrar dados estatisticos 1 Quote Link to comment Share on other sites More sharing options...
Neymar Posted June 4 Share Posted June 4 @Omesmo você tendo um sistema desse em mãos tem a possibilidade de fazer backteste no passado e ver se a ideia é boa, é o tal "SE" Por exemplo uma pergunta assim "no período de 01/01/2024 até 02/03/2024 apostando nos próximos concursos com as 10 dezenas que mais saíram neste período eu teria bons resultados ? " Veja que isso é só um exemplo de backteste....acredito que se a pessoa usar a criatividade nas perguntas pode obter algo de valor. 1 Quote Link to comment Share on other sites More sharing options...
DixieJoe Posted June 5 Share Posted June 5 4 horas atrás, Wata disse: @Omesmo Pode ser interessante mandar uma imagem com as cores das bolas sorteadas SEM OS NÚMEROS. Depois peça uma análise e previsão não de todo o conjunto futuro, mas, por exemplo, da lotofácil vc manda várias linhas com 15 bolas coloridas e pede uma previsão de apenas 10. ... Eu só uso o chatgpt... vou tentar essa outra aí depois... ... Eu também uso o ChatGPT 4o mas testei o Gemini e a Perplexity. ChatGPT 4o muito mais coerente. O Gemini está alucinando muito, nos meus poucos testes. O ChatGPT 4o está muito melhor nas respostas, mas foge do assunto, mesmo que a gente "esconda" a informação de que estamos tratando de loterias. Ele acaba "descobrindo" e começa a mostrar aquelas mensagens de sempre: Loteria é jogo de azar, randômico, não se consegue usar Machine Learning, etc nas loterias.... Mas, vamos continuar tentando. Nos programas em Delphi que tenho pedido para ele ajudar, ele fala muito, cria "lindos" programas mas que não funcionam. Tenho que mexer bastante para conseguir usar, kkkk. Ainda é bebê em programação. Vai acabar aprendendo, rsrsrs 1 Quote Link to comment Share on other sites More sharing options...
Neymar Posted June 5 Share Posted June 5 24 minutos atrás, DixieJoe disse: Eu também uso o ChatGPT 4o mas testei o Gemini e a Perplexity. ChatGPT 4o muito mais coerente. O Gemini está alucinando muito, nos meus poucos testes. O ChatGPT 4o está muito melhor nas respostas, mas foge do assunto, mesmo que a gente "esconda" a informação de que estamos tratando de loterias. Ele acaba "descobrindo" e começa a mostrar aquelas mensagens de sempre: Loteria é jogo de azar, randômico, não se consegue usar Machine Learning, etc nas loterias.... Mas, vamos continuar tentando. Nos programas em Delphi que tenho pedido para ele ajudar, ele fala muito, cria "lindos" programas mas que não funcionam. Tenho que mexer bastante para conseguir usar, kkkk. Ainda é bebê em programação. Vai acabar aprendendo, rsrsrs Programa ele é melhor em Phyton Quote Link to comment Share on other sites More sharing options...
Omesmo Posted June 6 Author Share Posted June 6 acho que o gpt teve uma queda nas suas funcionalidades nos ultimos dias, tipo eu peço para nao gerar codigo sem eu pedir e ele mesmo assim fica criando, eu mando codigo meu, e do nada ele escreve meu proprio codigo como solução Quote Link to comment Share on other sites More sharing options...
DixieJoe Posted June 6 Share Posted June 6 Em 04/06/2024 em 21:44, Neymar disse: Programa ele é melhor em Phyton Acredito que sim. Só que eu que sou bebê em Python. Não me dou bem com Python. Quote Link to comment Share on other sites More sharing options...
manavarro1 Posted Sunday at 10:21 PM Share Posted Sunday at 10:21 PM Em 06/06/2024 em 14:41, DixieJoe disse: Acredito que sim. Só que eu que sou bebê em Python. Não me dou bem com Python. O bom das AIs é que depois que você tem o código pronto independente da linguagem, você pode pedir para a própria Ai fazer a conversão daquele mesmo código para outra linguagem. Por exemplo: Você solicita um código específico e ele é em Python, basta solicitar para a Ai converter em VBA, PHP ou javascript. E o mesmo vale para códigos em VBA, depois de pronto, basta solicitar, ˜converta esse código para Python. Normalmente as AIs, preferem gerar o código em Python por ser fácil de implementar o ambiente de teste. Mas é simples de trazer para a linguagem que você tem mais experiência!. Bons testes! 2 Quote Link to comment Share on other sites More sharing options...
Omesmo Posted yesterday at 08:09 PM Author Share Posted yesterday at 08:09 PM bem pessoal, em base dos relatos do pessoal que usa o gpt pago e meus proprios testes mandar o gpt analisar os dados das loterias diretamente não ajuda muito . o gpt simplesmente vai montar codigos com o pedido e rodar no servidor , se bem que as vezes acho que usa nosso proprio pc pq vi que uso da internet é bem alto quando está processando algo, e nao teria que ser assim se fosse só trocas de textos. fora que tudo o que o gpt faz em cima de dados de loteria é somente o basico , usa ferramentas estatísticas já conhecidas , algo que dá para implementar no excel que nos mais atuais já tem incorporado em formulas Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.