Etiqueta de mercado ou boas maneiras em um campo minado - página 42

 
Neutron >> :

O Matcad permite visualizar o processo de contagem em qualquer etapa. Experiência.

Posso dar uma palavrinha sobre isso? Eu só tenho gráficos quando todos os cálculos estão completos.

 

Eu também :-(

O que eu quis dizer é que você pode exibir qualquer informação de seu interesse e apresentá-la de uma forma adequada para análise posterior.

 
Você escreveu em algum lugar que ao longo do vetor de treinamento a rede aprende a reconhecer apenas a referência n+1. Isto deve ser entendido como significando que para N épocas a posição do dado de treinamento não se move? Na verdade eu o fiz (naquela listagem onde havia um monte de funções diferentes), ou seja, durante todo o erro vetorial foi calculado como TEST-OUT, onde TEST foi a n+1ª amostra. Agora, nesta implementação, TEST é a contagem que segue a última (maior) entrada. Ou seja, ele é deslocado em todo o setor de d+1º para n+1º. Poderia haver aqui um erro?
 

Espere um minuto.

Fornecemos um vetor de dados de comprimento d para a entrada do NS, onde d é o número de entradas de informação da grade (sem contar o offset). Na SAÍDA da grade, para treiná-la, alimentamos a contagem de d+1. Os pesos são aleatórios nesta etapa. Nesta etapa, obtivemos um delta para a correção de cada vetor. Lembre-se disso (não corrija nada). Mova-se por uma medida e repita o procedimento. Adicionar a correção e seus quadrados separadamente. Repetir o procedimento três vezes (sem correção de pesos). Finalmente, a primeira vez que corrigimos todos os pesos, esta é a PRIMEIRA época de aprendizagem. Agora, comece tudo de novo com os mesmos dados, mas comece com os pesos já encontrados. No final, pesos corretos, esta é a SEGUNDA época do aprendizado. Faça-o 100 vezes (por exemplo), o que faz 100 épocas de treinamento. Isso é tudo. A rede está pronta para fazer uma previsão. Todo o vetor de dados com a última contagem é alimentado a ele e nós recebemos a previsão. Depois que a contagem real (não prevista) chegar, recicle a rede novamente, com a randomização dos pesos.

 
Então não há erro.
 

Discussão interessante:) Neutron, a propósito, você ainda não respondeu minha pergunta sobre os pesos iniciais afinal de contas? Você só falou sobre como se reciclar na rede. Mas, mesmo sem isso, se você reeducar a rede pelo menos uma vez, ela terá um erro e até mesmo um erro significativo. Estou falando de minha experiência com backprop:). Na verdade, só estou interessado nesta questão, tudo o mais na técnica de grade não é importante. Comitês de redes, como você vê, e é necessário, talvez seja possível ajustar os pesos inicialmente, para que a rede estivesse perto do mínimo global no início do treinamento, para que os comitês simplesmente não fossem necessários?

 
paralocus писал(а) >>
Então não há erro.

À medida que me movo de época em época, eu empurro cada peso para cima com um "push-up" tão grande:

Isto evita que os pesos rastejem para a área de saturação e os mantém na faixa +/-5 durante o treinamento.

Registrado escreveu >>

Neutron, a propósito, você ainda não respondeu minha pergunta sobre os pesos iniciais? Você só falou sobre como se reciclar na rede. Mas mesmo sem isso, se você treinar a rede pelo menos uma vez, ela terá um erro e até mesmo um erro significativo. Estou falando de minha experiência com backprop:). Na verdade, só estou interessado nesta questão, tudo o mais na técnica de grade não é importante. Comitês de redes, como você olha para isso, e é necessário, talvez você possa de alguma forma ajustar os pesos inicialmente, para que a rede esteja próxima do mínimo global no início do treinamento, para que os comitês não sejam necessários?

Eu randomizo os pesos iniciais com um valor aleatório distribuído sobre uma prateleira na faixa +/-1. Eu faço isso em cada contagem. A reciclagem da grade em cada etapa em média encontra exatamente o mínimo global e esta é uma vantagem da reciclagem em cada etapa, em comparação com uma grade treinada de uma vez por todas. Pode acidentalmente atingir um buraco local ali e todas as suas previsões serão inadequadas. Neste caso, é realmente importante buscar maneiras de otimizar o ponto de partida para a balança. Eu não resolvi este problema.

Quanto ao comprometimento de redes, isso é algo útil, mas intensivo em recursos. Podemos mostrar que simplesmente aumentar o número de neurônios em uma camada oculta é em essência um compromisso, mas mais intensivo em recursos do que a versão clássica, mas mais poderoso por causa da não-linearidade integrada dos membros do compromisso. É aqui que você deve experimentar.

 
Neutron >> :

À medida que me movo de época em época, eu empurro cada peso para cima com um "push-up" tão grande:

Isto evita que os pesos se espalhem na área de saturação e os mantém na faixa +/-5 enquanto aprendem.

Eu simplesmente comprimo o intervalo ao normalizar não a partir de [-1;1], mas a partir de [-0,9;0,9], o efeito é o mesmo, sem saturação. Ou seja, um pouco diferente, os coeficientes de ponderação iniciais no processo de ajuste de peso podem simplesmente não alcançar os valores opimais devido à chamada credulidade da função. Para ser honesto, estou lutando com isso. E provavelmente você também não resolveu este problema, por isso é difícil conseguir algo que valha a pena sair do mercado com um backprop, mesmo que a base de provas seja boa para modelagem.

 
Neutron >> :

Eu randomizo os pesos iniciais com um valor aleatório distribuído em uma faixa de prateleira de +/-1. Eu faço isso a cada contagem regressiva. A grade, a reciclagem em cada etapa, em média encontra exatamente o mínimo global e esta é uma vantagem da reciclagem em cada etapa, em comparação com a grade treinada de uma vez por todas. Pode acidentalmente atingir um buraco local ali e todas as suas previsões serão inadequadas. Neste caso, é realmente importante procurar maneiras de otimizar o ponto de partida para a balança. Eu não resolvi este problema.

Quanto ao comprometimento de redes, isso é algo útil, mas intensivo em recursos. Podemos mostrar que simplesmente aumentar o número de neurônios em uma camada oculta é em essência um compromisso, mas mais intensivo em recursos do que a versão clássica, mas mais poderoso por causa da não-linearidade integrada dos membros do compromisso. Você precisa experimentar aqui.

Isto é o que estraga tudo:). A propósito, como resultado de minhas observações, a melhor randomização de pesos que aprende rapidamente a malha está no intervalo [-0,07; +0,07]. Eu não sei por que é este o caso:)

 
registred писал(а) >>

Eu simplesmente comprimo o intervalo ao normalizar não a partir de [-1;1], mas a partir de [-0,9;0,9], o efeito é o mesmo, não há saturação. Quero dizer, um pouco diferente, os coeficientes de ponderação iniciais no processo de ajuste de pesos podem simplesmente não alcançar os valores opimais devido à chamada credulidade da função. Para ser honesto, estou lutando com isso. E provavelmente você também não resolveu este problema, por isso é difícil conseguir algo que valha a pena no mercado com retroalimentação, mesmo que a base de prova seja boa para modelagem.

Deus cuidará do homem certo! O procedimento de retropromoção não é difícil, e o aprendizado NS não sofre - é um método eficaz.

Quanto a não alcançar valores ótimos, isso é puro bluff para nossas BPs. Eu entendo se você estiver prevendo uma onda sinusoidal! - Então sim - há valores ótimos. Mas o que são os que estão no mercado? Agora o ótimo está lá, e no próximo passo (que você está prevendo), ele está lá... e você o tem procurado "aqui" com todas as suas forças. Em resumo, não existe um problema preciso de localização, e ele é resolvido satisfatoriamente através de reciclagem em cada etapa.