You are on page 1of 36

Implementación de una tarjeta de

internet de las cosas (IoT) capaz de


emular una red neuronal

Jhon Aldemar Durán Gutiérrez


Maycol Sabogal Ardila

Universidad del Quindı́o


Facultad de ingenierı́a, Ingenierı́a Electrónica
Armenia, Colombia
2017
Implementación de una tarjeta de
internet de las cosas (IoT) capaz de
emular una red neuronal

Jhon Aldemar Durán Gutiérrez


Maycol Sabogal Ardila

Anteproyecto de trabajo de grado presentada(o) como requisito parcial para optar al tı́tulo de:
Ingeniero Electrónico

Director(a):
Ingeniero César Augusto Álvarez Gaspar

Área:
Internet de las Cosas

Universidad del Quindı́o


Facultad de ingenierı́a, Ingenierı́a Electrónica
Armenia, Colombia
2017
v

Cuadro 0-1: TABLA DE CORRECCIÓN DE LAS OBSERVACIONES DE LA


PROPUESTA
Número Observación Página Detalle
Contenido
Lista de Figuras VII

Lista de Tablas VIII

1 Datos Generales 1
1.1 Proponente(s), Director y Asesor(es) . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Área . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Modalidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Tı́tulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6 Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Antecedentes 4
2.1 Palabras claves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Herramientas de Búsqueda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Estado del Arte 5

4 Descripción del problema 7

5 Justificación 8

6 Objetivos 9
6.1 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.2 Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

7 Alcance y delimitación 10

8 Marco teórico 11
8.1 Redes neuronales artificiales . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.1.1 Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.1.2 Elementos de una red neuronal . . . . . . . . . . . . . . . . . . . . . 11
8.1.3 Arquitectura de una Red Neuronal Artificial . . . . . . . . . . . . . . 17
8.1.4 Mecanismos de aprendizaje . . . . . . . . . . . . . . . . . . . . . . . 18
8.1.5 Tipo de asociación entre las variables de entrada y salida . . . . . . . 19
Contenido vii

8.1.6 Representación de la información . . . . . . . . . . . . . . . . . . . . 20


8.2 Internet de las cosas (IoT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.2.1 Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.2.2 Personas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.2.3 Procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.2.4 Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.2.5 Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.2.6 Interacciones del IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.2.7 Conexión a objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

9 Metodologı́a 24

10 Presupuesto 25

11 Cronograma 26

Bibliografı́a 27
Lista de Figuras
8-1. Estructura de una neurona . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8-2. Función de transferencia escalón . . . . . . . . . . . . . . . . . . . . . . . . . 14
8-3. Funciones de transferencia mixtas . . . . . . . . . . . . . . . . . . . . . . . . 15
8-4. Funciones de activación continuas . . . . . . . . . . . . . . . . . . . . . . . . 16
8-5. Funciones de transferencia gaussiana . . . . . . . . . . . . . . . . . . . . . . 16
8-6. Arquitectura red neuronal artificial . . . . . . . . . . . . . . . . . . . . . . . 18
8-7. Arquitectura de una red IoT en el hogar. Imagen tomada de [2] . . . . . . . 22
Lista de Tablas
0-1. TABLA DE CORRECCIÓN DE LAS OBSERVACIONES DE LA PROPUES-
TA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
1 Datos Generales

1.1. Proponente(s), Director y Asesor(es)

PROPONENTES (s)

Código Est: 1094952345 Nombre: Jhon Aldemar Durán Gutiérrez


Dirección: Cra 19 # 22-Nte-50 Balcones de la Bella Suiza Apto 102 Teléfono: 3205942157

E-mail: Firma:
jaduran@uqvirtual.edu.co

Código Est: 1115192075 Nombre: Maycol Sabogal Ardila


Dirección: Cl 19 Norte # 12-49 El Retiro Bloque 1 Apto 402 Teléfono:3113490285

E-mail: Firma:
msabogala@uqvirtual.edu.co

DIRECTOR Nombre: César Augusto Álvarez Gaspar


Tı́tulos Universitario: Ingeniero Electrónico
Tiene Vinculación con la Universidad: Si
Teléfono:3186953523

E-mail: Firma:
caalvarez@uniquindio.edu.co

ASESOR 1 Nombre:
Tı́tulos Universitario:
Tiene Vinculación con la Universidad: S N
Teléfono:

E-mail: Firma:
2 1 Datos Generales

ASESOR 2 Nombre:
Tı́tulos Universitario:
Tiene Vinculación con la Universidad: S N
Teléfono:

E-mail: Firma:

1.2. Glosario
Internet de las cosas (IoT): El IoT es la convergencia de tecnologı́as donde su propósito
es crear un lazo cerrado entre el mundo fı́sico y el virtual.

Red neuronal artificial: Es un sistema capaz de procesar múltiple información simultánea-


mente.

Interoperabilidad: Capacidad con la que cuentan uno más dispositivos o sistemas de in-
tercambiar información y hacer uso de ella.

Interconexión: Conexión realizada entre dos o más elementos.

Peso o Peso sináptico (w): Valor dado a las conexiones entre neuronas.

Persona a Persona (P2P): Conexión realizada entre dos nodos de igual comportamiento
entre sı́, dentro de un determinado sistema.

Máquina a Máquina (M2M): Es la conexión realizada entre máquinas. Una máquina hace
referencia a cualquier dispositivo(s) electrónico(s) y se comunica con a través de internet con
un servidor.

Servidor: Es un determinado software capaz de realizar ciertas tareas encomendadas por


un usuario.

Máquina a Persona (M2P): Conexión establecida entre dos nodos de comportamiento


diferente dentro de una red.

Modelo de control de transmisión/protocolo de internet (TCP/IP): Es un modelo de


capas o niveles usado para la comunicación entre redes.
1.3 Área 3

Software: Se refiere a los diferentes programas que permiten ejecutar una determinada
tarea a través de una computadora o dispositivo móvil.

Software de diseño asistido por computadora (CAD): Tipo de software utilizado para
el diseño y simulación en diferentes áreas de trabajo.

Interfaz: Es el área donde se proporciona una comunicación entre sistemas y se permite el


intercambio de información entre ellos.

1.3. Área
Este proyecto esta relacionado con las áreas de electrónica e Internet de las Cosas.

1.4. Modalidad
Proyecto de aplicación

1.5. Tı́tulo
Implementación de una tarjeta de internet de las cosas (IoT) capaz de emular una red
neuronal sencilla.

1.6. Tema
En este proyecto se desarrollará una tarjeta emuladora de red neuronal, la cual tendrá una
conexión vı́a a internet a través de una interfaz gráfica. Esta servira para realizar la confi-
guración de la red neuronal.
El tema será desarrollado durante la ejecución del proyecto, de acuerdo con la siguiente
distribución:

Búsqueda bibliográfica: 20 %

Estudio y desarrollo teóricos: 30 %

Desarrollo experimental en laboratorio: 40 %

Documentación del Trabajo: 10 %


2 Antecedentes

2.1. Palabras claves


Internet de las cosas.

Red neuronal artificial.

Interfaz.

Control inteligente.

Función de activación.

Umbral de activación.

Neurona.

Conexión

Aprendizaje de la red neuronal

2.2. Herramientas de Búsqueda


Google Académico (https://scholar.google.es).

Base de datos (www.uniquindio.edu.co/biblioteca): IEEE, EBSCO, Science Direct.

Biblioteca Euclides Jaramillo.


3 Estado del Arte
A partir de la impetuosa aparición del internet en la década de los noventa, este ha tenido
una influencia bastante significativa en los diferentes ámbitos sociales. Como la educación,
la comunicación, la industria, la ciencia y la humanidad en general. Ahora bien, el IoT re-
presenta un avance con respecto del internet convencional. Como se menciona en [2],el IoT
representa un aumento en las competencias del internet, por contar con la capacidad de es-
tudiar datos y organizarlos de manera tal, que estos se conviertan en información, generando
ası́ conocimiento sobre un determinado proceso.

El constante crecimiento de la tecnologı́a, hace del IoT una herramienta fundamental para
esto. Según [2], se generará un cambio en la manera en la cual se procesa la información
y se presenta dichos resultados. Todo esto con el fin de mejorar tecnológica y socialmente.
Pudiendo ası́ esta tecnologı́a, intervenir en campos como el desarrollo de ciudades, transporte
inteligente, educación, salud, agricultura y medio ambiente, como se menciona en [9].

Una de las problemáticas en un sistema de recolección de datos, es la interpretación de dicha


información, en donde se decidió por una aplicación android capaz de reconocer los datos y
expresarlos por medio de una interfaz, de un modo tal que, el usuario tuviera la capacidad de
realizar un análisis adecuado de dicha información. Esta interacción resulta ser muy accesible
para el monitoreo de un sistema, ya que se puede acceder fácilmente a la base de datos del
sistema, por medio de cualquier dispositivo móvil, con sistema operativo Android[8].

En [5] se diseñó e implementó un esquema basado en IoT, capaz de manejar y tener control
sobre el ahorro de la energı́a eléctrica. La generación de dispositivos o esquemas inteligentes
reducen de manera significativa el error en las medidas y/o el consumo de energı́a en los
mismos, según sea el caso. Estos sistemas hacen posible obtener una mayor efectividad, por
lo cual se hacen adaptables a cualquier aplicación, para mejorar drásticamente su rendimien-
to; o en la generación de nuevas tecnologı́as que cuenten inicialmente con dichas capacidades.

En muchos casos, se desea obtener pronósticos o predicciones de las variables de salida,


para obtener un análisis claro sobre el comportamiento de un determinado sistema, como
se muestra en [6] donde se utilizó la implementación de una red neuronal para predicción
de resultados. Dichas redes son una herramienta poderosa para una aplicación de este tipo
de pronóstico, debido a que cuentan con un alto rendimiento y una alta efectividad en la
6 3 Estado del Arte

predicción. Lo anterior depende del apropiado entrenamiento que reciba la red neuronal para
que pueda realizar un análisis preciso de las variables.

Un experimento que no cuente con un alto grado de precisión en sus mediciones puede hacer-
lo poco confiable. Cuando se experimenta con una cantidad elevada de variables o de datos,
la precisión de estos hará que los análisis correspondientes sean veraces. En [1] se presentó
un problema de precisión al momento de realizar la validación de los datos obtenidos. Allı́ se
optó por la implementación de redes neuronales para adquirir un nivel de precisión más ele-
vado en sus medidas. El éxito de este proceso se vio reflejado en el entrenamiento de dicha red
por medio de una retroalimentación diferencial, el cual es un algoritmo que minimiza el error.

Ahora bien, en [3] se contó con una problemática similar a la mencionada anteriormente,
en este caso se presentan diferentes tipos de arcilla, en los cuales se define su calidad de-
pendiendo de las propiedades que las componen. En esta situación se requiere un alto grado
de precisión para disminuir la cantidad de producto rechazado, por baja calidad. Esto fue
realizado mediante la implementación de una red neuronal, la cual realizó un análisis de
sus propiedades, para ası́ definir el producto óptimo. Donde el factor fundamental para el
logro final de precisión obtenido del 95 porciento, fue la implementación de un entrenamiento
adaptativo sobre la red neuronal.

Una red neuronal bien entrenada tiene como resultado la agilización de procesos a un grado
mucho más elevado de precisión, como se mostró en [1] y [3], donde su objetivo primordial
era obtener el error mı́nimo posible en la medición. Pero dicha cualidad de una red neuronal
puede ser aplicada a cualquier otro parámetro o sistema de medida o identificación.

Actualmente a nivel industrial se cuenta con una gran demanda de operación y capacidad,
donde el cumplimiento de estos procesos y la mejora de los mismos se ven reflejado en las
ganancias de las empresas. Como se muestra en [7] donde se tenı́an grandes falencias en la
identificación de un producto en masa, lo cual hacı́a que los tiempos de operación aumen-
taran drásticamente afectando sus ganancias. Entonces se decidió por la implementación
de un sistema de visión artificial que utiliza redes neuronales para la identificación. Dicho
procedimiento mejoró ampliamente un sistema que era casi obsoleto, donde esté aumentó
el porcentaje de efectividad y redujo de forma considerable los tiempos de operación en la
identificación. El manejo efectivo de la red neuronal permitió agilizar este proceso drásti-
camente, siendo esta una herramienta que cada vez toma mayor importancia debido a la
fidelidad de los resultados finalmente obtenidos.
4 Descripción del problema
Actualmente, la tecnologı́a se está enfocando hacia el diseño de dispositivos inteligentes, es
decir, que estos sean autónomos y cuenten con la capacidad suficiente para poder realizar
las tareas que les fueron asignadas. Una de las técnicas que hacen posible que un dispositivo
tenga dichas capacidades son las redes neuronales artificiales, las cuales aumentan su capa-
cidad de rendimiento. La necesidad de los dispositivos inteligentes, converge en la conexión
constante a internet, debido a que la mayorı́a de las aplicaciones o funciones de los disposi-
tivos hacen uso de internet para poder llevar a cabo sus tareas.

Para suplir dicha necesidad, existen tecnologı́as capaces de realizar este proceso, una de ellas
es conocida como IoT. La cual, establece una conexión entre el mundo fı́sico y el virtual. Para
ello se deben cumplir con una serie de competencias como lo son: comunicación y operación,
capacidad de direccionamiento, identificación, detección, procesamiento de la información,
localización e interfaces de usuario. Donde, cada una de estas se asocia con una tecnologı́a.

Ahora bien, la problemática fundamental en este proyecto es, poder establecer un manejo
apropiado de los datos obtenidos a partir de la conexión de un dispositivo capaz de emu-
lar una red neuronal a través del internet de las cosas. Es decir, contar con una supervisión
constante, mediante registros, gráficas, procesos de verificación y validación entre otros, para
controlar la red neuronal a través de internet.
5 Justificación
Debido a que los avances tecnológicos buscan que los dispositivos electrónicos procuren ser
inteligentes, se pretende mediante este proyecto reducir la brecha de este proceso, estable-
ciendo la conexión entre un dispositivo fı́sico e internet. Ası́, a partir de esta investigación
se logrará contar con los conocimientos necesarios para desempeñarse en este tema, como
también establecer la importancia de IoT, las redes neuronales artificiales, y sus beneficios
para la implementación en trabajos futuros. Dentro de este proceso investigativo, se buscará
magnificar no solo las cualidades vistas en el IoT, sino también, la riqueza y los alcances que
se pueden desarrollar dentro de una red neuronal. Ası́, el principal recurso que abarca este
proyecto es la conexión vı́a internet de un dispositivo y el manejo adecuado de sus datos para
establecer un control sobre los mismos, además de su utilidad en las nuevas tecnologı́as y en
el desarrollo académico. Lo anterior se puede ver como el uso de IoT sobre una red neuronal
para la toma de decisiones inteligentes a partir de los datos obtenidos por esta.

En la Universidad del Quindı́o existen investigaciones en campos como el control y los siste-
mas digitales, que se podrı́an ser ampliamente beneficiados con un conocimiento más profun-
do de estos temas y aplicarlos en sus respectivos procesos académicos o también diferentes
aplicaciones a nivel profesional. Futuras implementaciones de sistemas similares podrı́an ob-
tener mayor capacidad de rendimiento con un posible costo operacional más bajo y con una
manipulación adecuada de las variables obtenidas.

Cabe resaltar que este proyecto abrirá un nuevo camino en las investigaciones en la Univer-
sidad del Quindı́o, para el mejoramiento y la implementación de nuevas redes neuronales,
de capacidades más complejas. Se podrán operar sistemas de alta complejidad y además
mejorar el rendimiento de dispositivos ya existentes, o la creación de nuevas tecnologı́as fun-
damentadas en el IoT.

Finalmente, la motivación de realizar este proyecto está en poder brindar a la Universidad


y principalmente a sus estudiantes, los conceptos de una herramienta en la cual se podrá
experimentar, manipular y realizar implementaciones de redes neuronales. De forma que, el
manejo de la información pueda ser más inteligente, lo cual es posible mediante la imple-
mentación de una tecnologı́a como IoT.
6 Objetivos

6.1. General
Implementación de una tarjeta de Internet de las Cosas que emule una Red Neuronal Artifi-
cial.

6.2. Especı́ficos
Diseñar la tarjeta de Internet de las Cosas.

Desarrollar del Firware para emular la Red Neuronal Artificial.

Desarrollar una aplicación Web para la conexión de la tarjeta.

Verificar el funcionamiento de la tarjeta.


7 Alcance y delimitación
Este proyecto consiste en la elaboración de un programa que tenga la capacidad de emular
una red neuronal artificial sencilla. Esta red contará con una capacidad de aprendizaje varia-
ble en dos modos. La red neuronal artificial anteriormente mencionada, será implementada
en un hardware diseñado por medio de un software. La red neuronal artificial tendrá un
sistema de interfaz gráfica conectada vı́a Internet. Esta interfaz contará con la capacidad de
que el usuario pueda observar los datos de entrada y salida de la red organizados de manera
gráfica y tabular. También en dicha interfaz se tendrá la potestad de configurar la red, es
decir, ingresar variables al sistema y establecer el modo de aprendizaje.
8 Marco teórico

8.1. Redes neuronales artificiales


La motivación para diseñar y hacer uso de las redes neuronales dentro del campo de inge-
nierı́a, es poder procesar datos e información, de forma que, estos procesos sean modelados
como sistemas nerviosos biológicos. Es decir, su diseño hace referencia al cerebro humano,
el cual puede procesar información paralelamente de manera que se puedan realizar varias
tareas al mismo tiempo. Esto se diferencia de un computador, ya que, éste realiza procesos
secuencialmente. De acuerdo a lo anterior, se puede agregar que las redes neuronales son
procesadores de información estructurada paralelamente, y está formado por varias unida-
des conocidas como neuronas. Estas unidades están conectadas entre sı́, lo que implica que
el número de conexiones es superior al número de las neuronas en la red [10].

8.1.1. Definición
Una red neuronal artificial consiste en la interconexión de elementos generalmente acondi-
cionados y con una estructura especı́fica, las cuales interaccionan con objetos del mundo real
y cuyo objetivo es tratar de modelar la información como el sistema nervioso biológico [10].

8.1.2. Elementos de una red neuronal


Como se aclaró anteriormente una red neuronal es un modelo que intenta replicar el compor-
tamiento natural de un cerebro. Dentro de la construcción de una red neuronal artificial, se
hacen presente componentes o elementos que hacen parte de su estructura principal. Ahora
bien, los elementos que conforman esta estructura son: unidad de proceso (neurona artifi-
cial) , estado de activación, función de salida o de transferencia, conexiones entre neuronas,
función o regla de activación, regla de aprendizaje y la representación vectorial [10].

Unidad de proceso: La neurona artificial


El trabajo que realiza una neurona es único y básico. Este consiste en recepcionar las en-
tradas de las neuronas vecinas y calcular un valor de salida, el cual es enviado a todas las
12 8 Marco teórico

neuronas restantes. En los sistemas que se modelen, se puede de forma sencilla caracterizar
tres tipos de unidades: entradas, salidas y ocultas. Las unidades de entrada son las encarga-
das de recibir las señales del dominio, que a su vez son las entradas de la red. Las señales
que ingresan a estas unidades de entrada, pueden ser señales externas. Las unidades de sali-
da hacen referencia directamente a las señales de salida sistema, es decir, estas unidades se
encargan de enviar la señal fuera del sistema. Las unidades ocultas son aquellas en las cuales
sus entradas y salidas se encuentran dentro de los sistemas, es decir, no tiene ningún tipo de
contacto con el exterior. En la figura 8-1 se puede ver, la estructura de una neurona y sus
principales caracterı́sticas.

Figura 8-1: Estructura de una neurona

Es necesario aclarar que, el conjunto de unidades (neuronas) que tienen en común una misma
fuente como entrada y que sus salidas están dirigidas a un mismo destino, se conoce como
capa o nivel.

Estado de activación
El estado de activación de un conjunto de unidades está representado por un vector de N
números reales A(t), como se observa en la ecuación 8-1, donde se tiene que:
8.1 Redes neuronales artificiales 13

A(t) = (a1(t), a2(t), · · · , ai(t), · · · , aN (t)) (8-1)

Todas las neuronas que hacen parte de la red, se encuentran en cierto estado. Para simpli-
ficar el concepto de activación, en el sistema se hablan de dos estados en reposo y excitado,
los cuales se denominan estados de activación, además que, cada uno de estos estados tiene
asociado un valor. Los valores de activación o bien pueden ser discreto o continuos. Si estos
valores son discretos, llegan a tomar un grupo de valores que en general son binarios. Ahora
bien, se tiene que para un estado esté activo su valor deberá ser 1, en cuanto al 0, éste
indicará que la neurona está en reposo. En otros modelos se hablan de un conjunto continuo,
esto quiere decir que, los estados de activación hacen parte de un conjunto continuo, para
este caso se le asigna un valor en [0,1] o también en el intervalo de [-1,1] [4].

Función de salida o de transferencia


Todas la unidades dentro de la red neuronal están conectadas entres sı́, para cada una de
estas unidades U i existe una función de salida fi (ai (t)), haciendo que el estado de activación
ai (t) se modifique de forma tal que, éste sea una señal de salida Yi (t). Ahora bien para todas
las salidas de las unidades en un instante de tiempo determinado t, se tiene que:

Y (t) = f 1(a1(t)), f 2(a2(t)), ..., f i(ai(t)), ..., f N (aN (t)) (8-2)

Dentro de estas funciones, se encuentran 4 funciones que son generalmente las más utilizadas,
con las cuales se determinan diferentes tipos de neuronas, estas funciones son:

Función escalón

Función lineal y mixta

Función Sigmoidal

Función gaussiana

Cuando se presentan salidas en la red binarias se utiliza la función escalón. Para obtener
una salida de una neurona es necesario superar o igualar cierto valor umbral. El equivalente
a no suministrar una función de salida es utilizar la función lineal, la cual es empleada en
muy pocas ocasiones. En el caso que se desee contar con una salida analógica en la neurona
se hará uso de las funciones mixta y sigmoidal[4]. Ahora, se estudiará con más detalle cada
una de las distintas funciones.
14 8 Marco teórico

Función escalón: La manera más sencilla para activar una neurona es si se considera que
esta es binaria. En este caso, se realiza una asociación de la función de transferencia escalón
a neuronas binarias, en las cuales cuando la sumatoria de las entradas es mayor o igual
que cero. Como se mencionó anteriormente la activación va a depender de las sumatoria de
las entradas, si esta es mayor o igual al umbral de la neurona la activación será 1, en caso
contrario ésta será 0 [4]. En la figura 8-2 se evidencia este comportamiento.

Figura 8-2: Función de transferencia escalón

Función lineal y mixta: Se tiene que, la función lineal o identidad corresponde a f (x) = x.
Ahora bien para las neuronas de función mixta, se pueden tener tres opciones. La primera,
es que si al sumar todas las señales de entrada ésta es menor al lı́mite inferior, la activación
tomará el valor de 0 o −1. Para la segunda, la suma de todas las señales de entrada dará
por resultado un número mayor al lı́mite superior, entonces la activación deberá ser igual
a 1. Para el tercer caso, el valor de la suma está comprendido entre el lı́mite inferior y su-
perior, por lo cual la activación se define como una función lineal de la suma de las señales
de entrada. En la figura 8-3 , se ve reflejado lo mencionado anteriormente, es decir, para
cualquiera de los dos casos, donde se toma el lı́mite superior de la suma de todas entradas
8.1 Redes neuronales artificiales 15

de activación[4].

Figura 8-3: Funciones de transferencia mixtas

Función sigmoidal(continuas): Se considera una función de activación continua a cual-


quier función definida en un intervalo de posibles valores de entrada, con un incremento
invariable y establecido bajo un lı́mite superior e inferior. Ası́, se garantizará una activación
exitosa. La función sigmoidal, para la mayorı́a de los datos de entrada de la red tendrá como
resultado un valor cercano a un lı́mite de la función. Con lo cual el valor de salida tienda
al lı́mite superior o inferior del sigmoide. Cuando la función tiene un valor de pendiente
alto, la función sigmoide tiende a un escalón. No obstante, se presenta una ventaja ya que
la derivada para esta función siempre es positiva y con tendencia a cero para los valores
grandes [4]. Ésta activación se puede representar como indica la figura 8-4.

Función de transferencia gaussiana: A comparación de las funciones sigmoidales, la fun-


ción gaussiana tiene como beneficio que, los centros y anchura de ésta se pueden variar, esto
quiere decir que la hace más flexible. En ocasiones es necesario por lo menos dos niveles
ocultos para mapear, por lo general, neuronas en la entrada y salida, las cuales hacen uso
de funciones sigmoidales; o quizás también se puede llevar a cabo con un solo nivel, con
neuronas de función gaussiana [4].La figura 8-5 es la contemplación de lo que es la función
gaussiana.
16 8 Marco teórico

Figura 8-4: Funciones de activación continuas

Figura 8-5: Funciones de transferencia gaussiana


8.1 Redes neuronales artificiales 17

Conexiones entre neuronas

Los enlaces o conexiones que se presentan en una red neuronal artificial tienen asociado un
peso, el cual brinda a la neurona la capacidad de adquirir conocimiento. Considerando la
neurona i en un instante de tiempo, con y como la representación de sus datos de salida.
Una neurona constantemente está en comunicación con las demás neuronas a las que se
encuentra conectada, para saber su estado de activación. A La conexión entre la neurona
i y la neurona j se le es asociado un peso wij . Generalmente se considera que el efecto
de cada señal es aditivo, de manera tal, que la entrada pura que recibe una neurona es la
suma del producto de cada señal individual por el valor de la conexión entre ambas neuronas.

Para establecer la influencia que tiene la neurona j sobre la neurona i se utiliza una matriz
W con todos los pesos wji . De esta manera hay tres tipos de interacción entre las neuronas
y se determina según el valor de wji . En el caso que wji = 0 se supone que no hay un enlace
establecido entre las neuronas. Si wji > 0 indica que la conexión es excitadora, es decir, que
siempre que la neurona i esté activada la neurona j recibirá un dato que la hará propensa a
la activación. Finalmente, si wji < 0 será un tipo de conexión inhibidora, en la cual si i se
encuentra activada j recibirá una señal la cual la hará propensa a la desactivación [4].

8.1.3. Arquitectura de una Red Neuronal Artificial

La arquitectura de una red neuronal es la organización o configuración de conexión con


la que se disponen. En una red neuronal los nodos tiene una conexión sináptica, donde la
estructura de dichas conexiones define la estructura de la red. La información entre nodos
solo se da en un sentido, es decir, las conexiones sinápticas son direccionales. En general, las
neuronas se agrupan de manera estructurada a lo cual se le denominan capas. Cuando la
totalidad de las neuronas de una capa se agrupan forman grupos neuronales. De tal manera
que el conjunto de una o más capas constituye una red neuronal.
En la constitución de una red neuronal cuenta con tres tipos de capas, las cuales son: de
entrada, de salida y oculta. La conformación de una capa de entrada se compone por neuronas
con la capacidad de recibir la información procedente de un determinado entorno como
por ejemplo un sensor. Ahora bien, una capa de salida es la conformada por las neuronas
encargadas de generar una respuesta al estı́mulo generado en la red. Finalmente, una capa
oculta es aquella que no posee un enlace directo con el entorno. Dicha genera grados de
libertad adicionales a la red. En la figura 8-6, se puede observar cada una de las capas y
demás caracterı́sticas de una red neuronal artificial [10].
18 8 Marco teórico

Figura 8-6: Arquitectura red neuronal artificial

8.1.4. Mecanismos de aprendizaje


Una red neuronal se somete a unos procesos concretos de aprendizaje, con el fin de variar sus
pesos en función a una determinada información de entrada. Dichas modificaciones que se
generan durante el proceso de aprendizaje se resumen en la destrucción, cambio y creación
entre las neuronas, para optimizar los diferentes procesos que se ejecutarán. En general, en
los modelos de redes neuronales artificiales, la generación de una conexión conlleva que el
peso de la misma tendrá un valor distinto de cero. De igual manera cuando se presenta una
destrucción de una o más conexiones sus pesos serán equivalentes a cero.
Cuando se logra una estabilidad en los pesos de la red neuronal, se concluye que la red
“aprendió”. En dicho procesos de aprendizaje es importante establecer el criterio de apren-
dizaje, es decir, disponer claramente de las pautas necesarias para cambiar el valor asignado
a las conexiones cuando se desee que la red aprenda una nueva información. Es por esto que
se consideran principalmente dos tipos de aprendizaje. El aprendizaje supervisado y el no
supervisado. Los cuales difieren en la presencia o no de un agente supervisor que controle
dichos procesos de aprendizaje de la red [4].

Redes con aprendizaje supervisado


Este tipo de aprendizaje se caracteriza porque en dicho proceso está involucrado un agente
externo el cual controla el entrenamiento. Es decir, que a partir de una determinada entra-
8.1 Redes neuronales artificiales 19

da este determina el tipo de salida que deberı́a obtenerse en la red. El supervisor también
se encarga de comprobar dicha salida y en caso de ser necesario modificar los pesos de las
conexiones, con la intención de obtener la salida deseada [4].

Redes con aprendizaje no supervisado

Este tipo de aprendizaje no requiere de ningún agente externo para realizar el proceso de
aprendizaje. Es decir, la red ajusta los pesos de las conexiones por sı́ misma. La red no recibe
ningún tipo de información externa que le señale si la salida es la deseada o no; por esta
razón, se consideran estas redes como capaces de autoorganizarse.
Debido a lo no presencia de un supervisor, estas redes deben establecer caracterı́sticas, perio-
dicidad, correlaciones o jerarquı́as que sean posibles determinar entre los datos presentados
en la correspondiente entrada. Este tipo de redes dependen fundamentalmente del algorit-
mo de aprendizaje y de la topologı́a utilizada. Finalmente, se considera que algunas de las
redes que presentan un aprendizaje no supervisado desarrollan un mapeo de caracterı́sticas,
obteniendo en la salida de las neuronas un acondicionamiento geométrico que representa las
caracterı́sticas de los datos de entrada, esto con el fin de que si se presentan datos simila-
res a la entrada, sean las neuronas de salida más próximas a esto las que se vean afectadas [4].

8.1.5. Tipo de asociación entre las variables de entrada y salida


Una red neuronal es un sistema apto para poder guardar un determinado tipo de infor-
mación previamente aprendida. Dicha información es asignada en los pesos asociados a los
vı́nculos establecidos entre las neuronas. De esta manera se puede considerar una red como
un sistema capaz de almacenar información de manera invariante. Siendo esta información o
datos almacenados a consecuencia del aprendizaje de la red y que podrán ser observados en
la salida como la respuesta al estı́mulo de la red, este tipo de comportamiento presente en
la red se le conoce como memoria asociativa. Es decir, la generación de una salida asociada
con respecto la información aplicada en la entrada de la red.
Existen dos modos básicos para efectuar la asociación entrada/salida los cuales competen
a la información almacenada en la red. En primera instancia se cuenta con la denominada
heteroasociación, la cual consiste en crear parejas de datos, en otras palabras, cuando se
presente un dato por ejemplo A1 , se deberá tener en la salida un dato B1 asociado a la
información de entrada. El segundo modo de asociación se le conoce como autoasociación,
donde la red tiene un aprendizaje o almacenamiento previo de información, de manera tal
que cuando se presente un dato a la entrada se realice una autocorrelación con dichos datos,
generando ası́ la salida con respecto al dato más similar al presente en la entrada de la red [4].
20 8 Marco teórico

8.1.6. Representación de la información


Las redes neuronales pueden también clasificarse en la manera como se representan sus
datos de entrada y salida. Una de las maneras en la cual se pueden presentar estos datos es
análogamente, es decir, datos reales normalmente normalizados, en este caso es usual contar
con las funciones de activación del tipo lineal o sigmoidal. Por otra parte la información
tanto de entrada como de salida en una red neuronal puede también ser representada de
manera binaria 0, 1, en este caso la función escalón será la más indicada para la activación
de la red. Finalmente, existen algunos tipos de redes denominadas hı́bridas, en las cuales el
tipo de información de entrada es analógico y la salida de la red será digital o binaria.

8.2. Internet de las cosas (IoT)


El internet desde sus inicios en 1969, ha evolucionado de ser una red capaz de interconectar
una cantidad limitada sitios a conectar a más de 40.000 conexiones. Hoy en dı́a, el internet
proporciona conexiones a nivel global a través de herramientas como lo son la navegaciones
web, redes sociales y dispositivos móviles inteligentes [2].

Ahora bien, el internet ha pasado por muchas fases a medida que fue evolucionando, el IoT
se encuentra en la última de ella, y corresponde a las conexiones de las personas, datos y
objetos directamente. El principal objetivo de IoT es crear una conexión entre el mundo
fı́sico e internet, con el fin de obtener un grado de inteligencia superior por parte de los
objetos. Ya que actualmente la mayorı́a de los objetos carece de estas capacidades [2].

8.2.1. Definición
El internet de las cosas es una tecnologı́a basada en el internet global que permite la inter-
conexión de objetos y sistemas de monitoreo. Los cuales comparten información en tiempo
real la cual permita ser fácilmente interpretable [9].
Como se mencionó anteriormente el IoT es la conexión de las personas, procesos, datos y
objetos. La información compartida en estas conexiones tiene como resultado una mejor ca-
pacidad y experiencias económicas como sociales [2].

8.2.2. Personas
Sin lugar a dudas uno de los componentes más importantes a la hora de hablar del IoT es la
necesidad que presentan los usuarios de establecer comunicaciones con objetos o personas.
La mayorı́a de estos se conectan a internet a través de dispositivos como: computadores,
celulares, tablets, etc. Es por esto que dichos usuarios son un factor primordial en esta tec-
nologı́a, ya que, a medida que el IoT evoluciona aparecerán nuevos tipos de conexiones, que
8.2 Internet de las cosas (IoT) 21

facilitarán el acceso a internet y presentaran mejoras en el sistema [2].

8.2.3. Procesos
Los procesos se conocen como todo lo que pasa dentro de la conexión, si los procesos son
medianamente buenos, las conexiones que se estén realizando adquieren un valor más alto,
dentro de las demás. Cabe aclarar, que si el proceso es bueno, las conexiones brindaran infor-
mación confiable a la persona que lo esté realizando además que lo hará de la mejor forma [2].

8.2.4. Datos
Los datos corresponden a la forma de representar la información que es generada por la
persona o máquinas y procesada por el objeto. Estos datos combinados con un análisis que
se haga de ellos, no sólo proporcionará información importante sino que también permitirá la
toma de decisiones tanto de la persona como de la máquina. Dentro de la industria este pro-
ceso ayudarı́a mucho en el mejoramiento de un producto o en la producción de los mismos [2].

8.2.5. Objetos
Los objetos, son instrumentos fı́sicos que están conectados a internet. La función de estos
instrumentos, es poder tomar información y procesarla de forma tal, que sea más fácil para
el usuario analizarla. Estos también son los encargados de realizar las tareas que sean desig-
nadas por las personas[2]. Un objeto puede ser representado por cualquier cosa, IoT le da
brinda la capacidad de hacerlo inteligente.

8.2.6. Interacciones del IoT


En cuanto se refiere a las interacciones, se habla acerca de las nuevas conexiones que se
pueden formar en base a las 4 principales. Dentro de estas conexiones están: personas que se
comunican con personas (P2P), máquinas que se comunican con personas (M2P) y máquinas
que se comunican con máquinas (M2M).

8.2.7. Conexión a objetos


El internet de las cosas, consiste fundamentalmente en realizar el acople de múltiples objetos
a través de internet. Según [2], para el 2020 se contará con aproximadamente 50.000 millones
22 8 Marco teórico

de dispositivos conectados, además de tener la capacidad de detectar las enormes ráfagas de


datos y tener la capacidad de tomar decisiones inteligentes. En la figura 8-7, se observa una
conexión máquina a máquina (M2M), la cual es un tipo de red ampliamente utilizado por
IoT y se presenta dentro del entorno de un hogar. Dicha red conecta alarmas, sensores de
seguridad y realizar un enlace de la información a través de un servidor de internet, donde
se puede establecer un análisis de los datos obtenidos[2].

Figura 8-7: Arquitectura de una red IoT en el hogar. Imagen tomada de [2]

Comunicación a través de Internet


Para establecer una comunicación exitosa entre dispositivos, es necesario disponer de un
conjunto de protocolos previamente determinados. Esto con el fin de que se establezca un
entendimiento entre dispositivos y ası́ se puedan comunicar.

Los protocolos determinan la manera de transmitir y recibir los mensajes, la forma en la cual
se establecerá la comunicación y demás requisitos para asegurar la interoperabilidad. Cuando
8.2 Internet de las cosas (IoT) 23

se cuenta con un grupo de protocolos estrechamente relacionados entre sı́ para realizar una
comunicación, a esto se le denomina “paquete de protocolo”. El paquete de protocolo tiene
como fin garantizar la interoperabilidad entre los dispositivos [2].

Paquetes de protocolo
Los paquetes de protocolo cumplen básicamente con las siguientes funciones:

El formato del mensaje.

El método usado para compartir información con otras redes.

Detección de errores y retransmisión del mensaje tanto de los dispositivos como del
sistema en general.

Configuración, establecimiento y finalización de una comunicación entre dispositivos.

Dichos paquetes pueden ser implementados tanto en el software como en el hardware o me-
diante una combinación de ambos. Uno de los paquetes de protocolo más comunes es el de
control de transmisión/protocolo de internet (TCP/IP). Cualquier dispositivo que tenga una
comunicación a través de internet debe usar este protocolo [2].
9 Metodologı́a
La realización de este proyecto fundamentalmente se basa en la construcción de una tarjeta
emuladora de red neuronal artificial, donde además se obtendrá la información allı́ obtenida
por medio de una interfaz vı́a Internet.

En primera instancia se realizará la construcción del software de la tarjeta emuladora. El


cual será basado en el lenguaje de programación C + +. Dicho programa tendrá la capacidad
de emular una red neuronal artificial y contará con la capacidad de configurar su sistema
de aprendizaje. Una vez se cuente con dicho software, se procederá a realizar el diseño de
la tarjeta emuladora haciendo uso de un software CAD (Diseño Asistido por Computado-
ra). El software CAD permite realizar la simulación del circuito funcional para de la tarjeta
emuladora de la red neuronal artificial, y a partir de allı́ se podrá construir el dispositivo
electrónico final, con el cual se realizarán las pruebas correspondientes para evidenciar la
veracidad del funcionamiento del mismo.

La construcción de la interfaz gráfica en la web se realizará usando los lenguajes de pro-


gramación HTML5, Javascript, php y CSS. Posteriormente, se desarrollará un proceso de
sincronización de la tarjeta emuladora y la interfaz gráfica con el cual se podrá obtener una
evaluación y efectuar un control sobre la red neuronal artificial, esto con el fin de supervisar
el estado de la red.

Para culminar, se realizaran pruebas del adecuado funcionamiento del sistema, en general.
10 Presupuesto
11 Cronograma
Bibliografı́a
[1] Cruz Salazar, Luis A. ; Muñoz Aldana, David ; Contreras Montes, Juan
A. Implementación de redes neuronales y lógica difusa para la clasificación de patrones
obtenidos por un Sónar. 2013

[2] Evans, Dave. Internet de las cosas cómo la próxima evolución de Internet lo cambia
todo. 2011

[3] Gómez, Jairo ; Sánchez, Jaime ; Ocampo, Aquiles ; Restrepo, José William: Apli-
cación de redes neuronales en la clasificación de arcillas. (2012)

[4] Hilera, José Ramón ; Martinez, Victor José: Redes neuronales artificiales: funda-
mentos modelos y aplicaciones. 2000

[5] Kun, Tsai L. ; Fang, Leu Y. ; lsun, YouI: Residence Energy Control System Based
on Wireless Smart Socket and IoT. (2016)

[6] Álvarez Blanco, Jorge ; Fernández Lau, Rogelio ; Pérez Lovelle, Sonia ; Ley-
va Pérez, Exiquio: Predicción de resultados académicos de estudiantes de informática
mediante el uso de redes neuronales. (2016)

[7] Maldonado, Luis Carlos ; Peña, César Augusto ; Gualdrón, Oscar: Identificación
automática de cilindros de almacenamiento de gas utilizando redes neuronales tipo
Hopfield. (2012)

[8] Marı́n Portillo, Adrián. Aplicación Android para el IoT. 2016

[9] Salazar, Jordi ; Silvestre, Santiago: Internet de las cosas. (2016)

[10] Sanz Molina, Alfredo ; Martı́n del Brı́o, Bonifacio: Redes neuronales y sistemas
difusos. 2002

You might also like