Está en la página 1de 10

Universidad Simn Bolvar

Maestra en Ingeniera de Sistemas


PS-8190: Fundamentos Tericos de Sistemas
Profesor: Jorge Molero
Alumno: John Lenin Ortiz G Carnet 15-90190
Monografa
Ttulo: Tcnicas y lenguajes de programacin usados en Aprendizaje de Maquinas (Machine
Learning) y sus aplicaciones.
Temas a tratar: Machine Learning, lenguajes de programacin, algoritmos.
Resea: En el presente trabajo se realiza un resumen de los lenguajes de programacin usados
en el aprendizaje de mquinas o Machine Learning (ML), mostrndose las ventajas que tiene cada
lenguaje y sus diferentes aplicaciones. Primero se describe que en que consiste el aprendizaje de
mquinas y se muestran sus caractersticas. Luego se muestran los lenguajes de programacin que
se usan para diferentes aplicaciones de ML. Finalmente, se muestran una serie de conclusiones
respecto al aprendizaje automtico.
Introduccin:
Qu es el aprendizaje de Mquinas?
El aprendizaje de mquinas, o Machine Learning (ML) en ingls, es una de las reas ms
antiguas de la inteligencia artificial y trata el estudio de mtodos computacionales para el
descubrimiento de nueva informacin y para la administracin de informacin existente. Los
mtodos de ML se han aplicado en varios dominios. Sin embargo, en los ltimos aos, debido a
varios avances tecnolgicos y esfuerzos en investigacin (por ejemplo, la culminacin del
Proyecto Genoma Humano, y la evolucin de la WEB) hay disponible nueva informacin y
consecuentemente han aparecido nuevos dominios donde se puede aplicar el aprendizaje de
mquinas (1).
Machine learning consiste en algoritmos o modelos que aprenden patrones en informacin y
luego predice patrones similares en nueva data. Machine learning significa tomar decisiones en
tiempo real sin intervencin humana.

Aprendizaje automtico y sistemas cognitivos.


Un sistema cognitivo trata de entender el concepto de su medio al usar una interpretacin
simplificada de su entorno llamada Modelo. El proceso de construccin de tal modelo es llamado
Aprendizaje Inductivo. Adems, un sistema cognitivo tiene la capacidad de organizar su
experiencia al construir nuevas estructuras llamadas patrones. La construccin de modelos y
patrones por un sistema cognitivo usando un arreglo de datos es llamado Machine Learning.
Patrn Vs Modelo
Un modelo describe el arreglo completo de informacin y es tambin caracterizado como
Modelo Predictivo puesto que puede ser usado para predecir la salida de una funcin (Funcin
Objetivo) para unos valores dados en el dominio de la funcin. Adems, un modelo provee
informacin cualitativa sobre la data. En contraste, un patrn solo describe una porcin de la data
y es caracterizado como Patrn Informativo.
Mtodos usados en ML
Dos de los mtodos ms adoptados en ML son el aprendizaje supervisado y el aprendizaje no
supervisado. La mayor parte del ML usado (alrededor del 70%) es aprendizaje supervisado,
mientras que el aprendizaje no supervisado es usado de un 10 a un 20%. El aprendizaje semisupervisado y el aprendizaje por refuerzo o Reinforcement Learning (RL) son otras dos tecnologas
que tambin se usan.
Aprendizaje Supervisado.
Esta clase de aprendizaje tambin se conoce como Aprendizaje por ejemplos. En el
aprendizaje supervisado el sistema cognitivo tiene que aprender un concepto o una funcin, la cual
es de hecho la descripcin de un modelo. En particular, el sistema est dotado con un conjunto de
ejemplos. La salida de la funcin objetivo para cada uno de esos ejemplos tambin est disponible.
El sistema tiene que descubrir la descripcin del modelo basado en la salida de la funcin. Para
propsitos de evaluacin, se construye un modelo usando un subconjunto de la data (conjunto de
entrenamiento o training set), mientras que la data restante se usa para evaluar el modelo construido
(conjunto de prueba o test set). Se usa comnmente cuando la data histrica puede predecir futuros

eventos. Por ejemplo, puede anticipar cuando las transacciones con tarjetas de crdito pudieran ser
fraudulentas o cual cliente de una compaa de seguros pudiera realizar una demanda o reclamo.
En el aprendizaje supervisado se reconocen dos tareas de aprendizaje, llamadas clasificacin
y regresin. La clasificacin se trata de la construccin de modelos predictivos para funciones con
rango discreto, mientras que la regresin se trata de la construccin de modelos predictivos para
funciones con rango continuo.
Mtodos de aprendizaje supervisado ms comunes:
Aprendizaje de conceptos: Se le proveen ejemplos al sistema cognitivo que pertenecen
(ejemplos positivos) o no pertenecen (ejemplos negativos) en un concepto (clase). Luego, se llama
al sistema para producir una descripcin generalizada del concepto para decidir en futuros casos
basados en esta descripcin.
Clasificacin o rbol de decisin de induccin (Decision Tree Induction). Los mtodos de
Clasificacin son muy populares y se utilizan para la aproximacin de funciones objetivo discretas.
Estos mtodos construyen estructuras de rbol que representan grficamente los datos de
entrenamiento. La principal ventaja de los rboles de decisin es que se interpretan fcilmente.
Los rboles de decisin tambin pueden ser representados como reglas de la forma "si-entonces".
Aprendizaje bayesiano. Este tipo de aprendizaje se basa en el teorema de Bayes e incluye
mtodos que utilizan las probabilidades y estadistica. Si se tiene conocimiento previo, ste puede
ser incorporado en forma de probabilidades iniciales.
Regresin lineal. La regresin lineal es un mtodo para la descripcin de una funcin objetivo
con una combinacin lineal de una serie de otras variables. El rango de la funcin objetivo debe
ser un intervalo continuo.
Redes neuronales: Genricamente, son mtodos de proceso numrico en paralelo, en el que
las variables interactan mediante transformaciones lineales o no lineales, hasta obtener unas
salidas. Estas salidas se contrastan con los que tenan que haber salido, basndose en unos datos
de prueba, dando lugar a un proceso de retroalimentacin mediante el cual la red se reconfigura,
hasta obtener un modelo adecuado.

Algoritmos genticos: Son mtodos numricos de optimizacin, en los que aquella variable o
variables que se pretenden optimizar junto con las variables de estudio constituyen un segmento
de informacin. Aquellas configuraciones de las variables de anlisis que obtengan mejores
valores para la variable de respuesta, correspondern a segmentos con mayor capacidad
reproductiva. A travs de la reproduccin, los mejores segmentos perduran y su proporcin crece
de generacin en generacin. Se puede adems introducir elementos aleatorios para la
modificacin de las variables (mutaciones). Al cabo de cierto nmero de iteraciones, la poblacin
estar constituida por buenas soluciones al problema de optimizacin, pues las malas soluciones
han ido descartndose, iteracin tras iteracin.
Aprendizaje No Supervisado
Este tipo de aprendizaje tambin se conoce como el aprendizaje a partir de la observacin. En
el aprendizaje no supervisado el sistema tiene que descubrir cualquier patrn (es decir,
asociaciones o clsteres) basadas nicamente en las propiedades comunes del ejemplo sin saber
cuntos o incluso si hay algn patrn. Los principales mtodos de aprendizaje de mquina no
supervisado son los siguientes:
Minera de secuencias. la minera de secuencias se refiere al aprendizaje a partir de datos
ordenados. El orden es generalmente temporal. Tiene tambin muchas contribuciones del rea de
investigacin de bases de datos y se ha propuesto como una extensin de minera de reglas de
asociacin.
Clustering o agrupacin. Clustering es el procedimiento de descubrimiento de grupos de
ejemplos, de manera que los ejemplos que pertenecen al mismo grupo sean tan similares como sea
posible, mientras que los ejemplos que pertenecen a grupos separados son tan diferentes como sea
posible.
Aplicaciones
Muchas de las actividades cotidianas involucran algoritmos de aprendizaje automtico,
incluyendo:
-

Deteccin de fraudes

Resultados en motores de bsqueda

Deteccin de intrusos en redes

Publicidad en tiempo real en sitios web y dispositivos mviles

Reconocimiento de patrones e imgenes: Un uso popular de ML se basa en el


reconocimiento de patrones, ya que se puede usar para distinguir y reconocer muchos tipos
de imgenes, por ejemplo, para el reconocimiento de letra manuscrita.

Ofertas basadas en consumo

Filtro de spam en emails

As mismo, las grandes compaas de informtica actualmente tienen proyectos y productos


que involucran el aprendizaje automtico, y en general la inteligencia artificial, como se muestra
en la siguiente figura:

Figura 1: Productos y proyectos en Inteligencia Artificial de lagunas compaas.


Lenguajes de programacin usados en ML
En general, el lenguaje de programacin usado para realizar un proyecto en base al aprendizaje
automtico debe considerar los requerimientos y necesidades de cada proyecto. KDnuggets (2),
quien realiza constantemente encuestas sobre lenguajes de programacin, recientemente realiz

una encuesta sobre el tema, encontrndose que los lenguajes de programacin R y Python son ms
usados para anlisis de grandes volmenes de datos. Los resultados de dicha encuesta se muestran
en la figura 2:

Figura 2: Plataformas ms populares para el uso de ML, tomado de (2)


Por otro lado, Kaggle, quien ofrece competiciones en ML, ha censado cuales son las
herramientas y lenguajes de programacin usados por los participantes en sus competencias. El
resultado sugiere un abundante uso de R, mientras que tambin se muestran amplios usos de
Matlab y SAS con una representacin menos fuerte de Python.

Figura 3: Herramientas ms populares usadas en Kaggle, sitio web de competencias de ML


Teniendo en cuenta la anterior informacin, se realiz una bsqueda de los principales
lenguajes de programacin mencionados en estos estudios, obteniendo la siguiente sntesis para
cada uno:
R
R es un espacio de trabajo para anlisis estadstico, y por extensin, para ML. Es la plataforma
a usar cuando se quiere explorar y entender una informacin dada usando mtodos estadsticos y
grficos. Contiene una cantidad enorme de algoritmos de ML e implementaciones avanzadas
escritas por los desarrolladores de los algoritmos. El lenguaje R es ampliamente usado por
estadistas y data miners para el desarrollo de software estadstico y anlisis de informacin. R es
un proyecto de GNU. El cdigo fuente para el entorno de software R est escrito en C y Fortran,
y es de dominio pblico.
En R se pueden implementar una amplia variedad de tcnicas grficas y estadsticas,
incluyendo modelado lineal y no lineal, pruebas clsicas estadsticas, anlisis de series temporales,
clasificacin, clustering, entre otros. R se puede extender fcilmente mediante funciones y

extensiones. Se pueden escribir cdigos en C, C++, Java, .NET o Python para manipular los
objetos de R directamente.
Python
Python es un lenguaje de programacin interpretado cuya filosofa hace hincapi en una
sintaxis que favorezca un cdigo legible. Python es un lenguaje de programacin multiparadigma,
es decir; soporta hacer programacin orientada a objetos y programacin imperativa. Su creador
fue Guido Van Rossum y debido a que es de cdigo libre la comunidad de desarrolladores ha
creado libreras o mdulos para hacer casi cualquier cosa.
En general la gente que hace anlisis de datos o estadstica conoce bien R Project, SAS o
SPSS. Pero pocos se han acercado a Python y sus libreras para anlisis de datos. Las ventajas
pueden ser cuestionables con respecto a software que especficamente fueron diseados con una
perspectiva estadstica, pero sin duda la potencia y calidad de libreras es muy buena.
Principalmente para hacer uso de algoritmos de Machine Learning las libreras en Python son
mejores que las de R, sobre todo las tcnicas de Deep Learning (3).
Quizs el mejor candidato para comparar el uso de Python en el anlisis de datos es R, por ser
software libre y ser actualmente de alta demanda y atraccin en la ciencia de datos. Sin embargo,
Python siendo realmente un lenguaje de programacin, no se limita a ser usado solamente para
analizar datos, sino bien puede ser parte de un sistema o para desarrollar un proyecto completo. ya
que soporta orientacin a objetos, programacin imperativa y, en menor medida, programacin
funcional.
Python fue diseado para ser ledo con facilidad. Una de sus caractersticas es el uso de
palabras donde otros lenguajes utilizaran smbolos.
Matlab
MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es una
herramienta de software matemtico que ofrece un entorno de desarrollo integrado (IDE) con un
lenguaje de programacin propio (lenguaje M). Est disponible para las plataformas Unix,
Windows, Mac OS X y GNU/Linux. Entre sus prestaciones bsicas se hallan: la manipulacin de

matrices, la representacin de datos y funciones, la implementacin de algoritmos, la creacin de


interfaces de usuario (GUI) y la comunicacin con programas en otros lenguajes y con otros
dispositivos hardware.
OpenCV
OpenCV es una biblioteca libre de visin artificial originalmente desarrollada por Intel,
multiplataforma, existiendo versiones para GNU/Linux, Mac OS X y Windows. Contiene ms de
500 funciones que abarcan una gran gama de reas en el proceso de visin, como reconocimiento
de objetos (reconocimiento facial), calibracin de cmaras, visin estrea y visin robtica. El
proyecto pretende proporcionar un entorno de desarrollo fcil de utilizar y altamente eficiente.
Esto se ha logrado realizando su programacin en cdigo C y C++ optimizados, aprovechando
adems las capacidades que proveen los procesadores multincleo.
SAS
El Sistema SAS (Statistical Analisys System) es un paquete de software que abarca mltiples
reas de trabajo del campo cientfico, centrndose especialmente en todas las ramas de la
Estadstica aplicada. Dado que esta disciplina es prcticamente universal en la actualidad, la
utilidad de este software puede extenderse a la mayora de las ciencias experimentales y sociales.
El sistema SAS consta de una serie de mdulos, cada uno de ellos orientado a una tarea
especfica. El lenguaje SAS opera principalmente sobre tablas de datos: puede leerlas,
transformarlas, combinarlas, resumirlas, crear informes a partir de ellas, etc.

Conclusiones
En resumen, el objetivo del machine learning (ML) es ensear a las mquinas el llevar a cabo
ciertas tareas ensendoles algunos ejemplos de cmo o cmo no llevar a cabo la tarea.
El aprendizaje de mquinas es un mtodo de anlisis de data que automatiza la construccin
de modelos analticos. ML le permite a las computadoras encontrar patrones ocultos, mediante el
uso de algoritmos que iterativamente aprenden de la data, sin estar programados explcitamente de
donde buscar.

El aspecto iterativo de ML es importante, dado que, a medida que los modelos se exponen a
nueva data, son capaces de adaptarse independientemente.
Debido a las nuevas tecnologas de computacin, ML hoy no es como el ML del pasado. As
como muchos algoritmos de ML han estado presentes desde hace mucho, la habilidad de aplicar
automticamente clculos matemticos complejos a grandes cantidades de informacin de manera
repetida y cada vez ms rpida, es un desarrollo reciente.
Un factor que ha impulsado el uso de ML es la construccin de modelos automticos en tiempo
real. Los humanos pueden crear tpicamente uno o dos buenos modelos en una semana, mientras
que el aprendizaje automtico puede crear miles de modelos en el mismo tiempo.

Referencias
1. Tzanis, George, y otros. Modern Applications of Machine Learning . University of
Thessaloniki, GR-54124 Thessaloniki, Greece : s.n.
2. KDNuggets. Languages for analytics/data mining. [En lnea] 2013. [Citado el: 25 de
Marzo de 2016.] http://www.kdnuggets.com/polls/2013/languages-analytics-data-mining-datascience.html.
3. Gorreta, Danielle. Algo sobre Python, anlisis de datos y machine learning. [En lnea]
[Citado el: 27 de Marzo de 2016.] https://dlegorreta.wordpress.com/2015/05/13/algo-sobrepython-analisis-de-datos-y-machine-learning/.

También podría gustarte