Clasificación automática de vinos utilizando redes neuronales
1. UNIVERSIDAD TECNOLOGICA DEL PERU
FACULTAD DE INGENIERÍA ELECTRÓNICA Y MECATRÓNICA
ESCUELA DE INGENIERÍA ELECTRÓNICA
CLASIFICACIÓN AUTOMÁTICA DE VINOS
UTILIZANDO REDES NEURONALES
CARBAJAL POSADAS NICKOLAS ALONSO
Tesis para optar el Título de Ingeniero Electrónico
Lima - Perú
2011
2. A mis Padres, hermanos y
profesores, que me apoyaron mucho.
ii
3. AGRADECIMIENTOS
En primer lugar quiero agradecer a mi familia por todo el apoyo que he recibido durante
tantos años, en especial a mis padres y hermanos por el ánimo y cariño brindado.
Al Mg. Christian Flores, mi asesor en la presente tesis, quiero agradecer su apoyo,
paciencia y disponibilidad para ayudarme en cualquier duda que me surgiera en todos los
aspectos relacionados al estudio de las redes neuronales y un agradecimiento especial por
esa amistad y relación profesional.
Finalmente, agradezco a todos aquellos que, de alguna manera u otra, me han ayudado a
que esta tesis se hiciera realidad.
iii
4. RESUMEN
Se contempla el caso paradigmático de las redes neuronales de gran complejidad que trata
de realizar la clasificación de dos tipos de vinos utilizando sus componentes. En los
últimos años el campo de las redes neuronales y sus distintos usos para la clasificación ha
ayudado a la industria para la obtención de resultados en cortos períodos de tiempo y con
cantidades de datos cada ves mas complejos. Esta tesis muestra el estudio detallado de
cómo al usar los datos de los componentes del vino blanco y el vino rojo, se puede utilizar
la red MLP para crear neuronas capaces de aprender y clasificar obteniendo resultados
óptimos. El análisis de componente de datos o PCA es una técnica importante que logra
reducir los datos sin perder gran cantidad de información. En la presente tesis se realiza
ambos la clasificación usando la red neuronal MLP, la reducción de datos sin perder tanta
información y finalmente la demostración de la efectividad al usar ambos.
Palabras Claves: redes neuronales, PCA, MLP.
iv
5. ABSTRACT
It provides the paradigmatic case of highly complex neural network that tries to make the
classification of wines using two types of components. In recent years the field of neural
networks and their uses for classification has helped the industry to obtain results in short
periods of time and amounts of data each time more complex. This thesis shows the
detailed study of how to use data from the components of white wine and red wine, can
be used to create neurons MLP network can learn and classify optimal results. The data
component analysis or PCA is an important technique that is able to reduce the data
without losing a great deal of information. In this thesis both the classification is done
using the MLP neural network, data reduction without losing much information and
finally the demonstration of the effectiveness of using both.
Keywords: Neuronal network, MLP, PCA.
v
6. INDICE GENERAL
CAPÍTULO PÁGINA
DEDICATORIA.......................................................................................................... iii
AGRADECIMIENTOS .............................................................................................. iii
RESUMEN ................................................................................................................. iiv
ABSTRACT ................................................................................................................. v
INDICE GENERAL .................................................................................................... vi
INDICE DE TABLAS ................................................................................................ ix
INDICE DE FIGURAS ................................................................................................ x
INTRODUCCION ..................................................................................................... 11
CAPÍTULO 1: DETERMINACIÓN DEL PROBLEMA1¡Error! Marcador no definido.
1.1 Formulación del proyecto de investigación ............................................. 12
1.1.1 Fundamento básico ...................................................................... 382
1.1.2 Motivación ................................................................................... 383
1.1.3 formulación .................................................................................. 383
1.2 Antecedentes históricos ............................................................................ 14
1.3 Estado del arte .......................................................................................... 15
CAPÍTULO 2: LA NARIZ ELECTRONICA ............................................................ 17
2.1 Sistema olfativo humano .......................................................................... 17
2.2 Sistema olfativo artificial ........................................................................ 18
2.3 Paralelismo entre los sistemas olfativos ................................................... 19
2.4 Olfato electrónico ................................... ¡Error! Marcador no definido.1
2.5 Ventajas del uso de sistemas de olfato electrónico en la industria........... 23
vi
7. CAPÍTULO 3: SIMULACIÓN DE TÉCNICAS COMPUTACIONALES DE
INTELIGENCIA ARTIFICIAL .... ¡Error! Marcador no definido.4
3.1 Redes neuronales artificiales .................. ¡Error! Marcador no definido.4
3.2 Resurgimiento de la red perceptrón ....... ¡Error! Marcador no definido.5
3.3 Pérceptron multilayer (MLP) .................................................................... 28
3.4 Algoritmo de entrenamiento de una MLP ................................................ 29
3.5 Sobre-Entrenamiento de una red MLP ..................................................... 31
3.6 función de salida....................................................................................... 32
3.6.1 Función PURELIN ........................................................................ 32
3.6.2 Función TASING ........................................................................... 33
3.7 Analisis de componentes principales (PCA) ............................................ 33
3.7.1 Componentes principales ............................................................... 35
CAPÍTULO 4: DISEÑO Y SIMULACIÓN .............................................................. 37
4.1 Software utilizado .................................................................................... 37
4.2 Diagrama de flujo ..................................................................................... 38
4.3 Mediciones obtenidas ............................................................................... 39
4.4 Datos de entrada ....................................................................................... 40
4.5 Normalización .......................................................................................... 41
4.6 Entrenamiento de la red MLP .................................................................. 42
4.7 Testeo ....................................................................................................... 43
4.8 NET .......................................................................................................... 44
4.9 NET Xtrem ............................................................................................... 46
4.10 Comprobación .......................................................................................... 47
4.11 Time ......................................................................................................... 48
4.12 Automatización ........................................................................................ 48
4.13 ECM ......................................................................................................... 50
4.14 Analisis ..................................................................................................... 50
4.15 Normalización del Score .......................................................................... 50
CAPÍTULO 5: RESULTADOS ................................................................................. 51
5.1 Resultados al usar la red MLP.................................................................. 51
5.1.1 Resultados de la red con una capa oculta ...................................... 51
5.1.2 Resultados de la red con dos capas ocultas .................................... 52
5.1.3 Resultados de la red con tres capas ocultas ................................... 53
5.1.4 Optimización de la red MLP .......................................................... 54
vii
8. 5.2 Resultados con PCA ................................................................................. 55
5.2.1 Extracción de componentes principales ........................................ 55
5.2.2 Resultados al utilizar la PC1 & PC2 .............................................. 59
5.2.3 Resultados al utilizar la PC1 & PC3 .............................................. 60
5.2.4 Resultados al utilizar la PC1 & PC4 .............................................. 61
5.2.5 Resultados al aplicar la red MLP luego del PCA (PCA-MLP) .... 62
5.3 Discusión de los resultados ...................................................................... 63
CONCLUSIÓN .......................................................................................................... 64
Conclusiones ..................................................................................................... 64
Trabajos Futuros ............................................................................................... 65
REFERENCIAS ......................................................................................................... 66
A N E X O S ............................................................................................................... 68
Anexo A: ALGORITMO MLP .................................................................................. 69
Anexo B: ALGORITMO PCA.................................................................................. 73
Anexo C: ALGORITMO MLP APLICADO AL PCA ............................................. 74
viii
9. INDICE DE TABLAS
CAPÍTULO PÁGINA
Tabla 4-1: Matriz entrada .......................................................................................... 43
Tabla 4-2: Matriz Y .................................................................................................... 43
Tabla 4-3: Matriz testeo ............................................................................................. 44
Tabla 4-4: Matriz yd ................................................................................................... 47
Tabla 4-5: Matriz y0 ................................................................................................... 47
Tabla 5-1: Resultados con una capa oculta ................................................................ 51
Tabla 5-2: Resultados con dos capas ocultas ............................................................. 52
Tabla 5-3: Resultados con tres capas ocultas ............................................................. 53
Tabla 5-4: Optimización de la red MLP..................................................................... 54
Tabla 5-5: Matriz de autovalores ............................................................................... 56
Tabla 5-6: Componentes principales .......................................................................... 56
Tabla 5-7: Porcentaje de variabilidad......................................................................... 57
Tabla 5-8: Resultados red MLP al PCA. .................................................................... 62
Tabla 5-9: Resultados finales de la red MLP vs PCA-MLP. ..................................... 63
ix
10. INDICE DE FIGURAS
CAPÍTULO PÁGINA
Figura 1-1: Ubicación del proyecto de tesis en la ingeniería ..................................... 12
Figura 2-1: Fases del sistema olfativo humano. ......................................................... 18
Figura 2-2: Sistema olfativo humano vs sistema olfativo electrónico. ...................... 19
Figura 2-3: Comparativo de capacidad sensitiva ....................................................... 20
Figura 2-4: Etapas de la nariz electrónica .................................................................. 22
Figura 3-1: Red MLP y salida .................................................................................... 26
Figura 3-2: Clasificación NAND vs XOR ................................................................. 27
Figura 3-3: Funcionamiento de la red MLP ............................................................. 30
Figura 3-4: Ejemplo de clasificación ......................................................................... 31
Figura 3-5: Esquema de valores de la función purelin............................................... 32
Figura 3-6: Esquema de valores de la función tansing .............................................. 33
Figura 3-7: Clasificación al usar PCA........................................................................ 34
Figura 4-1: Software MATLAB 10.0 ......................................................................... 37
Figura 4-2: Partes de la Red MLP .............................................................................. 46
Figura 4-3: Net's salvadas .......................................................................................... 49
Figura 5-1: Componente principales & Porcentaje de aportación. ............................ 58
Figura 5-2: Resultados del PCA - PC1 vs PC2 .......................................................... 59
Figura 5-3: Resultados del PCA - PC1 vs PC3 .......................................................... 60
Figura 5-4: Resultados del PCA - PC1 vs PC4 .......................................................... 61
x
11. INTRODUCCION
Diariamente, observamos nuevas formas y constantes evoluciones de los sistemas
electrónicos, esto ha permitido importantes avances en el desarrollo y reproducción de los
sentidos humanos, una nariz electrónica es uno de los dispositivos que más expectativas ha
despertado, por ser un instrumento un apropiado sistema de identificación de patrones
capaz de identificar olores simples o compuestos, haciendo posible utilizar sus datos como
medio de monitoreo y control de calidad en aplicaciones para la industria.
El Análisis de Componentes Principales (PCA) pertenece a un grupo de técnicas
estadísticas multivariantes, el cual ha sido muy difundido, especialmente en el tratamiento
de grandes masas de datos. En el presente trabajo se aplicará la técnica PCA para poder
obtener una cantidad óptima de datos necesarios para lograr la clasificación de los vinos.
La red neuronal MLP es muy usada en variedad de problemas como aproximador
universal, en el presente trabajo se pondrá a prueba su capacidad como clasificador
utilizando los datos de entradas obtenidos de sensores de la tesis de P.cortez[1].
Finalmente se utilizar la red neuronal MLP dentro de los datos obtenidos al aplicar la
técnica del análisis de componentes principales y se discutirá sobre los resultados,
haciendo enfasis en el tiempo de respuesta y la cantidad de datos.
Para esta tesis se cuenta con el software Matlab® versión 10.0; el cual será utilizado para
las simulaciones y tabulaciones necesarias.
11
12. 1. DETERMINACIÓN DEL PROBLEMA
A continuación se detalla la ubicación de la presente tesis dentro de la ingeniería,
mostrando a detalle las diferentes ramas en las que se desenvuelve:
Figura 1-1: Ubicación del proyecto de tesis en la ingeniería.
Selección general y específica del problema de investigación
Programa: Electrónica
Sub-programa: Electrónica Industrial
Línea de investigación: Inteligencia Artificial - Redes Neuronales
Sub línea de investigación: Reconocimiento de patrones - Uso de la red
MLP y el análisis de componente principales
1.1 Formulación del proyecto de investigación
1.1.1 Fundamento Básico
Se desarrollará específicamente el área de Electrónica Industrial, el cual se enfocará
en el tema de inteligencia artificial, para ello se dará énfasis en los fundamentos de
redes neuronales, luego se especifica el uso de los algoritmos de reconocimientos
12
13. de patrones (redes MLP y PCA), para finalizar con la optimización del desarrollo
de las redes usadas luego de haber ingresado datos que son requeridos para el
aprendizaje y datos adicionales que se usarán para la verificación.
1.1.2 Motivación
En la presente investigación existen varias razones importantes y de gran interés
que cabe resaltar en la clasificación automática de vinos usando redes neuronales,
pero el principal motivo que se considera para el desarrollo de este proyecto es la
capacidad optimizar el desarrollo de sistemas de clasificación automática usando
las redes neuronales, ya que supone un gran reto para el avance de la inteligencia
artificial, debido a su efectividad y de realización no tan complicado.
1.1.3 Formulación
Gracias al paso agigantado de la ciencia en la actualidad los avances tecnológicos
han hecho posible realizar la recopilación y almacenamiento de datos de manera
masiva de, a menudo muy complejos, conjuntos de datos.
En este proyecto se ha analizado el desarrollo la clasificación de vino rojo y vino
blanco haciendo uso de las redes perceptrón multicapa (MLP) y el análisis de los
componentes principales (PCA) para lograr la optimización del algoritmo
planteado, para lo cual se cuenta con datos muestreados de la tesis de P. Cortez [1].
Para esta investigación se cuenta con un total de 4.898 muestras de vino blanco y
1.599 muestras de vino rojo, utilizando estos datos se plantea entrenar una red a
través los algoritmos lineales (MLP) y paralelamente desarrollar el algoritmo del
PCA a fin de obtener una red autómata clasificadora de vinos, mostrar sus
resultados detallando su eficiencia y el nivel de su rendimiento.
Todos estos datos serán usados para la simulación generada a través del software
que permitirá la creación y verificación de la red neuronal. El estudio de dicha red
13
14. ayudará a optimizar la clasificación automática de vinos utilizando redes
neuronales.
1.2 Antecedentes Históricos
El aprendizaje automático a través del uso de redes neuronales en el campo de la
inteligencia artificial ha desarrollado varias aplicaciones en distintos campos,
siendo la identificación y clasificación de variables en sistemas uno de los temas
más relevantes actualmente.
A lo largo de las últimas décadas se ha venido observando los avances y nuevas
tecnologías desarrolladas a través de las redes neuronales, esto por su
comportamiento e intento de imitar a la perfección el proceso de aprendizaje del
cerebro humano.
En la Tesis de Sowilam [2] se define que una neurona recibe una señal de entrada
con una fuerza determinada, dependiendo de ellas la neurona emite una señal de
respuesta, las sinapsis pueden variar en fuerza, algunas pueden dar una señal débil y
otras una fuerte. A una neurona pueden llegar miles de señales de entrada, cada una
con una fuerza o peso diferente.
Nuestro cerebro se encuentra formado por millones de neuronas, las cuales se
conectan entre sí para transmitir la información recibida y procesar cada una para
lograr dar una respuesta a cada uno de los diferentes estímulos. Es así que se trata
de emular estas redes neuronales a través de la inteligencia artificial, logrando
armar sistemas complejos compuestos por elementos procesadores simples que se
encuentran conectados en paralelo, su función será determinada por la estructura de
la red.
14
15. Minsky y Papert[3], realizaron un estudio detallado de los tipos de representaciones
posibles con el perceptrón, y demostraron que, en un gran número de casos, estos
tipos de redes son incapaces de resolver los problemas de clasificación. Por otro
lado, también demostraron que un perceptrón constituido por varias capas, puede
realizar cualquier aplicación desde las capas de entrada a las de salida. El
inconveniente que se tenía en estos primeros estadios del manejo del perceptrón,
era el desconocimiento de un algoritmo de entrenamiento eficiente para redes con
más de una capa.
En el estudio de Bishop[4], introducen un método alternativo al perceptrón
multicapa (MLP) para hacer ajuste a funciones no lineales. El tiempo de
entrenamiento es substancialmente inferior al requerido por otros algoritmos. La
diferencia la establece si se incorpora en la salida del modelo de entrenamiento, una
supervisión a través del control del error que se produce entre los valores
calculados y los observados, conduciendo a una retro-propagación del error.
1.3 Estado del arte
A continuación se menciona brevemente trabajos relacionados y publicados sobre
la selección de variables y reconocimiento de patrones en el uso de la nariz
electrónica en la industria.
J.P. Santos [5] obtuvieron resultados óptimos con respuestas muy diferenciadas que
les permitió realizar la clasificación y cuantificación de vinos con gran precisión
utilizando la red multicapa alimentada hacia delante, con 16 neuronas en la capa de
entrada (correspondiente a los 16 sensores situados en la cámara) y una capa de
salida formada por cuatro neuronas puesto que era igual al número de vinos que
clasificó.
15
16. T. Eklov [6] examinan diferentes métodos para seleccionar variables relevantes de
un conjunto de variables resultantes de emplear una matriz de sensores de gases. El
objetivo es encontrar el mejor subconjunto de parámetros que pueda estimar
propiedades interesantes de las medidas. Utilizan forward selection aplicando el
error cuadrático medio (RMSE) de un modelo de regresión multilineal como
criterio de selección. Con él prueban si el nuevo conjunto obtiene buenas
predicciones en una red neuronal de tipo backpropagation.
J. Brezmes [7] utilizaron en una nariz electrónica para clasificar muestras de aceite
de oliva. Emplearon algoritmos de procesamiento de datos incluyendo PCA y redes
modificadas fuzzy ARTMAP. Para reducir el número de variables a utilizar y
seleccionar un subconjunto óptimo definen dos criterios diferentes. El primer
criterio se define como el poder de resolución de cada variable (relación entre la
varianza externa y la varianza interna). El segundo criterio es el promedio de
sensibilidad para cada sensor. El conjunto de medidas fue de 90 (9 repeticiones
para 10 muestras) con un 62% de tasa de éxito en la clasificación con todas las
variables y un 88% de éxito empleando el proceso de selección.
T. Artusson [8] muestran que el resultado de la compresión de los datos puede
también usarse para facilitar la interpretación de las medidas en dos distintos
conjuntos. En el primer conjunto de datos se utiliza el análisis de componentes
principales (PCA) como criterio de selección de los coeficientes. El objetivo de las
medidas fue monitorizar el agua después de su tratamiento con diferentes filtros. En
este caso, el número de variables se redujo en un factor de 18, sin perder
información relevante. El segundo conjunto se centró en la separación de diferentes
microorganismos utilizando como criterio de selección de los coeficientes la
relación entre las varianzas de una misma clase con respecto a las varianzas de
diferentes clases (relación inter/intra varianza), reduciendo el número de variables
en un factor de al 14,4% de lo inicial. El conjunto de datos reducido capturó
suficiente información importante para la identificación de los microorganismos.
16
17. 2. LA NARIZ ELECTRÓNICA
Para lograr entender el funcionamiento del sistema olfativo electrónico, es necesario
describir brevemente el sistema del olfato biológico.
2.1 Sistema olfativo humano
Existe gran diversidad de aromas formados por una gran multitud de mezclas de
moléculas, los aromas son inhalados por la nariz para luego entrar en contacto con la
mucosa en el epitelio olfativo, donde se hallan los receptores olfativos. Dichos
receptores están conectados con miles de neuronas que se encargan de traducir en
señal eléctrica.
El sistema olfativo biológico se comprende de unos cientos de miles de neuronas
receptoras las cuales tienen unos 20 receptores del mismo tipo. Estos se encuentran
codificados genéticamente, de manera que existen unos 1000 tipos de receptores
diferentes, pero sólo se expresan unos 400 tipos (el resto son pseudo-genes)1.
Las neuronas receptoras del epitelio pasan señales eléctricas a una parte del cerebro
humano, estas señales son recepcionadas por el bulbo olfativo y sus unidades
funcionales, luego se crea una representación básica de una de las características
principales de los olores y se transmiten hacia el córtex2.
La información que se basa en la estructura química de las moléculas converge en
unas representaciones cerebrales de los aromas y de la concentración de la sustancia
correspondiente. Mediante estas representaciones se logra distinguir diferentes tipos de
olores o aromas a la vez y determinar el predominante; de tal manera que se asocia
siempre la misma representación para un determinado olor aún encontrándose éste en
niveles de concentración muy distinto.
1
Córtex: en neurociencias, el manto de tejido nervioso que cubre la superficie de los hemisferios cerebral.
2
Pseudogenes: casi el 45% del genoma humano) son copias “muertas” de genes, sin función aparente, ya que no codifican proteínas.
17
18. Figura 2-1: Fases del sistema olfativo humano.
En la figura 2-1 se muestra el trabajo que realiza el cerebro al analizar los datos
recibidos enviados por los receptores, y en función de la respuesta combinada de
éstos, se cambia la percepción humana. El sistema olfativo es conocido como sistema
químico-sensorial, pues convierte señales químicas en percepción, es justamente este
análisis lo que permite realizar un paralelo con la parte artificial, utilizando matrices
de sensores y ordenadores para poder emular este comportamiento natural.
2.2 Sistema olfativo artificial
A pesar de toda su complejidad, el sistema olfativo humano a menudo no nos es
suficiente. Diariamente vemos en las noticias nuevas técnicas sobre el uso de las
narices más sensibles de los perros cuando se trata de rastrear, detectar sustancias
peligrosas, explosivas o hasta ilegales. Antiguamente en las minas de carbón usaban
canarios que indicaba que la atmósfera era respirable mientras éste cantara. En ese
caso no se pretendía aprovechar un sistema olfativo más sensible, sino utilizar al
18
19. canario como alarma sonora y visual ante la imposibilidad de evaluar la calidad del
aire por parte del hombre. Actualmente la tecnología ha desarrollado un universo de
gran diversidad de sensores que indican las concentraciones de multitud de gases,
obteniendo datos muy precisos y de gran importancia para la salud. Es justamente de
la idea de emular el sistema olfativo biológico con sensores de gases y redes
neuronales que nace el concepto de una nariz electrónica, la cual se define más
adelante.
2.3 Paralelismo entre los sistemas olfativos
A diferencia de las células receptoras en el sistema olfativo humano, estas son
reemplazadas por sensores de gases, las cuales reaccionan con diversos compuestos
volátiles. La transducción de la señal alojada en los receptores olfativos se reemplaza
en la nariz electrónica por circuitos de acondicionamiento de la señal convirtiéndola de
manera normal en una señal eléctrica de voltaje, la codificación de la señal neuronal
utilizada para poder reconocer un olor y su intensidad en los humanos es sustituida
aplicando el reconocimiento de patrones como se muestra en la figura 2-2.
Figura 2-2: Sistema olfativo humano vs sistema olfativo electrónico.
19
20. Así como pasa en los sistemas humanos, esta técnica de análisis global no necesita
identificar minuciosamente cada constituyente de un olor y sus diferencias sino
reconocerlo.
Se debe considerar que los sistemas electrónicos utilizados hoy en día no trabajan
exactamente igual que una nariz humana ya que no detectan los mismos componentes
volátiles, además su sensibilidad es menor.
Figura 2-3: Comparativo de capacidad sensitiva.
En la figura 2-3 se realiza la comparación sensitiva entre el olfato humano y los
sensores usados en el olfato electrónico, en definitiva los sistemas de olfato
electrónico imitan al sistema olfativo humano, acoplando una matriz de sensores
químicos a métodos avanzados de reconocimiento de patrones que permiten
caracterizar o discriminar mezclas aromáticas complejas sin una previa separación de
sus constituyentes.
Una característica muy variable en los aromas y sustancias olorosas es su peso o masa
molecular, ya que los olores se representan como mezclas complejas de diferentes
compuestos.
Según la Ley de Difusión Gaseosa establecida por Thomas Graham las velocidades de
difusión de los gases están relacionadas con las raíces cuadradas de sus masas
moleculares.
20
21. En la investigación de Schoenfeld y Cleland [9], se hace mención a las cavidades
olfativas y como estas favorecen a la difusión de los compuesto químicos volátiles,
inclusive en condiciones estables de entrada de caudal de aire. Para imitar este
mecanismo se puede disponer de múltiples sensores colocados en una cámara
geométricamente compleja para adquirir y valorar todas sus señales conjuntamente.
2.4 Olfato Electrónico
Se entiende por nariz electrónica al equipo complejo formado por series de módulos,
los cuales trabajan de forma conjunta con el objetivo principal de cuantificar y
clasificar distintas muestras gaseosas, vapores y aromas en un ambiente propicio con
sensores de gas.
Desarrollado en la década del 80, el principio de funcionamiento consiste en una serie
de sensores químicos que se acoplan a un programa de reconocimiento de patrones
adecuados que emula al ser humano.
En la investigación de Bernadó & Llobet [10] se describe la nariz electrónica como un
instrumento que comprende una matriz de sensores químicos con sensibilidades
solapadas y un avanzado sistema de reconocimiento de patrones, capaz de reconocer
aromas simples o complejos.
De una manera coloquial se podría afirmar que a este tipo de instrumentos se les
denomina de olfato electrónico por dos motivos [11]:
a) Porque su configuración y funcionamiento emulan al del sistema de olfato
humano.
b) Porque pretende realizar funciones tradicionalmente atribuidas al sistema de
olfato biológico.
21
22. A diferencia de los instrumentos de químicos tradicionales que también se encargan de
obtener datos de distintas muestras gaseosas, la nariz electrónica tiene una filosofía
distinta. Por ejemplo, el cromatógrafo de gases es un instrumento utilizado para
proporcionar un gasto constante de gas el cual detecta por separado los componentes
de la muestra, a diferencia de este último la nariz electrónica valora cada muestra en su
conjunto prestando menos atención a cada componente de manera individual que
conforma la mezcla gaseosa a caracterizar. La nariz electrónica comprende pues, un
sistema de muestreo, un sistema de medición, el cual está provisto de sensores
químicos, y un sistema informático que controla el proceso de medición y permite
aplicar técnicas de pre-procesado de datos, ejecutando el reconocimiento de patrones
para la detección y cuantificación de cualquier compuesto volátil3.
Este dispositivo está compuesto principalmente por cuatro etapas, cada una con
funciones diferentes e indispensables, a continuación se detalla la imagen de un
esquema presentado en el estudio de S. R. Bosch[12].
Figura 2-4: Etapas de la nariz electrónica.
3
Compuesto volátil: sustancia que tiende a evaporarse fácilmente, como el alcohol, el éter, la acetona, la gasolina, etc.
22
23. En la figura 2-4 se muestra el diseño de una nariz electrónica, esta consta de cuatro
etapas. La primera se encarga de realizar el muestreo de la mezcla gaseosa que se va a
utilizar. En la segunda etapa es necesario el uso de un conjunto de sensores de gases,
los cuales se encargan de realizar la detección de los compuestos volátiles, entre ellos
el alcohol. La tercera etapa está relacionada con la electrónica de control pues en esta,
se realiza el procesamiento de la señal por el conjunto de sensores y la realineación de
la señal. Finalmente a través de la computadora se extraen los rasgos que caracterizan
cada aroma para luego aplicar los algoritmos de clasificación de patrones, es en esta
etapa que se utilizan las redes neuronales artificiales.
2.5 Ventajas del uso de sistemas de olfato electrónico en la industria
Actualmente el incremento de las industrias vitivinícolas en diversos sectores
industriales, ha generado una mayor demanda y accesibilidad a sistemas fiables para
lograr asegurar la calidad y seguridad de su materia prima, para el caso de los vinos.
Grandes industrias como las farmacéuticas, invierten miles de dólares en instrumentos
analíticos tradicionales, lo que suele de alto costo, difícil mantenimiento y operación,
no solo eso, los análisis realizados suele no dar respuestas en tiempo real.
Es en estas situaciones en la que el sistema olfativo electrónico se vuelve de gran
ayuda, dentro del estudio de Gualdrón[13] y sus aportes se puede destacar lo siguiente:
a) Análisis no destructivo del producto.
b) Obtención de resultados en tiempo real (en cuestión de minutos).
c) Portabilidad, robustez y bajo precio.
d) Adaptación a diferentes cantidades y variedades de productos.
Existen diversas formas de poder lograr la clasificación de vinos, en esta investigación
se estudiará el uso de las redes neuronales lo que permitirá la clasificación de manera
automática, a continuación el estudio de las redes que se utilizarán.
23
24. 3. SIMULACIÓN DE TÉCNICAS COMPUTACIONALES
DE INTELIGENCIA ARTIFICIAL
3.1 Redes neuronales artificiales
En las últimas décadas las Redes Neuronales Artificiales han recibido un interés
particular como una tecnología para minería de datos, puesto que ofrece los medios
para modelar de manera efectiva y eficiente problemas grandes y complejos. Los
modelos son dirigidos a partir de los datos con los que se cuenta ya que son capaces de
encontrar relaciones o patrones de forma inductiva por medio de los algoritmos de
aprendizaje basado en los datos existentes.
En 1997 Sherperd & Kock[14] determinan que en la corteza cerebral existen cerca de
60 billones de conexiones, concluyendo que la efectividad de la neurona consiste en
sus mecanismos de interconexión a través de conexiones masivas.
En 1977 surge la primera idea de las utilizar redes artificiales para el reconocimiento
de patrones cuando Escudero[15] intentó explicar el funcionamiento del cerebro
humano, por medio de una red de células conectadas entre sí. Lo aplicaron a la
implementación de operaciones lógicas. Partieron del menor suceso psíquico: el
impulso, generado por una célula nerviosa.
En 1962 Rosenblatt[16] logra el desarrollo de la red multicapa perceptrón, donde una
serie de entradas se aplican a este, luego dichas entradas son multiplicadas por un
peso, que representa la fuerza de la conexión, todas las entradas multiplicadas por sus
pesos se proceden a sumar.
24
25. Una de las herramientas más usadas en la clasificación de patrones es la red Feed-
forward4 con aprendizaje supervisado, dentro de esta red se encuentra el perceptrón.
El perceptrón simple, adalina y perceptrón multicapa con algoritmo de aprendizaje
back-propagation (retropropagación) son los modelos neuronales más empleado en las
aplicaciones prácticas.
La historia de las redes neuronales está ligada al desarrollo y evolución de esta red, a
finales de los años cincuenta se propone el estudio de la red perceptrón simple y la
adalina lo que despertó un gran interés en el ámbito científico, logrando alcanzar gran
popularidad en durante los años setenta, pero el estudio realizado por Minsy & Papert
[3], mostró gran cantidad de objeciones históricas que acabaron con la mayor parte de
los recursos económicos destinados para su desarrollo.
3.2 Resurgimiento de la red perceptrón
Rumelhart [17] desarrollan un procedimiento innovador de aprendizaje de las redes, el
cual usa la diferencia al cuadrado entre la respuesta deseada y la producida por el
sistema como una medida del error a minimizar. El ajuste comienza en la capa de
salida, donde el error es medible, y se va propagando hacia atrás hasta llegar a la capa
de entrada, backpropagation.
La primera aparición del perceptrón simple fue realizada a principios de los años 60,
en el estudio de Rosenblatt[16], presentado en 1962, se trata de un modelo
unidireccional, compuesto por capas de entradas5 y otra de salida. La red perceptrón
logra realizar tareas de clasificación, cada neurona del perceptrón representa una
determinada clase, de tal manera que dado un vector de entrada, una cierta neurona
responde con „0‟ si no pertenece a la clase que representa y „1‟ si pertenece. La
4
(Feed-forward) redes unidireccionales organizadas en capas.
5
Las neuronas de entrada no realizan operaciones, solo envían la información a la siguiente neurona, siendo su función de activación un
escalón.
25
26. función de activación de las neuronas presentes en la capa de salida es del tipo
escalón, como se muestra en la figura 3-1.
Red MLP Salida
Las neuronas de la capa de entrada no realizan Es del tipo escalón ya que puede ser de dos tipos 1 para
operación alguna, solo dan los datos de entrada. el Vino blanco o 0 para el Vino rojo.
Figura 3-1: Red MLP y salida.
El perceptrón se utiliza como clasificador y para representar algunas funciones
booleanas (NAND,OR) por su salida binaria, como se muestra en la figura 3-2. Una de
las características más resaltantes en la historia del perceptrón es su carácter de
dispositivo entrenable, pues permite determinar automáticamente los pesos sinápticos
entre la capa de entrada y la capa de salida.
Sin embargo, pese a su gran interés, el perceptrón presenta serias limitaciones, ya que
solamente logra representar funciones linealmente separables, una decepción ya que si
bien es cierto logra aprender y representar funciones complejas y resolver con éxito
problemas de clasificación, en otras ocasiones falla, la clase de funciones no
separables linealmente no puede ser representada por un perceptrón simple.
26
27. Un ejemplo clásico se muestra a continuación, en la figura se logra separar linealmente
la variable AND pero no obtiene el mismo resultado al trabajar con la variable XOR,
este inconveniente fue obrservado y detallado por Minsky y Papert[2], en este estudio
exhaustivo se hace énfasis en las limitaciones del perceptrón, lo que conllevó a que
muchos de los recursos que se estaban invirtiendo en redes neuronales y estudios
similares, se desviasen hacia otros campos más prometedores de la época como la
inteligencia artificial.
Función NAND Función XOR
Todas las combinaciones de variables tienen como Si las variables son iguales su salida será ‘0’, si son
salida a ‘1’, expceto cuando ambas variables son ‘1’. diferentes su salida será ‘1’.
Figura 3-2: Clasificación NAND vs XOR.
En el estudio de Rumelhart[17] se demuestra que si la función a representar es
linealmente separable, este algoritmo siempre converge en un tiempo finito y con
independencia de los pesos de partida. Por otra parte, si la función no es linealmente
separable, el proceso de entrenamiento oscilará, el algoritmo del perceptrón termina su
desarrollo tan pronto como termina de clasificar correctamente todos los ejemplos.
Para garantizar una respuesta exacta o bastante aproximada usando el perceptrón se
debe considerar que el número de medidas obtenidas sea alto, las ecuaciones
realizadas por las redes para el entrenamiento suele ser de órdenes elevados, de
27
28. manera que el tiempo de respuesta depende mucho de esta variable, es por eso que se
debe tener cuidado con la potencia del cálculo necesario para ejecutar esta fase.
3.3 PÉRCEPTRON MULTILAYER (MLP)
En el estudio de las redes neuronales artificiales (NNA), utilizados para la
clasificación de patrones, una de las redes más usadas es la red perceptrón multicapa
(MLP), conocida por su gran capacidad para realizar transformaciones matemáticas
entre conjuntos de variables, la capacidad de generalización y aprendizaje y su baja
sensibilidad al ruido.
En una red MLP las neuronas son entrenadas tomando como base ejemplos de
desempeño con una base limitada o comportamiento deseado. Dicho comportamiento
se resume como un conjunto de pares ordenados de entrada y salida donde la cantidad
de neuronas a utilizar depende netamente del problema que se analiza, una vez que se
halla la salida aproximada se busca reducir el error el cual está relacionado por una
ecuación entre la salida correcta y la salida real de la red.
La red MLP permite entrenar una red neuronal utilizando un conjunto de medidas de
calibración. Ayuda a la clasificación de nuevos datos utilizando un modelo de red el
cual fue previamente entrenado. Evalúa la posibilidad de clasificar medidas mediante
su sistema, a través de procesos de validación.
El objetivo de la red MLP es clasificar un determinado número de medidas a partir de
un entrenamiento previamente realizado, a esto se le denomina modelo, este método es
del tipo no lineal que permite la clasificación y cuantificación de resultados.
Lo que hace la regla de aprendizaje tipo perceptrón es calcular cambios deseados de
acuerdo a los pesos y bias6 de la red, dado una neurona de entrada y el error asociado.
6
Bias: determina con que dificultad el perceptrón da un impulso de salida.
28
29. El algoritmo se ejecuta repetidas veces ocasionando que el perceptrón tenga una
mayor probabilidad de producir salidas cercanas a las correctas. Propuesta una
solución y analizada su existencia, el perceptrón convergerá después de un número
finito de interacciones.
Una red de tipo perceptrón consiste en un conjunto de neuronas divididas en distintas
capas. Cuando al sistema se le suministran los datos de un nuevo caso se actualizan en
primer lugar las neuronas de la capa de entrada, y así sucesivamente hasta la capa de
salida, que indica la respuesta del sistema.
Rumelhart [17] se desarrolla un procedimiento innovador de aprendizaje de las redes,
el cual usa la diferencia al cuadrado entre la respuesta deseada y la producida por el
sistema como una medida del error a minimizar. El ajuste comienza en la capa de
salida, donde el error es medible, y se va propagando hacia atrás hasta llegar a la capa
de entrada, y por eso a este algoritmo también se le conoce como BP (back-
propagation - retropropagación).
3.4 Algoritmo de entrenamiento de una MLP
En el libro de Bonifacio[18] se indica que para el desarrollo de la red MLP y su
entrenamiento se debe usar el algoritmo feed-forward. Una red se dice feed-forward si
existe un método de numeración de sus neuronas que la numera a todas de manera que
no hay conexión entre una neurona i-ésima y la j-ésima si i ≥ j. En esta definición las
conexiones son orientadas, la conexión i-j es distinta que la j-i.
Definida la entrada como un vector denominado X y la salida denominada Y, se
considera para empezar el caso más simple; aquel en que la red asocia a cada patrón
de entrada Xj una salida Yj, sin importar las entradas y salidas que haya generado
antes. Siendo Sj la salida de la neurona i-ésima de entrada, wji el peso entre la neurona
i la j, y zj la salida de la neurona oculta j-ésima.
29
30. Figura 3-3: Funcionamiento de la red MLP.
Usando la figura 3-3 se define se define el entrenamiento mediante BP de la siguiente
manera:
a) Establecer aleatoriamente los pesos y umbrales iniciales (t:=0).
b) Para cada patrón j del conjunto de aprendizaje:
a. Ejecutar la red para obtener una respuesta ante el patrón j-ésimo pasado.
b. Calcular las señales de error asociadas a las neuronas ocultas y neuronas de
salidas.
c. Calcular la variación y aumento debido a cada patrón j.
c) Calcular el incremento total de los pesos de la capa entrada hacia la oculta y de
esta última hacia la capa de salida.
d) Énfasis en la actualización de pesos y umbrales.
e) Calcular el error actual y volver a b) si el resultado un no es satisfactorio.
30
31. La red MLP es un entrenamiento que cuenta con error de aprendizaje, el cual es
calculado con el error cuadrático medio usando los datos entregados por la salida, si la
red es de gran tamaño dicho error puede reducirse tanto como se desee realizando mas
iteraciones. Uno de los temas importantes en este estudio es hallar el tope de
generalización, con la cual se puede saber el momento ideal para detener el algoritmo,
para esto se emplea un conjunto representativo de patrones diferentes a los utilizados
en el entrenamiento. De este modo se puede entrenar a la red neuronal haciendo uso de
datos de aprendizaje, para comprobar su eficiencia real, mediante un conjunto de test.
3.5 Sobre-Entrenamiento de una red MLP
La red MLP es la encargada de entender las muestras que se le presenten y llevar a
cabo una relación de tal manera que luego del aprendizaje logre demostrar su
efectividad en la etapa del testeo. Para esto se deberá encontrar el número óptimo de
neuronas para su configuración.
Figura 3-4: Ejemplo de clasificación.
31
32. Como se observa en la figura, la red se va adaptando progresivamente al conjunto de
aprendizaje, acomodándose al problema y mejorando la generalización, hasta que llega
al punto de ajustarse idóneamente a las particularidades de los patrones empleados en
el entrenamiento; logra aprender el ruido presente y es aquí donde crece el error de
generalización, la red no se ajusta correctamente y comienza a memorizar los patrones
de los datos ingresados, a este fenómeno se le denomina sobre-aprendizaje
(overtraining o overfitting), lo ideal es que se entrene hasta cierto punto óptimo en el
cual el error de generalización es mínimo.
3.6 Función de salida
Una de las ventajas que otorga esta red, es la modificación de la función de salida. La
función tiene que ser del tipo Purelin o Tansing pero dando la facilidad de usar una u
otra sin ningún problema.
3.6.1 Función PURELIN
Esta función se caracteriza por presentar una pendiente unitaria, se debe tener
cuidado al momento de usarse ya que podría presentar problemas con los datos, pues
si alguno no es congruente lograría que la respuesta tienda al infinito y al no tener
una acotación generaría un error en los resultados finales.
a
Figura 3-5: Esquema de valores de la función purelin
32
33. 3.6.2 Función TASING
Dicha función delimita los valores de la salida entre [-1,1], ya que se acota los
resultados, aun si alguna variable tienda al infinito no será problema pues las
limitaciones frenarían este comportamiento.
Figura 3-6: Esquema de valores de la función tansing.
3.7 Análisis de los componentes principales (PCA)
Se trata de un método de análisis multivariable, que utiliza las redes neuronales
para su desarrollo en modo no supervisado, esencialmente creada para el análisis
gran cantidad de datos entrada, al obtener los datos utiliza la estructura de los
mismos y se procede a realizar una agrupación en unas nuevas variables a las que
se les denomina factores o componentes principales. El objetivo es reducir estos
datos a un menor número perdiendo la menor cantidad de información posible. Los
datos de entrada con los que se cuenta presentan valores cercanos a cero, estos
datos no poseen gran información y contribuyen poco al estudio por lo que pueden
ser eliminados sin causar gran pérdida. Al ser una técnica de carácter lineal,
presenta buenos resultados solo en condiciones lineales.
33
34. El uso de la la técnica PCA en esta tesis es simplificar el conjunto extenso de
datos, reduce el número de variables ya que presenta información redundante y el
exceso de variables dificulta el análisis de información. Analiza la información a
partir de las interacciones entre las variables, logrando obtener tantos factores
como variables analice
Estos factores no son observables, aunque se basan en las relaciones entre las
variables iniciales, son independientes y no se relacionan entre si, en la
representación se muestran como ejes ortogonales.
Figura 3-7: Clasificación al usar PCA
Los algoritmos PCA utilizados en esta tesis se han implementado en el entorno de
programación que ofrece en el paquete informático MATLAB. Las subrutinas
básicas CA se encuentran en un paquete multivariante denominado PLA-Toolbox
2.0 que se acopla al programa principal. En concreto, existen dos subrutinas PCA
(versión clásica) y PCAPRO (PCA en modo supervisado).
34
35. Sin embargo, estas funciones son excesivamente generales para los objetivos de
este trabajo. Ha sido necesario programar una serie de funciones auxiliares para
facilitar la integración y evaluación de estos algoritmos en el objetivo planteado de
esta tesis.
En concreto, ha sido necesario realizar este algoritmo para distinguir de manera
gráfica como se realiza la clasificación de ambos vinos, para ello se han
programado tres distintas cargas de datos de vino blanco ya que se tiene el triple de
muestras que de vino rojo, esto nos permite ver con mayor claridad en distintas
gráficas el método de clasificación cuyo algoritmo se muestra en el capítulo 4,
donde se observará los resultados obtenidos.
3.7.1 Componentes principales
Del estudio realizado por T. Guerrea[18] se destaca las fases de componentes
principales;
a) Análisis de la matriz de correlaciones
Un análisis de componentes principales tiene sentido si existen altas
correlaciones entre las variables, ya que esto es indicativo de que existe
información redundante y, por tanto, pocos factores explicarán gran parte de la
variabilidad total, en esta matriz pueden existir valores negativos.
b) Selección de los factores
La elección de los factores se realiza de tal forma que el primero recoja la mayor
proporción posible de la variabilidad original; el segundo factor debe recoger la
máxima variabilidad posible no recogida por el primero, y así sucesivamente. Del
total de factores se elegirán aquéllos que recojan el porcentaje de variabilidad que
se considere suficiente. A éstos se les denominará componentes principales.
35
36. c) Análisis de la matriz factorial
Una vez seleccionados los componentes principales, se representan en forma de
matriz. Cada elemento de ésta representa los coeficientes factoriales de las
variables (las correlaciones entre las variables y los componentes principales). La
matriz tendrá tantas columnas como componentes principales y tantas filas como
variables.
d) Interpretación de los factores
Para que un factor sea fácilmente interpretable debe tener las siguientes
características, que son difíciles de conseguir:
• Los coeficientes factoriales deben ser próximos a 1.
• Una variable debe tener coeficientes elevados sólo con un factor.
• No deben existir factores con coeficientes similares.
En el estudio de Brezmes[20] se utiliza dicho algoritmo para el ámbito de narices
electrónicas y su representación bidimensional del conjunto de medidas, a fin de
observar si se logra determinar agrupaciones espontáneas entre las diferentes
medidas realizadas.
Otro método clásico es el Discriminant Function Analysis (DFA), el estudio de
Kekla [21], utiliza este método para discriminar un conjunto de medidas usando los
coeficientes del modelo, llamados variables canónicas. Se trata de un método
supervisado más potente que el PCA, aunque con riesgos de sobre-entrenamiento.
En el artículo de J, Vazques [22] los resultados experimentales obtenidos
demuestran que la fusión del algoritmo que utiliza el PCA logra disminuir la
cantidad de datos y obtener una respuesta mucho mejor ya que logó eliminar el
ruido proveniente de los sensores.
36
37. 4. DISEÑO Y SIMULACIÓN
En este capítulo se describe los resultados y datos obtenidos a partir de dos métodos
conocidos para la clasificación de datos.
Con respecto a los resultados, se mostrarán en cuatro partes las cuales explican el
desarrollo del presente trabajo y la evolución que hubo aplicando la red MLP para luego
mostrar los resultados obtenidos al aplicar el algoritmo PCA.
4.1 Software utilizado
El software utilizado en la presente tesis es MATLAB versión 10.0 como se muestra
en la figura 4-1, en la cual se desarrollan distintos algoritmos para la simulación. Esta
versión cuenta con una función automática en su toolbox para la utilización de
algoritmos genéticos y redes Fuzzy ARTMAP, las cuales no serán usadas puesto que
se trabajará con un algoritmo implementado con otro tipo de red.
Figura 4-1: Software MATLAB 10.0
37
38. 4.2 Diagrama de flujo
INICIO
Vino Blanco Vino Rojo
100% de los datos
100% de los datos
Normalización Análisis de
Componente
Principales
SCORE
V.blanco (0a1) V.rojo (0a1)
20% de los datos
80% de los datos
20% de los datos
80% de los datos
Entrenamiento Testeo Secuencia de flujo del
PCA aplicado al MLP.
Secuencia de flujo del
MLP.
----------- Datos del vino blanco.
NET Datos del vino rojo.
Salva los datos
V.blanco normalizados del vino
blanco.
y0 Salva los datos
yd V.rojo normalizados del vino rojo.
ECM% Error cuadrático medio.
y0 Salida obtenida.
yd Salida deseada.
Comprobación% ECM% Salvan las mejores
NET 7-8-9 configuraciones.
Salva configuraciones con
NET_XTREME sobre-entrenamiento.
Nueva matriz generada
para hallar el porcentaje
SCORE de varianza y
NET_7 96% componentes principales.
NET_8 97%
NET_9 98% NET_XTREME
FIN
38
39. 4.3 Mediciones obtenidas
De la tesis presentada por P. Cortez[1] se tiene los patrones de entrada del vino rojo y
el vino blanco, estandarizando 12 muestras para ambos vinos las cuales se mencionan
a continuación:
a) Acidez fija
Tipo de acidez que queda determinada por la diferencia entre la acidez total y la acidez
volátil.
b) Acidez volátil
De acuerdo su definición oficial “la acidez volátil está constituida por los ácidos
grasos pertenecientes a la serie acética que se encuentran en los vinos, bien en estado
libre, bien en estado asociado” OIV[23].
c) Acido cítrico
El ácido cítrico es uno de los aditivos más utilizados por la industria. Se obtiene por
fermentación de distintas materia primas como la uva.
d) Azúcar residual
Definido por el azúcar que tras la fermentación permanece en el vino. Según la
cantidad que permanece en el vino este de denomina seco, semiseco, semidulce o
dulce.
e) Cloruro
El contenido de cloruros en los vinos es variable, en general es inferior a 0.5g/l.
f) Alcohol
El aumento del alcohol tiende a resaltar una mejor calidad en el vino.
39
40. g) Dióxido de sulfuro libre
En la elaboración del vino, es importante añadir dióxido de sulfuro libre para evitar la
oxidación cuando hay oxígeno alrededor.
h) Total de dióxido sulfúrico
Oxida antes que los compuestos de fenol presente absorbiendo el oxígeno.
i) Densidad
El alcohol tiene una densidad fija que es 0793, y el extracto, al estar disuelto, sube la
densidad del vino proporcionalmente a su cantidad.
j) Pondus Hidrogenium (pH)
El pH en el vino determina su acidez. El nivel de pH va aumentando a lo largo del
ciclo de maduración de la uva, y a medida que aumenta este nivel, la acidez
disminuye.
k) Sulfato
El contenido de sulfatos procede de la uva y efectivamente la concentración aumenta
de forma escalonada conforme envejece el vino una vez embotellado.
l) Calidad (entre 0 y 10)
Los vinos de mayor calidad suelen provenir de suelos más bien pobres en materias
orgánicas, calizos y poco húmedos. .
4.4 Datos de entrada
De la matriz obtenida en la Tesis presentada por P. Cortéz [1], se ha modificado el
orden ya que algunos valores tienden a ser 0, lo que no es optimo para el
entrenamiento, se reordeno las filas sin realizar modificaciones a las columnas
(patrones).
40
41. Del vino blanco se cuenta con 4899 muestras la cual se ingreso en una base de datos
denominado blanco.mat. Del vino rojo se cuenta con 1599 muestras la cual se ingreso
en una base de datos denominado rojo.mat.
Para la demostración, se utilizara 1461 datos de cada vino, de los cuales 1100 serán
para el entrenamiento y 361 para testeo, dando un total de 2200 datos de entrada y 722
para el entrenamiento, la capa de entrada consta de 12 neuronas, se utilizan dos capas
oculta la cual presenta una cantidad de neuronas que cambiante para las pruebas y una
única capa de salida que se encargará de clasificar si se trata vino blanco („1‟lógico) o
rojo („0‟logico).
Para el caso del patrón de “acido crítico”, presente en ambos vinos, se ha notado que
cuenta con valores entre 0 y 1, siendo 0 el valor mínimo presente en 132 muestras, lo
cual no ayuda en la etapa de entrenamiento, por este motivo se ha realizado un filtro,
dejando estos valores para el final a fin de que ayude a validar la eficiencia de la red.
4.5 Normalización
La primera variable a crear en el MATLAB se denomina vino_rojo que consta de 1461
valores. El segundo valor ingresado en el MATLAB se denominara vino_blanco que
consta de 1461 valores.
Con la base de 2922 muestras tomadas de ambos vinos, se procede a realizar la
normalización de los datos de entradas.
Se crean dos nuevas variables llamadas norma_vblanco & norma_vrojo para el vino
blanco y rojo respectivamente, estas variables guardaran los datos normalizados de la
siguiente manera, se divide cada dato entre el mayor valor de la columna que lo
comprende, de esta manera se tendrá dos matrices de 11461x12 almacenado en cada
variable, las cuales tienen valores comprendidos entre 0 y 1; por ejemplo:
41
42. Si ; el mayor valor de la primera columna es 16, el segundo 81
y el tercero 256 respectivamente.
Al realizar la normalización se obtiene:
4.6 Entrenamiento de la red MLP
Para el entrenamiento de la red se crean 2 variables denominadas entren_vblanco &
entren_vrojo, citando la teoría del MLP y su recomendación se toma el 80% de datos
normalizados para el entrenamiento y se almacenan en estas variables.
Las dimensiones de estas variables se guardan en la variable VB & VR correspondiente
a cada vino, estas se utilizarán para obtener la cantidad exacta de datos para entrenar.
La variable entrada se define como una matriz de 2200x12 generada por los datos de
entren_vblanco sobrepuesto a los datos de entren_vrojo, de la siguiente manera:
La variable clasificacion se define como una matriz de 2200x1 depende directamente
de los datos salvados en VR & VB, esta variable es de una única columna la cual se
divide en Zeros(„0‟) y Ones(„1‟). Por ejemplo:
42
43. La variable X guarda la transpuesta es la variable entrada.
Dióxido
Total de Densidad
Acidez Acidez Ácido Azúcar de
Cloruro dióxido pH Sulfato Alcohol Calidad
Fija Volátil cítrico Residual sulfuro
sulfúrico
libre
7.4 0.7 0 1.9 0.076 11 34 0.9978 3.51 0.56 9.4 5
7.8 0.88 0 2.6 0.098 25 67 0.9968 3.2 0.68 9.8 5
7.8 0.76 0.04 2.3 0.092 15 54 0.997 3.26 0.65 9.8 5
11.2 0.28 0.56 1.9 0.075 17 60 0.998 3.16 0.58 9.8 6
7.4 0.7 0 1.9 0.076 11 34 0.9978 3.51 0.56 9.4 5
7.4 0.66 0 1.8 0.075 13 40 0.9978 3.51 0.56 9.4 5
7.9 0.6 0.06 1.6 0.069 15 59 0.9964 3.3 0.46 9.4 5
7.3 0.65 0 1.2 0.065 15 21 0.9946 3.39 0.47 10 7
7.8 0.58 0.02 2 0.073 9 18 0.9968 3.36 0.57 9.5 7
7.5 0.5 0.36 6.1 0.071 17 102 0.9978 3.35 0.8 10.5 5
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
8.1 0.56 0.28 1.7 0.368 16 56 0.9968 3.11 1.28 9.3 5
7.4 0.59 0.08 4.4 0.086 6 29 0.9974 3.38 0.5 9 4
7.9 0.32 0.51 1.8 0.341 17 56 0.9969 3.04 1.08 9.2 6
8.9 0.22 0.48 1.8 0.077 29 60 0.9968 3.39 0.53 9.4 6
Tabla 4-1: Matriz entrada
La variable Y guarda la transpuesta es la variable clasificacion.
CANTIDAD 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106
VALOR 1 1 1 1 1 0 0 0 0 0 0
Tabla 4-2: Matriz Y
4.7 Testeo
El 20% que no se utilizó de los datos normalizados de los vinos se utilizan en esta
parte y se utilizan como datos de testeo para comprobar a que porcentaje del nivel de
aprendizaje logró desarrollarse la red neuronal.
Los 722 valores que no fueron utilizados de la normalización anterior son colocadas
en las variables test_vblanco & test_vrojo. La variable TB está compuesta por los
43
44. valores de las dimensiones de la variable test_vblanco y de la misma manera la
variable TR. Para este caso es una matriz de 2x2. Al igual que para la parte del
entrenamiento se crearon las variables entrada_entr & clasifica_entr para el testeo se
crearan dos variables de la misma manera llamadas entrada_test compuesta por
test_vblanco y test_vrojo y la variable clasifica_test compuesta por tantos „ones‟ como
el valor de la primera columna de TB y tantos „zeros‟ como valores de la primera
columna de TR.
Finalmente se crea la variable testeo que está compuesta por la transpuesta de la
variable entrada_test anteriormente creada. Por razones de espacio solamente se da a
conocer los 11 primeros datos
DATOS 1 2 3 4 5 6 7 8 9 10 11
1 0.8132 0.8132 0.8132 0.8342 0.7342 0.4322 0.2343 0.2344 0.4322 0.3234 0.4323
2 0.5565 0.2727 0.3234 0.5432 0.8983 0.3423 0.4323 0.2343 0.8874 0.4388 0.2349
3 0.7032 0.2345 0.7830 0.4848 0.7738 0.3284 0.4359 0.9983 0.4388 0.8384 0.8484
4 0.1003 0.8438 0.8458 0.8587 0.8438 0.8438 0.8545 0.8834 0.8438 0.7574 0.8483
5 0.6435 0.8487 0.8384 0.8734 0.7473 0.3708 0.8434 0.8649 0.8348 0.7437 0.7474
6 0.8023 0.5838 0.8438 0.8487 0.8483 0.7554 0.8584 0.8748 0.8934 0.7575 0.8789
7 0.9855 0.9488 0.8547 0.7457 0.8785 0.7753 0.9877 0.2347 0.3478 0.3858 0.7657
8 0.1255 0.7348 0.5885 0.7753 0.4573 0.3487 0.8576 0.2389 0.8543 0.8348 0.8438
9 0.5543 0.8659 0.3874 0.7834 0.7848 0.8324 0.8434 0.7653 0.8437 0.7394 0.8347
10 0.8347 0.8451 0.8374 0.1349 0.8348 0.8558 0.8834 0.9433 0.9348 0.9348 0.8756
11 0.9875 0.9984 0.3445 0.7889 0.3847 0.8475 0.8347 0.7753 0.8832 0.8374 0.9835
12 0.9873 0.9848 0.7342 0.7575 0.8383 0.8548 0.8458 0.4378 0.7853 0.9852 0.8573
Tabla 4-3: Matriz Testeo
4.8 NET
La siguiente variable a guardar se denomina NET, es en esta variable en la cual se
adjunta la red, se entrena con 12 ceros lógicos („0‟)y 12 unos lógicos („1‟), teniendo
así una matriz de 12x2, luego se coloca el número de neuronas por capa, de las cuales
la capa de entrada es igual al número de datos entrenados y la capa de salida es uno
pues representa la neurona que nos indicará si la salida corresponde al vino blanco(„1‟)
o al vino rojo(„0‟).
44
45. La variable NET es sin duda la parte principal de este algoritmo ya que en ella se
guarda los datos de la cantidad de neuronas necesarias halladas a través de la
simulación para que la red neuronal logre aprender a clasificar los datos de los vinos
rojos y blancos.
En el comando newff se guardan los siguientes datos:
La transferencia de funciones TF puede ser cualquier transferencia diferenciable,
funciones tales como la TANSIG & PURELIN.
Para controlar de forma más exhaustiva el entrenamiento de una red de tipo
Backpropagation se emplea el algoritmo de entrenamiento “Batch Gradient Descent”
(traingd).
Los siguientes datos a colocar son aquellos que limitarán la red para que esta tenga un
dato óptimo y no llegue al sobre entrenamiento, se muestra en la figura 4-2.
net.trainParam.epochs = Número máximo de iteraciones
net.trainParam.show = Actualizar salida cada ciertos épocas
net.trainParam.lr = Velocidad de convergencia
net.trainParam.goal = Objetivo para converger
De esta manera la variable NET realiza el entrenamiento usando la variable net ya
guardada, X & Y.
Variable NET en el Matlab
net = newff( [ zeros(12,1) ones(12,1)] , [300-j j 1] , {'tansig'
'tansig' 'purelin' } , 'traingd' )
45
46. %la variable newff usada a continuación presenta un modelo fijo o
%plantilla de datos a ingresar.
%Este es el comando que literalmente describe el esquema de la red
%neuronal y realiza el entrenamiento en la primera capa las %neuronas
%con entradas ceros y uno dos columnas, la segunda capa oculta con
%la cantidad de neuronas ocultas, es aquí donde se %realizan los
%cambios, valores aleatorios. La tercera capa es el tipo de salida
%que se desea, para este caso la salida será traingd o descenso de
%gradiente por back propagation.
Figura 4-2: Partes de la Red MLP
4.9 Net Xtrem
Esta variable se crea específicamente para guardar dos porcentajes, 99% y 100% ya
que esto significa que la red a realizado un sobre-entrenamiento, es decir ha aprendido
demasiado, logrando esta que al momento del testeo y verificación de su aprendizaje,
rechace todos los datos que sean levemente distintos a los usados en su entrenamiento
tal y como se explica en el capítulo 3.
46
47. 4.10 Comprobación
Se crean dos variables yd & y0, la primera está compuesta por la transpuesta de la
variable clasifica_test y la segunda es la salida real tomada de los datos de simulación,
para luego usar ambos datos en una comparación y validar la cantidad de aciertos
obtenidos.
yd=clasifica_test'
CANTIDAD 357 358 359 360 361 362 363 364 365 366 367 368
VALOR 1 1 1 1 1 0 0 0 0 0 0 0
Tabla 4-4: Matriz yd
y0=sim(net,testeo)
CANTIDAD 357 358 359 360 361 362 363 364 365 366
VALOR -0.81 0.3485 -0.56 0.6856 0.7452 0.1215 -0.89 0.9654 -0.21 0.635
Tabla 4-5: Matriz y0
Los datos obtenidos en y0, datos reales, deberían estar en el rango de 0 a 1 pero como
se muestra en la tabla anterior algunos alcanzan valores de máximos mayores a 1 y
datos mínimos menores a 0, es por esto que se debe realizar un algoritmo que
considere que estos datos sean próximos a cero y a la unidad respectivamente.
La regla para hallarlos es la siguiente:
a) Si el valor se encuentra dentro del rango [-1 a 0.2] entonces se debe considerar
„0‟.
b) Si el valor se encuentra dentro del rango [0.8 a 2] entonces se debe considerar
„1‟.
47
48. Ahora que se tiene la salida de los datos reales de simulación y los datos de la salida
ideal, ambos en el rango de 0 a 1, se puede realizar la verificación de cuantos aciertos
se obtuvo y validar si la red entrenó correctamente.
Se crea la variable comprobacion la cual es una matriz compuesta por la diferencia
entre el valor obtenidos menos el valor deseado.
Se crea la variable llamada acierto y la variable error para luego diseñar el algoritmo
que logrará medir la eficiencia del programa, si los datos de la variable comprobacion
son menores a 0.051, un valor pequeño considerable como bueno, este se guardará en
la variable acierto, si no se guardará en la variable error.
4.11 Time
Con la variable tr.time obtenida de la NET se logra hallar el tiempo de aprendizaje en
micro-segundos, dentro del entrenamiento de la red neuronal, este tiempo obtenido se
transforma a minutos y se redondea para eliminar los segundos, este valor es salvado
en la variable time.
4.12 Automatización
Ya que se logró obtener de manera correcta el entrenamiento y el testeo, se deberá
realizar el algoritmo que realice de manera automática el cambio de neuronas para así
validar con que configuración se logra obtener una mayor cantidad de aciertos sin
llegar al sobre entrenamiento.
De esta manera con cada cantidad de neuronas se obtendrá un número de aciertos, los
mejores serán salvados e indicarán cual es porcentaje de aprendizaje que lograron, el
mejor tendrá una configuración que se encuentra dentro de la variable NET.
48
49. Salvado de NET’s
Como se muestra en la figura
adjunta, luego de utilizar el algoritmo
de la red MLP, se procede con el
salvado de datos. Es necesario el
salvado de estos valores ya que son
utilizados en próximas funciones.
Las variables NET’s ayudaran a
obtener el mejor valor de
entrenamiento de la red sin pasar el
límite del 98%.
Figura 4-3: Net‟s salvadas
En la figura 4-3, de la variable NET1 (aciertos mayores a 75%), hasta la variable
NET8, aciertos menores a 98 se consideran buenos datos obtenidos, la variable
NETEXTREME es una variable que se tendrá pero la cual no se considera buena ya
que en esta se demuestra el sobre entrenamiento de la red.
49
50. 4.13 ECM
Para hallar el error cuadrático medio o ECM se utiliza la función mse la cual nos ayuda
a encontrar el error cuadrático medio.
Es necesario usar dos variables, “yd” & “y0”, este último es obtenido al usar las
variables net y la variable testeo, la función mse obtendrá la diferencia de cuadrados y
lo salvará en la variable llamada ecm para luego ser usada en la variable resultado y
mostrar la eficiencia de la red.
4.14 Análisis
La variable analisis guarda una matriz de 4 columnas por tantas filas como muestreos
se hicieron, en esta matriz se definen cuatro datos importantes:
Neuronas en la primera capa oculta
Neuronas en la segunda capa oculta
Tiempo de entrenamiento
Aciertos
4.15 Normalización del Score
Para realizar la normalización de los datos salvados en la matriz Score, luego de
realizar el análisis de componentes principales, es necesario usar la función
mapminmax la cual se encargará colocar en valores entre 0 y 1 a todos los datos de la
matriz, esta normalización es especial ya que a diferencia de la primera normalización
en 4.1 que trabajaba con datos positivos, puesto que la matriz de vinos está compuesta
por cantidad reales obtenidas por los sensores, la matriz Score contiene datos con
valores negativos como se explica en el capítulo 3 sobre el análisis de componentes
principales.
50
51. 5. RESULTADOS
En este capítulo, se mostrarán las respectivas medidas obtenidas luego de utilizar los
algoritmos computacionales planteados en el capítulo anterior.
5.1 Resultados al usar la red MLP
A continuación se muestra todas las pruebas realizadas con la red neuronal MLP y
como se llegó a la configuración más acertada para este proyecto. Los primeros
resultados fueron hallados tras usar el algoritmo MLP, con el cual se hizo cuatro
experimentos cada uno en distintos tiempos.
5.1.1 Resultados de la red con una capa oculta
Al comenzar este proyecto solo se utilizaron 150 datos de vino rojo y 150 datos de
vino blanco escogidos al azar, siguiendo los pasos explicados en el capítulo anterior
se realizó el entrenamiento con los 100 primeros datos de cada vino y 50 de cada uno
fueron llamados en la etapa de testeo; obtener estos resultados duró más de 8 horas.
200 ENTRENAMIENTO – 100 TESTEO
ENTRADAS PRIMERA CAPA OCULTA ACIERTOS %
20 82
26 67
43 71
60 67
77 62
94 67
12 111
128
145
66
68
70
162 67
179 67
196 48
213 42
Tabla 5-1: Resultados con una capa
51
52. 5.1.2 Resultados de la red con dos capas ocultas
Luego de obtenidos estos resultados y con la premisa de aumentar la cantidad de
aciertos se optó por aumentar la cantidad de datos de entrenamiento a 800, datos de
testeo a 200 y la cantidad de capas ocultas amentarlas a dos; de esta manera se
obtienen mejores resultados, pero el tiempo continua siendo una el mismo para cada
cálculo, hallarlos tomo alrededor de 18 horas.
800 ENTRENAMIENTO – 200 TESTEO
SEGUNDA CAPA
ENTRADAS PRIMERA CAPA OCULTA ACIERTOS %
OCULTA
299 1 92
292 8 32
285 15 95
278 22 95
271 29 94
264 36 89
257 43 93
12 250
243
236
50
57
64
92
91
92
229 71 89
222 78 83
215 85 95
208 92 92
201 99 93
194 106 89
Tabla 5-2: Resultados con dos capas
52
53. 5.1.3 Resultados de la red con tres capas ocultas
Dado que con el aumento se obtuvieron buenos resultados como el acierto del 95%
en este proyecto, se optó por aumentar el número de capas a 3, la cantidad de datos
de entrada a 1100 para cada vino y los datos de testeo a 361 para cada vino, ambos
tomados al azar.
El tiempo de respuesta para cada configuración fue de aproximadamente 5 horas para
las primeras 5 respuestas y 6 horas para el resto, hasta este punto aun no se encuentra
la manera de calcular el tiempo de cada configuración.
En la tabla 5-3 se muestran resultados variantes que a comparación de los hallados en
la tabla 5-2; por este motivo se realiza la presente tesis con dos capas ocultas.
1100 ENTRENAMIENTO – 361 TESTEO
PRIMERA CAPA SEGUNDA CAPA TERCERA CAPA
ENTRADAS ACIERTOS %
OCULTA OCULTA OCULTA
299 150 1 83
292 147 8 79
285 143 15 59
278 140 22 63
271 136 29 85
264 133 36 67
12 257
250
243
129
126
122
43
50
57
84
72
63
236 119 64 78
229 115 71 64
222 112 78 82
215 108 85 79
208 83 92 59
Tabla 5-3: Resultados con tres capas
53
54. 5.1.4 Optimización de la red MLP
Los resultados obtenidos no son prometedores ya que como se ve en el cuadro
anterior el acierto disminuye y la única variable que se mantiene es el tiempo, para
este caso aproximadamente 5 horas cada entrenamiento; en la próxima sección se
utiliza la variable time la cual indicará el tiempo de espera al realizar el algoritmo,
este tiempo es cambiante ya que depende de lo que demore la neurona en realizar su
aprendizaje, luego se aplica la variable ecm para hallar el error cuadrático medio total
ya que se obtiene una respuesta con más exactitud, en la tabla 5-4 se muestra la
variable acm definida como el complemento del error; se decidió por retomar el
estudio usando únicamente 2 capas ocultas ya que se obtiene mejores resultados.
1100 ENTRENAMIENTO – 361 TESTEO
PRIMERA CAPA SEGUNDA
ENTRADAS time (min) acm (%)
OCULTA CAPA OCULTA
299 1 374 93.7907
292 8 377 98.5821
285 15 335 98.8116
278 22 401 93.5042
271 29 318 99.2042
264 36 409 99.2692
257 43 337 98.1177
12 250
243
236
50
57
64
405
328
447
99.3433
98.736
94.285
229 71 414 93.568
222 78 323 95.515
215 85 366 99.5815
208 92 431 97.2185
201 99 388 98.128
194 106 457 93.8914
Tabla 5-4: Optimización de la red MLP.
54
55. 5.2 Resultados con PCA
Se realizó la normalización de los 2922 datos de vino blanco y vino rojo y luego se
ingresaron datos al programa para realizar el algoritmo PCA presentado en el capítulo
anterior, se utiliza los mismos datos que fueron cargados anteriormente al realizar el
análisis con la red MLP.
A diferencia de la red MLP, la cuando se aplica la técnica PCA, esta no trabaja con los
valores de los datos de entrada, utiliza la relación que existe entre los 1461 datos, el
algoritmo PCA se encargará de generar las componentes principales de cada sensor;
cada uno de ellos aporta cierta cantidad información que al combinarse con los otros
sensores logran dar como respuesta si se trata del vino rojo o del vino blanco.
Mediante análisis de componentes principales se buscarán unas pocas variables nuevas
(componentes principales) que resuman la información contenida en estos 2922 datos,
utilizando los datos muestreados se analiza la relación entre estos y se genera una
nueva matriz
5.2.1 Componentes principales
Habitualmente se establece un corte para elegir unas pocas componentes que sean las
más representativas. Los criterios más frecuentes son los siguientes:
a) Generación de auto valores
Se realiza el cálculo de los nuevos valores en función a la relación de covarianza que
existe entre las variables ingresadas.
De este modo unas pocas variables explicarán un porcentaje suficientemente alto
como para prescindir de las variables originales y trabajar a partir de ese momento
con las nuevas.
55
56. A continuación se muestra la nueva matriz de valores de donde se extraerá las
componentes principales, a esta se le llama matriz de puntuaciones o scores.
Matriz de puntaciones o SCORES
229726783676 -0,7479 -14175037618481 . -0,1092 -0,5711
0,1266 0,3753 123671849398035 . -0,6049 -0,6276
251306580330 0,0637 109169925562349 . -0,0924 0,2254
133399404436 0,1894 0,2790 . -0,7982 -0,2279
203637039911 0,1942 0,3481 . -0,6321 0,1317
254222268098 22515897150827 0,1008 . -0,5638 0,0698
254222268078 22515897150827 0,1008 . -0,5638 0,0698
. . . . . .
. . . . . .
389388084258 15896688786019 -20195634171715 . 0,0670 0,1141
-33944173849 0,4750 -0,0958 . -1093847994227 0,7676
-33944117894 0,4750 -0,0958 . -1093847994412 0,7676
-33944117818 0,4750 -0,0958 . 10938479944217 0,7676
-33313723493 15509566052645 -0,2132 . -0,6163 0,7556
Tabla 5-5: Matriz de Auto valores.
b) Extracción de componentes principales
Una vez aplicado la matriz SCORE (2922 x 12) al algoritmo del PCA, se utiliza la
variable COEFF, la cual genera una nueva matriz en la cual se obtienen las
componentes principales (CP); las 12 componentes se presentan en la tabla 5-6.
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 PC9 PC10 PC11 PC12
0,36 -0,37 0,11 -0,22 0,01 -0,13 0,01 0,24 -0,05 -0,29 -0,02 -0,08
-0,19 0,10 0,56 -0,23 0,03 0,08 -0,41 0,32 -0,41 0,31 -0,06 0,10
0,29 -0,29 -0,06 0,27 0,12 -0,09 0,31 -0,22 -0,56 0,48 -0,10 0,08
0,28 0,22 -0,08 -0,23 0,24 0,42 -0,26 -0,50 -0,35 -0,34 0,05 0,05
0,08 -0,02 0,43 0,67 -0,26 0,38 0,05 0,04 -0,03 -0,33 -0,13 -0,01
0,16 0,37 -0,02 0,22 0,63 -0,02 0,21 0,41 0,02 -0,07 0,09 0,36
0,34 0,39 0,08 0,05 0,12 -0,18 -0,10 0,07 0,06 0,09 -0,22 -0,76
0,26 0,11 0,07 -0,37 -0,19 0,59 0,46 0,14 0,21 0,30 -0,03 -0,05
-0,23 0,33 -0,19 -0,15 -0,32 -0,13 0,40 0,22 -0,54 -0,35 -0,08 -0,08
0,35 0,22 0,58 0,12 -0,39 -0,15 -0,14 0,05 -0,07 0,12 0,76 0,06
0,34 0,28 -0,09 -0,01 -0,34 -0,24 -0,19 -0,07 0,10 0,08 -0,55 0,49
0.03 -0.15 -0.6 0.17 -0.06 0,36 -0.39 0.45 -0.12 0.09 -0.08 -0.1
Tabla 5-6: Componentes principales.
56