Na especificação do modelo, identificação, graus de liberdade e regularização

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Eu me diverti muito esta semana, revisitando esta postagem do blog (simulação de Monte Carlo de um modelo de taxas de juros de dois fatores com o ESGtoolkit) que escrevi alguns anos atrás em 2014 – que de alguma forma gerou uma onda de calor. Este post de 2020 é sobre modelo especificação, identificação, graus de liberdade e regularização. A primeira parte está em Simulação de Monte Carlo para precificação financeirae a segunda parte sobre otimização em redes neurais de aprendizagem profunda. Não vou tirar muitas conclusões aqui, mas vou deixar você tirar as suas. Claro, fique à vontade para alcançar se algo parece / soa errado para você. Essa ainda é a melhor maneira de lidar com problemas.

Simulação de um modelo de taxas curtas G2 ++

Vamos começar carregando ESGtoolkit para a primeira parte deste post:

# In R console
suppressPackageStartupMessages(library(ESGtoolkit))

Entrada do modelo G2 ++ parâmetros:

# Observed maturities
u 

G2 ++ função de simulação (HCSPL significa interpolação Hermite Cubic Spline da curva de rendimento):

# Function of the number of scenarios
simG2plus 

Simulações de G2 ++ para 4 tipos de conjuntos de parâmetros:

r.HCSPL 

Estocástico fatores de desconto derivadas de simulações de taxas curtas:

deltat_r 

Preços (observado vs Monte Carlo para os 4 exemplos anteriores):

# Observed market prices
horizon 

Parcelas observado preços vs preços de Monte Carlo:


par(mfrow=c(4, 2))

ESGtoolkit::esgplotbands(r.HCSPL, xlab = 'time', ylab = 'short rate', 
                         main="short rate simulations n for example 1")
plot(marketprices, col = "blue", type = 'l', 
     xlab = "time", ylab = "prices", main = "Prices for example 1 n (observed vs Monte Carlo)")
points(montecarloprices.HCSPL, col = "red")

ESGtoolkit::esgplotbands(r.HCSPL2, xlab = 'time', ylab = 'short rate', 
                         main="short rate simulations n for example 2")
plot(marketprices, col = "blue", type = 'l', 
     xlab = "time", ylab = "prices", main = "Prices for example 2 n (observed vs Monte Carlo)")
points(montecarloprices.HCSPL2, col = "red")

ESGtoolkit::esgplotbands(r.HCSPL3, xlab = 'time', ylab = 'short rate', 
                         main="short rate simulations n for example 3")
plot(marketprices, col = "blue", type = 'l', 
     xlab = "time", ylab = "prices", main = "Prices for example 3 n (observed vs Monte Carlo)")
points(montecarloprices.HCSPL3, col = "red")

ESGtoolkit::esgplotbands(r.HCSPL4, xlab = 'time', ylab = 'short rate', 
                         main="short rate simulations n for example 4")
plot(marketprices, col = "blue", type = 'l', 
     xlab = "time", ylab = "prices", main = "Prices for example 4 n (observed vs Monte Carlo)")
points(montecarloprices.HCSPL4, col = "red")

imagem-título-aqui

O que nós observar nesses gráficos, tanto em simulações quanto em preços? O que acontecerá se adicionarmos um terceiro fator para este modelo, ou seja, mais três parâmetros; um G3 ++ / qualquer outro hidra?

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Otimização em redes neurais de aprendizagem profunda

Sobre um tipo diferente de pergunta / problema, mas ainda sobre o assunto da especificação do modelo, identificação, graus de liberdade e regularização: Redes neurais de aprendizagem profunda. Algumas pessoas sugerem que, se você continuar adicionando parâmetros (graus de liberdade?) A esses modelos, poderá ainda obter uma boa generalização. Bem, tem uma foto que eu gosto muito:

Leia Também  Criando relatórios do MS Word usando o pacote oficial

imagem-título-aqui

Quando otimizamos a função de perda nos modelos de redes neurais de aprendizado profundo, provavelmente usamos descida de gradiente, que é rápido e escalável. Ainda assim, não importa o quão sofisticado seja o procedimento de descida de gradiente que estamos usando, provavelmente ficaremos presos a um mínimo local – porque a função de perda raramente é convexa.

imagem-título-aqui

Preso é um termo bastante infeliz aqui, porque não é um problema real, mas uma maneira indireta de evitar o excesso de treinamento. Além disso, em nosso procedimento de descida de gradiente, ajustamos o número de épocas (número de iterações na descida / subida), a taxa de aprendizado (com que rapidez rolamos na descida / subida), além do abandono (abandono aleatório de algumas nós nas camadas das redes), etc. Essas também são maneiras de evitar aprender demais, interromper a otimização relativamente cedo e preservar a capacidade do modelo de generalizar. Eles regularizam o modelo, enquanto os milhões de nós da rede servem como graus de liberdade. Esse é um problema diferente do primeiro que examinamos, com objetivos diferentes, mas … ainda sobre a especificação do modelo, identificação, graus de liberdade e regularização.

Para aqueles que estão trabalhando em casa por causa do COVID-19, eu recomendo isso livro sobre equilíbrio entre vida profissional e pessoal, que eu literalmente devorei há alguns meses: REMOTE: Office Not Required (e não, eu não sou pago para promover este livro).

Nota: Atualmente, estou procurando um show. Você pode me contratar no Malt ou me enviar um email: thierry dot moudiki às pm me dot. Eu posso fazer estatísticas descritivas, preparação de dados, engenharia de recursos, calibração de modelos, treinamento e validação e interpretação de resultados de modelos. Sou fluente em Python, R, SQL, Microsoft Excel, Visual Basic (entre outros) e francês. Meu resumo? Aqui!

Leia Também  RcppArmadillo 0.9.870.2.0 | R-bloggers



Se você chegou até aqui, por que não inscreva-se para atualizações do site? Escolha seu sabor: e-mail, Twitter, RSS ou facebook …



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br