Documentos de Académico
Documentos de Profesional
Documentos de Cultura
se desea hacer alguna cosa, hay que escribir código para decirle exactamente lo
que tiene que hacer. Sin embargo, Wolfram Language tiene la capacidad de
aprender lo que tiene que hacer refiriéndose a ejemplos, utilizando la idea
del aprendizaje de máquinas.
"благодарить"}]
Out[1]=
Wolfram Language puede también realizar tareas considerablemente más
difíciles, de “inteligencia artificial”, tales como la identificación de imágenes.
In[2]:=
Out[2]=
Existe una función general, Classify, a la que se le han enseñado varios tipos de
clasificación. Por ejemplo, clasificar el “sentimiento” de un texto.
In[3]:=
Out[3]=
Un texto pesimista se clasifica como de sentimiento negativo:
In[4]:=
Out[4]=
Uno mismo puede llevar a cabo el entrenamiento de Classify. Un ejemplo
sencillo es la clasificación de dígitos manuscritos como 0 o 1. Se le da
a Classify una colección de ejemplos de entrenamiento, seguidos por un dígito
particular escrito a mano. La respuesta será 0 o 1 para ese dígito manuscrito.
In[5]:=
Out[5]=
Para darse una idea de cómo trabaja lo anterior, y porque es útil por sí mismo, se
describirá la función Nearest, que encuentra cuál de los elementos de una lista es
el más próximo al que uno le dé.
In[6]:=
Out[6]=
Encuentre los tres números más próximos:
In[7]:=
Out[7]=
Nearest también puede encontrar los colores más próximos.
En la lista que sigue, encontrar los 3 colores que estén más próximos al que se da:
In[8]:=
Out[8]=
También funciona con palabras.
In[9]:=
Out[9]=
También existe la noción de cercanía para imágenes. Y, aunque dista de ser todo
lo que hay, esto es, en efecto, parte de lo que usa ImageIdentify.
In[10]:=
Out[10]=
In[11]:=
Out[11]=
Si el texto está demasiado borroso,TextRecognize no podrá reconocer lo que dice,
aunque probablemente una persona tampoco.
In[12]:=
Out[12]=
A medida que el texto se hace más borroso, TextRecognize comete errores, hasta
que desiste por completo:
In[13]:=
Out[13]=
Algo similar sucede si se hace más y más borrosa la imagen de un guepardo.
Mientras la imagen esté más o menos nítida, ImageIdentify la
identificará correctamente como guepardo. Pero cuando es ya demasiado
borrosa, ImageIdentify comienza por confundirla con un león, hasta que su mejor
conjetura es que se trata de una persona.
Out[14]=
In[15]:=
Out[15]=
ImageIdentify supone que esto podría ser un guepardo, pero es más verosímil que
sea un león o hasta un perro:
In[16]:=
Out[16]=
In[17]:=
Out[17]=
En el aprendizaje de máquinas se suele dar el entrenamiento explícitamente, por
ejemplo, diciendo “esto es un guepardo”, “esto es un león”. Aunque a veces
simplemente se desea encontrar categorías de cosas sin un entrenamiento
específico previo.
Una forma de lograr lo anterior es comenzar por tomar una colección de cosas,
como colores, y entonces formar cúmulos con las que sean similares. Esto puede
lograrse usando FindClusters.
In[18]:=
Out[18]=
También puede obtenerse una visión diferente conectando cada color con los tres
más similares en la lista y, entonces, hacer un grafo con las conexiones. En el
ejemplo anterior se obtienen así tres subgrafos no conectados.
In[19]:=
Out[19]=
In[20]:=
Out[20]=
Out[21]=
In[22]:=
Out[22]=
Forme la imagen rasterizada de cada una de las letras del alfabeto (en inglés):
In[23]:=
Out[23]=
FeatureSpacePlot utilizará las características visuales de estas imágenes para
disponerlas gráficamente. El resultado es que aquellas letras con imágenes
similares, como y, v, o e, c, terminarán quedando próximas entre ellas.
In[24]:=
Out[24]=
Aquí se hace lo mismo, pero esta vez con fotos de gatos, coches y
sillas. FeatureSpacePlot separa inmediatamente los diferentes tipos de cosas.
In[25]:=
Out[25]=
Vocabulario
LanguageIdentify[texto] identifica en qué lengua humana está el texto
NearestNeighborGraph[lista,n
conecta elementos de lista con sus n vecinos más cercanos
]
Dendrogram[lista] hace un árbol jerárquico de relaciones entre elementos
Ejercicios
NUEVO: Verifique sus respuestas en Wolfram Cloud
22.1Identifique de qué lengua procede la palabra “ajatella” . »
22.2Aplique ImageIdentify a la imagen de un tigre, donde la imagen se
obtiene usando ctrl+=. »
22.3Forme una tabla de identificaciones de la imagen de un tigre, con
borrosidades del 1 al 5. »
22.4Clasifique el sentimiento de “I’m so happy to be here”. »
22.5Encuentre las 10 palabras en WordList[ ] más cercanas a “happy”. »
22.6Genere 20 números aleatorios entre 0 y 1000, y encontrar los 3 que
estén más próximos a 100. »
22.7Genere una lista de 10 colores aleatorios, y encuentre los 5 más
cercanos a Red. »
22.8De los 100 primeros cuadrados, encuentre el más próximo a 2000. »
22.9Encuentre las 3 banderas europeas más cercanas a la de Brasil. »
22.10Haga un grafo de los 2 colores que sean vecinos más cercanos a cada
uno de los colores en Table[Hue[h], {h, 0, 1, .05}]. »
22.11Genere una lista de 100 números aleatorios entre 0 y 100, y hacer un
grafo de los dos vecinos más próximos para cada uno. »
22.12Acomode las banderas de Asia en cúmulos de banderas similares. »
22.13Produzca imágenes rasterizadas de las letras del alfabeto inglés en
tamaño 20, y luego haga un grafo de los 2 vecinos más próximos para cada
uno. »
22.14Genere una tabla con los resultados de usar TextRecognize en “hello”,
rasterizado en tamaño 50 y con niveles de difuminación entre 1 y 10. »
22.15Haga un dendrograma con las imágenes de las primeras 10 letras del
alfabeto. »
22.16Haga una imagen del espacio de características de las letras
mayúsculas del alfabeto inglés. »
+22.1Construya una tabla de identificaciones de imagen para una foto de la
torre Eiffel, con borrosidades del 1 al 5. »
+22.2Clasifique el sentimiento del artículo “happiness” en Wikipedia. »
+22.3De los colores en la lista Table[Hue[h], {h, 0, 1, .05}], encuentre los 3
más cercanos al Pink. »
+22.4Obtenga todas las fracciones i/j para i y j hasta 500, y encontrar las 10
más cercanas a pi. »
+22.5Genere una lista de 10 números aleatorios del 0 al 10, y hacer un
grafo de los 3 vecinos más próximos para cada uno. »
+22.6Encuentre cúmulos de colores similares en una lista de 100 colores
aleatorios. »
+22.7Haga una imagen del espacio de características para las letras
mayúsculas y minúsculas del alfabeto inglés. »
Preguntas y respuestas
¿Cómo es posible que se obtengan resultados diferentes de los mostrados
aquí?
Probablemente, porque las funciones para aprendizaje de máquinas en Wolfram
Language cada vez tienen más entrenamiento, lo que hace que los resultados vayan
cambiando, y se esperaría que fueran cada vez mejores. En el caso
de TextRecognize, los resultados pueden depender del detalle de las fuentes
utilizadas y de qué manera se generaron y rasterizaron en la computadora que se
esté usando.
¿Qué características usa FeatureSpacePlot?
No hay una respuesta sencilla para esta pregunta. Cuando se le presenta una
colección de objetos, aprende sus características distintivas; si bien, típicamente,
parte de haber visto muchos otros objetos del mismo tipo general (como imágenes).
Notas técnicas
Wolfram Language almacena en la nube sus más recientes
clasificadores para aprendizaje de máquinas, pero en el caso de que se use un
sistema de escritorio, se descargarán automáticamente y correrán localmente.
BarcodeImage y BarcodeRecognize trabajan con códigos de barras y
códigos QR en vez de texto puro.
ImageIdentify es el núcleo de lo que hace el sitio
web imageidentify.com.
Si solo se dan a Classify ejemplos para entrenamiento,
producirá una ClassifierFunction que se puede aplicar posteriormente a muchos
tipos de datos diferentes. Es así como casi siempre se usa Classify en la práctica.
Puede obtenerse un conjunto estándar amplio para entrenamiento con
dígitos manuscritos usando ResourceData["MNIST"].
Classify elige automáticamente entre métodos tales
como regresión logística, Bayes ingenuo, bosques aleatorios y máquinas de
vectores de soporte, así como redes neuronales.
FindClusters realiza aprendizaje automático no supervisado, en el que
la computadora simplemente revisa los datos sin que se le dé información al
respecto. Classify realiza aprendizaje automático supervisado, dado un conjunto
de ejemplos de entrenamiento.
Dendrogram lleva a cabo una formación jerárquica de cúmulos, y puede
usarse para reconstruir árboles evolucionarios en áreas como la bioinformática y
la lingüística histórica.
FeatureSpacePlot hace reducción de dimensión, partiendo de datos
representados por muchos parámetros, y encontrando alguna buena manera
de “proyectarlos” para poder obtener imágenes en 2D.
Rasterize/@Alphabet[ ] es una mejor forma de rasterizar letras,
pero /@ no será tratado hasta la Sección 25.
FeatureExtraction permite obtener los vectores de características
utilizados por FeatureSpacePlot.
FeatureNearest es como Nearest, excepto que aprende lo que debe
considerarse como próximo, examinando los datos mismos que se le den. Esto es
lo que se requiere para construir algo como una función de búsqueda de
imágenes.
Uno puede construir y entrenar sus propias redes neuronales en
Wolfram Language mediante el uso de funciones
como NetChain, NetGraph y NetTrain. NetModel da el acceso a redes
preconstruidas.
Para explorar más
Guía para aprendizaje de máquinas en Wolfram Language »
Español
Copyright 2021
Siguiente