Quizás el concepto, por qué se usa y un ejemplo.
Quizás el concepto, por qué se usa y un ejemplo.
Respuestas:
Primero, necesitamos entender qué es una cadena de Markov. Considere el siguiente ejemplo del clima de Wikipedia. Suponga que el clima en cualquier día puede clasificarse en dos estados solamente: soleado y lluvioso. En base a la experiencia pasada, sabemos lo siguiente:
Como el clima del día siguiente es soleado o lluvioso, se deduce que:
Del mismo modo, dejemos:
Por lo tanto, se deduce que:
Los cuatro números anteriores se pueden representar de manera compacta como una matriz de transición que representa las probabilidades de que el clima se mueva de un estado a otro de la siguiente manera:
Podríamos hacer varias preguntas cuyas respuestas siguen:
P1: Si el clima es soleado hoy, ¿cuál es el clima probable mañana?
A1: Dado que no sabemos con certeza qué va a suceder, lo mejor que podemos decir es que hay un posibilidades de que sea soleado y un que llueva.10 %
P2: ¿Qué tal dos días a partir de hoy?
A2: predicción de un día: soleado, lluvioso. Por lo tanto, dentro de dos días:10 %
El primer día puede estar soleado y al día siguiente también puede estar soleado. Las posibilidades de que esto ocurra son: .
O
El primer día puede ser lluvioso y el segundo día puede ser soleado. Las posibilidades de que esto ocurra son: .
Por lo tanto, la probabilidad de que el clima sea soleado en dos días es:
Del mismo modo, la probabilidad de que llueva es:
En álgebra lineal (matrices de transición), estos cálculos corresponden a todas las permutaciones en las transiciones de un paso al siguiente (soleado a soleado ( ), soleado a lluvioso ( ), lluvioso a soleado ( ) o lluvioso a lluvioso ( )) con sus probabilidades calculadas:S 2 R R 2 S R 2 R
En la parte inferior de la imagen vemos cómo calcular la probabilidad de un estado futuro ( o ) dadas las probabilidades (función de masa de probabilidad, ) para cada estado (soleado o lluvioso) en el tiempo cero (ahora o ) como una simple multiplicación de matrices.t + 2 P M F t 0
Si se mantiene la previsión de un tiempo como este se dará cuenta de que con el tiempo el pronóstico ésimo día, donde es muy grande (por ejemplo ), se instala a las probabilidades siguientes 'equilibrio':n 30
y
En otras palabras, su pronóstico para el día -ésimo y la día -ésimo siguen siendo los mismos. Además, también puede comprobar que las probabilidades de "equilibrio" no dependen del clima actual. Obtendría el mismo pronóstico para el clima si comienza asumiendo que el clima de hoy es soleado o lluvioso.n + 1
El ejemplo anterior solo funcionará si las probabilidades de transición de estado satisfacen varias condiciones que no discutiré aquí. Pero, observe las siguientes características de esta cadena de Markov 'agradable' (agradable = las probabilidades de transición satisfacen las condiciones):
Independientemente del estado inicial inicial, eventualmente alcanzaremos una distribución de probabilidad de equilibrio de los estados.
Markov Chain Monte Carlo explota la característica anterior de la siguiente manera:
Queremos generar sorteos aleatorios a partir de una distribución objetivo. Luego identificamos una forma de construir una cadena de Markov 'agradable' de tal manera que su distribución de probabilidad de equilibrio sea nuestra distribución objetivo.
Si podemos construir tal cadena, entonces comenzamos arbitrariamente desde algún punto e iteramos la cadena de Markov muchas veces (como la forma en que pronosticamos el clima veces). Eventualmente, los sorteos que generamos aparecerían como si vinieran de nuestra distribución objetivo.
Luego, aproximamos las cantidades de interés (p. Ej., La media) al tomar el promedio de la muestra de los sorteos después de descartar algunos sorteos iniciales, que es el componente de Monte Carlo.
Hay varias formas de construir cadenas de Markov 'agradables' (por ejemplo, muestra de Gibbs, algoritmo de Metropolis-Hastings).
Creo que se puede obtener una intuición agradable y simple del algoritmo Metropolis-Hastings (cadena de independencia).
Primero, ¿cuál es el objetivo? El objetivo de MCMC es extraer muestras de alguna distribución de probabilidad sin tener que conocer su altura exacta en ningún punto. La forma en que MCMC logra esto es "deambular" en esa distribución de tal manera que la cantidad de tiempo que pasa en cada ubicación sea proporcional a la altura de la distribución. Si el proceso de "deambular" está configurado correctamente, puede asegurarse de que se logre esta proporcionalidad (entre el tiempo empleado y la altura de la distribución).
Intuitivamente, lo que queremos hacer es caminar por alguna superficie (grumosa) de tal manera que la cantidad de tiempo que pasamos (o # muestras extraídas) en cada ubicación sea proporcional a la altura de la superficie en esa ubicación. Entonces, por ejemplo, nos gustaría pasar el doble de tiempo en una colina que está a una altitud de 100m que en una colina cercana que está a una altitud de 50m. Lo bueno es que podemos hacer esto incluso si no conocemos las alturas absolutas de los puntos en la superficie: todo lo que tenemos que saber son las alturas relativas . por ejemplo, si una colina A es dos veces más alta que B, entonces nos gustaría pasar el doble de tiempo en A que en B.
La variante más simple del algoritmo Metropolis-Hastings (muestreo de la cadena de independencia) logra esto de la siguiente manera: supongamos que en cada paso de tiempo (discreto), elegimos una nueva ubicación "propuesta" aleatoria (seleccionada de manera uniforme en toda la superficie). Si la ubicación propuesta es más alta que donde estamos ahora, muévase a ella. Si la ubicación propuesta es más baja, muévase a la nueva ubicación con probabilidad p, donde p es la relación entre la altura de ese punto y la altura de la ubicación actual. (es decir, lanzar una moneda con una probabilidad p de obtener cara; si sale cara, muévase a la nueva ubicación; si sale cruz, quédese donde estamos). Mantenga una lista de las ubicaciones en las que ha estado en cada paso del tiempo, y esa lista tendrá (asintóticamente) la proporción correcta de tiempo en cada parte de la superficie.
Existen esquemas más complicados para proponer nuevas ubicaciones y las reglas para aceptarlas, pero la idea básica sigue siendo: (1) elegir una nueva ubicación "propuesta"; (2) determine cuánto más alto o más bajo se compara esa ubicación con su ubicación actual; (3) es probable que permanezca donde está o muévase a esa ubicación de manera que respete el objetivo general de pasar un tiempo proporcional a la altura de la ubicación.
¿Para qué sirve esto? Supongamos que tenemos un modelo probabilístico del clima que nos permite evaluar A * P (clima), donde A es una constante desconocida. (Esto sucede a menudo: muchos modelos son convenientes para formular de tal manera que no pueda determinar qué es A). Por lo tanto, no podemos evaluar exactamente P ("lluvia mañana"). Sin embargo, podemos ejecutar el muestreador MCMC por un tiempo y luego preguntar: qué fracción de las muestras (o "ubicaciones") terminaron en el estado "lluvia mañana". Esa fracción será el pronóstico del tiempo probabilístico (basado en el modelo).
Probablemente diría algo como esto:
"Cada vez que queremos hablar sobre probabilidades, realmente estamos integrando una densidad. En el análisis bayesiano, muchas de las densidades que encontramos no son analíticamente manejables: solo puedes integrarlas, si es que puedes integrarlas en absoluto - con mucho sufrimiento. Entonces, lo que hacemos es simular mucho la variable aleatoria, y luego calcular las probabilidades de nuestros números aleatorios simulados. Si queremos saber la probabilidad de que X sea menor que 10, contamos el proporción de variables aleatorias simuladas resulta menor a 10 y utilícelo como nuestra estimación. Esa es la parte de "Monte Carlo", es una estimación de probabilidad basada en números aleatorios. Con suficientes números aleatorios simulados, la estimación es muy buena, pero sigue siendo inherentemente al azar.
"Entonces, ¿por qué" Cadena de Markov "? Porque bajo ciertas condiciones técnicas, puede generar un proceso sin memoria (también conocido como Markovian) que tiene la misma distribución limitante que la variable aleatoria que está tratando de simular. Puede iterar cualquiera de número de diferentes tipos de procesos de simulación que generan números aleatorios correlacionados (basados solo en el valor actual de esos números), y tiene la garantía de que una vez que reúna suficientes resultados, terminará con una pila de números que se ve " como si "de alguna manera hubieras logrado tomar muestras independientes de la complicada distribución que querías saber.
"Entonces, por ejemplo, si quiero estimar la probabilidad de que una variable aleatoria normal estándar sea menor que 0.5, podría generar diez mil realizaciones independientes a partir de una distribución normal estándar y contar el número menor que 0.5; digamos que obtuve 6905 que fueron menos de 0.5 de cada 10000 muestras totales, mi estimación para P (Z <0.5) sería 0.6905, que no está muy lejos del valor real. Esa sería una estimación de Monte Carlo.
La lista de números que obtengo del procedimiento se distribuirá como un gran número de sorteos de algo que genera variables aleatorias normales. Esto me daría una simulación de Markov Chain Monte Carlo para una variable aleatoria normal estándar. Si usara esto para estimar probabilidades, sería una estimación de MCMC ".
Imagina que quieres encontrar una mejor estrategia para vencer a tus amigos en el juego de mesa Monopoly. Simplifica las cosas que importan en el juego a la pregunta: ¿en qué propiedades aterrizan más las personas? La respuesta depende de la estructura del tablero, las reglas del juego y los lanzamientos de dos dados.
Una forma de responder la pregunta es esta. Simplemente sigue una sola pieza alrededor del tablero mientras lanzas los dados y sigues las reglas. Cuente cuántas veces aterriza en cada propiedad (o programe una computadora para que haga el trabajo por usted). Eventualmente, si tiene suficiente paciencia o ha programado las reglas lo suficientemente bien en su computadora, obtendrá una buena imagen de las propiedades que generan más negocios. Esto debería ayudarte a ganar más a menudo.
Lo que ha hecho es un análisis de Markov Chain Monte Carlo (MCMC). El tablero define las reglas. El lugar donde aterrizas a continuación solo depende de dónde estás ahora, no de dónde has estado antes y las probabilidades específicas están determinadas por la distribución de los lanzamientos de dos dados. MCMC es la aplicación de esta idea a sistemas matemáticos o físicos como el clima del mañana o dónde terminará un grano de polen al azar por las moléculas de gas.
OK, aquí está mi mejor intento de una explicación informal y cruda.
Una cadena de Markov es un proceso aleatorio que tiene la propiedad de que el futuro depende solo del estado actual del proceso y no del pasado, es decir, no tiene memoria. Un ejemplo de un proceso aleatorio podría ser la bolsa de valores. Un ejemplo de una Cadena de Markov sería un juego de mesa como Monopoly o Snakes and Ladders donde su posición futura (después de lanzar el dado) dependería solo de dónde comenzó antes del lanzamiento, no ninguna de sus posiciones anteriores. Un ejemplo de libro de texto de una cadena de Markov es el "paseo del borracho". Imagine a alguien que está borracho y puede moverse solo hacia la izquierda o hacia la derecha un paso. El borracho se mueve hacia la izquierda o hacia la derecha con la misma probabilidad. Esta es una Cadena de Markov donde la posición futura / próxima del borracho depende solo de dónde se encuentre actualmente.
Los métodos de Monte Carlo son algoritmos computacionales (simplemente conjuntos de instrucciones) que toman muestras al azar de algún proceso en estudio. Son una forma de estimar algo que es demasiado difícil o que lleva mucho tiempo encontrar de manera determinista. Básicamente son una forma de simulación por computadora de algún proceso matemático o físico. El apodo de Monte Carlo proviene de la analogía entre un casino y la generación de números aleatorios. Volviendo a nuestro ejemplo de juego de mesa anterior, quizás queremos saber si algunas propiedades en el tablero de Monopoly se visitan con más frecuencia que otras. Un experimento de Monte Carlo implicaría tirar los dados repetidamente y contar el número de veces que aterrizas en cada propiedad. También se puede usar para calcular integrales numéricas. (Muy informalmente, podemos pensar en una integral como el área bajo el gráfico de alguna función. ) La integración de Monte Carlo funciona muy bien en funciones de alta dimensión al tomar una muestra aleatoria de puntos de la función y calcular algún tipo de promedio en estos diversos puntos. Al aumentar el tamaño de la muestra, la ley de los grandes números nos dice que podemos aumentar la precisión de nuestra aproximación cubriendo cada vez más la función.
Estos dos conceptos se pueden unir para resolver algunos problemas difíciles en áreas como la inferencia bayesiana, la biología computacional, etc., donde las integrales multidimensionales deben calcularse para resolver problemas comunes. La idea es construir una cadena de Markov que converja a la distribución de probabilidad deseada después de varios pasos. El estado de la cadena después de una gran cantidad de pasos se utiliza como muestra de la distribución deseada y se repite el proceso. Existen muchos algoritmos MCMC diferentes que utilizan diferentes técnicas para generar la cadena de Markov. Los más comunes incluyen Metropolis-Hastings y Gibbs Sampler.
Extracto de Métodos Bayesianos para Hackers
La siguiente visualización demuestra esto. Cuanto más rojo oscuro sea el color, mayor será la probabilidad previa de que las incógnitas estén en esa ubicación. Por el contrario, las áreas con un azul más oscuro representan que nuestros prioritarios asignan muy poca probabilidad a las incógnitas que están allí.
Estos son ejemplos simples en el espacio 2D, donde nuestros cerebros pueden entender bien las superficies. En la práctica, los espacios y las superficies generados por nuestros antecedentes pueden tener dimensiones mucho más altas.
empuja hacia arriba la superficie original para hacer montañas altas . La cantidad de empuje hacia arriba es resistida por la probabilidad previa, de modo que menos probabilidad previa significa más resistencia. Por lo tanto, en el caso anterior de doble exponencial anterior, una montaña (o varias montañas) que podrían entrar en erupción cerca de la esquina (0,0) sería mucho más alta que las montañas que erupcionan más cerca de (5,5), ya que hay más resistencia cerca (5,5). La montaña, o quizás de manera más general, las cadenas montañosas, reflejan la probabilidad posterior de dónde es probable que se encuentren los parámetros verdaderos.
El punto negro representa los parámetros verdaderos. Incluso con 1 punto de muestra, como se simuló anteriormente, las montañas intentan contener el parámetro verdadero. Por supuesto, la inferencia con un tamaño de muestra de 1 es increíblemente ingenua, y elegir un tamaño de muestra tan pequeño fue solo ilustrativo.
desde la distribución posterior, no la distribución en sí. Extendiendo nuestra analogía montañosa hasta su límite, MCMC realiza una tarea similar a preguntar repetidamente "¿Qué tan probable es que este guijarro que encontré sea de la montaña que estoy buscando?", Y completa su tarea devolviendo miles de guijarros aceptados con la esperanza de reconstruir La montaña original. En la jerga MCMC y PyMC, la secuencia devuelta de "guijarros" son las muestras, más a menudo llamadas las trazas .
Cuando digo MCMC busca en forma inteligente, me refiero a MCMC será de esperar que convergen hacia las zonas de alta probabilidad posterior. MCMC hace esto explorando posiciones cercanas y moviéndose a áreas con mayor probabilidad. De nuevo, quizás "converger" no es un término exacto para describir la progresión de MCMC. La convergencia generalmente implica moverse hacia un punto en el espacio, pero MCMC se mueve hacia un área más amplia en el espacio y camina aleatoriamente en esa área, recogiendo muestras de esa área.
Al principio, devolver miles de muestras al usuario puede parecer una forma ineficiente de describir las distribuciones posteriores. Yo diría que esto es extremadamente eficiente. Considere las posibilidades alternativas ::
Además de las razones computacionales, probablemente la razón más fuerte para devolver muestras es que podemos usar fácilmente La Ley de los Números Grandes para resolver problemas que de otra manera no se podrían resolver. Pospongo esta discusión para el próximo capítulo.
Hay una gran familia de algoritmos que realizan MCMC. Simplemente, la mayoría de los algoritmos se pueden expresar a un alto nivel de la siguiente manera:
1. Start at current position.
2. Propose moving to a new position (investigate a pebble near you ).
3. Accept the position based on the position's adherence to the data
and prior distributions (ask if the pebble likely came from the mountain).
4. If you accept: Move to the new position. Return to Step 1.
5. After a large number of iterations, return the positions.
De esta manera nos movemos en la dirección general hacia las regiones donde existen las distribuciones posteriores, y recolectamos muestras con moderación en el viaje. Una vez que alcanzamos la distribución posterior, podemos recolectar fácilmente muestras, ya que probablemente todas pertenecen a la distribución posterior.
Si la posición actual del algoritmo MCMC está en un área de probabilidad extremadamente baja, que suele ser el caso cuando el algoritmo comienza (generalmente en una ubicación aleatoria en el espacio), el algoritmo se moverá en posiciones que probablemente no sean posteriores pero mejor que todo lo demás cerca. Por lo tanto, los primeros movimientos del algoritmo no reflejan el posterior.
Por lo tanto, aquí hay muchas respuestas parafraseadas de libros de texto de estadísticas / probabilidad, Wikipedia, etc. Creo que tenemos "laicos" donde trabajo; Creo que están en el departamento de marketing. Si alguna vez tengo que explicarles algo técnico, aplico la regla "mostrar no contar". Con esa regla en mente, probablemente les mostraría algo como esto.
La idea aquí es tratar de codificar un algoritmo que pueda enseñar a deletrear, no aprendiendo todas las cientos (¿miles?) De reglas como Al agregar un final a una palabra que termina con una e silenciosa, suelte la e final si el final comienza con una vocal . Una razón que no funcionará es que no conozco esas reglas (ni siquiera estoy seguro de que la que acabo de recitar sea correcta). En cambio, voy a enseñarle a deletrear mostrándole un montón de palabras correctamente escritas y dejando que extraiga las reglas de esas palabras, que es más o menos la esencia del aprendizaje automático, independientemente del algoritmo: extracción de patrones y reconocimiento de patrones .
El criterio de éxito es deletrear correctamente una palabra que el algoritmo nunca ha visto antes (me doy cuenta de que puede suceder por pura casualidad, pero eso no se le ocurrirá a los muchachos de marketing, por lo que lo ignoraré, además voy a tener el algoritmo intente deletrear no una palabra, sino muchas, por lo que no es probable que seamos engañados por algunas conjeturas afortunadas).
Hace aproximadamente una hora, descargué (como un archivo de texto sin formato) del excelente sitio del Proyecto Gutenberg, la novela de Herman Hesse Siddhartha . Usaré las palabras de esta novela para enseñarle al algoritmo cómo deletrear.
Así que codifiqué el siguiente algoritmo que escaneaba esta novela, tres letras a la vez (cada palabra tiene un carácter adicional al final, que es 'espacio en blanco', o el final de la palabra). Las secuencias de tres letras pueden decirle mucho: por ejemplo, la letra 'q' casi siempre va seguida de 'u'; la secuencia 'ty' generalmente ocurre al final de una palabra; z rara vez lo hace, y así sucesivamente. (Nota: podría haberlo facilitado con palabras completas para entrenarlo a hablar en oraciones completas, exactamente la misma idea, solo algunos ajustes al código).
Sin embargo, nada de esto involucra a MCMC, eso sucede después del entrenamiento, cuando le damos al algoritmo algunas letras al azar (como semilla) y comienza a formar 'palabras'. ¿Cómo construye el algoritmo palabras? Imagine que tiene el bloque 'qua'; ¿Qué letra agrega a continuación? Durante el entrenamiento, el algoritmo construyó una matriz de frecuencia * de secuencia de éter masiva * a partir de todas las miles de palabras en la novela. En algún lugar de esa matriz se encuentra el bloque de tres letras 'qua' y las frecuencias de los caracteres que podrían seguir la secuencia. El algoritmo selecciona una letra basada en esas frecuencias que posiblemente podrían seguirla. Entonces, la letra que el algoritmo selecciona a continuación depende de, y únicamente de, los últimos tres en su cola de construcción de palabras.
Entonces ese es un algoritmo de Markov Chain Monte Carlo.
Creo que quizás la mejor manera de ilustrar cómo funciona es mostrar los resultados en función de los diferentes niveles de capacitación. El nivel de entrenamiento varía al cambiar el número de pasadas que el algoritmo hace a través de la novela: cuanto más pasadas, mayor es la fidelidad de sus matrices de frecuencias de secuencia de letras. A continuación se muestran los resultados, en forma de cadenas de 100 caracteres producidos por el algoritmo, después del entrenamiento en la novela 'Siddharta'.
Una sola pasada a través de la novela, Siddhartha :
luego silba a Ger Wiff, todo de pie, te levantas lívido, el miedo, la fangosa succión
(Inmediatamente, se aprendió a hablar galés casi perfecto; no esperaba eso).
Después de dos pasadas por la novela:
el espectáculo de ack wor prenskinith era un par de veces que ya se veía allí la teatina de la tierra.
Después de 10 pases:
a pesar de que debería orar con ack ahora tener agua su perro palanca dolor pies cada uno no la memoria débil
Y aquí está el código (en Python, estoy casi seguro de que esto podría hacerse en R usando un paquete MCMC, del cual hay varios, en solo 3-4 líneas)
def create_words_string(raw_string) :
""" in case I wanted to use training data in sentence/paragraph form;
this function will parse a raw text string into a nice list of words;
filtering: keep only words having more than 3 letters and remove
punctuation, etc.
"""
pattern = r'\b[A-Za-z]{3,}\b'
pat_obj = re.compile(pattern)
words = [ word.lower() for word in pat_obj.findall(raw_string) ]
pattern = r'\b[vixlm]+\b'
pat_obj = re.compile(pattern)
return " ".join([ word for word in words if not pat_obj.search(word) ])
def create_markov_dict(words_string):
# initialize variables
wb1, wb2, wb3 = " ", " ", " "
l1, l2, l3 = wb1, wb2, wb3
dx = {}
for ch in words_string :
dx.setdefault( (l1, l2, l3), [] ).append(ch)
l1, l2, l3 = l2, l3, ch
return dx
def generate_newtext(markov_dict) :
simulated_text = ""
l1, l2, l3 = " ", " ", " "
for c in range(100) :
next_letter = sample( markov_dict[(l1, l2, l3)], 1)[0]
simulated_text += next_letter
l1, l2, l3 = l2, l3, next_letter
return simulated_text
if __name__=="__main__" :
# n = number of passes through the training text
n = 1
q1 = create_words_string(n * raw_str)
q2 = create_markov_dict(q1)
q3 = generate_newtext(q2)
print(q3)
MCMC se usa típicamente como una alternativa a las técnicas de simulación crudas de Monte Carlo. Tanto MCMC como otras técnicas de Monte Carlo se usan para evaluar integrales difíciles, pero MCMC se puede usar de manera más general.
Por ejemplo, un problema común en estadística es calcular el resultado medio relacionado con algún modelo probabilístico / estocástico. Las técnicas MCMC y Monte Carlo resolverían este problema al generar una secuencia de resultados simulados que podríamos usar para estimar la media real.
Tanto las MCMC como las técnicas crudas de Monte Carlo funcionan ya que la proporción a largo plazo de simulaciones que son iguales a un resultado dado será igual * a la probabilidad modelada de ese resultado. Por lo tanto, al generar suficientes simulaciones, los resultados producidos por ambos métodos serán precisos.
* Digo igual aunque en general debería hablar sobre conjuntos medibles. Un laico, sin embargo, probablemente no estaría interesado en esto *
Sin embargo, mientras que el Monte Carlo crudo implica producir muchas simulaciones independientes, cada una de las cuales se distribuye de acuerdo con la distribución modelada, MCMC implica generar una caminata aleatoria que a largo plazo "visita" cada resultado con la frecuencia deseada.
El truco para MCMC, por lo tanto, es elegir una caminata aleatoria que "visitará" cada resultado con las frecuencias deseadas a largo plazo.
Un ejemplo simple podría ser simular a partir de un modelo que dice que la probabilidad del resultado "A" es 0.5 y del resultado "B" es 0.5. En este caso, si comencé la caminata aleatoria en la posición "A" y prescribí que en cada paso cambiara a la otra posición con una probabilidad de 0.2 (o cualquier otra probabilidad que sea mayor que 0), podría estar seguro de que después de un largo número de pasos que la caminata aleatoria habría visitado cada uno de "A" y "B" en aproximadamente el 50% de los pasos, de acuerdo con las probabilidades prescritas por nuestro modelo.
Este es obviamente un ejemplo muy aburrido. Sin embargo, resulta que MCMC a menudo es aplicable en situaciones en las que es difícil aplicar Monte Carlo estándar u otras técnicas.
Puede encontrar un artículo que cubre los conceptos básicos de lo que es y por qué funciona aquí:
Soy un analista de ADN que utiliza un software de genotipo probabilístico completamente continuo para interpretar la evidencia de ADN y tengo que explicar cómo funciona esto ante un jurado. Es cierto que simplificamos demasiado y me doy cuenta de que parte de esta simplificación sacrifica la precisión de detalles específicos en nombre de mejorar la comprensión general. Pero, dentro del contexto de un jurado que comprende cómo se utiliza este proceso en la interpretación del ADN sin títulos académicos y años de experiencia profesional, obtienen la esencia :)
Antecedentes: el software utiliza MCMC de Metropolis Hastings y un modelo biológico que imita el comportamiento conocido de los perfiles de ADN (el modelo se basa en los datos de validación generados por el laboratorio que analiza muchos perfiles de ADN de condiciones conocidas que representan el rango encontrado en el trabajo de caso desconocido). Hay 8 cadenas independientes y evaluamos la convergencia para determinar si se debe volver a ejecutar aumentando la grabación y luego acepta (la grabación predeterminada es 100k acepta y luego 400k acepta)
Cuando la fiscalía / defensa le preguntó acerca de MCMC: explicamos que significa la cadena de Markov Monte Carlo y representa una clase / clase especial de algoritmo utilizado para resolver problemas complejos y que un algoritmo es solo una palabra elegante que se refiere a una serie de procedimientos o rutina llevado a cabo por una computadora ... los algoritmos mcmc operan proponiendo una solución, simulando esa solución, luego evaluando qué tan bien esa simulación refleja los datos de evidencia reales que se observan ... una simulación que se ajusta bien a la observación de evidencia tiene una probabilidad mayor que un simulación que no se ajusta bien a la observación ... sobre muchos muestreos / conjeturas repetidas de soluciones propuestas, las cadenas de Markov se alejan de las soluciones de baja probabilidad hacia las soluciones de alta probabilidad que mejor se ajustan / explican el perfil de evidencia observado, hasta que finalmente se alcanza el equilibrio logradolo que significa que el algoritmo tiene una capacidad limitada para muestrear nuevas propuestas que producen probabilidades significativamente mayores
Cuando se le preguntó sobre la metrópoli Hastings: explicamos que es un refinamiento del algoritmo MCMC que describe su proceso de toma de decisiones aceptando o rechazando una propuesta ... por lo general, esto se explica con una analogía del juego infantil "caliente / frío", pero es posible que haya considerado usar desliza hacia la derecha o hacia la izquierda "cuando el jurado es especialmente joven !! : p Pero usando nuestra analogía frío / calor, siempre aceptamos una conjetura en caliente y ocasionalmente aceptamos una conjetura en frío una fracción del tiempo y explicamos que el propósito de aceptar a veces la conjetura en frío es asegurar que las cadenas muestren una gama más amplia de posibilidades como en oposición a quedarse atrapado en una propuesta particular antes del equilibrio real
Editado para agregar / aclarar: con la analogía frío / calor, explicamos que en el juego de los niños, el líder elige un objeto / área objetivo dentro de la habitación y los jugadores se turnan para adivinar en qué dirección moverse en relación con su posición / posición actual. El líder les dice que cambien de posición / hagan el movimiento si es una suposición acertada y pierden su turno / permanecen en posición si es una suposición fría. Del mismo modo, dentro de nuestro software, la decisión de moverse / aceptar depende solo de la probabilidad de la propuesta en comparación con la probabilidad de la posición actualmente ocupada ... SIN EMBARGO, el objetivo está predefinido / conocido por el líder en el juego infantil mientras que el el objetivo dentro de nuestro software no está predefinido, es completamente desconocido (también por qué '
Como dije, súper súper básico y absolutamente sin detalles técnicos en aras de mejorar la comprensión, nos esforzamos por explicar en un nivel de educación de secundaria. Siéntete libre de hacer sugerencias. Los incorporaré.
Esta pregunta es amplia pero las respuestas son a menudo bastante casuales. Alternativamente, puede ver este documento que ofrece una descripción matemática concisa de una amplia clase de algoritmos MCMC, incluidos los algoritmos de Metropolis-Hastings, muestreo de Gibbs, Metrópolis dentro de Gibbs y métodos de variables auxiliares, muestreo de corte, propuestas recursivas, muestreo direccional, Langevin y Montecarlo hamiltoniano, muestreo NUTS, algoritmos pseudo-marginales de Metropolis-Hastings y Montecarlo hamiltoniano pseudo-marginal, según lo discutido por los autores.
Aquí se da una reseña creíble
Encontraré más tiempo para elaborar su contenido en el formato de stackexchange.
Este video (a partir de las 5:50) tiene una muy buena declaración de intuición.
Imagine que desea muestrear puntos que están en las ramas verdes (multidimensionales) en esta imagen. Si arroja puntos por todo el súper espacio negro y verifica su valor, está desperdiciando mucha energía de muestreo (búsqueda). Por lo tanto, tendría más sentido controlar su estrategia de muestreo (que se puede automatizar) para elegir puntos más cercanos a las ramas verdes (donde es importante). Las ramas verdes se pueden encontrar al ser golpeadas una vez accidentalmente (o controladas), y el resto del esfuerzo de muestreo (puntos rojos) se generará después. La razón por la que el rojo se siente atraído por la línea verde es por la matriz de transición de la cadena de Markov que funciona como su motor de muestreo.
Entonces, en términos simples, MCMC es un método de muestreo que ahorra energía (bajo costo), especialmente cuando se trabaja en un espacio masivo y 'oscuro' (multidimensional).