Tweet Share

Monte Carlo methods are a class of techniques for randomly sampling a probability distribution.

There are many problem domains where describing or estimating the probability distribution is relatively straightforward, but calculating a desired quantity is intractable. Isto pode ser devido a muitas razões, tais como a natureza estocástica do domínio ou um número exponencial de variáveis aleatórias.

Em vez disso, uma quantidade desejada pode ser aproximada utilizando a amostragem aleatória, referida como métodos Monte Carlo. Estes métodos foram inicialmente utilizados na altura em que os primeiros computadores foram criados e permanecem omnipresentes em todos os campos da ciência e engenharia, incluindo a inteligência artificial e a aprendizagem de máquinas.

Neste post, irá descobrir métodos Monte Carlo para a amostragem das distribuições de probabilidade.

Após a leitura deste post, saberá:

  • Muitas vezes, não podemos calcular uma quantidade desejada em probabilidade, mas podemos definir as distribuições de probabilidade para as variáveis aleatórias directa ou indirectamente.
  • Monte Carlo sampling a class of methods for randomly sampling from a probability distribution.
  • Monte Carlo sampling provides the foundation for many machine learning methods such as resampling, hyperparameter tuning, and ensemble learning.

P>Dê início ao seu projecto com o meu novo livro Probability for Machine Learning, incluindo tutoriais passo-a-passo e os ficheiros de código fonte Python para todos os exemplos.

Dê início ao seu projecto.

A Gentle Introduction to the Monte Carlo Sampling for Probability
Photo by Med Cruise Guide, alguns direitos reservados.

Overvisão

Este tutorial está dividido em três partes; elas são:

  1. Need for Sampling
  2. O que são os Métodos Monte Carlo?
  3. Exemplos de Métodos Monte Carlo

Need para Amostragem

Exemplos de Métodos Monte CarloExemplos de Métodos Monte Carlo

Need para Amostragem

Existem muitos problemas de probabilidade, e mais amplamente na aprendizagem de máquinas, onde não podemos calcular directamente uma solução analítica.

De facto, pode haver um argumento de que a inferência exacta pode ser intratável para a maioria dos modelos probabilísticos práticos.

Para a maioria dos modelos probabilísticos de interesse prático, a inferência exacta é intratável, pelo que temos de recorrer a alguma forma de aproximação.

– Página 523, Pattern Recognition and Machine Learning, 2006.

O cálculo desejado é tipicamente uma soma de uma distribuição discreta ou integral de uma distribuição contínua e é intratável de calcular. O cálculo pode ser intratável por muitas razões, tais como o grande número de variáveis aleatórias, a natureza estocástica do domínio, o ruído nas observações, a falta de observações, e muito mais.

Em problemas deste tipo, é muitas vezes possível definir ou estimar as distribuições de probabilidade para as variáveis aleatórias envolvidas, directa ou indirectamente através de uma simulação computacional.

Em vez de calcular a quantidade directamente, pode-se utilizar a amostragem.

Amostras fornece uma forma flexível de aproximar muitas somas e integrais a custo reduzido.

– Página 590, Deep Learning, 2016.

Amostras podem ser retiradas aleatoriamente da distribuição de probabilidade e utilizadas para aproximar a quantidade desejada.

Esta classe geral de técnicas de amostragem aleatória a partir de uma distribuição de probabilidade é referida como métodos Monte Carlo.

Quer aprender Probabilidade para Aprendizagem de Máquina

Faça agora o meu curso intensivo de 7 dias grátis por correio electrónico (com código de amostra).

Clique para se inscrever e também obter uma versão PDF Ebook gratuita do curso.

p>Download Your FREE Mini-Course

O que são métodos Monte Carlo?

Monte Carlo métodos, ou MC para abreviar, são uma classe de técnicas para amostragem aleatória de uma distribuição de probabilidade.

Existem três razões principais para usar os métodos Monte Carlo para amostrar aleatoriamente uma distribuição de probabilidade; são:

  • Densidade estimada, recolher amostras para aproximar a distribuição de uma função alvo.
  • Aproximar uma quantidade, tal como a média ou variância de uma distribuição.
  • Optimizar uma função, localizar uma amostra que maximiza ou minimiza a função alvo.

Os métodos de Monte Carlo são nomeados para o casino no Mónaco e foram inicialmente desenvolvidos para resolver problemas em física de partículas por volta da altura do desenvolvimento dos primeiros computadores e do projecto Manhattan para o desenvolvimento da primeira bomba atómica.

Esta é chamada uma aproximação Monte Carlo, nomeada em homenagem a uma cidade na Europa conhecida pelos seus casinos de jogo de peluche. As técnicas de Monte Carlo foram inicialmente desenvolvidas na área da física estatística – em particular, durante o desenvolvimento da bomba atómica – mas são agora amplamente utilizadas em estatística e aprendizagem de máquinas também.

– Página 52, Aprendizagem de Máquinas: A Probabilistic Perspective, 2012.

P>Desenhar uma amostra pode ser tão simples como calcular a probabilidade de um evento seleccionado aleatoriamente, ou pode ser tão complexo como executar uma simulação computacional, sendo esta última frequentemente referida como uma simulação de Monte Carlo.

Amostras múltiplas são recolhidas e utilizadas para aproximar a quantidade desejada.

Dada a lei dos grandes números das estatísticas, quanto mais ensaios aleatórios forem realizados, mais exacta será a quantidade aproximada.

… a lei dos grandes números indica que se as amostras x(i) forem i.i.d.., então a média converge quase certamente para o valor esperado

– Página 591, Deep Learning, 2016.

Como tal, o número de amostras permite controlar a precisão da quantidade que está a ser aproximada, muitas vezes limitada pela complexidade computacional do desenho de uma amostra.

Ao gerar amostras suficientes, podemos atingir o nível de precisão desejado. A questão principal é: como geramos eficientemente amostras a partir de uma distribuição de probabilidade, particularmente em dimensões elevadas?

– Página 815, Machine Learning: A Probabilistic Perspective, 2012.

Adicionalmente, dado o teorema do limite central, a distribuição das amostras formará uma distribuição Normal, cuja média pode ser tomada como a quantidade aproximada e a variância utilizada para fornecer um intervalo de confiança para a quantidade.

O teorema do limite central diz-nos que a distribuição da média , converge para uma distribuição normal Isto permite-nos estimar intervalos de confiança em torno da estimativa , utilizando a distribuição cumulativa da densidade normal.

– Página 592, Deep Learning, 2016.

Os métodos de Monte Carlo são definidos em termos da forma como as amostras são recolhidas ou das restrições impostas ao processo de amostragem.

Alguns exemplos de métodos de amostragem de Monte Carlo incluem: amostragem directa, amostragem importante, e amostragem de rejeição.

  • Amostragem directa. Amostragem da distribuição directa sem informação prévia.
  • Amostragem de Importância. Amostragem a partir de uma aproximação mais simples da distribuição alvo.
  • Amostragem de Rejeição. Amostragem a partir de uma distribuição mais ampla e considerando apenas amostras dentro de uma região da distribuição amostrada.

É um tópico enorme com muitos livros dedicados a ele. A seguir, vamos fazer a ideia da amostragem de Monte Carlo com alguns exemplos familiares.

Exemplos de Amostragem de Monte Carlo

Usamos os métodos Monte Carlo a toda a hora sem pensar nisso.

Por exemplo, quando definimos uma distribuição Bernoulli para uma moeda ao arremesso e simulamos o arremesso de uma moeda por amostragem a partir desta distribuição, estamos a realizar uma simulação Monte Carlo. Além disso, quando fazemos uma amostragem a partir de uma distribuição uniforme dos inteiros {1,2,3,4,5,6} para simular o lançamento de um dado, estamos a executar uma simulação Monte Carlo.

Estamos também a utilizar o método Monte Carlo quando recolhemos uma amostra aleatória de dados do domínio e estimamos a distribuição de probabilidade dos dados utilizando um histograma ou método de estimativa de densidade.

Existem muitos exemplos do uso de métodos Monte Carlo numa série de disciplinas científicas.

Por exemplo, os métodos Monte Carlo podem ser usados para:

  • Calcular a probabilidade de uma jogada de um adversário num jogo complexo.
  • Calcular a probabilidade de um evento climático no futuro.
  • Calcular a probabilidade de um acidente de viatura em condições específicas.

Os métodos são utilizados para abordar inferências difíceis em problemas de probabilidade aplicada, tais como a amostragem a partir de modelos gráficos probabilísticos.

Related é a ideia de métodos de Monte Carlo sequenciais utilizados em modelos Bayesianos que são frequentemente referidos como filtros de partículas.

A filtragem de partículas (PF) é um algoritmo de Monte Carlo, ou baseado em simulação, para inferência Bayesiana recorrente.

– Página 823, Machine Learning: A Probabilistic Perspective, 2012.

Monte Carlo methods are also pervasive in artificial intelligence and machine learning.

Muitas tecnologias importantes utilizadas para atingir objectivos de aprendizagem de máquinas são baseadas no desenho de amostras de alguma distribuição de probabilidade e na utilização destas amostras para formar uma estimativa Monte Carlo de alguma quantidade desejada.

– Página 590, Aprendizagem Profunda, 2016.

Proporcionam a base para estimar a probabilidade de resultados em problemas de inteligência artificial através de simulação, tais como a robótica. Mais simplesmente, os métodos de Monte Carlo são utilizados para resolver problemas de integração intratáveis, tais como disparar raios aleatórios no traçado de trajectórias para computação gráfica ao renderizar uma cena gerada por computador.

Na aprendizagem de máquinas, os métodos Monte Carlo fornecem a base para técnicas de reamostragem como o método bootstrap para estimar uma quantidade, tal como a precisão de um modelo num conjunto de dados limitado.

A bootstrap é uma técnica simples de Monte Carlo para aproximar a distribuição da amostragem. Isto é particularmente útil nos casos em que o estimador é uma função complexa dos verdadeiros parâmetros.

– Página 192, Machine Learning: A Probabilistic Perspective, 2012.

Amostras aleatórias de hiperparâmetros de modelos quando a afinação de um modelo é um método Monte Carlo, tal como os modelos de conjuntos utilizados para superar desafios como o tamanho limitado e o ruído numa pequena amostra de dados e a variância estocástica num algoritmo de aprendizagem.

  • Algoritmos de Amostragem.
  • Ajuste aleatório de hiperparâmetros.
  • Encontrar algoritmos de aprendizagem.

Monte Carlo métodos também fornecem a base para algoritmos de optimização aleatórios ou estocásticos, tais como a popular técnica de optimização de recozimento simulado.

algoritmos de recozimento simulado, dos quais o recozimento simulado é um exemplo, são utilizados em muitos ramos da ciência para estimar quantidades que são difíceis de calcular exactamente.

– Página 530, Inteligência Artificial: A Modern Approach, 3ª edição, 2009.

  • Stochastic optimization algorithms.

Worked Example of Monte Carlo Sampling

We can make Monte Carlo sampling concrete with a worked example.

Neste caso, teremos uma função que define a distribuição de probabilidade de uma variável aleatória. Utilizaremos uma distribuição gaussiana com uma média de 50 e um desvio padrão de 5 e retiraremos amostras aleatórias desta distribuição.

Façamos de conta que não sabemos a forma da distribuição de probabilidade para esta variável aleatória e queremos amostrar a função para ter uma ideia da densidade de probabilidade. Podemos retirar uma amostra de um determinado tamanho e traçar um histograma para estimar a densidade.

A função NumPy normal() pode ser utilizada para retirar aleatoriamente amostras de uma distribuição gaussiana com a média especificada (mu), desvio padrão (sigma), e tamanho da amostra.

Para tornar o exemplo mais interessante, repetiremos esta experiência quatro vezes com amostras de diferentes tamanhos. Seria de esperar que à medida que o tamanho da amostra aumenta, a densidade de probabilidade se aproximasse melhor da verdadeira densidade da função alvo, dada a lei dos grandes números.

O exemplo completo está listado abaixo.

A execução do exemplo cria quatro amostras de tamanhos diferentes e traça um histograma para cada.

Vemos que os tamanhos das amostras pequenas de 10 e 50 não capturam eficazmente a densidade da função alvo. Podemos ver que 100 amostras é melhor, mas não é antes de 1.000 amostras que vemos claramente o formato familiar do sino da distribuição de probabilidade gaussiana.

Isto realça a necessidade de retirar muitas amostras, mesmo para uma variável aleatória simples, e o benefício de uma maior precisão da aproximação com o número de amostras retiradas.

p>Histograma de Amostras de Monte Carlo de Tamanhos Diferentes da Função Alvo

Outras Leituras

Esta secção fornece mais recursos sobre o tópico, se estiver a procurar ir mais fundo.

Livros

  • Capítulo 29 Métodos de Monte Carlo, Teoria da Informação, Inferência e Algoritmos de Aprendizagem, 2003.
  • Capítulo 27 Amostragem, Raciocínio Bayesiano e Aprendizagem Mecânica, 2011.
  • Secção 14.5 Inferência Aproximada em Redes Bayesianas, Inteligência Artificial: A Modern Approach, 3ª edição, 2009.
  • li>Capítulo 23 Inferência Monte Carlo, Aprendizagem de Máquina: A Probabilistic Perspective, 2012.Li>Capítulo 11 Métodos de Amostragem, Reconhecimento de Padrões e Aprendizagem Mecânica, 2006.Li>Capítulo 17 Métodos Monte Carlo, Aprendizagem Profunda, 2016.

Artigos

  • Amostragem (estatística), Wikipedia.
  • Método Monte Carlo, Wikipedia.
  • Integração Monte Carlo, Wikipedia.
  • Amostragem de importância, Wikipedia.
  • Amostragem de rejeição, Wikipedia.

Resumo

Neste post, descobriu métodos Monte Carlo para amostragem de distribuições de probabilidade.

Especificamente, aprendeu:

  • li>Muitas vezes, não podemos calcular uma quantidade desejada em probabilidade, mas podemos definir as distribuições de probabilidade para as variáveis aleatórias directa ou indirectamente.
  • Monte Carlo sampling uma classe de métodos para amostragem aleatória a partir de uma distribuição de probabilidade.
  • Amostragem de Monte Carlo fornece a base para muitos métodos de aprendizagem de máquinas, tais como a reamostragem, a afinação de hiperparâmetros e a aprendizagem de conjuntos.

Tem alguma pergunta?
Ponha as suas questões nos comentários abaixo e farei o meu melhor para responder.

Ponha a mão na Probabilidade para a Aprendizagem de Máquinas!

Develop Your Understanding of Probability

…com apenas algumas linhas de código python

Descobre como no meu novo Ebook:
Probabilidade para Aprendizagem Automática

p>Proporciona tutoriais de auto-estudo e projectos ponta-a-ponta em:
Teoria Bayesiana, Optimização Bayesiana, Distribuições, Máxima Probabilidade, Cross-Entropy, Modelos de Calibração
e muito mais…

Finally Harness Uncertainty in Your Projects

Skip the Academics. Just Results.See What’s Inside

Tweet Share Share

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *