SlideShare una empresa de Scribd logo
1 de 6
IMPLEMENTACIÓN DE UNA NEURONA ARTIFICIAL
TIPO PERCEPTRÓN SOBRE UN DISPOSITIVO MÓVIL
CON SISTEMA OPERATIVO ANDROID
Viera Balanta Víctor
Institución Universitaria Antonio José Camacho
Grupo de Investigación en Control y Automatización (GICAT)
Avenida 6ta # 28N-102, Santiago de Cali, Colombia
vviera@admon.uniajc.edu.co
Resumen
Este artículo presenta el proceso de diseño y
creación de una neurona artificial con el lenguaje
de programación Android. Se abordan aspectos
sobre el entrenamiento y aprendizaje de la
neurona basada en la teoría del Perceptrón, la
implementación para una plataforma móvil,
Android, y algunas consideraciones sobre
alcances y limitaciones de la neurona.
Palabras Clave: Neurona Artificial, Perceptrón,
Android, Inteligencia Artificial, Entrenamiento,
funciones linealmente separables.
1. Introducción
Las neuronas están consideradas como
artífices de pensamiento, aprendizaje,
locomoción, sentimientos, pensamientos, habla,
visión, audición e innumerable funciones. Por
esta razón han llamado la atención de científicos
que estudian su fisiología, comportamiento y la
forma en que se conectan y comunican para
formar parte de un organismo y permitirle
desempeñarse adecuadamente en un entorno
determinado.
En los años cuarenta dos investigadores,
Warren McCulloch y Walter Pitts1
, diseñan la
primera red neuronal. La cual estaba constituida
por la sumatoria de señales de entrada por pesos
aleatorios. Los cálculos obtenidos, a partir de las
entradas y pesos, se comparaban con un patrón si
el cálculo arrojaba un valor mayor o igual al
patrón el resultado de la red seria 1(uno), de ser el
valor menor al patrón el resultado de la red se
establecía en 0 (cero) 2
.
1
Científicos Estadounidenses,
2
Universidad del Guadalajara, el Perceptrón, ver
http://proton.ucting.udg.mx/posgrado/cursos/idc/n
euronales2/AntecedentesP.htm
En 1958 un investigador puso su atención en
el funcionamiento de las neuronas, el psicólogo
Frank Rosenblatt, basándose en el modelo de
McCulloch y Pitts, desarrollo un modelo
artificial de neurona, el cual denominó modelo de
Perceptrón.
Para establecer la relación existente entre el
modelo del Perceptrón de Rosenblatt y una
neurona se abordaran las características y
funcionamiento básico de las mismas.
2. Funcionamiento de las Neuronas
En la Figura 1 se pueden observar las partes
principales de una neurona, la cual se compone
del cuerpo de la célula o Soma, el núcleo, el
Axón que es una prolongación de la neurona,
ramificaciones denominadas dendritas y la
arborización Axonal. Las conexiones de las
ramificaciones de un Axón y las dendritas se
denominan Sinapsis.
Fuente: Inteligencia Artificial un Enfoque
Moderno, Stuart Russell-Peter Norvig.2004
Fig. 1 Partes de una Red Neuronal.
Según Stuart Russell-Peter Norvig, 2004 el
proceso presentado en las neuronas es el
siguiente:
“Las señales se propagan de neurona a
neurona mediante una complicada reacción
electroquímica. La sinapsis libera sustancias
químicas transmisoras y entran a la dendrita, con
lo cual se eleva o reduce un potencial eléctrico
del cuerpo de la célula. Una vez que el potencial
eléctrico rebaza cierto limite, se envía al axón un
impulso eléctrico o potencial de acción. El
impulso se difunde a través de las ramas del
axón, y finalmente llega a la sinapsis y libera
transmisores en los cuerpos de otras células. Las
sinapsis que aumentan el potencial se conocen
como excitadoras, y las que lo disminuyen se
denominan inhibidoras. Las conexiones
sinápticas muestran plasticidad: alteraciones a
largo plazo de la intensidad de las conexiones
como respuesta al patrón de estimulación”.
En el mismo documento se menciona que las
neuronas establecen nuevas conexiones con otras
neuronas, y en ocasiones, con grupos de neuronas
que pueden migrar de un sitio a otro, es
considerado que los procesos anteriores
establecen las bases del aprendizaje en el cerebro.
Aunque se debe considerar lo siguiente: “Existe
un mundo místico, fuera del alcance de las
ciencias físicas, que es donde funcionan las
mentes”, (Struat Russell,Peter Norvig, 1996)
3. Diseño y Arquitectura de una
Neurona Computacional
En 1958 Rosenblatt establece un modelo
simplificado de una neurona artificial constituida
con la siguiente Arquitectura:
El Perceptrón presenta variables de entrada
representadas con X1, X2,Xn, y V, ver Figura 2.,
la variable V representa el valor asociado al peso
extra o umbral. Para el modelo planteado en el
presente artículo, la variable V tendrá siempre el
valor de -1, lo anterior para efectos del balanceo
de los cálculos del Perceptrón. Adicionalmente el
Perceptrón debe contener las salidas adecuadas y
correspondientes a los diferentes valores de
entrada.
Fig 2. Arquitectura del Perceptrón.
Con las entradas y pesos establecidos se
procede a crear una expresión para calcular el
nivel de umbral. Ver figura 3.
Fig 3. Formula para cálculo del nivel de umbral.
Si el valor resultante de la sumatoria de entras
por sus pesos es mayor o igual a cero el
Perceptrón arroja el valor de uno (1), en caso
contrario, si el resultado es menor a cero el
Perceptrón arrojara el valor de menos uno (-1).
Debido a que el Perceptrón debe arrojar
valores iguales a valores específicos de entrada y
salida (1 o -1), al no coincidir los valores
calculados por el Perceptrón con las salidas
esperadas a partir de los datos de entrada, se
procede a modificar los pesos. Este proceso
también es denominado “Proceso de
Aprendizaje”. La formula para recalcular los
pesos se muestra en la Figura 4.
Fig 4. Formula para cálculo de los nuevos pesos,
configurando la memoria del Perceptrón.
El factor de aprendizaje es un valor que se
suele colocar en 0.5, este factor representa la
velocidad y calidad del aprendizaje de Perceptrón.
La memoria del Perceptrón esta representada
en los pesos adecuados que satisfacen las salidas
esperadas a partir de entras.
3.1 Que Puede Clasificar y Recordar el
Perceptrón
El Perceptrón es limitado, pero a pesor de
esto, representa un gran avance en el área de la
Inteligencia Artificial, específicamente la
simulación del funcionamiento de las neuronas.
Las funciones que el Perceptrón puede
clasificar y asimilar son las denominadas
funciones linealmente separables. La grafica de
una función de este tipo presenta una particular
clasificación de valores. Es posible separar
fácilmente valores del mismo tipo trazando una
recta, la recta dividirá perfectamente los valores
clasificados en dos grupos, cada grupo contará
con valores idénticos que representan una
clasificación específica. Ver la figura 5.
Fig 5. Las funciones And y Or linealmente
separables; la función Xor representa un caso de no
separabilidad lineal.
4. Algoritmo de Entrenamiento de un
Perceptrón
El Algoritmo del Perceptrón posee
características que lo hacen un buen candidato
para implementarse en un dispositivo móvil. Ver
figura 5. Con un adecuado factor de aprendizaje,
0.5, el rendimiento o complejidad de este
algoritmo es aproximadamente de O(n*p*i),
donde n representa el número de entradas, p
número de pesos y n el número de intentos, en la
mayoría de ejemplos lo hace un algoritmo de
costo o complejidad algorítmica inferior a O (n2).
Fig 5. Algoritmo Básico del entrenamiento de
Perceptrón. Fuente propia
Otra característica importante, aunque la
primordial radica en el rendimiento, se basa en lo
fácil y rápido que se lleva a un lenguaje de
programación. Con un algoritmo “corto” y
sencillo se pueden “simular” los procesos de una
neurona.
5. Implementación de la neurona en
un dispositivo móvil con Android.
Android es la nueva plataforma móvil más
difundida y utilizada en los últimos años. De
acuerdo a lo difundido en el sitio de la compañía
Google3
y publicaciones realizadas por
importante medios de información internacionales
4
; Android cuenta con miles de dispositivos en el
mercado mundial, alrededor de un 50% de
participación.
La estrategia de Open Source 5
facilita que el
sistema operativo Android sea utilizado en el
ámbito académico y científico. El núcleo Linux
lo convierte en una plataforma robusta, estable y
confiable. También tiene gran parte del sistema
3
Android Developers
4
Cnn Mexico
5
Movimiento de Software Libre y de Código
Abierto,
creado en Java. La Figura 6 muestra la
arquitectura del sistema operativo Android.
Fig 6. Arquitectura de la Plataforma Android.
Como se puede apreciar en la grafica la base
de la arquitectura es el Kernel de Linux, en la
siguiente capa se encuentran librerías especiales
como “Open GL” ,librería para gráficos; en la
misma capa se encuentra el modulo de “Android
Runtime” que contiene la maquina virtual
denominada “Dalvik Virtual Machine”6
. En una
nivel posterior se encuentra la capa de librerías
que los desarrolladores pueden utilizar para crear
aplicaciones, esta capa es denominada
“Aplication Framework”, y por ultimo se
encuentran las aplicaciones que permiten que los
usuarios puedan realizar un trabajo especifico con
el dispositivo como navegar, utilizar el teléfono,
conectarse a una red local, entre otras.
La Figura 7 muestra el programa del
Perceptrón creado para el dispositivo móvil con
sistema operativo Android
Fig 7.Ventana del Perceptrón en el Emulador de
Android.
6
La Maquina Virtual permite que los programas
corran en diferentes tipos de dispositivos sin
sufrir alteraciones de código
Aplicaciones
Observando la Figura 2, donde se muestra la
arquitectura del Perceptrón, se puede confirmar
que el programa creado en Android contiene los
elementos esenciales que requiere el Perceptrón
como: entradas, salidas, pesos iniciales aleatorios
y los pesos finales. El programa también tiene
entradas de prueba para verificar los pesos
arrojados por el Perceptrón, estas entradas tienen
la utilidad de permitir colocar diferentes valores
para que el programa, por medio de los pesos
aprendidos, calcula la salida esperada y el usuario
pueda comprobar que el aprendizaje ha sido
satisfactorio. Del mismo modo que al hacer una
evaluación a un estudiante.
5.1 Código Fuente
El Software del Perceptrón se desarrollo con una
Arquitectura de 2 capas, la capa “Vista” y la capa
“Perceptron”. La capa “Vista”, representada por
“MainActivity.java”, contiene la interface que
permite la entrada y visualización de datos. La
capa “Perceptron”, esta compuesta por los
cálculos de entrenamiento donde se lleva a cabo
el aprendizaje. Ver Figura 8.
Fig 8. Arquitectur en Android del Software de
Perceptrón.
Aquí se presentan únicamente los métodos
principales que hacen posible el aprendizaje del
Perceptrón: “Entrenamiento” y “Recalcular
Pesos”. Ver Figura 9.
Fig 9. Código fuente en Android de entrenamiento y
recalculo de pesos del Perceptrón.
El código fuente implementa el algoritmo
mostrado en la Figura 5. En la cual se pueden
apreciar el vector de pesos, vector de salidas,
vector de entradas y el método de recalcular
pesos.
Al presentarse una salida calculada diferente a
una salida esperada, el programa llama al método
de “RecalcularPesos”, donde se calcula el nuevo
peso para la entrada actual; para ello se apoya en
la entrada que se debe aprender.
Otro método presente en la capa “Perceptron” es
“Inicializa_Pesos”, el cual asigna los pesos
aleatorios iniciales, la primera aproximación al
aprendizaje del Perceptrón. Ver Figura 10.
Fig 10. Método de asignación de peso iniciales para
el Perceptrón
Por último se tiene el método de “verificar”, este
método utiliza los pesos resultados del Perceptrón
para hacer posible la verificación de los pesos
“aprendidos”, en otras palabras. Confirmar si la
configuración de los pesos obtenidos por medio
del proceso de aprendizaje del Perceptrón es
adecuado para el conjunto de entrenamiento. Ver
figura 11.
Fig 11. Método de verificación de Pesos Aprendidos.
6. Pruebas
Las pruebas iniciales se realizaron en el
emulador de un dispositivo Motorola con sistema
operativo Android 2.2, para estas pruebas se
utilizaron las funciones “OR” y “AND” y otras
funciones no Linealmente separables. La
validación de los datos de salida, valores
aprendidos, se realizó utilizando un software
creado en Java, al cual se le introducían los pesos
aleatorios generados en el programa Android, así
las instancias de los valores aprendidos en cado
ciclo debían ser iguales en ambos programas.
Después de varios ajustes se logró que ambos
programas arrojaran resultados idénticos.
Para facilitar las pruebas se diseñó una
interface con campos en los cuales los usuarios
ingresaran los datos de entrada, salidas esperadas
y entradas, fácilmente. También se adicionaron
botones de Salidas, Entradas, Iniciar Pesos y
Entrenar. Los Botones pasan los valores de la
ventana a la capa donde se encuentra la clase que
contiene los métodos donde se realizan los
cálculos que permiten el entrenamiento del
Perceptrón.
Posteriormente el Perceptrón se Instaló en un
dispositivo Samsung Galaxy GT-5570L, con
Sistema Operativo Android 2.2, las pruebas
llevadas a cabo en el emulador se repitieron en el
dispositivo, obteniendo resultados idénticos en
cada instancia de aprendizaje de pesos.
El software cuenta con un método que permite al
usuario verificar los pesos aprendidos del
Perceptrón, el usuario introduce entradas
específicas, ver Figura 7, sección de verificación,
y al oprimir el botón de “Calcular” se puede
observar la salida calculada a partir de los pesos
aprendidos. Lo anterior con el fin de que el
software del “Perceptrón” constase con las
opciones necesarias para su optimo
funcionamiento.
Las pruebas con el dispositivo móvil mostraron la
practicidad y utilidad académico científica de
contar con un programa de Inteligencia Artificial
en un dispositivo móvil con poder de
procesamiento.
7. Conclusiones
La proliferación de dispositivos a precios más
bajos ha ocasionado su fácil adquisición, por
consiguiente los dispositivos pueden ser
utilizados en diferentes ámbitos. La estrategia de
la compañía Google de distribuir Android de
forma “Libre” se une a esta oleada creciente de
utilización masiva de dispositivos móviles. Pero
los dispositivos por si solos no hacen la
diferencia, se necesita software específico para
tecnología móvil que funcione adecuadamente.
La Inteligencia Artificial unificada con la
tecnología móvil se convierte en una poderosa
herramienta para la nueva generación de
dispositivos verdaderamente inteligentes.
Lo relacionado en el presente artículo es sólo un
acercamiento al planteamiento de
aprovechamiento apropiado de dispositivos para
el bienestar y el progreso; con el objetivo de
reflexionar y vislumbrar acerca de la fascinante
gama de posibilidades que brinda la fusión de la
computación móvil y la Inteligencia Artificial.
Bibliografia
[1] Stuart Russell-Peter Norvig. Inteligencia
Artificial un Enfoque moderno Segunda Edición
Editorial Prentice Hall. 2004
[2] James A. Anderson, Redes Neurales ,
AlfaOmega, 2007
[3] Luís Eduardo Múnera. Princípios de
Inteligência Artificial y Sistemas Expertos.
Editorial Universidad Icesi 2001.
[4] Gonzalo Pajares Martinsanz-Matilde Santos
Penas. Inteligencia Artificial E Ingeniería del
Conocimiento. Editorial Alfaomega-Ra-ma. 2006
[5] Rosenblatt Frank, Rosenblatt’s Perceptron,
Primer capitulo del libro
[En línea ] Disponible en:
http://www.pearsonhighered.com/assets/hip/us/hi
p_us_pearsonhighered/samplechapter/013147139
2.pdf . Consultado en Abril de 2012
[6] Mculloch Warren S, Pitt Walter H, A logical
calculus of the ideas imnanent in nervios activity,
Libro publicado originalmente en 1943. [En
línea] Disponible
en:http://www.cse.chalmers.se/~coquand/AUTO
MATA/mcp.pdf .Consultado en Consultado en
Abril de 2012
[7] Sitio para desarrolladores Android, Android
Developers,[En Linea] Disponible en
http://developer.android.com/guide/basics/what-
is-android.html
Víctor Viera Balanta
Victor.viera@gmail.com

Más contenido relacionado

La actualidad más candente

Tema 8 Aprendizaje De Sistemas Difusos Con Redes Neuronales
Tema 8 Aprendizaje De Sistemas Difusos Con Redes NeuronalesTema 8 Aprendizaje De Sistemas Difusos Con Redes Neuronales
Tema 8 Aprendizaje De Sistemas Difusos Con Redes NeuronalesESCOM
 
Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satli...
Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satli...Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satli...
Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satli...Juan Carlos Gonzalez Ortiz
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes NeuronalesDavid852
 
SIMULADORES REDES NEURONALES
SIMULADORES REDES NEURONALESSIMULADORES REDES NEURONALES
SIMULADORES REDES NEURONALESESCOM
 
Utp sirn_cap4_5_red perceptron
 Utp sirn_cap4_5_red perceptron Utp sirn_cap4_5_red perceptron
Utp sirn_cap4_5_red perceptronjcbenitezp
 
Introducción a las Redes Neuronales Artificiales
Introducción a las Redes Neuronales ArtificialesIntroducción a las Redes Neuronales Artificiales
Introducción a las Redes Neuronales ArtificialesBiblioteca EPM
 
Perceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Perceptrón Simple – Redes Neuronales con Aprendizaje SupervisadoPerceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Perceptrón Simple – Redes Neuronales con Aprendizaje SupervisadoAndrea Lezcano
 
Poslin y Purelin para la Resolución de la Discriminante de una Ecuación y de ...
Poslin y Purelin para la Resolución de la Discriminante de una Ecuación y de ...Poslin y Purelin para la Resolución de la Discriminante de una Ecuación y de ...
Poslin y Purelin para la Resolución de la Discriminante de una Ecuación y de ...Diego Paúl Cuenca Quezada
 
Funciones de activación Satlin y Satlins en Matlab
Funciones de activación Satlin y Satlins en MatlabFunciones de activación Satlin y Satlins en Matlab
Funciones de activación Satlin y Satlins en MatlabGabyta Rodríguez
 
Funciones de Activación Tansig y Logsig
Funciones de Activación Tansig y Logsig Funciones de Activación Tansig y Logsig
Funciones de Activación Tansig y Logsig Raul
 
Redes neuronales funciones de activación logsig y tansig
Redes neuronales funciones de activación logsig y tansigRedes neuronales funciones de activación logsig y tansig
Redes neuronales funciones de activación logsig y tansigJefferson Sarmiento
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronaleslennydan11
 
Proyecto Integrador 1
Proyecto Integrador 1Proyecto Integrador 1
Proyecto Integrador 1kaloskas
 
Aprendizaje
AprendizajeAprendizaje
Aprendizajecua cua
 

La actualidad más candente (20)

Libro del-curso
Libro del-cursoLibro del-curso
Libro del-curso
 
Tema 8 Aprendizaje De Sistemas Difusos Con Redes Neuronales
Tema 8 Aprendizaje De Sistemas Difusos Con Redes NeuronalesTema 8 Aprendizaje De Sistemas Difusos Con Redes Neuronales
Tema 8 Aprendizaje De Sistemas Difusos Con Redes Neuronales
 
Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satli...
Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satli...Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satli...
Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satli...
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
SIMULADORES REDES NEURONALES
SIMULADORES REDES NEURONALESSIMULADORES REDES NEURONALES
SIMULADORES REDES NEURONALES
 
Utp sirn_cap4_5_red perceptron
 Utp sirn_cap4_5_red perceptron Utp sirn_cap4_5_red perceptron
Utp sirn_cap4_5_red perceptron
 
Rn
RnRn
Rn
 
Redes neuronales artificiales
Redes neuronales artificialesRedes neuronales artificiales
Redes neuronales artificiales
 
Introducción a las Redes Neuronales Artificiales
Introducción a las Redes Neuronales ArtificialesIntroducción a las Redes Neuronales Artificiales
Introducción a las Redes Neuronales Artificiales
 
Perceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Perceptrón Simple – Redes Neuronales con Aprendizaje SupervisadoPerceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Perceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
 
Poslin y Purelin para la Resolución de la Discriminante de una Ecuación y de ...
Poslin y Purelin para la Resolución de la Discriminante de una Ecuación y de ...Poslin y Purelin para la Resolución de la Discriminante de una Ecuación y de ...
Poslin y Purelin para la Resolución de la Discriminante de una Ecuación y de ...
 
Funciones de activación Satlin y Satlins en Matlab
Funciones de activación Satlin y Satlins en MatlabFunciones de activación Satlin y Satlins en Matlab
Funciones de activación Satlin y Satlins en Matlab
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Funciones de Activación Tansig y Logsig
Funciones de Activación Tansig y Logsig Funciones de Activación Tansig y Logsig
Funciones de Activación Tansig y Logsig
 
Redes neuronales funciones de activación logsig y tansig
Redes neuronales funciones de activación logsig y tansigRedes neuronales funciones de activación logsig y tansig
Redes neuronales funciones de activación logsig y tansig
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Proyecto Integrador 1
Proyecto Integrador 1Proyecto Integrador 1
Proyecto Integrador 1
 
Aprendizaje
AprendizajeAprendizaje
Aprendizaje
 
Funciones_ hardlim_hardlims
Funciones_ hardlim_hardlimsFunciones_ hardlim_hardlims
Funciones_ hardlim_hardlims
 

Destacado

Video worksheet
Video worksheetVideo worksheet
Video worksheetjustwatts3
 
You can't manage what you can't measure - User Vision Breakfast Briefing
You can't manage what you can't measure - User Vision Breakfast BriefingYou can't manage what you can't measure - User Vision Breakfast Briefing
You can't manage what you can't measure - User Vision Breakfast BriefingUser Vision
 
SimpliFlying Featured - intouch
SimpliFlying Featured - intouchSimpliFlying Featured - intouch
SimpliFlying Featured - intouchSimpliFlying
 
Fitxa presentacio modul 11
Fitxa presentacio modul 11Fitxa presentacio modul 11
Fitxa presentacio modul 11teachingdocs22
 
Per eklund den bl� boken
Per eklund den bl� bokenPer eklund den bl� boken
Per eklund den bl� bokenArturs Surmovics
 
Fys photo analysis 2
Fys photo analysis 2Fys photo analysis 2
Fys photo analysis 2justwatts3
 
Subverting Bitcoin
Subverting BitcoinSubverting Bitcoin
Subverting Bitcoinsameezahur
 
Pembahasan mtk un 2013 paket 04
Pembahasan mtk un 2013 paket 04Pembahasan mtk un 2013 paket 04
Pembahasan mtk un 2013 paket 04Wayan Sudiarta
 
Redes Neuronales Aritificiales Reconocimiento de Imágenes con
Redes Neuronales Aritificiales Reconocimiento de Imágenes conRedes Neuronales Aritificiales Reconocimiento de Imágenes con
Redes Neuronales Aritificiales Reconocimiento de Imágenes conVICTOR VIERA BALANTA
 
Aprovechamiento de las Redes Sociales en el Aula y el Trabajo Trabajo I
Aprovechamiento de las Redes Sociales en el Aula y el Trabajo Trabajo IAprovechamiento de las Redes Sociales en el Aula y el Trabajo Trabajo I
Aprovechamiento de las Redes Sociales en el Aula y el Trabajo Trabajo IVICTOR VIERA BALANTA
 
Sesi 1 kelembagaan bank sentral -tegal (candra-pres)
Sesi 1  kelembagaan bank sentral -tegal (candra-pres)Sesi 1  kelembagaan bank sentral -tegal (candra-pres)
Sesi 1 kelembagaan bank sentral -tegal (candra-pres)rahma wati
 
Enabling the connected aircraft - Gregory Ouillon, CTO, SITAONAIR
Enabling the connected aircraft - Gregory Ouillon, CTO, SITAONAIREnabling the connected aircraft - Gregory Ouillon, CTO, SITAONAIR
Enabling the connected aircraft - Gregory Ouillon, CTO, SITAONAIRSITA
 
Proyecto talentos especializacion_informatica_2017_1
Proyecto talentos especializacion_informatica_2017_1Proyecto talentos especializacion_informatica_2017_1
Proyecto talentos especializacion_informatica_2017_1VICTOR VIERA BALANTA
 

Destacado (18)

Estructura de Datos en Java
Estructura de Datos en JavaEstructura de Datos en Java
Estructura de Datos en Java
 
Video worksheet
Video worksheetVideo worksheet
Video worksheet
 
Sistemas de Informacion
Sistemas de Informacion Sistemas de Informacion
Sistemas de Informacion
 
Milagros
MilagrosMilagros
Milagros
 
You can't manage what you can't measure - User Vision Breakfast Briefing
You can't manage what you can't measure - User Vision Breakfast BriefingYou can't manage what you can't measure - User Vision Breakfast Briefing
You can't manage what you can't measure - User Vision Breakfast Briefing
 
SimpliFlying Featured - intouch
SimpliFlying Featured - intouchSimpliFlying Featured - intouch
SimpliFlying Featured - intouch
 
Fitxa presentacio modul 11
Fitxa presentacio modul 11Fitxa presentacio modul 11
Fitxa presentacio modul 11
 
mens med workshop
mens med workshopmens med workshop
mens med workshop
 
Per eklund den bl� boken
Per eklund den bl� bokenPer eklund den bl� boken
Per eklund den bl� boken
 
Fys photo analysis 2
Fys photo analysis 2Fys photo analysis 2
Fys photo analysis 2
 
Subverting Bitcoin
Subverting BitcoinSubverting Bitcoin
Subverting Bitcoin
 
Pembahasan mtk un 2013 paket 04
Pembahasan mtk un 2013 paket 04Pembahasan mtk un 2013 paket 04
Pembahasan mtk un 2013 paket 04
 
Redes Neuronales Aritificiales Reconocimiento de Imágenes con
Redes Neuronales Aritificiales Reconocimiento de Imágenes conRedes Neuronales Aritificiales Reconocimiento de Imágenes con
Redes Neuronales Aritificiales Reconocimiento de Imágenes con
 
Aprovechamiento de las Redes Sociales en el Aula y el Trabajo Trabajo I
Aprovechamiento de las Redes Sociales en el Aula y el Trabajo Trabajo IAprovechamiento de las Redes Sociales en el Aula y el Trabajo Trabajo I
Aprovechamiento de las Redes Sociales en el Aula y el Trabajo Trabajo I
 
Ppt tekpen
Ppt tekpenPpt tekpen
Ppt tekpen
 
Sesi 1 kelembagaan bank sentral -tegal (candra-pres)
Sesi 1  kelembagaan bank sentral -tegal (candra-pres)Sesi 1  kelembagaan bank sentral -tegal (candra-pres)
Sesi 1 kelembagaan bank sentral -tegal (candra-pres)
 
Enabling the connected aircraft - Gregory Ouillon, CTO, SITAONAIR
Enabling the connected aircraft - Gregory Ouillon, CTO, SITAONAIREnabling the connected aircraft - Gregory Ouillon, CTO, SITAONAIR
Enabling the connected aircraft - Gregory Ouillon, CTO, SITAONAIR
 
Proyecto talentos especializacion_informatica_2017_1
Proyecto talentos especializacion_informatica_2017_1Proyecto talentos especializacion_informatica_2017_1
Proyecto talentos especializacion_informatica_2017_1
 

Similar a Redes neuronales y Computación Móvil

Sistemas Basados en Casos IUT
Sistemas Basados en Casos IUTSistemas Basados en Casos IUT
Sistemas Basados en Casos IUTLuis Álamo
 
redes neuronales y artificales.pdf
redes neuronales y artificales.pdfredes neuronales y artificales.pdf
redes neuronales y artificales.pdfWildrChoquegomez
 
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...Sheyli Patiño
 
DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...
DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...
DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...Saul Mamani
 
DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...
DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...
DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...Saul Mamani
 
Funcionamiento de las redes neuronales simples
Funcionamiento de las redes neuronales simplesFuncionamiento de las redes neuronales simples
Funcionamiento de las redes neuronales simplesDavid Freire
 
2024-T8-Redes_Neuronales_I.ppsx
2024-T8-Redes_Neuronales_I.ppsx2024-T8-Redes_Neuronales_I.ppsx
2024-T8-Redes_Neuronales_I.ppsxRicardo Lopez-Ruiz
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronaleselianmarin
 
Redes neuronales Luis Lozano CI 22.840.519
Redes neuronales   Luis Lozano CI 22.840.519Redes neuronales   Luis Lozano CI 22.840.519
Redes neuronales Luis Lozano CI 22.840.519lozanolc
 
Red Neuronal Artificial
Red Neuronal ArtificialRed Neuronal Artificial
Red Neuronal ArtificialJORGE ARMANDO
 
SISTEMAS NEURONALES
SISTEMAS NEURONALESSISTEMAS NEURONALES
SISTEMAS NEURONALESkaro2705
 

Similar a Redes neuronales y Computación Móvil (20)

Sistemas Basados en Casos IUT
Sistemas Basados en Casos IUTSistemas Basados en Casos IUT
Sistemas Basados en Casos IUT
 
redes neuronales y artificales.pdf
redes neuronales y artificales.pdfredes neuronales y artificales.pdf
redes neuronales y artificales.pdf
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Neurona de Mc culloch
Neurona de Mc cullochNeurona de Mc culloch
Neurona de Mc culloch
 
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
 
DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...
DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...
DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...
 
DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...
DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...
DETECCION DE OBSTACULOS POR MEDIO DE UN ROBOT APLICANDO REDES NEURONALES ARTI...
 
Funcionamiento de las redes neuronales simples
Funcionamiento de las redes neuronales simplesFuncionamiento de las redes neuronales simples
Funcionamiento de las redes neuronales simples
 
2024-T8-Redes_Neuronales_I.ppsx
2024-T8-Redes_Neuronales_I.ppsx2024-T8-Redes_Neuronales_I.ppsx
2024-T8-Redes_Neuronales_I.ppsx
 
Red neuronal
Red neuronalRed neuronal
Red neuronal
 
Redes Neuronales
 Redes Neuronales Redes Neuronales
Redes Neuronales
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Redes neuronales Luis Lozano CI 22.840.519
Redes neuronales   Luis Lozano CI 22.840.519Redes neuronales   Luis Lozano CI 22.840.519
Redes neuronales Luis Lozano CI 22.840.519
 
Red Neuronal Artificial
Red Neuronal ArtificialRed Neuronal Artificial
Red Neuronal Artificial
 
Colaborativo uno
Colaborativo unoColaborativo uno
Colaborativo uno
 
SISTEMAS NEURONALES
SISTEMAS NEURONALESSISTEMAS NEURONALES
SISTEMAS NEURONALES
 

Más de VICTOR VIERA BALANTA

Anális de algoritmos Recursivos Fibonacci
Anális de algoritmos Recursivos FibonacciAnális de algoritmos Recursivos Fibonacci
Anális de algoritmos Recursivos FibonacciVICTOR VIERA BALANTA
 
Complejidad y recursividad T(n) = 2T(n-1) + 2n-1
Complejidad y recursividad T(n) = 2T(n-1) + 2n-1Complejidad y recursividad T(n) = 2T(n-1) + 2n-1
Complejidad y recursividad T(n) = 2T(n-1) + 2n-1VICTOR VIERA BALANTA
 
estructuras de datos ii Contenidos
estructuras de datos ii Contenidosestructuras de datos ii Contenidos
estructuras de datos ii ContenidosVICTOR VIERA BALANTA
 
Tendencias y usos_de_las_tic_en_educacion.2917847984395136
Tendencias y usos_de_las_tic_en_educacion.2917847984395136Tendencias y usos_de_las_tic_en_educacion.2917847984395136
Tendencias y usos_de_las_tic_en_educacion.2917847984395136VICTOR VIERA BALANTA
 
Identificación y Selección de un Modelo TecnoPedagógico
Identificación y Selección de un Modelo TecnoPedagógicoIdentificación y Selección de un Modelo TecnoPedagógico
Identificación y Selección de un Modelo TecnoPedagógicoVICTOR VIERA BALANTA
 
Ejemplo Fases Diseño de Proyectos Colaborativos
Ejemplo Fases Diseño de Proyectos ColaborativosEjemplo Fases Diseño de Proyectos Colaborativos
Ejemplo Fases Diseño de Proyectos ColaborativosVICTOR VIERA BALANTA
 
Proyecto de compilaciòn de talentos
Proyecto de compilaciòn de talentosProyecto de compilaciòn de talentos
Proyecto de compilaciòn de talentosVICTOR VIERA BALANTA
 
Presentación sobre Trabajo Colaborativo
Presentación sobre Trabajo ColaborativoPresentación sobre Trabajo Colaborativo
Presentación sobre Trabajo ColaborativoVICTOR VIERA BALANTA
 
Trabajo sobre evaluación educativa
Trabajo sobre evaluación educativaTrabajo sobre evaluación educativa
Trabajo sobre evaluación educativaVICTOR VIERA BALANTA
 
Redes Sociales y el Trabajo en el Aula
Redes Sociales y el Trabajo en el AulaRedes Sociales y el Trabajo en el Aula
Redes Sociales y el Trabajo en el AulaVICTOR VIERA BALANTA
 
Ficha Descriptiva Redes Sociales en la Educación
Ficha Descriptiva Redes Sociales en la Educación Ficha Descriptiva Redes Sociales en la Educación
Ficha Descriptiva Redes Sociales en la Educación VICTOR VIERA BALANTA
 
Computación Móvil Principios y Tecnicas
Computación Móvil Principios y TecnicasComputación Móvil Principios y Tecnicas
Computación Móvil Principios y TecnicasVICTOR VIERA BALANTA
 

Más de VICTOR VIERA BALANTA (20)

Comprimir archivos
Comprimir archivos Comprimir archivos
Comprimir archivos
 
Anális de algoritmos Recursivos Fibonacci
Anális de algoritmos Recursivos FibonacciAnális de algoritmos Recursivos Fibonacci
Anális de algoritmos Recursivos Fibonacci
 
Recursividad 2T(n)=T(n/2)+n
Recursividad  2T(n)=T(n/2)+nRecursividad  2T(n)=T(n/2)+n
Recursividad 2T(n)=T(n/2)+n
 
Recursividad T(n)= T(n/2)
Recursividad T(n)= T(n/2)Recursividad T(n)= T(n/2)
Recursividad T(n)= T(n/2)
 
Complejidad y recursividad T(n) = 2T(n-1) + 2n-1
Complejidad y recursividad T(n) = 2T(n-1) + 2n-1Complejidad y recursividad T(n) = 2T(n-1) + 2n-1
Complejidad y recursividad T(n) = 2T(n-1) + 2n-1
 
Árboles N-arios
Árboles N-ariosÁrboles N-arios
Árboles N-arios
 
Archivos aleatorios
Archivos aleatoriosArchivos aleatorios
Archivos aleatorios
 
estructuras de datos ii Contenidos
estructuras de datos ii Contenidosestructuras de datos ii Contenidos
estructuras de datos ii Contenidos
 
Introducciòn Estructura de Datos
Introducciòn Estructura de DatosIntroducciòn Estructura de Datos
Introducciòn Estructura de Datos
 
Tendencias y usos_de_las_tic_en_educacion.2917847984395136
Tendencias y usos_de_las_tic_en_educacion.2917847984395136Tendencias y usos_de_las_tic_en_educacion.2917847984395136
Tendencias y usos_de_las_tic_en_educacion.2917847984395136
 
Identificación y Selección de un Modelo TecnoPedagógico
Identificación y Selección de un Modelo TecnoPedagógicoIdentificación y Selección de un Modelo TecnoPedagógico
Identificación y Selección de un Modelo TecnoPedagógico
 
Ejemplo Fases Diseño de Proyectos Colaborativos
Ejemplo Fases Diseño de Proyectos ColaborativosEjemplo Fases Diseño de Proyectos Colaborativos
Ejemplo Fases Diseño de Proyectos Colaborativos
 
Proyecto de compilaciòn de talentos
Proyecto de compilaciòn de talentosProyecto de compilaciòn de talentos
Proyecto de compilaciòn de talentos
 
Presentación sobre Trabajo Colaborativo
Presentación sobre Trabajo ColaborativoPresentación sobre Trabajo Colaborativo
Presentación sobre Trabajo Colaborativo
 
Trabajo sobre evaluación educativa
Trabajo sobre evaluación educativaTrabajo sobre evaluación educativa
Trabajo sobre evaluación educativa
 
Redes Sociales y el Trabajo en el Aula
Redes Sociales y el Trabajo en el AulaRedes Sociales y el Trabajo en el Aula
Redes Sociales y el Trabajo en el Aula
 
Ficha Descriptiva Redes Sociales en la Educación
Ficha Descriptiva Redes Sociales en la Educación Ficha Descriptiva Redes Sociales en la Educación
Ficha Descriptiva Redes Sociales en la Educación
 
Computación Móvil Principios y Tecnicas
Computación Móvil Principios y TecnicasComputación Móvil Principios y Tecnicas
Computación Móvil Principios y Tecnicas
 
Distribución Binomial
Distribución BinomialDistribución Binomial
Distribución Binomial
 
Distribución Bernoulli
Distribución BernoulliDistribución Bernoulli
Distribución Bernoulli
 

Redes neuronales y Computación Móvil

  • 1. IMPLEMENTACIÓN DE UNA NEURONA ARTIFICIAL TIPO PERCEPTRÓN SOBRE UN DISPOSITIVO MÓVIL CON SISTEMA OPERATIVO ANDROID Viera Balanta Víctor Institución Universitaria Antonio José Camacho Grupo de Investigación en Control y Automatización (GICAT) Avenida 6ta # 28N-102, Santiago de Cali, Colombia vviera@admon.uniajc.edu.co Resumen Este artículo presenta el proceso de diseño y creación de una neurona artificial con el lenguaje de programación Android. Se abordan aspectos sobre el entrenamiento y aprendizaje de la neurona basada en la teoría del Perceptrón, la implementación para una plataforma móvil, Android, y algunas consideraciones sobre alcances y limitaciones de la neurona. Palabras Clave: Neurona Artificial, Perceptrón, Android, Inteligencia Artificial, Entrenamiento, funciones linealmente separables. 1. Introducción Las neuronas están consideradas como artífices de pensamiento, aprendizaje, locomoción, sentimientos, pensamientos, habla, visión, audición e innumerable funciones. Por esta razón han llamado la atención de científicos que estudian su fisiología, comportamiento y la forma en que se conectan y comunican para formar parte de un organismo y permitirle desempeñarse adecuadamente en un entorno determinado. En los años cuarenta dos investigadores, Warren McCulloch y Walter Pitts1 , diseñan la primera red neuronal. La cual estaba constituida por la sumatoria de señales de entrada por pesos aleatorios. Los cálculos obtenidos, a partir de las entradas y pesos, se comparaban con un patrón si el cálculo arrojaba un valor mayor o igual al patrón el resultado de la red seria 1(uno), de ser el valor menor al patrón el resultado de la red se establecía en 0 (cero) 2 . 1 Científicos Estadounidenses, 2 Universidad del Guadalajara, el Perceptrón, ver http://proton.ucting.udg.mx/posgrado/cursos/idc/n euronales2/AntecedentesP.htm En 1958 un investigador puso su atención en el funcionamiento de las neuronas, el psicólogo Frank Rosenblatt, basándose en el modelo de McCulloch y Pitts, desarrollo un modelo artificial de neurona, el cual denominó modelo de Perceptrón. Para establecer la relación existente entre el modelo del Perceptrón de Rosenblatt y una neurona se abordaran las características y funcionamiento básico de las mismas. 2. Funcionamiento de las Neuronas En la Figura 1 se pueden observar las partes principales de una neurona, la cual se compone del cuerpo de la célula o Soma, el núcleo, el Axón que es una prolongación de la neurona, ramificaciones denominadas dendritas y la arborización Axonal. Las conexiones de las ramificaciones de un Axón y las dendritas se denominan Sinapsis. Fuente: Inteligencia Artificial un Enfoque Moderno, Stuart Russell-Peter Norvig.2004 Fig. 1 Partes de una Red Neuronal. Según Stuart Russell-Peter Norvig, 2004 el proceso presentado en las neuronas es el siguiente: “Las señales se propagan de neurona a neurona mediante una complicada reacción electroquímica. La sinapsis libera sustancias químicas transmisoras y entran a la dendrita, con lo cual se eleva o reduce un potencial eléctrico del cuerpo de la célula. Una vez que el potencial
  • 2. eléctrico rebaza cierto limite, se envía al axón un impulso eléctrico o potencial de acción. El impulso se difunde a través de las ramas del axón, y finalmente llega a la sinapsis y libera transmisores en los cuerpos de otras células. Las sinapsis que aumentan el potencial se conocen como excitadoras, y las que lo disminuyen se denominan inhibidoras. Las conexiones sinápticas muestran plasticidad: alteraciones a largo plazo de la intensidad de las conexiones como respuesta al patrón de estimulación”. En el mismo documento se menciona que las neuronas establecen nuevas conexiones con otras neuronas, y en ocasiones, con grupos de neuronas que pueden migrar de un sitio a otro, es considerado que los procesos anteriores establecen las bases del aprendizaje en el cerebro. Aunque se debe considerar lo siguiente: “Existe un mundo místico, fuera del alcance de las ciencias físicas, que es donde funcionan las mentes”, (Struat Russell,Peter Norvig, 1996) 3. Diseño y Arquitectura de una Neurona Computacional En 1958 Rosenblatt establece un modelo simplificado de una neurona artificial constituida con la siguiente Arquitectura: El Perceptrón presenta variables de entrada representadas con X1, X2,Xn, y V, ver Figura 2., la variable V representa el valor asociado al peso extra o umbral. Para el modelo planteado en el presente artículo, la variable V tendrá siempre el valor de -1, lo anterior para efectos del balanceo de los cálculos del Perceptrón. Adicionalmente el Perceptrón debe contener las salidas adecuadas y correspondientes a los diferentes valores de entrada. Fig 2. Arquitectura del Perceptrón. Con las entradas y pesos establecidos se procede a crear una expresión para calcular el nivel de umbral. Ver figura 3. Fig 3. Formula para cálculo del nivel de umbral. Si el valor resultante de la sumatoria de entras por sus pesos es mayor o igual a cero el Perceptrón arroja el valor de uno (1), en caso contrario, si el resultado es menor a cero el Perceptrón arrojara el valor de menos uno (-1). Debido a que el Perceptrón debe arrojar valores iguales a valores específicos de entrada y salida (1 o -1), al no coincidir los valores calculados por el Perceptrón con las salidas esperadas a partir de los datos de entrada, se procede a modificar los pesos. Este proceso también es denominado “Proceso de Aprendizaje”. La formula para recalcular los pesos se muestra en la Figura 4. Fig 4. Formula para cálculo de los nuevos pesos, configurando la memoria del Perceptrón. El factor de aprendizaje es un valor que se suele colocar en 0.5, este factor representa la velocidad y calidad del aprendizaje de Perceptrón. La memoria del Perceptrón esta representada en los pesos adecuados que satisfacen las salidas esperadas a partir de entras. 3.1 Que Puede Clasificar y Recordar el Perceptrón El Perceptrón es limitado, pero a pesor de esto, representa un gran avance en el área de la Inteligencia Artificial, específicamente la simulación del funcionamiento de las neuronas. Las funciones que el Perceptrón puede clasificar y asimilar son las denominadas funciones linealmente separables. La grafica de una función de este tipo presenta una particular clasificación de valores. Es posible separar fácilmente valores del mismo tipo trazando una recta, la recta dividirá perfectamente los valores clasificados en dos grupos, cada grupo contará con valores idénticos que representan una clasificación específica. Ver la figura 5. Fig 5. Las funciones And y Or linealmente separables; la función Xor representa un caso de no separabilidad lineal.
  • 3. 4. Algoritmo de Entrenamiento de un Perceptrón El Algoritmo del Perceptrón posee características que lo hacen un buen candidato para implementarse en un dispositivo móvil. Ver figura 5. Con un adecuado factor de aprendizaje, 0.5, el rendimiento o complejidad de este algoritmo es aproximadamente de O(n*p*i), donde n representa el número de entradas, p número de pesos y n el número de intentos, en la mayoría de ejemplos lo hace un algoritmo de costo o complejidad algorítmica inferior a O (n2). Fig 5. Algoritmo Básico del entrenamiento de Perceptrón. Fuente propia Otra característica importante, aunque la primordial radica en el rendimiento, se basa en lo fácil y rápido que se lleva a un lenguaje de programación. Con un algoritmo “corto” y sencillo se pueden “simular” los procesos de una neurona. 5. Implementación de la neurona en un dispositivo móvil con Android. Android es la nueva plataforma móvil más difundida y utilizada en los últimos años. De acuerdo a lo difundido en el sitio de la compañía Google3 y publicaciones realizadas por importante medios de información internacionales 4 ; Android cuenta con miles de dispositivos en el mercado mundial, alrededor de un 50% de participación. La estrategia de Open Source 5 facilita que el sistema operativo Android sea utilizado en el ámbito académico y científico. El núcleo Linux lo convierte en una plataforma robusta, estable y confiable. También tiene gran parte del sistema 3 Android Developers 4 Cnn Mexico 5 Movimiento de Software Libre y de Código Abierto, creado en Java. La Figura 6 muestra la arquitectura del sistema operativo Android. Fig 6. Arquitectura de la Plataforma Android. Como se puede apreciar en la grafica la base de la arquitectura es el Kernel de Linux, en la siguiente capa se encuentran librerías especiales como “Open GL” ,librería para gráficos; en la misma capa se encuentra el modulo de “Android Runtime” que contiene la maquina virtual denominada “Dalvik Virtual Machine”6 . En una nivel posterior se encuentra la capa de librerías que los desarrolladores pueden utilizar para crear aplicaciones, esta capa es denominada “Aplication Framework”, y por ultimo se encuentran las aplicaciones que permiten que los usuarios puedan realizar un trabajo especifico con el dispositivo como navegar, utilizar el teléfono, conectarse a una red local, entre otras. La Figura 7 muestra el programa del Perceptrón creado para el dispositivo móvil con sistema operativo Android Fig 7.Ventana del Perceptrón en el Emulador de Android. 6 La Maquina Virtual permite que los programas corran en diferentes tipos de dispositivos sin sufrir alteraciones de código Aplicaciones
  • 4. Observando la Figura 2, donde se muestra la arquitectura del Perceptrón, se puede confirmar que el programa creado en Android contiene los elementos esenciales que requiere el Perceptrón como: entradas, salidas, pesos iniciales aleatorios y los pesos finales. El programa también tiene entradas de prueba para verificar los pesos arrojados por el Perceptrón, estas entradas tienen la utilidad de permitir colocar diferentes valores para que el programa, por medio de los pesos aprendidos, calcula la salida esperada y el usuario pueda comprobar que el aprendizaje ha sido satisfactorio. Del mismo modo que al hacer una evaluación a un estudiante. 5.1 Código Fuente El Software del Perceptrón se desarrollo con una Arquitectura de 2 capas, la capa “Vista” y la capa “Perceptron”. La capa “Vista”, representada por “MainActivity.java”, contiene la interface que permite la entrada y visualización de datos. La capa “Perceptron”, esta compuesta por los cálculos de entrenamiento donde se lleva a cabo el aprendizaje. Ver Figura 8. Fig 8. Arquitectur en Android del Software de Perceptrón. Aquí se presentan únicamente los métodos principales que hacen posible el aprendizaje del Perceptrón: “Entrenamiento” y “Recalcular Pesos”. Ver Figura 9. Fig 9. Código fuente en Android de entrenamiento y recalculo de pesos del Perceptrón. El código fuente implementa el algoritmo mostrado en la Figura 5. En la cual se pueden apreciar el vector de pesos, vector de salidas, vector de entradas y el método de recalcular pesos. Al presentarse una salida calculada diferente a una salida esperada, el programa llama al método de “RecalcularPesos”, donde se calcula el nuevo peso para la entrada actual; para ello se apoya en la entrada que se debe aprender. Otro método presente en la capa “Perceptron” es “Inicializa_Pesos”, el cual asigna los pesos aleatorios iniciales, la primera aproximación al aprendizaje del Perceptrón. Ver Figura 10. Fig 10. Método de asignación de peso iniciales para el Perceptrón Por último se tiene el método de “verificar”, este método utiliza los pesos resultados del Perceptrón para hacer posible la verificación de los pesos “aprendidos”, en otras palabras. Confirmar si la configuración de los pesos obtenidos por medio del proceso de aprendizaje del Perceptrón es adecuado para el conjunto de entrenamiento. Ver figura 11.
  • 5. Fig 11. Método de verificación de Pesos Aprendidos. 6. Pruebas Las pruebas iniciales se realizaron en el emulador de un dispositivo Motorola con sistema operativo Android 2.2, para estas pruebas se utilizaron las funciones “OR” y “AND” y otras funciones no Linealmente separables. La validación de los datos de salida, valores aprendidos, se realizó utilizando un software creado en Java, al cual se le introducían los pesos aleatorios generados en el programa Android, así las instancias de los valores aprendidos en cado ciclo debían ser iguales en ambos programas. Después de varios ajustes se logró que ambos programas arrojaran resultados idénticos. Para facilitar las pruebas se diseñó una interface con campos en los cuales los usuarios ingresaran los datos de entrada, salidas esperadas y entradas, fácilmente. También se adicionaron botones de Salidas, Entradas, Iniciar Pesos y Entrenar. Los Botones pasan los valores de la ventana a la capa donde se encuentra la clase que contiene los métodos donde se realizan los cálculos que permiten el entrenamiento del Perceptrón. Posteriormente el Perceptrón se Instaló en un dispositivo Samsung Galaxy GT-5570L, con Sistema Operativo Android 2.2, las pruebas llevadas a cabo en el emulador se repitieron en el dispositivo, obteniendo resultados idénticos en cada instancia de aprendizaje de pesos. El software cuenta con un método que permite al usuario verificar los pesos aprendidos del Perceptrón, el usuario introduce entradas específicas, ver Figura 7, sección de verificación, y al oprimir el botón de “Calcular” se puede observar la salida calculada a partir de los pesos aprendidos. Lo anterior con el fin de que el software del “Perceptrón” constase con las opciones necesarias para su optimo funcionamiento. Las pruebas con el dispositivo móvil mostraron la practicidad y utilidad académico científica de contar con un programa de Inteligencia Artificial en un dispositivo móvil con poder de procesamiento. 7. Conclusiones La proliferación de dispositivos a precios más bajos ha ocasionado su fácil adquisición, por consiguiente los dispositivos pueden ser utilizados en diferentes ámbitos. La estrategia de la compañía Google de distribuir Android de forma “Libre” se une a esta oleada creciente de utilización masiva de dispositivos móviles. Pero los dispositivos por si solos no hacen la diferencia, se necesita software específico para tecnología móvil que funcione adecuadamente. La Inteligencia Artificial unificada con la tecnología móvil se convierte en una poderosa herramienta para la nueva generación de dispositivos verdaderamente inteligentes. Lo relacionado en el presente artículo es sólo un acercamiento al planteamiento de aprovechamiento apropiado de dispositivos para el bienestar y el progreso; con el objetivo de reflexionar y vislumbrar acerca de la fascinante gama de posibilidades que brinda la fusión de la computación móvil y la Inteligencia Artificial. Bibliografia [1] Stuart Russell-Peter Norvig. Inteligencia Artificial un Enfoque moderno Segunda Edición Editorial Prentice Hall. 2004 [2] James A. Anderson, Redes Neurales , AlfaOmega, 2007 [3] Luís Eduardo Múnera. Princípios de Inteligência Artificial y Sistemas Expertos. Editorial Universidad Icesi 2001. [4] Gonzalo Pajares Martinsanz-Matilde Santos Penas. Inteligencia Artificial E Ingeniería del Conocimiento. Editorial Alfaomega-Ra-ma. 2006 [5] Rosenblatt Frank, Rosenblatt’s Perceptron, Primer capitulo del libro [En línea ] Disponible en: http://www.pearsonhighered.com/assets/hip/us/hi p_us_pearsonhighered/samplechapter/013147139 2.pdf . Consultado en Abril de 2012 [6] Mculloch Warren S, Pitt Walter H, A logical calculus of the ideas imnanent in nervios activity, Libro publicado originalmente en 1943. [En línea] Disponible en:http://www.cse.chalmers.se/~coquand/AUTO MATA/mcp.pdf .Consultado en Consultado en Abril de 2012
  • 6. [7] Sitio para desarrolladores Android, Android Developers,[En Linea] Disponible en http://developer.android.com/guide/basics/what- is-android.html Víctor Viera Balanta Victor.viera@gmail.com