• Save
Clasificación automática de vinos utilizando redes neuronales
Upcoming SlideShare
Loading in...5
×
 

Clasificación automática de vinos utilizando redes neuronales

on

  • 3,413 views

 

Statistics

Views

Total Views
3,413
Views on SlideShare
3,254
Embed Views
159

Actions

Likes
2
Downloads
0
Comments
1

1 Embed 159

http://piel1.wikispaces.com 159

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Que tal Amigo.. he leido su trabajo y me parece bastante interesante.

    Quisiera pedirle por favor si me pudiera ayudar con las bases de datos blanco.mat y rojo.mat de los vinos. Soy estudiante de ingenieria y me ayudaria mucho si me los pudiera enviar a mi correo robertct_5@hotmail.com lo mas pronto posible...

    Muchas gracias por su atencion
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Clasificación automática de vinos utilizando redes neuronales Clasificación automática de vinos utilizando redes neuronales Document Transcript

  • UNIVERSIDAD TECNOLOGICA DEL PERUFACULTAD DE INGENIERÍA ELECTRÓNICA Y MECATRÓNICA ESCUELA DE INGENIERÍA ELECTRÓNICACLASIFICACIÓ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
  • A mis Padres, hermanos y profesores, que me apoyaron mucho.ii
  • AGRADECIMIENTOSEn primer lugar quiero agradecer a mi familia por todo el apoyo que he recibido durantetantos 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 losaspectos relacionados al estudio de las redes neuronales y un agradecimiento especial poresa amistad y relación profesional.Finalmente, agradezco a todos aquellos que, de alguna manera u otra, me han ayudado aque esta tesis se hiciera realidad. iii
  • RESUMENSe contempla el caso paradigmático de las redes neuronales de gran complejidad que tratade 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 haayudado a la industria para la obtención de resultados en cortos períodos de tiempo y concantidades de datos cada ves mas complejos. Esta tesis muestra el estudio detallado decómo al usar los datos de los componentes del vino blanco y el vino rojo, se puede utilizarla 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 lograreducir los datos sin perder gran cantidad de información. En la presente tesis se realizaambos la clasificación usando la red neuronal MLP, la reducción de datos sin perder tantainformación y finalmente la demostración de la efectividad al usar ambos.Palabras Claves: redes neuronales, PCA, MLP. iv
  • ABSTRACTIt provides the paradigmatic case of highly complex neural network that tries to make theclassification of wines using two types of components. In recent years the field of neuralnetworks and their uses for classification has helped the industry to obtain results in shortperiods of time and amounts of data each time more complex. This thesis shows thedetailed study of how to use data from the components of white wine and red wine, canbe used to create neurons MLP network can learn and classify optimal results. The datacomponent analysis or PCA is an important technique that is able to reduce the datawithout losing a great deal of information. In this thesis both the classification is doneusing the MLP neural network, data reduction without losing much information andfinally the demonstration of the effectiveness of using both.Keywords: Neuronal network, MLP, PCA. v
  • INDICE GENERALCAPÍTULO PÁGINADEDICATORIA.......................................................................................................... iiiAGRADECIMIENTOS .............................................................................................. iiiRESUMEN ................................................................................................................. iivABSTRACT ................................................................................................................. vINDICE GENERAL .................................................................................................... viINDICE DE TABLAS ................................................................................................ ixINDICE DE FIGURAS ................................................................................................ xINTRODUCCION ..................................................................................................... 11CAPÍ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 .......................................................................................... 15CAPÍ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
  • 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 ............................................................... 35CAPÍ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 .......................................................................... 50CAPÍ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
  • 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 ...................................................................... 63CONCLUSIÓN .......................................................................................................... 64 Conclusiones ..................................................................................................... 64 Trabajos Futuros ............................................................................................... 65REFERENCIAS ......................................................................................................... 66A N E X O S ............................................................................................................... 68Anexo A: ALGORITMO MLP .................................................................................. 69Anexo B: ALGORITMO PCA.................................................................................. 73Anexo C: ALGORITMO MLP APLICADO AL PCA ............................................. 74 viii
  • INDICE DE TABLASCAPÍTULO PÁGINATabla 4-1: Matriz entrada .......................................................................................... 43Tabla 4-2: Matriz Y .................................................................................................... 43Tabla 4-3: Matriz testeo ............................................................................................. 44Tabla 4-4: Matriz yd ................................................................................................... 47Tabla 4-5: Matriz y0 ................................................................................................... 47Tabla 5-1: Resultados con una capa oculta ................................................................ 51Tabla 5-2: Resultados con dos capas ocultas ............................................................. 52Tabla 5-3: Resultados con tres capas ocultas ............................................................. 53Tabla 5-4: Optimización de la red MLP..................................................................... 54Tabla 5-5: Matriz de autovalores ............................................................................... 56Tabla 5-6: Componentes principales .......................................................................... 56Tabla 5-7: Porcentaje de variabilidad......................................................................... 57Tabla 5-8: Resultados red MLP al PCA. .................................................................... 62Tabla 5-9: Resultados finales de la red MLP vs PCA-MLP. ..................................... 63 ix
  • INDICE DE FIGURASCAPÍTULO PÁGINAFigura 1-1: Ubicación del proyecto de tesis en la ingeniería ..................................... 12Figura 2-1: Fases del sistema olfativo humano. ......................................................... 18Figura 2-2: Sistema olfativo humano vs sistema olfativo electrónico. ...................... 19Figura 2-3: Comparativo de capacidad sensitiva ....................................................... 20Figura 2-4: Etapas de la nariz electrónica .................................................................. 22Figura 3-1: Red MLP y salida .................................................................................... 26Figura 3-2: Clasificación NAND vs XOR ................................................................. 27Figura 3-3: Funcionamiento de la red MLP ............................................................. 30Figura 3-4: Ejemplo de clasificación ......................................................................... 31Figura 3-5: Esquema de valores de la función purelin............................................... 32Figura 3-6: Esquema de valores de la función tansing .............................................. 33Figura 3-7: Clasificación al usar PCA........................................................................ 34Figura 4-1: Software MATLAB 10.0 ......................................................................... 37Figura 4-2: Partes de la Red MLP .............................................................................. 46Figura 4-3: Nets salvadas .......................................................................................... 49Figura 5-1: Componente principales & Porcentaje de aportación. ............................ 58Figura 5-2: Resultados del PCA - PC1 vs PC2 .......................................................... 59Figura 5-3: Resultados del PCA - PC1 vs PC3 .......................................................... 60Figura 5-4: Resultados del PCA - PC1 vs PC4 .......................................................... 61 x
  • INTRODUCCIONDiariamente, observamos nuevas formas y constantes evoluciones de los sistemaselectrónicos, esto ha permitido importantes avances en el desarrollo y reproducción de lossentidos humanos, una nariz electrónica es uno de los dispositivos que más expectativas hadespertado, por ser un instrumento un apropiado sistema de identificación de patronescapaz de identificar olores simples o compuestos, haciendo posible utilizar sus datos comomedio de monitoreo y control de calidad en aplicaciones para la industria.El Análisis de Componentes Principales (PCA) pertenece a un grupo de técnicasestadísticas multivariantes, el cual ha sido muy difundido, especialmente en el tratamientode grandes masas de datos. En el presente trabajo se aplicará la técnica PCA para poderobtener 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 aproximadoruniversal, en el presente trabajo se pondrá a prueba su capacidad como clasificadorutilizando 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 laté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 paralas simulaciones y tabulaciones necesarias. 11
  • 1. DETERMINACIÓN DEL PROBLEMAA 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
  • de patrones (redes MLP y PCA), para finalizar con la optimización del desarrollode las redes usadas luego de haber ingresado datos que son requeridos para elaprendizaje y datos adicionales que se usarán para la verificación.1.1.2 MotivaciónEn la presente investigación existen varias razones importantes y de gran interésque 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 lacapacidad optimizar el desarrollo de sistemas de clasificación automática usandolas redes neuronales, ya que supone un gran reto para el avance de la inteligenciaartificial, debido a su efectividad y de realización no tan complicado.1.1.3 FormulaciónGracias al paso agigantado de la ciencia en la actualidad los avances tecnológicoshan hecho posible realizar la recopilación y almacenamiento de datos de maneramasiva de, a menudo muy complejos, conjuntos de datos.En este proyecto se ha analizado el desarrollo la clasificación de vino rojo y vinoblanco haciendo uso de las redes perceptrón multicapa (MLP) y el análisis de loscomponentes principales (PCA) para lograr la optimización del algoritmoplanteado, 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 y1.599 muestras de vino rojo, utilizando estos datos se plantea entrenar una red através los algoritmos lineales (MLP) y paralelamente desarrollar el algoritmo delPCA a fin de obtener una red autómata clasificadora de vinos, mostrar susresultados detallando su eficiencia y el nivel de su rendimiento.Todos estos datos serán usados para la simulación generada a través del softwareque permitirá la creación y verificación de la red neuronal. El estudio de dicha red 13
  • 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
  • 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
  • T. Eklov [6] examinan diferentes métodos para seleccionar variables relevantes deun conjunto de variables resultantes de emplear una matriz de sensores de gases. Elobjetivo es encontrar el mejor subconjunto de parámetros que pueda estimarpropiedades interesantes de las medidas. Utilizan forward selection aplicando elerror cuadrático medio (RMSE) de un modelo de regresión multilineal comocriterio de selección. Con él prueban si el nuevo conjunto obtiene buenaspredicciones en una red neuronal de tipo backpropagation.J. Brezmes [7] utilizaron en una nariz electrónica para clasificar muestras de aceitede oliva. Emplearon algoritmos de procesamiento de datos incluyendo PCA y redesmodificadas fuzzy ARTMAP. Para reducir el número de variables a utilizar yseleccionar un subconjunto óptimo definen dos criterios diferentes. El primercriterio se define como el poder de resolución de cada variable (relación entre lavarianza externa y la varianza interna). El segundo criterio es el promedio desensibilidad para cada sensor. El conjunto de medidas fue de 90 (9 repeticionespara 10 muestras) con un 62% de tasa de éxito en la clasificación con todas lasvariables 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 puedetambién usarse para facilitar la interpretación de las medidas en dos distintosconjuntos. En el primer conjunto de datos se utiliza el análisis de componentesprincipales (PCA) como criterio de selección de los coeficientes. El objetivo de lasmedidas fue monitorizar el agua después de su tratamiento con diferentes filtros. Eneste caso, el número de variables se redujo en un factor de 18, sin perderinformación relevante. El segundo conjunto se centró en la separación de diferentesmicroorganismos utilizando como criterio de selección de los coeficientes larelación entre las varianzas de una misma clase con respecto a las varianzas dediferentes clases (relación inter/intra varianza), reduciendo el número de variablesen 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
  • 2. LA NARIZ ELECTRÓNICAPara lograr entender el funcionamiento del sistema olfativo electrónico, es necesariodescribir 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.2Pseudogenes: casi el 45% del genoma humano) son copias “muertas” de genes, sin función aparente, ya que no codifican proteínas. 17
  • Figura 2-1: Fases del sistema olfativo humano.En la figura 2-1 se muestra el trabajo que realiza el cerebro al analizar los datosrecibidos 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 sistemaquímico-sensorial, pues convierte señales químicas en percepción, es justamente esteanálisis lo que permite realizar un paralelo con la parte artificial, utilizando matricesde sensores y ordenadores para poder emular este comportamiento natural.2.2 Sistema olfativo artificialA pesar de toda su complejidad, el sistema olfativo humano a menudo no nos essuficiente. Diariamente vemos en las noticias nuevas técnicas sobre el uso de lasnarices más sensibles de los perros cuando se trata de rastrear, detectar sustanciaspeligrosas, explosivas o hasta ilegales. Antiguamente en las minas de carbón usabancanarios que indicaba que la atmósfera era respirable mientras éste cantara. En esecaso no se pretendía aprovechar un sistema olfativo más sensible, sino utilizar al 18
  • canario como alarma sonora y visual ante la imposibilidad de evaluar la calidad delaire por parte del hombre. Actualmente la tecnología ha desarrollado un universo degran diversidad de sensores que indican las concentraciones de multitud de gases,obteniendo datos muy precisos y de gran importancia para la salud. Es justamente dela idea de emular el sistema olfativo biológico con sensores de gases y redesneuronales que nace el concepto de una nariz electrónica, la cual se define másadelante.2.3 Paralelismo entre los sistemas olfativosA diferencia de las células receptoras en el sistema olfativo humano, estas sonreemplazadas por sensores de gases, las cuales reaccionan con diversos compuestosvolátiles. La transducción de la señal alojada en los receptores olfativos se reemplazaen la nariz electrónica por circuitos de acondicionamiento de la señal convirtiéndola demanera normal en una señal eléctrica de voltaje, la codificación de la señal neuronalutilizada para poder reconocer un olor y su intensidad en los humanos es sustituidaaplicando el reconocimiento de patrones como se muestra en la figura 2-2. Figura 2-2: Sistema olfativo humano vs sistema olfativo electrónico. 19
  • Así como pasa en los sistemas humanos, esta técnica de análisis global no necesitaidentificar minuciosamente cada constituyente de un olor y sus diferencias sinoreconocerlo.Se debe considerar que los sistemas electrónicos utilizados hoy en día no trabajanexactamente igual que una nariz humana ya que no detectan los mismos componentesvolá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 lossensores usados en el olfato electrónico, en definitiva los sistemas de olfatoelectrónico imitan al sistema olfativo humano, acoplando una matriz de sensoresquímicos a métodos avanzados de reconocimiento de patrones que permitencaracterizar o discriminar mezclas aromáticas complejas sin una previa separación desus constituyentes.Una característica muy variable en los aromas y sustancias olorosas es su peso o masamolecular, ya que los olores se representan como mezclas complejas de diferentescompuestos.Según la Ley de Difusión Gaseosa establecida por Thomas Graham las velocidades dedifusión de los gases están relacionadas con las raíces cuadradas de sus masasmoleculares. 20
  • En la investigación de Schoenfeld y Cleland [9], se hace mención a las cavidadesolfativas 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 estemecanismo se puede disponer de múltiples sensores colocados en una cámarageométricamente compleja para adquirir y valorar todas sus señales conjuntamente.2.4 Olfato ElectrónicoSe 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 yclasificar distintas muestras gaseosas, vapores y aromas en un ambiente propicio consensores de gas.Desarrollado en la década del 80, el principio de funcionamiento consiste en una seriede sensores químicos que se acoplan a un programa de reconocimiento de patronesadecuados que emula al ser humano.En la investigación de Bernadó & Llobet [10] se describe la nariz electrónica como uninstrumento que comprende una matriz de sensores químicos con sensibilidadessolapadas y un avanzado sistema de reconocimiento de patrones, capaz de reconoceraromas simples o complejos.De una manera coloquial se podría afirmar que a este tipo de instrumentos se lesdenomina 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
  • 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
  • En la figura 2-4 se muestra el diseño de una nariz electrónica, esta consta de cuatroetapas. La primera se encarga de realizar el muestreo de la mezcla gaseosa que se va autilizar. 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 ellosel 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 dela señal. Finalmente a través de la computadora se extraen los rasgos que caracterizancada aroma para luego aplicar los algoritmos de clasificación de patrones, es en estaetapa que se utilizan las redes neuronales artificiales.2.5 Ventajas del uso de sistemas de olfato electrónico en la industriaActualmente el incremento de las industrias vitivinícolas en diversos sectoresindustriales, ha generado una mayor demanda y accesibilidad a sistemas fiables paralograr 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 instrumentosanalí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 granayuda, 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ónse estudiará el uso de las redes neuronales lo que permitirá la clasificación de maneraautomática, a continuación el estudio de las redes que se utilizarán. 23
  • 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
  • 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. La4 (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 unescalón. 25
  • función de activación de las neuronas presentes en la capa de salida es del tipoescalón, como se muestra en la figura 3-1.Red MLP SalidaLas neuronas de la capa de entrada no realizan Es del tipo escalón ya que puede ser de dos tipos 1 paraoperació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 funcionesbooleanas (NAND,OR) por su salida binaria, como se muestra en la figura 3-2. Una delas características más resaltantes en la historia del perceptrón es su carácter dedispositivo entrenable, pues permite determinar automáticamente los pesos sinápticosentre la capa de entrada y la capa de salida.Sin embargo, pese a su gran interés, el perceptrón presenta serias limitaciones, ya quesolamente logra representar funciones linealmente separables, una decepción ya que sibien es cierto logra aprender y representar funciones complejas y resolver con éxitoproblemas de clasificación, en otras ocasiones falla, la clase de funciones noseparables linealmente no puede ser representada por un perceptrón simple. 26
  • Un ejemplo clásico se muestra a continuación, en la figura se logra separar linealmentela 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 estudioexhaustivo se hace énfasis en las limitaciones del perceptrón, lo que conllevó a quemuchos de los recursos que se estaban invirtiendo en redes neuronales y estudiossimilares, se desviasen hacia otros campos más prometedores de la época como lainteligencia artificial.Función NAND Función XORTodas las combinaciones de variables tienen como Si las variables son iguales su salida será ‘0’, si sonsalida 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 eslinealmente separable, este algoritmo siempre converge en un tiempo finito y conindependencia de los pesos de partida. Por otra parte, si la función no es linealmenteseparable, el proceso de entrenamiento oscilará, el algoritmo del perceptrón termina sudesarrollo tan pronto como termina de clasificar correctamente todos los ejemplos.Para garantizar una respuesta exacta o bastante aproximada usando el perceptrón sedebe considerar que el número de medidas obtenidas sea alto, las ecuacionesrealizadas por las redes para el entrenamiento suele ser de órdenes elevados, de 27
  • 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
  • El algoritmo se ejecuta repetidas veces ocasionando que el perceptrón tenga unamayor probabilidad de producir salidas cercanas a las correctas. Propuesta unasolución y analizada su existencia, el perceptrón convergerá después de un númerofinito de interacciones.Una red de tipo perceptrón consiste en un conjunto de neuronas divididas en distintascapas. Cuando al sistema se le suministran los datos de un nuevo caso se actualizan enprimer lugar las neuronas de la capa de entrada, y así sucesivamente hasta la capa desalida, 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 elsistema como una medida del error a minimizar. El ajuste comienza en la capa desalida, donde el error es medible, y se va propagando hacia atrás hasta llegar a la capade 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 MLPEn el libro de Bonifacio[18] se indica que para el desarrollo de la red MLP y suentrenamiento se debe usar el algoritmo feed-forward. Una red se dice feed-forward siexiste un método de numeración de sus neuronas que la numera a todas de manera queno hay conexión entre una neurona i-ésima y la j-ésima si i ≥ j. En esta definición lasconexiones 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, seconsidera para empezar el caso más simple; aquel en que la red asocia a cada patrónde entrada Xj una salida Yj, sin importar las entradas y salidas que haya generadoantes. Siendo Sj la salida de la neurona i-ésima de entrada, wji el peso entre la neuronai la j, y zj la salida de la neurona oculta j-ésima. 29
  • Figura 3-3: Funcionamiento de la red MLP.Usando la figura 3-3 se define se define el entrenamiento mediante BP de la siguientemanera: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
  • La red MLP es un entrenamiento que cuenta con error de aprendizaje, el cual escalculado con el error cuadrático medio usando los datos entregados por la salida, si lared es de gran tamaño dicho error puede reducirse tanto como se desee realizando masiteraciones. Uno de los temas importantes en este estudio es hallar el tope degeneralizació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 utilizadosen el entrenamiento. De este modo se puede entrenar a la red neuronal haciendo uso dedatos de aprendizaje, para comprobar su eficiencia real, mediante un conjunto de test.3.5 Sobre-Entrenamiento de una red MLPLa red MLP es la encargada de entender las muestras que se le presenten y llevar acabo una relación de tal manera que luego del aprendizaje logre demostrar suefectividad en la etapa del testeo. Para esto se deberá encontrar el número óptimo deneuronas para su configuración. Figura 3-4: Ejemplo de clasificación. 31
  • Como se observa en la figura, la red se va adaptando progresivamente al conjunto deaprendizaje, acomodándose al problema y mejorando la generalización, hasta que llegaal punto de ajustarse idóneamente a las particularidades de los patrones empleados enel entrenamiento; logra aprender el ruido presente y es aquí donde crece el error degeneralización, la red no se ajusta correctamente y comienza a memorizar los patronesde 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 elcual el error de generalización es mínimo.3.6 Función de salidaUna de las ventajas que otorga esta red, es la modificación de la función de salida. Lafunción tiene que ser del tipo Purelin o Tansing pero dando la facilidad de usar una uotra 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
  • 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 neuronalespara su desarrollo en modo no supervisado, esencialmente creada para el análisisgran cantidad de datos entrada, al obtener los datos utiliza la estructura de losmismos y se procede a realizar una agrupación en unas nuevas variables a las quese les denomina factores o componentes principales. El objetivo es reducir estosdatos a un menor número perdiendo la menor cantidad de información posible. Losdatos de entrada con los que se cuenta presentan valores cercanos a cero, estosdatos no poseen gran información y contribuyen poco al estudio por lo que puedenser eliminados sin causar gran pérdida. Al ser una técnica de carácter lineal,presenta buenos resultados solo en condiciones lineales. 33
  • El uso de la la técnica PCA en esta tesis es simplificar el conjunto extenso dedatos, reduce el número de variables ya que presenta información redundante y elexceso de variables dificulta el análisis de información. Analiza la información apartir de las interacciones entre las variables, logrando obtener tantos factorescomo variables analiceEstos factores no son observables, aunque se basan en las relaciones entre lasvariables iniciales, son independientes y no se relacionan entre si, en larepresentación se muestran como ejes ortogonales. Figura 3-7: Clasificación al usar PCALos algoritmos PCA utilizados en esta tesis se han implementado en el entorno deprogramación que ofrece en el paquete informático MATLAB. Las subrutinasbásicas CA se encuentran en un paquete multivariante denominado PLA-Toolbox2.0 que se acopla al programa principal. En concreto, existen dos subrutinas PCA(versión clásica) y PCAPRO (PCA en modo supervisado). 34
  • Sin embargo, estas funciones son excesivamente generales para los objetivos deeste trabajo. Ha sido necesario programar una serie de funciones auxiliares parafacilitar la integración y evaluación de estos algoritmos en el objetivo planteado deesta tesis.En concreto, ha sido necesario realizar este algoritmo para distinguir de maneragráfica como se realiza la clasificación de ambos vinos, para ello se hanprogramado tres distintas cargas de datos de vino blanco ya que se tiene el triple demuestras que de vino rojo, esto nos permite ver con mayor claridad en distintasgrá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
  • c) Análisis de la matriz factorialUna vez seleccionados los componentes principales, se representan en forma dematriz. Cada elemento de ésta representa los coeficientes factoriales de lasvariables (las correlaciones entre las variables y los componentes principales). Lamatriz tendrá tantas columnas como componentes principales y tantas filas comovariables.d) Interpretación de los factoresPara que un factor sea fácilmente interpretable debe tener las siguientescaracterí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 nariceselectrónicas y su representación bidimensional del conjunto de medidas, a fin deobservar si se logra determinar agrupaciones espontáneas entre las diferentesmedidas realizadas.Otro método clásico es el Discriminant Function Analysis (DFA), el estudio deKekla [21], utiliza este método para discriminar un conjunto de medidas usando loscoeficientes del modelo, llamados variables canónicas. Se trata de un métodosupervisado más potente que el PCA, aunque con riesgos de sobre-entrenamiento.En el artículo de J, Vazques [22] los resultados experimentales obtenidosdemuestran que la fusión del algoritmo que utiliza el PCA logra disminuir lacantidad de datos y obtener una respuesta mucho mejor ya que logó eliminar elruido proveniente de los sensores. 36
  • 4. DISEÑO Y SIMULACIÓNEn este capítulo se describe los resultados y datos obtenidos a partir de dos métodosconocidos para la clasificación de datos.Con respecto a los resultados, se mostrarán en cuatro partes las cuales explican eldesarrollo del presente trabajo y la evolución que hubo aplicando la red MLP para luegomostrar 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
  • 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 datos80% 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
  • 4.3 Mediciones obtenidasDe la tesis presentada por P. Cortez[1] se tiene los patrones de entrada del vino rojo yel vino blanco, estandarizando 12 muestras para ambos vinos las cuales se mencionana continuación:a) Acidez fijaTipo de acidez que queda determinada por la diferencia entre la acidez total y la acidezvolátil.b) Acidez volátilDe acuerdo su definición oficial “la acidez volátil está constituida por los ácidosgrasos pertenecientes a la serie acética que se encuentran en los vinos, bien en estadolibre, bien en estado asociado” OIV[23].c) Acido cítricoEl ácido cítrico es uno de los aditivos más utilizados por la industria. Se obtiene porfermentación de distintas materia primas como la uva.d) Azúcar residualDefinido por el azúcar que tras la fermentación permanece en el vino. Según lacantidad que permanece en el vino este de denomina seco, semiseco, semidulce odulce.e) CloruroEl contenido de cloruros en los vinos es variable, en general es inferior a 0.5g/l.f) AlcoholEl aumento del alcohol tiende a resaltar una mejor calidad en el vino. 39
  • g) Dióxido de sulfuro libreEn la elaboración del vino, es importante añadir dióxido de sulfuro libre para evitar laoxidación cuando hay oxígeno alrededor.h) Total de dióxido sulfúricoOxida antes que los compuestos de fenol presente absorbiendo el oxígeno.i) DensidadEl alcohol tiene una densidad fija que es 0793, y el extracto, al estar disuelto, sube ladensidad 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 delciclo de maduración de la uva, y a medida que aumenta este nivel, la acidezdisminuye.k) SulfatoEl contenido de sulfatos procede de la uva y efectivamente la concentración aumentade 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 materiasorgánicas, calizos y poco húmedos. .4.4 Datos de entradaDe la matriz obtenida en la Tesis presentada por P. Cortéz [1], se ha modificado elorden ya que algunos valores tienden a ser 0, lo que no es optimo para elentrenamiento, se reordeno las filas sin realizar modificaciones a las columnas(patrones). 40
  • Del vino blanco se cuenta con 4899 muestras la cual se ingreso en una base de datosdenominado blanco.mat. Del vino rojo se cuenta con 1599 muestras la cual se ingresoen una base de datos denominado rojo.mat.Para la demostración, se utilizara 1461 datos de cada vino, de los cuales 1100 seránpara el entrenamiento y 361 para testeo, dando un total de 2200 datos de entrada y 722para el entrenamiento, la capa de entrada consta de 12 neuronas, se utilizan dos capasoculta 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) orojo („0‟logico).Para el caso del patrón de “acido crítico”, presente en ambos vinos, se ha notado quecuenta con valores entre 0 y 1, siendo 0 el valor mínimo presente en 132 muestras, locual 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ónLa primera variable a crear en el MATLAB se denomina vino_rojo que consta de 1461valores. El segundo valor ingresado en el MATLAB se denominara vino_blanco queconsta de 1461 valores.Con la base de 2922 muestras tomadas de ambos vinos, se procede a realizar lanormalización de los datos de entradas.Se crean dos nuevas variables llamadas norma_vblanco & norma_vrojo para el vinoblanco y rojo respectivamente, estas variables guardaran los datos normalizados de lasiguiente manera, se divide cada dato entre el mayor valor de la columna que locomprende, de esta manera se tendrá dos matrices de 11461x12 almacenado en cadavariable, las cuales tienen valores comprendidos entre 0 y 1; por ejemplo: 41
  • Si ; el mayor valor de la primera columna es 16, el segundo 81y el tercero 256 respectivamente.Al realizar la normalización se obtiene:4.6 Entrenamiento de la red MLPPara 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 datosnormalizados para el entrenamiento y se almacenan en estas variables.Las dimensiones de estas variables se guardan en la variable VB & VR correspondientea 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 deentren_vblanco sobrepuesto a los datos de entren_vrojo, de la siguiente manera:La variable clasificacion se define como una matriz de 2200x1 depende directamentede los datos salvados en VR & VB, esta variable es de una única columna la cual sedivide en Zeros(„0‟) y Ones(„1‟). Por ejemplo: 42
  • La variable X guarda la transpuesta es la variable entrada. Dióxido Total de DensidadAcidez 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 Y4.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
  • valores de las dimensiones de la variable test_vblanco y de la misma manera lavariable TR. Para este caso es una matriz de 2x2. Al igual que para la parte delentrenamiento se crearon las variables entrada_entr & clasifica_entr para el testeo secrearan dos variables de la misma manera llamadas entrada_test compuesta portest_vblanco y test_vrojo y la variable clasifica_test compuesta por tantos „ones‟ comoel valor de la primera columna de TB y tantos „zeros‟ como valores de la primeracolumna de TR.Finalmente se crea la variable testeo que está compuesta por la transpuesta de lavariable entrada_test anteriormente creada. Por razones de espacio solamente se da aconocer 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 Testeo4.8 NETLa siguiente variable a guardar se denomina NET, es en esta variable en la cual seadjunta la red, se entrena con 12 ceros lógicos („0‟)y 12 unos lógicos („1‟), teniendoasí una matriz de 12x2, luego se coloca el número de neuronas por capa, de las cualesla capa de entrada es igual al número de datos entrenados y la capa de salida es unopues representa la neurona que nos indicará si la salida corresponde al vino blanco(„1‟)o al vino rojo(„0‟). 44
  • La variable NET es sin duda la parte principal de este algoritmo ya que en ella seguarda los datos de la cantidad de neuronas necesarias halladas a través de lasimulación para que la red neuronal logre aprender a clasificar los datos de los vinosrojos 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 tipoBackpropagation 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 undato óptimo y no llegue al sobre entrenamiento, se muestra en la figura 4-2.net.trainParam.epochs = Número máximo de iteracionesnet.trainParam.show = Actualizar salida cada ciertos épocasnet.trainParam.lr = Velocidad de convergencianet.trainParam.goal = Objetivo para convergerDe esta manera la variable NET realiza el entrenamiento usando la variable net yaguardada, X & Y. Variable NET en el Matlabnet = newff( [ zeros(12,1) ones(12,1)] , [300-j j 1] , {tansigtansig purelin } , traingd ) 45
  • %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 MLP4.9 Net XtremEsta variable se crea específicamente para guardar dos porcentajes, 99% y 100% yaque esto significa que la red a realizado un sobre-entrenamiento, es decir ha aprendidodemasiado, 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 entrenamientotal y como se explica en el capítulo 3. 46
  • 4.10 ComprobaciónSe crean dos variables yd & y0, la primera está compuesta por la transpuesta de lavariable 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 aciertosobtenidos. 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 y0Los datos obtenidos en y0, datos reales, deberían estar en el rango de 0 a 1 pero comose muestra en la tabla anterior algunos alcanzan valores de máximos mayores a 1 ydatos mínimos menores a 0, es por esto que se debe realizar un algoritmo queconsidere 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
  • Ahora que se tiene la salida de los datos reales de simulación y los datos de la salidaideal, ambos en el rango de 0 a 1, se puede realizar la verificación de cuantos aciertosse obtuvo y validar si la red entrenó correctamente.Se crea la variable comprobacion la cual es una matriz compuesta por la diferenciaentre el valor obtenidos menos el valor deseado.Se crea la variable llamada acierto y la variable error para luego diseñar el algoritmoque logrará medir la eficiencia del programa, si los datos de la variable comprobacionson menores a 0.051, un valor pequeño considerable como bueno, este se guardará enla variable acierto, si no se guardará en la variable error.4.11 TimeCon la variable tr.time obtenida de la NET se logra hallar el tiempo de aprendizaje enmicro-segundos, dentro del entrenamiento de la red neuronal, este tiempo obtenido setransforma a minutos y se redondea para eliminar los segundos, este valor es salvadoen la variable time.4.12 AutomatizaciónYa 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 sinllegar al sobre entrenamiento.De esta manera con cada cantidad de neuronas se obtendrá un número de aciertos, losmejores serán salvados e indicarán cual es porcentaje de aprendizaje que lograron, elmejor tendrá una configuración que se encuentra dentro de la variable NET. 48
  • 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 salvadasEn la figura 4-3, de la variable NET1 (aciertos mayores a 75%), hasta la variableNET8, aciertos menores a 98 se consideran buenos datos obtenidos, la variableNETEXTREME es una variable que se tendrá pero la cual no se considera buena yaque en esta se demuestra el sobre entrenamiento de la red. 49
  • 4.13 ECMPara hallar el error cuadrático medio o ECM se utiliza la función mse la cual nos ayudaa encontrar el error cuadrático medio.Es necesario usar dos variables, “yd” & “y0”, este último es obtenido al usar lasvariables net y la variable testeo, la función mse obtendrá la diferencia de cuadrados ylo salvará en la variable llamada ecm para luego ser usada en la variable resultado ymostrar la eficiencia de la red.4.14 AnálisisLa variable analisis guarda una matriz de 4 columnas por tantas filas como muestreosse hicieron, en esta matriz se definen cuatro datos importantes: Neuronas en la primera capa oculta Neuronas en la segunda capa oculta Tiempo de entrenamiento Aciertos4.15 Normalización del ScorePara realizar la normalización de los datos salvados en la matriz Score, luego derealizar el análisis de componentes principales, es necesario usar la funciónmapminmax la cual se encargará colocar en valores entre 0 y 1 a todos los datos de lamatriz, esta normalización es especial ya que a diferencia de la primera normalizaciónen 4.1 que trabajaba con datos positivos, puesto que la matriz de vinos está compuestapor cantidad reales obtenidas por los sensores, la matriz Score contiene datos convalores negativos como se explica en el capítulo 3 sobre el análisis de componentesprincipales. 50
  • 5. RESULTADOSEn este capítulo, se mostrarán las respectivas medidas obtenidas luego de utilizar losalgoritmos 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
  • 5.1.2 Resultados de la red con dos capas ocultasLuego de obtenidos estos resultados y con la premisa de aumentar la cantidad deaciertos se optó por aumentar la cantidad de datos de entrenamiento a 800, datos detesteo a 200 y la cantidad de capas ocultas amentarlas a dos; de esta manera seobtienen mejores resultados, pero el tiempo continua siendo una el mismo para cadacá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
  • 5.1.3 Resultados de la red con tres capas ocultasDado 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 datosde entrada a 1100 para cada vino y los datos de testeo a 361 para cada vino, ambostomados al azar.El tiempo de respuesta para cada configuración fue de aproximadamente 5 horas paralas primeras 5 respuestas y 6 horas para el resto, hasta este punto aun no se encuentrala 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 enla 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
  • 5.1.4 Optimización de la red MLPLos resultados obtenidos no son prometedores ya que como se ve en el cuadroanterior el acierto disminuye y la única variable que se mantiene es el tiempo, paraeste caso aproximadamente 5 horas cada entrenamiento; en la próxima sección seutiliza 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 suaprendizaje, luego se aplica la variable ecm para hallar el error cuadrático medio totalya que se obtiene una respuesta con más exactitud, en la tabla 5-4 se muestra lavariable acm definida como el complemento del error; se decidió por retomar elestudio 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
  • 5.2 Resultados con PCASe realizó la normalización de los 2922 datos de vino blanco y vino rojo y luego seingresaron datos al programa para realizar el algoritmo PCA presentado en el capítuloanterior, se utiliza los mismos datos que fueron cargados anteriormente al realizar elanálisis con la red MLP.A diferencia de la red MLP, la cuando se aplica la técnica PCA, esta no trabaja con losvalores de los datos de entrada, utiliza la relación que existe entre los 1461 datos, elalgoritmo 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 otrossensores 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 unanueva 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
  • 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 SCORES229726783676 -0,7479 -14175037618481 . -0,1092 -0,5711 0,1266 0,3753 123671849398035 . -0,6049 -0,6276251306580330 0,0637 109169925562349 . -0,0924 0,2254133399404436 0,1894 0,2790 . -0,7982 -0,2279203637039911 0,1942 0,3481 . -0,6321 0,1317254222268098 22515897150827 0,1008 . -0,5638 0,0698254222268078 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
  • En la tabla anterior se muestran los autovalores que miden la variabilidad de losnuevas datos obtenidos, a estas se les conoce como componentes principales.Observamos que las dos primeras componentes tienen autovalores muy altos. Con lascuatro primeras se logra a explicar casi un 80%.c) Porcentaje de datosSe realizó la clasificación de los 12 componentes de acuerdo a sus valores enporcentaje de variabilidad explicada, es decir, el porcentaje de aportación quebrindan para llegar a la respuesta correcta, se toman todas las componentes demanera que la suma de estas sea cercano al 80% (los 4 primeros con un 76.3% devariabilidad explicada) el quinto componente brinda un porcentaje cercano al 4.19 %lo cual no ayuda tanto si se considera los 1461 datos que este ingresará. Porcentaje de Componente Acumulado(%) Variabilidad(%) PC1 58.1352 58.14 PC2 7.7878 65.92 PC3 6.0572 71.98 PC4 4.3171 76.30 PC5 4.1911 80.49 PC6 4.0587 84.55 PC7 3.4169 87.96 PC8 2.9946 90.96 PC9 2.6669 93.63 PC10 2.3657 95.99 PC11 2.2575 98.25 PC12 1.7512 100.00 Tabla 5-7: Porcentaje de variabilidad.En la tabla 5-7 se muestra en la primera columna la cantidad de componentesobtenidos, en la segunda columna se muestra el porcentaje de variabilidad que aportacada uno de estos componentes y el última columna muestra el acumulado con el finde validar la sumatoria de componentes. 57
  • d) Gráfico de sedimentaciónEs el momento en el que acaba el descenso y se estabilizan, los datos generados porel PCA se guardan en un orden de acuerdo a los que aportan un mejor porcentajecomo se muestra en la figura 5-1. Componente principal Porcentaje de Varianza Figura 5-1: Componente principales & porcentaje de aportación.Como se valida en la gráfica, las cuatro primeras componentes son las másrepresentativas y guardan dentro de estas la mayor cantidad de informaciónimportante y suficiente para lograr una clasificación clara.Los gráficos siguientes nos dan una idea más ilustrativa de la situación. 58
  • 5.2.2 Resultados al utilizar la PC1 & PC2Representando las puntuaciones de las dos primeras componentes se logra obteneruna separación clara. El aporte presentado por la primera componente principal es de58.14% y el valor de la segunda componente es 7.89%, en la siguiente figura semuestra su clasificación.+ Vino rojoO vino azul Figura 5-2: Resultados del PCA - PC1 vs PC2En la figura 5-2 se denota al primer vino rojo con el color rojo y símbolos „+‟mientras que el vino blanco se encuentra representado por el color azul y símbolo„o‟. Es claro que para un primer alcance se logró la clasificación, es cierto que no unsu totalidad pero gran cantidad de datos tienden a la separación correcta.La clasificación obtiene un buen resultado considerando que se dejó de lado las docevariables y se realizó tan solo usando las cuatro más representativas. El tiempo derespuesta se obtiene en segundos y visiblemente clasificable. 59
  • 5.2.3 Resultados al utilizar la PC1 & PC3En la siguiente gráfica se muestra la clasificación que se logra obtener al utilizar lascomponentes principales 1 y 3.+ Vino rojoO Vino azul Figura 5-3: Resultados del PCA - PC1 vs PC3La separación que presentan no es tan clara como en figura 5-2, sin embargo esgráficamente observable que existe varios datos de vino rojo que logran serconsiderados dentro de la clasificación del vino blanco y viceversa.En la figura 5-3 se utiliza al componente principal 1 versus las componente principal3; la primera cuenta con un porcentaje de varianza del 58,14% mientras que lasiguiente presenta un 6,06%.Se desprecian 11688 datos provenientes de los sensores que pasan a ser consideradoscomo redundantes para una clasificación rápida. 60
  • 5.2.4 Resultados al utilizar la PC1 & PC4Finalmente se utiliza la última componente principal obtenida versus la primeracomponente, la gráfica de su clasificación se muestra en la figura 5-4.+ Vino rojoO Vino azul Figura 5-4: Resultados del PCA - PC1 vs PC4En la figura 5-4 se aprecia una clasificación que no es tan linealmente separable conrespecto a las anteriores pero que sin embargo la clasificación sigue siendoligeramente apreciable.Se utiliza al componente principal 1 versus la componente principal 4; la primeracuenta con un porcentaje de varianza del 58,14% mientras que la siguiente presentaun 4.32%. 61
  • 5.2.5 Resultados al aplicar la red MLP luego del PCA (PCA-MLP)Mediante el uso de la red MLP se logra observar la capacidad con la que se cuenta alusar las neuronas, la factibilidad con las que cuentan estas para realizar elaprendizaje en un sistema tan complejo y la viabilidad que presenta para poderclasificar casi cualquier tipo de problema que se le presente, en este estudio caberesaltar que si bien se obtuvieron resultados prometedores.Al utilizar la red MLP con los 2922 datos de entrada se obtiene una respuestaacertada del 98,8116% lo cual es un excelente resultado, para poder hallar esteporcentaje se debe utilizar el algoritmo del MLP que se encuentra en la secciónANEXOS en la presente tesis, sin embargo el tiempo de espera para este caso es de 5horas y 28 minutos.De los resultados del PCA se concluye que las cuatro componentes principales sonlas que brindan gran parte de información, cercano al 80%, hallar dicha matriz escuestión de segundos.Al tener estas dos conclusiones es necesario realizar una prueba más, tal vez la másimportante de esta tesis, demostrar que al aplicar la red MLP a la matriz scorehallada con el análisis de componentes principales se debe obtener una respuestaóptima y con un mejor tiempo ya que la cantidad de datos es tres veces menor a lainicial. Los resultados se muestran en la tabla 5-8. 1100 ENTRENAMIENTO – 361 TESTEO SEGUNDA PRIMERA CAPA ENTRADAS CAPA TIEMPOS acm (%) OCULTA OCULTA 292 8 05h:02m:40s 95.52 4 285 15 04h:32m:16s 94.89 Tabla 5-8: Resultadosde la red MLP al PCA 62
  • 5.3 Discusión de los resultadosEn la tabla 5-9 se muestra los resultados finales tras ingresar los datos de las cuatrocomponentes principales al algoritmo del MLP. MLP - 1100 ENTRENAMIENTO – 361 TESTEO SEGUNDA PRIMERA CAPA Porcentaje de ENTRADAS CAPA TIEMPOS OCULTA aciertos (%) OCULTA 12 292 8 06h:13m:48s 98.582 285 15 05h:34m:38s 98.812 PCA – MLP - 1100 ENTRENAMIENTO – 361 TESTEO SEGUNDA PRIMERA CAPA Porcentaje de ENTRADAS CAPA TIEMPOS OCULTA aciertos (%) OCULTA 4 292 8 05h:02m:40s 95.52 285 15 04h:32m:16s 94.89 Tabla 5-9: Resultados finales de la red MLP vs PCA - MLP .La red MLP obtiene buenos resultados al trabajar con todos los datos pero el tiempo enel que logra hallar una variable óptima es muy grande y corre un gran riesgo de llegar aun sobre entrenamiento debido a la gran cantidad de datos que tiene la matriz.Para el caso de la red MLP aplicada luego del análisis de los componentes principales ala matriz de entrada, obtiene resultados igual de buenos con la enorme diferencia deltiempo y la cantidad de datos, reduciendo así el tiempo de espera del usuario paraobtener una respuesta, aproximadamente 2 horas de diferencia, y reduce también laposibilidad de un sobre-entramiento ya que utiliza solo la tercera parte de cantidad dedatos que los obtenidos por los sensores. 63
  • CONCLUSIONES La primera conclusión del presente trabajo se obtuvo al realizar el análisis de la red MLP, en este estudio se demostró que aumentar el número de capas ocultas no certifica que los resultados serán mejores, sin embargo, al aumentar el número de neuronas dentro de las capas ocultas se logró obtener mejores respuestas. Se logró hallar la configuración correcta para la red MLP y esta brindó una respuesta considerada óptima luego de 5 horas de y 18 minutos, en el proceso varias de las configuraciones se acercaron al sobre entrenamiento, esto pasó por la cantidad de datos con la que se contaba. Para obtener un porcentaje óptimo usando la red MLP se deben ingresar todos los datos posibles y tener cuidado obtener un sobre-entrenamiento debido al exceso de los mismos, no es posible saber cuál de todos los sensores brinda una mayor información. La técnica PCA utiliza las covarianzas que existen entre los datos para generar una nueva matriz la cual se ordena de acuerdo al porcentaje de importancia que aporta cada sensor, esta red indica la cantidad de datos exactos que se deben considerar para lograr la clasificación. Siguiendo esta premisa se concluye que solo cuatro de estos doce sensores aportan 76.30% de información necesaria suficiente para realizar la clasificación, esto quiere decir que existe ocho sensores que brindan datos de alta redundancia y que se podrían anular para obtener una respuesta más rápida. Al aplicar primero el análisis de componentes principales y luego la red MLP se obtiene una respuesta óptima y con un tiempo mejor que al utilizar solamente la red MLP, ahorrando un tiempo de hasta 2 horas, utilizando menos datos y evitando en gran parte del problema del sobre-entrenamiento 64
  • TRABAJOS FUTUROSSe planea realizar la clasificación de vino utilizando la red neuronal RADIAL BASICFUNCIONAL NETWORKS para analizar el tiempo de respuesta que se obtiene y laefectividad para luego realizar la comparación con la red MLP y la red MLP aplicadaluego del análisis de componentes principales.Realizar el estudio detallado y comprobar la superioridad de la técnica ICA, análisis decomponentes independientes, frente al estudio realizado de análisis de componentesprincipales para luego realizar las comparaciones correspondientes.Con los resultados obtenidos con la técnica PCA, evaluar la efectividad de la clasificació alutilizar las redes Fuzzy ART y Fuzzy Armap, así como la técnica de poda de la redneuronal y el estudio con algoritmos genéticos, así poder observar el comportamiento delas redes no supervisadas. 65
  • REFERENCIAS[1]P. Cortez, A. Cerdeira, F. Almeida, T. Matos and J. Reis (2009). Modeling winepreferences by data mining from physicochemical properties. In Decision SupportSystems, Elsevier, ISSN: 0167- 9236.[2]G.M.A. Sowilam (2000). Aplicación de las redes neuronales en los sistemas de controlvectorial de los motores de inducción, PhD Thesis, Universidad Politécnica de Cataluña.[3]Minsky M & Papert S. (1969). Perceptrons: an introduction to computacionalgeometry. The MIT Press. Cambridge, MA.[4]C. R. Bishop. Neural Networks for Pattern Recognition. Oxford. 1995, Cap. 2, 3 y 9.[5]J.P. Santos , J. Lozano , H. Vásquez , J.A. Agapito , M.A. Martín , J. González (2002).Clasificación E Identificación De Vinos Mediante Un Sistema De Sensores De EstadoSólido, Grupo De Sensores. Dept. Física Aplicada Iii (Electricidad Y Electrónica).Facultad De Cc. Físicas Universidad Complutense De Madrid[6]Tomas Eklov, Per Materson, Ingeman Lundstrom (1999), Selection Of Variables ForInterpreting Multivariable Gas Sensor Data, Analytica Chimica Acta 381 pp. 221 – 232.[7]Brezmes, J. ; Cabre, P. ; Rojo, S.; Llobet, E.; Vilanova, X. ; Correif, X (2005).Discrmination Between Different Samples Of Olive Oil Using Variable SelectionTechniques And Modified Fuzzy Artmap Neural Networks, Sensor Journal, Ieee,Volume 5,Issue 3, pp. 463-470.[8]T. Artuson, Martin Holmberg (2002). Wavelet Transform Of Electronic Tongue DataSensor And Actuators. pp. 379-391.[9]T.A. Schoenfeld, T.A. Cleland (2005). Anatomical Contributions to Odorant Samplingand Representation in Rodents: Zoning in on Sniffing Behavior Chemical Senses 10(1093)pp.1-14.[10]J. Bernadó, E. Llobet (2002). Procesado de la Respuesta Dinámica de Sensores delTipo Micro-hotplate mediante FFT y Redes Neuronales, Universitat Rovira I Vigili.[11]Christian M. Durán Acevedo (2005). Diseño y optimización de los subsistemas de unsistema de olfato electrónico para aplicaciones agroalimentarias e industriales, TesisDoctoral, Universidad Rovira I Virgili, Tarragona -España. 66
  • [12] Ing. S. R. Bosch (2001). Diseño y Realización de una Nariz Electrónica para laDiscriminación de Aceites. Artículo científico. Universidad rovira i virgili. España.[13]O.Gualdrón (2006), artículo Desarrollo de diferentes métodos de selección devariables para sistemas multisensoriales, Universidad Rovira I Vigili, Tarragona España,pp. 24 – 25.[14]Sherperd G.M. (1997) The synaptic Organization of the Brain 4ta edición, OxfordUniversity Press.[15]L. F. Escudero (1977). Reconocimiento de Patrones. Madrid, España. Paraninfo, Cap.1y 2.[16] F. Rosenblatt (1962) Principles of neurodynamics. Spartn Books, Nueva York.[17]D. Rumelhart, G. Hinton, and R. Williams. Learning Internal Representations by ErrorPropagation. In D. Rulmelhart and J. McClelland (1986), editors Distributed Processing:Explorations in the Microstructures of Cognition, MIT Press, Cambridge MA, volume 1,pp. 318 - 362,[18]M. Bonifacio del Brio, A. Sanz Molina (1999), Redes neuronales y sistemas borrosos,3ra edición. pp 41 – 59.[19]M. T gurrea (2000), Analisis de Componentes Principales Proyecto e-Mtah Financiadopor la secretaria de estado de educación y universidades.[20]J. Brezmes (2006), Diseño de una nariz electrónica para monitorizar el grado demaduración de la fruta, Tesis Doctoral, Universitat Rovira I Virgili, CAP 4, pp. 69-120.[21]Klecka, William R (1980), “Discriminant Analysis Quantitative Applications in theSocial Sciences Serie”, N°19. Thousand Oaks, CA: Sage Publications.[22] Juan Vázquez1, Manuel Mazo2, Member IEEE, Jose L. Lázaro2, Member IEEE,(2005), artículo FUSIÓN DE ALGORITMOS PARA DETECTAR OBJETOS ENMOVIMIENTO.[23]OIV. Recueil des méthodes internationales danalyse des vins et des moûts.Organisation Internationale de la Vigne et du Vin, París, 2005. 67
  • ANEXOS 68
  • ANEXO A: ALGORITMO MLP ALGORITMO MLPclear allclcload vino_blancoload vino_rojo%%%%%%%%%%%%%%%%%%%%%%%NORMALIZACION%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for k=1: 1: 12A=vino_blanco(:,k)/max(vino_blanco(:,k));B=vino_rojo(:,k)/max(vino_rojo(:,k));C=size(vino_blanco);D=zeros(C(1),12);norma_vblanco(:,k)=D(:,k)+A;norma_vrojo(:,k)=D(:,k)+B;endsave norma_vblanco norma_vblanco ;save norma_vrojo norma_vrojo ;%%%%%%%%%%%%%%%%%%%%%%%%%%%ENTRENAMIENTO%%%%%%%%%%%%%%%%%%%%%%%%%%%%entren_vblanco=[norma_vblanco(1:1100,:)];entren_vrojo=[norma_vrojo(1:1100,:)];save entren_vblanco entren_vblancosave entren_vrojo entren_vrojoVB=size(entren_vblanco);VR=size(entren_vrojo);entrada=[ entren_vblanco; entren_vrojo ];clasificacion=[ones(VB(1),1);zeros(VR(1),1)];X=entrada;Y=clasificacion;%%%%%%%%%%%%%%%%%%%%%%%%%%%TESTEO%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%test_vblanco=[norma_vblanco(1101:1461,:)];test_vrojo=[norma_vrojo(1101:1461,:)];save test_vblanco test_vblancosave test_vrojo test_vrojoTB=size(test_vblanco);TR=size(test_vrojo);entrada_test=[ test_vblanco; test_vrojo ];clasifica_test=[ones(TB(1),1);zeros(TR(1),1)];testeo=entrada_test; 69
  • %%%%%%%%%%%%%%%%%%%%%%%%%%%ANALISIS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%analisis=zeros(1,4);g=0;%%%%%%%%%%%%%%%%%%%%%%%%%%%AUTOMATIZACION%%%%%%%%%%%%%%%%%%%%%%%%%%%for j = 13:17:325g=g+1;%%%%%%%%%%%%%%%%%%%%%%%%%%%NET%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%net = newff( [ zeros(12,1) ones(12,1)] , [325-j j 1] , {tansigtansig purelin } , traingd );net.trainParam.epochs = 50000;net.trainParam.show = 50;net.trainParam.lr = 0.01;net.trainParam.goal = 0.0001;[net,tr] = train( net , X, Y);%%%%%%%%%%%%%%%%%%%%%%%%%%%COMPROBACION%%%%%%%%%%%%%%%%%%%%%%%%%%%%%yd=clasifica_test;y0=sim(net,testeo);f=size(y0);f=f(2);z1=max(y0);z2=min(y0);for k=1:1:f if (y0(1,k)>=z2&&y0(1,k)<=0.2) y0(1,k)=0; else if (y0(1,k)>=0.8&&y0(1,k)<=z1) y0(1,k)=1; else end endendsave yd ydsave y0 y0comprobacion=abs(y0-yd);acierto=0;error=0;for i = 1: 1: f if comprobacion(i) < 0.051 acierto= acierto+1; else error=error+1; endendacierto=acierto*100/f;%%%%%%%%%%%%%%%%%%%%%%%%%%%TIME%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 70
  • tr.time;thetime=tr.time(:,:);time=size(thetime);time=thetime(1,time(1,2));time=round(time);%%%%%%%%%%%%%%%%%%%%%%%%%%%%ECM%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%yd=clasifica_test;y0=sim(net,testeo);ecm=mse(y0-yd);ecm=ecm*100;resultado=100-ecm;%%%%%%%%%%%%%%%%%%%%%%%%SALVADO DE DATOS%%%%%%%%%%%%%%%%%%%%%%%%%%%%analisis(g,1)=j;analisis(g,2)=325-j;analisis(g,3)=acierto;analisis(g,4)=time;if acierto>74 if acierto<75 net1=net ; save net1 net1 else if acierto<78 net2=net ; save net2 net2 else if acierto<80 net3=net ; save net3 net3 else if acierto<83 net4=net ; save net4 net4 else if acierto<85 net5=net ; save net5 net5 else if acierto<88 net6=net ; save net6 net6 else if acierto<90 net7=net ; save net7 net7 else if acierto<93 net8=net ; save net8 net8 else 71
  • if acierto<95 net9=net ; save net9 net9 else if acierto<98 net10=net ; save net10 net10 else if acierto<101 netXTREM=net ; save netXTREM netXTREM else end end end end end end end end end end endendendsave analisis analisisanalisis 72
  • ANEXO B: ALGORITMO PCA Algoritmo PCAclcload vino_blancoload vino_rojovino_blanco=vino_blanco % vino_blanco2 vino_blanco3%%%%%%%%%%%%%%%%%%%%%%%%%%%NORMALIZACION%%%%%%%%%%%%%%%%%%%%%%%%%%%%for k=1: 1: 12A=vino_blanco(:,k)/max(vino_blanco(:,k));B=vino_rojo(:,k)/max(vino_rojo(:,k));C=size(vino_blanco);D=zeros(C(1),12);norma_vblanco(:,k)=D(:,k)+A;norma_vrojo(:,k)=D(:,k)+B;endsave norma_vblanco norma_vblanco ;save norma_vrojo norma_vrojo ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%PCA%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X=[v_rojo_nor; v_blanco_nor]%[2922x12]%X=[norma_vblancoclose all% cpA=1;% cpB=5;X=[[norma_vblanco norma_vblanco(:,1)] ;[norma_vrojonorma_vrojo(:,1)]];[pc1,score1,latent1,tsquare1]=princomp(zscore(X))cpA=1;cpB=4;plot(score1(1:1461,cpA),score1(1:1461,cpB),bo)hold onplot(score1(1462:2922,cpA),score1(1462:2922,cpB),r+) [COEFF, LATENT, EXPLAINED] = PCACOV(X) 73
  • ANEXO C: ALGORITMO MLP APLICADO AL PCA ALGORITMO MLP APLICADO AL PCAclear allclcload vino_blancoload vino_rojobla=vino_blanco;ro=vino_rojo;blan=mapminmax(bla,0.1,1);roj=mapminmax(ro,0.1,1);norma_vblanco=blan;norma_vrojo=roj;save norma_vblanco norma_vblanco ;save norma_vrojo norma_vrojo ;%%%%%%%%%%%%%%%%%%%%%%%%%%%ENTRENAMIENTO%%%%%%%%%%%%%%%%%%%%%%%%%%%%entren_vblanco=[norma_vblanco(1:1100,:)];entren_vrojo=[norma_vrojo(1:1100,:)];save entren_vblanco entren_vblancosave entren_vrojo entren_vrojoVB=size(entren_vblanco);VR=size(entren_vrojo);entrada=[ entren_vblanco; entren_vrojo ];clasificacion=[ones(VB(1),1);zeros(VR(1),1)];X=entrada;Y=clasificacion;%%%%%%%%%%%%%%%%%%%%%%%%%%%TESTEO%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%test_vblanco=[norma_vblanco(1101:1461,:)];test_vrojo=[norma_vrojo(1101:1461,:)];save test_vblanco test_vblancosave test_vrojo test_vrojoTB=size(test_vblanco);TR=size(test_vrojo);entrada_test=[ test_vblanco; test_vrojo ];clasifica_test=[ones(TB(1),1);zeros(TR(1),1)];testeo=entrada_test;%%%%%%%%%%%%%%%%%%%%%%%%%%%ANALISIS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%analisis=zeros(1,5); 74
  • g=0;%%%%%%%%%%%%%%%%%%%%%%%%%%%AUTOMATIZACION%%%%%%%%%%%%%%%%%%%%%%%%%%%for j = 23:7:300g=g+1;net = newff( [ zeros(4,1) ones(4,1)] , [300-j j 1] , {tansigtansig purelin } , traingd );net.trainParam.epochs = 50000;net.trainParam.show = 50;net.trainParam.lr = 0.01;net.trainParam.goal = 0.0001;[net,tr] = train( net , X, Y);%%%%%%%%%%%%%%%%%%%%%%%%%%%TIME%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%tr.time;thetime=tr.time(:,:);time=size(thetime);time=thetime(1,time(1,2));time=round(time);%%%%%%%%%%%%%%%%%%%%%%%%%%%%ECM%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%yd=clasifica_test;y0=sim(net,testeo);ecm=mse(y0-yd);ecm=ecm*100;cecm=100-ecm;%%%%%%%%%%%%%%%%%%%%%%%%SALVADO DE DATOS%%%%%%%%%%%%%%%%%%%%%%%%%%%%analisis(g,1)=j;analisis(g,2)=300-j;analisis(g,3)=acierto;analisis(g,4)=time;analisis(g,5)=cecm;if acierto>74 if acierto<75 net1=net ; save net1 net1 else if acierto<78 net2=net ; save net2 net2 else if acierto<80 net3=net ; save net3 net3 else if acierto<83 net4=net ; 75
  • save net4 net4 else if acierto<85 net5=net ; save net5 net5 else if acierto<88 net6=net ; save net6 net6 else if acierto<90 net7=net ; save net7 net7 else if acierto<93 net8=net ; save net8 net8 else if acierto<95 net9=net ; save net9 net9 else if acierto<98 net10=net ; save net10 net10 else if acierto<101 netXTREM=net ; save netXTREM netXTREM else end end end end end end end end end end endendendsave analisis analisisanalisis 76