En el capítulo anterior, mencionamos por primera vez el concepto de estimación bayesiana en línea: cuando la evidencia sigue llegando, la estimación bayesiana no espera hasta que llegue toda la evidencia y luego se basa en toda la evidencia recopilada. Calcule la probabilidad posterior de los valores observados. En cambio, comenzamos calculando una probabilidad basada en una pequeña cantidad de evidencia y luego usamos esta observación para ajustar la estimación anterior cada vez que obtenemos una nueva observación.
Tomemos como ejemplo el agua de una sala de ebullición. Entras en la sala de ebullición, abres el agua y quieres saber si el agua está hirviendo. En este proceso, obtienes evidencia paso a paso y la utilizas para actualizar tus conjeturas anteriores:
En este caso, las observaciones son infinitas. La estimación bayesiana en línea nos permite estimar la probabilidad posterior final sin esperar todas las observaciones posibles, pero puede
El núcleo del algoritmo de estimación en línea bayesiano es el mismo que el de muchos algoritmos en línea. Los pasos principales del algoritmo en línea incluyen los siguientes:
Lo opuesto al algoritmo en línea se llama algoritmo fuera de línea. Los algoritmos fuera de línea también se denominan algoritmos por lotes. Los algoritmos fuera de línea siempre recalculan los resultados agregando nuevos datos a los anteriores. Por ejemplo, al principio tiene 100 datos y utiliza este lote de datos para obtener un resultado. Cuando tenga 65,438+000 datos nuevos, deberá fusionar los 65,438+000 datos con los 65,438+000 datos originales y volver a calcular el resultado con 200 datos. Este es un algoritmo fuera de línea.
La mayor diferencia entre el algoritmo en línea y el algoritmo fuera de línea es que no es necesario volver a calcular, sino ajustar los resultados del cálculo anterior: antes de obtener los nuevos 100 datos, los resultados del cálculo anterior se actualizan con 100 datos El resultado actualizado es el mismo que recalcular con 200 datos. Por lo tanto, la mayor diferencia entre el algoritmo en línea y el algoritmo fuera de línea no es si los datos vienen uno por uno, sino si es necesario recalcularlos o actualizarlos sobre la base original.
Ejemplo de algoritmo en línea: promedio
Utilizamos un ejemplo para ilustrar la diferencia entre algoritmo en línea y algoritmo fuera de línea. Si te dan 100 números, de x1, x2,..., x100, es fácil encontrar su promedio:
Este método consiste en tomar los 100 x y calcularlos juntos. Este es un algoritmo fuera de línea.
¿Y cómo se calcula el algoritmo online?
Esta media se calcula en base a todos los datos actuales (solo uno x1).
Es decir, partiendo de la estimación inicial
,
este es un algoritmo online para promediar.
En comparación con los algoritmos fuera de línea, los algoritmos en línea tienen tres ventajas principales:
No solo eso, los algoritmos bayesianos en línea e incluso todos los algoritmos en línea encarnan la idea de luchar por la excelencia: al principio , no buscamos la perfección, primero obtenemos un resultado en base a este resultado, aceptamos constantemente nueva información para mejorar el resultado original para lograr el objetivo óptimo que perseguimos;
Esta idea de excelencia se refleja en muchos campos. Da algunos ejemplos.
Ejemplo 1: Solución numérica del valor extremo de una función
Cuando estábamos en el instituto, aprendimos a encontrar el valor máximo o mínimo de una función. Recuerdo que el método más utilizado es el método de derivación. Tomamos la derivada de la expresión de la función para que sea 0 y establecemos la ecuación. La solución de la ecuación es el valor extremo de esta función.
Por ejemplo, para una función
En términos generales, la derivada de esta función es
Supongamos que la derivada es 0, es decir,
La solución analítica El antónimo es solución numérica. La idea central de la solución numérica es luchar por la perfección. Expliquemoslo usando la imagen a continuación. La curva azul en la imagen es la expresión de esta función y Necesitamos encontrar la posición de x (punto rojo) correspondiente al valor máximo de esta función.
Existen los siguientes pasos para encontrar una solución numérica:
Podemos encontrar que la idea de encontrar una solución numérica no es tratar de encontrar la posición de la valor óptimo de la función a la vez, pero para acercarse al valor óptimo paso a paso. Ésta es la idea de la excelencia.
El método de solución analítica que acabamos de utilizar se derivó estrictamente de la fórmula. Este enfoque se describe mejor con el modismo paso a paso.
En comparación con luchar por la perfección, dar pasos paso a paso tiene dos desventajas: (1) nunca se sabe la respuesta hasta que se sabe el último paso, incluso una respuesta aproximada (2) una vez que un paso sale mal, el resultado final será incorrecto; de.
Desde esta perspectiva, las últimas grandes preguntas en la escuela secundaria y preparatoria se resuelven paso a paso: no sabes si lo que demostraste es correcto o incorrecto antes de presentar el resultado final. Una vez que cualquier paso intermedio es incorrecto, no se puede obtener el resultado correcto.
Ejemplo 2: Modelo ágil en la gestión de proyectos
Cualquier persona familiarizada con la gestión de proyectos sabe que existen dos modelos diferentes de gestión de proyectos. El primer modelo es el modelo en cascada. El modelo en cascada divide el desarrollo del sistema en varias etapas, incluido el análisis de requisitos, el diseño, la implementación y el lanzamiento. Cada etapa tiene su correspondiente gestión y control, por lo que se puede garantizar eficazmente la calidad del sistema. El modelo de cascada se muestra en la parte superior de la imagen a continuación. Podemos ver que cada etapa en el modelo de cascada tiene una secuencia interconectada fija, al igual que el agua de una cascada, que cae paso a paso.
Sin embargo, existen dos desventajas importantes al utilizar el modelo en cascada para gestionar proyectos:
Lo opuesto al modelo en cascada es el modelo ágil. El modelo Agile se muestra en la mitad inferior de la imagen de arriba. Podemos ver que cuando se desarrolla un proyecto utilizando un modelo ágil, todo el trabajo de desarrollo se organiza en una serie de iteraciones cortas y rápidas. Cada iteración incluye análisis, diseño, implementación y pruebas de requisitos, con mejora continua a través de los comentarios de los clientes hasta que se cumplan los requisitos finales.
En comparación con el modelo en cascada, las ventajas sobresalientes de utilizar el desarrollo de modelos ágiles son
El modelo en cascada y el modelo ágil mencionados aquí son similares a la solución analítica y el valor extremo de la función. ¡acabamos de mencionar la solución numérica! Tanto el modelo en cascada como la solución analítica adoptan la idea de "paso a paso", mientras que el modelo ágil y la solución numérica corresponden a la idea de "excelencia".
Ejemplo 3: El producto factible más simple
Hace muchos años, mis colegas y yo fuimos a discutir la cooperación en un proyecto con el director ejecutivo de una empresa privada. Esta empresa es la mejor empresa de China para la detección automática de cables de alto voltaje. En pocas palabras, crearon un dispositivo que puede colocar un poste largo en una línea eléctrica de alto voltaje y luego detectar si la línea de transmisión está funcionando correctamente en tiempo real. Una noche, durante la cena, el director ejecutivo me habló de sus ideas de desarrollo y dijo lo siguiente:
Para una empresa pequeña como la nuestra, el desarrollo de productos no se puede realizar en un solo paso, especialmente para productos con alto contenido tecnológico. . Al principio, teníamos que fabricar un producto imperfecto pero utilizable. De esta manera tendremos confianza en nuestro corazón. Luego llévelo al sitio para su uso. Después de la implementación, los ingenieros nos contarán muchos problemas que fueron inesperados al comienzo del diseño y los usuarios nos brindarán más necesidades. Poco a poco mejoraremos estos fundamentos. Aunque las funciones de nuestro producto se ven tan hermosas ahora, hubo muchos problemas cuando salió al mercado el producto de primera generación.
Después de tantos años, todavía recuerdo claramente que hablaba de un concepto de producto imperfecto pero utilizable. Luego supe que esto es lo que se llama Producto Mínimo Viable (MVP). Estrictamente hablando, MVP se refiere a productos cuyas funciones sólo permiten a los diseñadores expresar conceptos básicos de diseño. Los diseñadores pueden aprender mediante la validación, aprender más sobre el uso basándose en los comentarios de los usuarios y continuar desarrollando el producto.
Vi el siguiente ejemplo en el sitio web del Instituto de Tecnología Beard de Hong Kong (/mvp/).
Las reacciones del mercado suelen ser impredecibles. Especialmente las empresas emergentes. Imagínese que cuando invierte muchos recursos, dinero y tiempo, contrata un equipo para desarrollar una aplicación//plataforma y luego descubre que nadie la usa después de lanzarla al mercado, definitivamente será incómodo.
La mejor manera de solucionar este problema de que “nadie lo usa después de su lanzamiento al mercado” es MVP. En lugar de gastar muchos recursos para desarrollar un producto perfecto que creen que tendrá éxito, los empresarios también podrían utilizar el método más rápido para crear un "producto semiacabado" con las funciones menos básicas. Primero introduzcamos este "producto semiacabado" en el mercado y veamos cómo reacciona el mercado.
Hay muchas empresas emergentes muy exitosas que siguen el espíritu MVP. Empresas como Groupon, que tiene una capitalización de mercado de cientos de millones de dólares, son buenos ejemplos de MVP.
El fundador Andrew Mason creó un sencillo blog de WordPress en los primeros días de Groupon en lugar de gastar recursos en crear un “sistema perfecto de compra grupal”.
Este blog publica periódicamente artículos sobre descuentos en tiendas, ¡y los descuentos se envían manualmente por correo electrónico a los participantes uno por uno! Más tarde, descubrió que este blog que publicaba artículos sobre descuentos en tiendas era muy popular, por lo que Andrew decidió que había un mercado para esta idea y luego comenzó a organizar un equipo para desarrollar este sistema de compra grupal.
El modelo ágil del ejemplo anterior en realidad intenta lanzar un MVP primero. Después de la introducción de MVP, los desarrolladores pueden comprender mejor el uso en función de los usuarios o los comentarios de los usuarios y continuar mejorando en función de la situación real según las versiones anteriores.
MVP y el modelo ágil que acabamos de mencionar son en realidad exactamente iguales que el enfoque básico reciente para lanzar productos en la industria de Internet, que consiste en ejecutar rápidamente en pequeños pasos e iterar rápidamente.
Ejecute rápidamente en pequeños pasos e itere rápidamente, es decir, no piense en lanzar un buen producto de una vez, sino actualícelo mediante iteraciones rápidas para garantizar que cada pequeño paso se ejecute rápidamente. El desarrollo de productos respaldado por el concepto de iteración rápida es un proceso de "comentarios en línea, modificación en línea". Permita la imperfección al principio, pero vaya acercándose gradualmente a la perfección mediante una iteración rápida. Puedo encontrar uno o dos pequeños problemas cada día y corregirlos, y el producto queda pulido en menos de un año.
Por otro lado, si siempre te esfuerzas por hacer un diseño completo al principio y te esfuerzas por ser perfecto en cada paso, de lo contrario no podrás continuar. El problema es que una vez que no se considera o no se tiene en cuenta un determinado punto al principio, y el problema no se descubre hasta el último paso, el coste y el tiempo de empezar de nuevo será demasiado elevado.
¿Kevin? Kelly tenía este pasaje en su libro más vendido "Losing Control":
Ejemplo 4: Escribir un artículo usando métodos excelentes
Mientras estaba en la Universidad Politécnica de Hong Kong, escuché una A Un profesor al que admiraba mucho vino al grupo para compartir con los estudiantes cómo escribir un trabajo académico.
Nos dijo que hay dos opciones para escribir un artículo. La primera opción es retrasar la escritura hasta que se piense en la idea, se haga la simulación, se complete el experimento y se obtengan los materiales antes de comenzar a escribir. En el proceso de escritura, púlelo capítulo por capítulo en un orden natural. Después de escribir un capítulo, escribe el siguiente.
La segunda opción es empezar a escribir cuando tengas una pequeña idea, aunque no es necesario que la idea sea muy buena. Durante el proceso de escritura, no refines tu gramática y escribe el primer borrador lo más rápido posible. Una vez que hayas escrito el primer borrador, muéstralo a las personas que te rodean y déjales comentar. Entonces sabrás qué lagunas tiene la idea de este artículo, cómo mejorarla, etc. Luego, el artículo fue revisado muchas veces en forma de “iteración rápida”. Cada vez que reviso, mejoraré mis ideas, simularé, experimentaré y modificaré la gramática, para finalmente poder pulir el artículo.
El profesor dijo que debes utilizar el segundo método para escribir artículos.
Parece que así debería ser ahora. Si escribe de acuerdo con el primer plan, es posible que nunca pueda escribir un artículo. La razón es (1) Sólo después de que hayas terminado de escribir, los demás podrán darte opiniones. Una vez que descubra que se puede adoptar un determinado punto de vista, es posible que deba volver a experimentar, hacer simulaciones y empezar de nuevo, lo que llevará demasiado tiempo. (2) En el proceso de redacción de un artículo, si lo pule cuidadosamente capítulo por capítulo, es posible que cuando escriba más tarde, debido a que necesita modificar sus ideas o simularlas, muchas de las partes anteriores deban reescribirse. Estas piezas cuidadosamente pulidas parte de ellas se desperdiciaron.
De hecho, no se trata sólo de escribir artículos científicos. Creo que este método se puede utilizar para escribir cualquier artículo. Tian Yuandong, jefe del proyecto Intelligent Go del Instituto de Investigación de Inteligencia Artificial de Facebook y famoso jugador de ajedrez científico en Internet, escribió el siguiente pasaje en un artículo "Cómo leer y escribir en la era fragmentada" publicado en su columna Zhihu:
Este método consiste en realidad en escribir un MVP lo antes posible y luego mejorarlo iterativamente. En este sentido, es mucho más importante completar un MVP rápidamente al principio que completar un producto a la perfección durante un largo período de tiempo, lo que también confirma el dicho:
Completo es mejor que perfecto.
En el ejemplo anterior, hablamos de los beneficios de utilizar ideas excelentes para desarrollar productos y escribir artículos. Debería poder comprender que la ventaja de utilizar la idea de luchar por la excelencia es que los usuarios de back-end (o los propios desarrolladores) pueden obtener comentarios rápidamente y completar rápidamente actualizaciones iterativas.
De hecho, independientemente de si el desarrollador puede completar el proyecto, existen dos beneficios al realizar el proyecto con la idea de excelencia.
¡El primer beneficio es la tranquilidad! En el anterior 'Ejemplo 3: El producto viable más simple', esto se puede reflejar en lo que me dijo el CEO: Al principio, debemos fabricar un producto imperfecto pero utilizable. De esta manera tendremos confianza en nuestro corazón.
Tengo confianza en mi corazón y me siento a gusto. Al menos en términos generales, este plan es factible.
Lo que los desarrolladores deben hacer es mejorar esta solución viable. Incluso si alguna mejora no tiene éxito, simplemente regrese a la versión original, ¡al menos esta versión funcionará! Al contrario, es muy estresante trabajar en el proyecto paso a paso y sólo saber si el producto se puede utilizar en el último paso. Una vez que ya no pueda trabajar, es posible que deba empezar de nuevo. Ésta es la ventaja sobre Bubu.
El segundo beneficio es una retroalimentación más inmediata. Los desarrolladores se esfuerzan por alcanzar la excelencia para mejorar MVP. Cada vez que la mejora tiene éxito, puedes tener una sensación de logro cuando se completa. Una vez que obtienen esta sensación de logro, los desarrolladores no pueden esperar para pasar al siguiente pequeño objetivo y mejorar aún más la versión actual.
Les hice una pregunta a los alumnos durante la clase. ¿Por qué insistes en tomar un descanso después de estudiar menos de una hora, pero puedes jugar toda la noche?
La razón es que la cadena de retroalimentación del aprendizaje es muy larga y puedes obtener retroalimentación instantánea jugando.
El libro "Los juegos cambian el mundo" revela el mecanismo profundo por el que los humanos se sienten atraídos por los juegos: la retroalimentación instantánea. Los desarrolladores de juegos lo saben. Todo lo que haces en el juego se muestra inmediatamente de forma visual y numérica.
No subestimes los números que salen volando de la cabeza del monstruo cada vez, no subestimes los efectos de sonido de los movimientos y no subestimes las letras rojas que dañan la sangre y las letras azules que encantan. . Todos ellos brindan a los jugadores la retroalimentación más intuitiva e inmediata.
Sabes claramente que si matas monstruos esta vez, definitivamente ganarás puntos de experiencia y tendrás la oportunidad de conseguir algunos tesoros. De hecho, la retroalimentación oportuna le permite saber claramente que cada operación que realice será recompensada, ¡y la recompensa será cuando se complete la operación! Por eso podemos quedarnos despiertos toda la noche jugando.
Comparado con el aprendizaje en la vida real, es todo lo contrario. Hoy has trabajado duro para memorizar 50 palabras, pero apenas puedes ver resultados inmediatos: todavía no puedes entender los libros en inglés que solías leer y todavía no puedes entender las estaciones de radio en inglés que no entendías antes. . Sólo si persistes durante muchos años descubrirás de repente que tu nivel de inglés ha mejorado. Pero esta cadena de retroalimentación es demasiado larga.
Muchas materias, incluido el inglés, e incluso muchas habilidades tienen largas cadenas de retroalimentación. Como el violín y el erhu. Hasta que practiques durante mucho tiempo y te aburras, el sonido que reproduzcas no hará que la gente quiera ahuyentarte de inmediato. Sus esfuerzos no reciben una retroalimentación inmediata, que es la razón principal por la que muchas personas no pueden calmarse y estudiar.
No puedo evitar pensar en la canción "Hand in Homework" cantada por Zuo Xiaozuzhou.
Dios mío, esta cadena de retroalimentación es muy larga y los resultados están llenos de incertidumbre. No es de extrañar que no haya motivación para entregar la tarea. . . .
¿Cómo romperlo? De hecho, lo fundamental está en cómo acortar esta cadena de retroalimentación. Por ejemplo, al memorizar palabras, puede introducir un mecanismo de recompensa o un mecanismo de logro personal. Por ejemplo, darse una recompensa por cada tarea de 50 palabras que complete o poner una marca de verificación en su lista de tareas completadas.
Por otro lado, debemos entrenarnos para retrasar la gratificación. La gratificación retrasada es la capacidad de superar las dificultades actuales y obtener beneficios a largo plazo. En términos sencillos, es valor. La perseverancia y la resistencia son extremadamente importantes para una persona.
Lo que ganamos hoy es: