¿Qué es el aprendizaje automático?
Esencialmente, es un método para enseñar a las computadoras a hacer y mejorar predicciones o comportamientos basados en algunos datos. ¿Qué son estos "datos"? Bueno, eso depende completamente del problema. Podrían ser lecturas de los sensores de un robot mientras aprende a caminar, o la salida correcta de un programa para cierta entrada.
Otra forma de pensar sobre el aprendizaje automático es que es "reconocimiento de patrones": el acto de enseñar a un programa a reaccionar o reconocer patrones.
¿Qué hace el código de aprendizaje automático?
Depende del tipo de aprendizaje automático del que estés hablando. El aprendizaje automático es un campo enorme , con cientos de algoritmos diferentes para resolver innumerables problemas diferentes; consulte Wikipedia para obtener más información; específicamente, busque en Tipos de algoritmos .
Cuando decimos que la máquina aprende, ¿modifica el código de sí misma o modifica el historial (base de datos) que contendrá la experiencia del código para un conjunto dado de entradas?
Una vez más, depende .
Un ejemplo de código que realmente se está modificando es la Programación Genética , donde esencialmente se hace evolucionar un programa para completar una tarea (por supuesto, el programa no se modifica a sí mismo, pero modifica otro programa de computadora).
Las redes neuronales , por otro lado, modifican sus parámetros automáticamente en respuesta a estímulos preparados y respuesta esperada. Esto les permite producir muchos comportamientos (teóricamente, pueden producir cualquier comportamiento porque pueden aproximar cualquier función con una precisión arbitraria, dado el tiempo suficiente).
Debo señalar que el uso del término "base de datos" implica que los algoritmos de aprendizaje automático funcionan "recordando" información, eventos o experiencias. Este no es necesariamente (¡ni siquiera a menudo!) El caso.
Las redes neuronales, que ya mencioné, solo mantienen el "estado" actual de la aproximación, que se actualiza a medida que ocurre el aprendizaje. En lugar de recordar lo que sucedió y cómo reaccionar ante él, las redes neuronales construyen una especie de "modelo" de su "mundo". El modelo les dice cómo reaccionar a ciertas entradas, incluso si las entradas son algo que nunca antes había visto.
Esta última capacidad, la capacidad de reaccionar a entradas que nunca se han visto antes, es uno de los principios básicos de muchos algoritmos de aprendizaje automático. Imagínese tratando de enseñarle a un conductor de computadora a navegar por las carreteras en medio del tráfico. Usando su metáfora de la "base de datos", tendría que enseñarle a la computadora exactamente qué hacer en millones de situaciones posibles. Un algoritmo de aprendizaje automático efectivo (¡con suerte!) Podría aprender similitudes entre diferentes estados y reaccionar a ellos de manera similar.
Las similitudes entre los estados pueden ser cualquier cosa, ¡incluso las cosas que podríamos considerar "mundanas" realmente pueden hacer tropezar una computadora! Por ejemplo, digamos que el conductor de la computadora se enteró de que cuando un automóvil delante de él reducía la velocidad, tenía que reducir la velocidad. Para un ser humano, reemplazar el automóvil por una motocicleta no cambia nada: reconocemos que la motocicleta también es un vehículo. Para un algoritmo de aprendizaje automático, ¡esto puede ser sorprendentemente difícil! Una base de datos tendría que almacenar información por separado sobre el caso en el que un automóvil está al frente y donde una motocicleta está al frente. Un algoritmo de aprendizaje automático, por otro lado, "aprendería" del ejemplo del automóvil y podría generalizar al ejemplo de la motocicleta automáticamente.
El aprendizaje automático es un campo de la informática, la teoría de la probabilidad y la teoría de la optimización que permite resolver tareas complejas para las que un enfoque lógico / procedimental no sería posible o factible.
Hay varias categorías diferentes de aprendizaje automático, que incluyen (pero no se limitan a):
Aprendizaje supervisado
En el aprendizaje supervisado, tiene una función realmente compleja (mapeo) de entradas a salidas, tiene muchos ejemplos de pares de entrada / salida, pero no sabe cuál es esa función complicada. Un algoritmo de aprendizaje supervisado hace posible, dado un gran conjunto de datos de pares de entrada / salida, predecir el valor de salida para algún nuevo valor de entrada que quizás no haya visto antes. El método básico es dividir el conjunto de datos en un conjunto de entrenamiento y un conjunto de prueba. Tiene algún modelo con una función de error asociada que intenta minimizar en el conjunto de entrenamiento, y luego se asegura de que su solución funcione en el conjunto de prueba. Una vez que haya repetido esto con diferentes algoritmos y / o parámetros de aprendizaje automático hasta que el modelo funcione razonablemente bien en el conjunto de prueba, puede intentar usar el resultado en nuevas entradas. Tenga en cuenta que en este caso, el programa no cambia, solo se cambia el modelo (datos). Aunque uno podría, teóricamente, generar un programa diferente, pero eso no se hace en la práctica, hasta donde yo sé. Un ejemplo de aprendizaje supervisado sería el sistema de reconocimiento de dígitos utilizado por la oficina de correos, donde mapea los píxeles a las etiquetas en el conjunto 0 ... 9, utilizando un gran conjunto de imágenes de dígitos que se etiquetaron a mano como en 0 ... 9.
Aprendizaje reforzado
En el aprendizaje por refuerzo, el programa es responsable de la toma de decisiones y periódicamente recibe algún tipo de premio / utilidad por sus acciones. Sin embargo, a diferencia del caso del aprendizaje supervisado, los resultados no son inmediatos; el algoritmo podría prescribir una gran secuencia de acciones y solo recibir retroalimentación al final. En el aprendizaje por refuerzo, el objetivo es construir un buen modelo de modo que el algoritmo genere la secuencia de decisiones que conduzcan a la mayor utilidad / recompensa a largo plazo. Un buen ejemplo de aprendizaje por refuerzo es enseñarle a un robot a navegar dándole una penalización negativa cada vez que su sensor de golpes detecta que ha chocado con un objeto. Si se codifica correctamente, es posible que el robot eventualmente correlacione los datos del sensor del telémetro con los datos del sensor del parachoques y las direcciones que envía a las ruedas,
Más información
Si está interesado en obtener más información, le recomiendo que lea Reconocimiento de patrones y aprendizaje automático de Christopher M. Bishop o tome un curso de aprendizaje automático. También puede estar interesado en leer, de forma gratuita, las notas de la conferencia de CIS 520: Machine Learning at Penn .
fuente
El aprendizaje automático es una metodología para crear un modelo basado en datos de muestra y usar el modelo para hacer una predicción o estrategia. Pertenece a la inteligencia artificial.
fuente
El aprendizaje automático es una disciplina científica que se ocupa del diseño y desarrollo de algoritmos que permiten que las computadoras desarrollen comportamientos basados en datos empíricos, como datos de sensores o bases de datos. Leer más en Wikipedia
El código de aprendizaje automático registra "hechos" o aproximaciones en algún tipo de almacenamiento, y con los algoritmos calcula diferentes probabilidades.
El código en sí no se modificará cuando una máquina aprenda, solo la base de datos de lo que "sabe".
fuente
El aprendizaje automático es simplemente un término genérico para definir una variedad de algoritmos de aprendizaje que producen un cuasi aprendizaje a partir de ejemplos (sin etiquetar / etiquetar). La precisión / error real está completamente determinada por la calidad de los datos de entrenamiento / prueba que proporciona a su algoritmo de aprendizaje. Esto se puede medir utilizando una tasa de convergencia. La razón por la que proporciona ejemplos es porque desea que el algoritmo de aprendizaje de su elección pueda generalizar de forma informativa mediante orientación. Los algoritmos se pueden clasificar en dos áreas principales de aprendizaje supervisado (clasificación) y técnicas de aprendizaje no supervisado (agrupación). Es extremadamente importante que tome una decisión informada sobre cómo planea separar sus conjuntos de datos de prueba y entrenamiento, así como la calidad que le brinda a su algoritmo de aprendizaje. Cuando proporcione conjuntos de datos, también debe ser consciente de cosas como el ajuste excesivo y el mantenimiento de un sentido de sesgo saludable en sus ejemplos. Básicamente, el algoritmo aprende a escribir sobre la base de la generalización que obtiene a partir de los datos que le ha proporcionado tanto para el entrenamiento como para las pruebas en el proceso. Intenta que su algoritmo de aprendizaje produzca nuevos ejemplos en base a su entrenamiento específico. En la agrupación hay muy poca orientación informativa que el algoritmo básicamente intenta producir a través de medidas de patrones entre datos para construir conjuntos relacionados de agrupaciones, por ejemplo, kmeans / knearest vecino. Básicamente, el algoritmo aprende a escribir sobre la base de la generalización que obtiene a partir de los datos que le ha proporcionado tanto para el entrenamiento como para las pruebas en el proceso. Intenta que su algoritmo de aprendizaje produzca nuevos ejemplos en base a su entrenamiento específico. En la agrupación hay muy poca orientación informativa que el algoritmo básicamente intenta producir a través de medidas de patrones entre datos para construir conjuntos relacionados de agrupaciones, por ejemplo, kmeans / knearest vecino. Básicamente, el algoritmo aprende a escribir sobre la base de la generalización que obtiene a partir de los datos que le ha proporcionado tanto para el entrenamiento como para las pruebas en el proceso. Intenta que su algoritmo de aprendizaje produzca nuevos ejemplos en base a su entrenamiento específico. En la agrupación hay muy poca orientación informativa que el algoritmo básicamente intenta producir a través de medidas de patrones entre datos para construir conjuntos relacionados de agrupaciones, por ejemplo, kmeans / knearest vecino.
algunos buenos libros: Introducción al aprendizaje automático (Nilsson / Stanford), Proceso gaussiano para el aprendizaje automático, Introducción al aprendizaje automático (Alpaydin), Inferencia de la teoría de la información y algoritmos de aprendizaje (libro muy útil), Aprendizaje automático (Mitchell), Reconocimiento de patrones y aprendizaje automático (estándar Libro de curso de ML en Edimburgo y varios Unis, pero una lectura relativamente pesada con matemáticas), Minería de datos y Aprendizaje automático práctico con Weka (trabajar a través de la teoría usando weka y practicar en Java)
Reinforcement Learning hay un libro gratuito en línea que puede leer: http://www.cs.ualberta.ca/~sutton/book/ebook/the-book.html
IR, IE, recomendadores y minería de texto / datos / web en general utilizan muchos principios de aprendizaje automático. Incluso puede aplicar aquí técnicas de optimización metaheurística / global para automatizar aún más sus procesos de aprendizaje. por ejemplo, aplique una técnica evolutiva como GA (algoritmo genético) para optimizar su enfoque basado en la red neuronal (que puede usar algún algoritmo de aprendizaje). Puede abordarlo simplemente en forma de un enfoque de aprendizaje automático probabilístico, por ejemplo, el aprendizaje bayesiano. La mayoría de estos algoritmos tienen un uso muy intensivo de estadísticas. Los conceptos de convergencia y generalización son importantes para muchos de estos algoritmos de aprendizaje.
fuente
El aprendizaje automático es el estudio en ciencias de la computación de la creación de algoritmos que pueden clasificar información que no han visto antes, mediante el aprendizaje de patrones a partir del entrenamiento con información similar. Hay todo tipo de "aprendices" en este sentido. Las redes neuronales, las redes bayesianas, los árboles de decisión, los algoritmos de agrupación k, los modelos de markov ocultos y las máquinas de vectores de soporte son ejemplos.
Según el alumno, cada uno aprende de diferentes maneras. Algunos estudiantes producen marcos comprensibles para los humanos (por ejemplo, árboles de decisiones) y algunos son generalmente inescrutables (por ejemplo, redes neuronales).
Todos los alumnos se basan esencialmente en datos, lo que significa que guardan su estado como datos para reutilizarlos más tarde. No se modifican a sí mismos como tales, al menos en general.
fuente
Creo que una de las mejores definiciones de aprendizaje automático que he leído es la de este libro de Tom Mitchell. Fácil de recordar e intuitivo.
fuente
A computer program is said to learn in the context of performing a task if its performance with respect to some measure improves with experience.
Extraído descaradamente de Wikipedia: el aprendizaje automático es una disciplina científica que se ocupa del diseño y desarrollo de algoritmos que permiten que las computadoras desarrollen comportamientos basados en datos empíricos, como datos de sensores o bases de datos.
En pocas palabras, el código de aprendizaje automático realiza una tarea de aprendizaje automático. Eso puede ser una serie de cosas, desde interpretar datos de sensores hasta un algoritmo genético.
Yo diría que depende. No, modificar el código no es normal, pero no está fuera del ámbito de lo posible. Tampoco diría que el aprendizaje automático siempre modifica una historia. A veces no tenemos una historia sobre la que construir. En ocasiones, simplemente queremos reaccionar al entorno, pero no aprender de nuestras experiencias pasadas.
Básicamente, el aprendizaje automático es una disciplina muy abierta que contiene muchos métodos y algoritmos que hacen imposible que haya una sola respuesta a su tercera pregunta.
fuente
El aprendizaje automático es un término que se toma del mundo real de una persona y se aplica a algo que en realidad no puede aprender: una máquina.
Para agregar a las otras respuestas, el aprendizaje automático no cambiará (generalmente) el código, pero podría cambiar su ruta de ejecución y la decisión basada en datos anteriores o nuevos datos recopilados y, por lo tanto, el efecto de "aprendizaje".
Hay muchas formas de "enseñar" a una máquina: le das ponderaciones a muchos parámetros de un algoritmo y luego haces que la máquina lo resuelva en muchos casos, cada vez que le das un comentario sobre la respuesta y la máquina ajusta las ponderaciones de acuerdo con qué tan cerca estaba la respuesta de la máquina a su respuesta o según la puntuación que le dio a su respuesta, o según algún algoritmo de prueba de resultados.
Esta es una forma de aprender y hay muchas más ...
fuente