Tecnicas de Busqueda Practica 1,2

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

Tecnicas de Busqueda

Tecnicas de Busqueda
OBJETIVOS G ENERALES DE LA ASIGNATURA

 Al finalizar el curso, el alumno conocerá y aplicará los conceptos fundamentales de las redes
neuronales y utilizará estos elementos para planear y diseñar una red neuronal artificial
empleando sistemas digitales (Hardware) y programación (Software) para resolver una
aplicación específica.

OBJETIVOS DEL CURSO EXPERIMENTAL

 Aprender a generar interacciones entre hardware y software para crear redes neuronales
alimentadas con datos de dispositivos electrónicos.
 Aprender el comportamiento de una red neuronal de forma experimental.
 Aprender a diseñar sistemas basados en redes neuronales desde una perspectiva de
ingeniería.
 Utilizar bases de datos existentes para el desarrollo de nuevas tecnologías

Tecnicas de Busqueda
CRITERIOS DE EVALUACIÓN

C1 Actividades previas indicadas en el manual de practicas 10 %


C2 Análisis e interpretación de resultados 20%
C3 Toma de lecturas correctas 30%
C4 Reporte entregado con todos los puntos indicados 40%

INSTALACIÓN DE MATLAB
Para el desarrollo de las prácticas de este manual es necesario la descarga y uso de Matlab

INTRODUCCIÓN

Las redes neuronales artificiales, pertenecen al área de desarrollo de la inteligencia artificial, estas
han tomado gran relevancia en los últimos años, debido a la cantidad de problemas que pueden
resolver.

Las redes neuronales, son utilizadas cuando se tiene un problema que procesos matemáticos
estándar no pueden modelar (al menos no con los conocimientos existentes). Algunas de las
aplicaciones más comunes pueden encontrarse en el reconocimiento de imágenes, tales como el
reconocimiento de rostros y facciones, o el reconocimiento de objetos; la clasificación de
elementos, tales como la clasificación de frutos podridos y frutos sanos, la clasificación de tipos de
flores, la clasificación de personalidades; la predicción de eventos, tales como predicción del clima,
predicción de movimientos económicos, predicción de comportamiento de consumo; entre otras
aplicaciones.

Tecnicas de Busqueda
Aunque existen aplicaciones particulares, como las ya mencionadas, la verdad es que estos
esquemas se han ido posicionando prácticamente en cualquier área de conocimiento, colocándose
como centro de cálculo de sistemas electrónicos, químicos, financieros, biológicos, etc. Esto debido
a sus características primordiales.

Algunas de las características más importantes de estos esquemas es que pueden ejecutarse
inherentemente de forma paralela, es decir, pueden realizar cálculos de forma más rápida que otro
tipo de esquemas computacionales. Estos esquemas presentan gran tolerancia a fallos, por lo que
pueden ser alimentados con información falsa, y aun así lograran llegar al resultado correcto,
obviamente cuando la información falsa no eclipse a la información verdadera. Pueden adaptarse a
una gran cantidad de problemas, sin modificar su estructura base, es decir, basta con que ellas sean
alimentadas con los datos de una determinada área o problemática para que puedan llegar a la
solución esperada.

En ingeniería, estos sistemas han cobrado mucha relevancia, ya que son las encargadas de procesar
los datos que diferentes dispositivos electrónicos adquieren, y de esta manera lograr que los
dispositivos se puedan comportar como nodos activos en esquemas tecnológicos tales como el
internet de las cosas o la industria 4.0.

BIBLIOGRAFÍA

1. Mandic, D. P., & Chambers, J. (2001). Recurrent neural networks for prediction: learning
algorithms, architectures and stability. John Wiley & Sons, Inc.
2. Luo, F. L., & Unbehauen, R. (1998). Applied neural networks for signal processing. Cambridge
university press.
3. Simon Haykin (2008). Neural Networks and Learning Machines, 3d Edition. Pearson.

Tecnicas de Busqueda
Práctica 1
Introducción: Matlab

TEMAS

OBJETIVOS

Al término de esta práctica el alumno podrá:

 Interconectar dispositivos electrónicos con la herramienta de trabajo Matlab.


 Generar programas en Matlab que ingresen datos desde un sensor.
 Utilizar estructuras tales como vectores y matrices.

INTRODUCCIÓN

Actualmente, existe una gran cantidad de herramientas computacionales que permiten realizar
procesos relacionados a inteligencia artificial, en general y redes neuronales, en particular. Se
pueden encontrar diferentes herramientas libres, de cobro, especializadas, no especializadas, etc.

Para el caso de este laboratorio, se ha optado por utilizar la herramienta Matlab, si bien es cierto
que Matlab no es una herramienta especializada en inteligencia artificial, también es cierto que en
los últimos años ha generado una gran cantidad de paqueterías enfocadas a las diferentes ramas de
esta área de conocimiento, por lo que es posible encontrar prácticamente cualquier concepto
relacionado al área en este software. Por otro lado, Matlab es una herramienta comercial que
implica gasto (actualmente la comunidad UNAM cuenta con cuentas gratuitas), sin embargo, la
ventaja que se considera que pueden tener los alumnos, es que es una herramienta utilizada
ampliamente no solo en el sector académico, sino también en el sector profesional y comercial, es
decir, no es una herramienta que se utilice sólo en las escuelas y posteriormente puede ser de
utilidad del alumnado en su vida laboral.

En esta práctica, se busca que los alumnos tengan un acercamiento a esta herramienta, y a través
de ella gestionar diferentes tipos de datos por medio de elementos electrónicos de entrada y salida.
Esta práctica se ha considerado, con la intención de que los alumnos verifiquen el control de sus
herramientas y que ellas están trabajando adecuadamente, para posteriormente entrar en las
aplicaciones y en la adquisición y procesamiento de datos de mayor tamaño y relevancia.

Adicionalmente, se dará gran relevancia al uso de estructuras computacionales tales como vectores
y matrices, ya que serán estructuras que posteriormente serán ampliamente utilizadas.

Tecnicas de Busqueda
ACTIVIDADES PREVIAS A LA PRÁCTICA

1. El alumno realizará la lectura de la práctica.

2. El alumno utilizara el script utilizado en esta práctica


NOTA: Aunque el script ya tiene la configuración correcta en código ASCII, puede ocurrir
que cuando se copie la información entre diferentes plataformas, esta codificación se vea
comprometida, uno de los errores más comunes que se pueden tener es el cambio de una
comilla simple en un acento, lo que obviamente desembocará en errores en la lectura del
script, basta que el alumno verifique estas posibles malinterpretaciones entre formatos de
cada plataforma utilizada.

MATERIAL Y EQUIPO

1. Una computadora con Matlab


instalado y con las paqueterías de “MATLAB Support Package for Arduino Hardware” y
“Deep learning” y “Neural network toolbox” cargadas en el software.
2. Una tarjeta de desarrollo Arduino (Preferentemente la versión UNO).
3. Un switch normalmente abierto.
4. Un LED.
5. Una resistencia de 1 K.
6. Un potenciómetro.
7. Un LDR.
8. Cables de conexión.
9. Tableta Protoboard.

PROCEDIMIENTO EXPERIMENTAL

En este proceso, se realizarán pequeñas prácticas para verificar que se tiene el control adecuado de
Matlab y de su comunicación con la Tarjeta Arduino. Se hace hincapié en que dependiendo de la
tarjeta Arduino utilizada, original o genérica, la computadora podrá identificar diferentes tipos de
puertos, siendo los puertos COM 1 y COM 3 los más comunes.

1. Se armará el sistema tal cual se puede observar en la figura 1. Este ejercicio es el más
simple y sólo está destinado a verificar la correcta comunicación entre hardware y
software.

2. El alumno cargara el programa 1 de la dirección


en Matlab, y lo ejecutará.

Tecnicas de Busqueda
Fig. 1.- Primer sistema para probar la conexión entre Matlab y Arduino.

3. Es posible observar que este sistema sólo prende y apaga un LED, por lo que el alumno
modificará este primer script para que esa secuencia se realice 10 veces, utilizar el ciclo
“for” para esta actividad, mostrar el correcto funcionamiento a su profesor.

4. Armar el sistema mostrado en la figura 2.

5. El alumno cargara el programa 2 de la dirección


en Matlab, y lo ejecutará.

6. Girar el potenciómetro de un lado a otro lentamente y observar que sucede con el LED.
Verificar el comportamiento con lo definido en el script.

Fig. 2.- Segundo ejemplo de aplicación, control de un LED por medio de un potenciómetro.

7. Sustituyendo el potenciómetro con un LDR, el alumno debe realizar un detector de


obscuridad. Mostrar al profesor el correcto funcionamiento.

Tecnicas de Busqueda
8. Una vez concluida esta parte, es necesario iniciar con el comportamiento de las
estructuras tales como vectores y matrices. Para tal fin, el alumno debe armar el circuito
como se muestra en la figura 3.

9. El alumno cargara el script 3 de la dirección


en Matlab, y lo ejecutará.

10. Una vez en ejecución, hay que girar lentamente el potenciómetro, haciendo cambios a
razón de un segundo. Este pequeño sistema generara el llenado de un vector. Es
importante mencionar, que el alumno definirá la cantidad de registros que tenga el
vector.

11. Ver que el vector resultante, son los datos que el alumno ingreso por medio del
potenciómetro.

12. El alumno debe diseñar un script que llene una matriz, con elementos provenientes del
potenciómetro. Mostrar el correcto funcionamiento al profesor.

13. Generar un script que ingrese dos vectores por medio del potenciometro, y estos los
convierta posteriormente en una sola matriz.

Fig. 3.- Control de ingreso de datos a estructuras computacionales.

CUESTIONARIO

1.- Escribir un script que ingrese un escalar utilizando un potenciómetro, que genere una
matriz con valores aleatorios, y posteriormente obtenga la multiplicación del escalar
por la matriz.

2.- Escribir un script que ingrese dos vectores utilizando un potenciómetro, y


posteriormente obtenga la multiplicación de tales vectores.

3.- Escribir un script que ingrese un vector utilizando un potenciómetro, y que muestre el
recorrido de tal vector, encendiendo un LED si el valor almacenado es mayor a 2.5.

Tecnicas de Busqueda
CONCLUSIONES

Escribe tus conclusiones de la práctica.

BIBLIOGRAFÍA

Tecnicas de Busqueda
Práctica 2
Clasificación con redes neuronales

TEMAS

MÉTODO DE ENTRENAMIENTO HACIA ATRÁS (BACK - PROPAGATION)

OBJETIVOS

 Al término de esta práctica el alumno podrá:


 Identificar la clasificación de datos por medio de una red neuronal.
 La forma en la que la red clasifica los datos.
 Identificar los puntos de aprendizaje de la red.

INTRODUCCIÓN

Las redes neuronales artificiales, también llamadas sistemas conexionistas, son modelos
computacionales que se componen de diferentes neuronas artificiales conectadas entre sí. Estos
esquemas tratan de emular la forma en la que los cerebros biológicos se encuentran constituidos, y
como a partir de tal construcción, se logra el aprendizaje. Un esquema básico de una red neuronal,
se puede visualizar en la figura 1 de esta práctica.

Una red neuronal artificial busca “aprender” patrones a partir de conjuntos de datos que sirven
como entrada a la red y que se presentan como punto de “observación” del fenómeno a analizar.
Partiendo de una cantidad elevada de información (datos), una red neuronal irá encontrando
patrones dentro de tales conjuntos de información, hasta lograr un aprendizaje con el cual es
posible clasificar comportamientos particulares dentro de un problema o fenómeno general.

Las redes neuronales tienen una gran cantidad de aplicaciones, sin embargo, las más comunes se
encuentran en la clasificación de datos y en la búsqueda de patrones de información. En el caso de
esta práctica, se utilizan para clasificar el comportamiento de elementos resistivos que se conectan
en serie o en paralelo. Se consideran circuitos que contienen tres resistencias, y se calcula la
resistencia equivalente, serie o paralela, según sea el caso.

Tecnicas de Busqueda
Fig. 1.- Esquema básico de una red neuronal, se ve una red con tres neuronas de entrada, dos neuronas de salida, y
cuatro neuronas en su capa oculta. Imagen recuperada de file:///C:/Users/Vegueta/Downloads/Tesis-
LinoFranciscoManjarrezMontao.pdf

ACTIVIDADES PREVIAS A LA PRÁCTICA

1. El alumno realizará la lectura de la práctica.


2. El alumno descargará los scripts utilizado en esta práctica

MATERIAL Y EQUIPO

1. Una computadora con Matlab


instalado y con las paqueterías de “MATLAB Support Package for Arduino Hardware” y
“Deep learning” cargadas en el software.

PROCEDIMIENTO EXPERIMENTAL

En el transcurso de esta práctica, se implementara un sistema de datos que simula la formación de


circuitos resistivos, así como la obtención del resultado del cálculo de una resistencia equivalente
en serie o en paralelo, resultado de tres resistencias con valores aleatorios. Estos conjuntos d
resistencias se generan en los scripts. En el primer script se genera una matriz que se compone de
3 resistencias y su resultado en serie o en paralelo. La mitad de las filas son resultados en serie y la
otra mitad en paralelo. Así como también, se genera un vector denominado TargetResistencia, quee
indica con un 0 si la combinación de resistencias da un valor en serie, e indica un valor igual a 1, si
son resistencias en paralelo.

Tecnicas de Busqueda
El segundo script, genera matrices completas de combinaciones de resistencias en serie y de
combinaciones en paralelo; estas matrices son utilizadas para probar la red neuronal ya entrenada.

Cada muestra corresponde a las tres resistencias aleatorias y un resultado de si se tiene un circuito
serie o uno paralelo, obteniendo que cada vector de entrada posea 4 columnas. Las matrices
representan esquemas como los mostrados en la figura 2.

Fig. 2.- Circuitos en serie y paralelo, constituidos con tres resistencias, con las cuales se obtiene una resistencia
equivalente.

1. El alumno cargara los dos scripts en Matlab

2. El alumno debe ejecutar ambos scripts, teniendo cuidado de que cuando el script solicite el
número de muestras, estas sean la misma cantidad de muestras en ambas ejecuciones, ya
que si no se coloca la misma cantidad de muestras, existirán errores de no compatibilidad
de datos. El número de muestras debe de ser un valor par.

3. Para este punto, se debe de seleccionar una cantidad de muestras igual a 10.

4. Una vez realizado esto, el alumno podrá observar en el workspace cada una de las matrices
generadas. Las de entrenamiento y las de prueba.

5. Hecho esto, el alumno debe de teclear el comando

nnstart

6. Se desplegara una ventana denominada “neural network start”, en ella hay que seleccionar
la opción “pattern recognition app”. Lo que nos enviara hacía la configuración de una red
neuronal de reconocimiento de patrones.

7. En la ventana se debe seleccionar en “inputs”, matrizEntrenamiento; En target se debe de


seleccionar "TargetResistencia". Debe observar el alumno que estos son los valores
previamente calculados por los scripts ejecutados.

8. Presionar next, hasta que se nos despliegue el número de neuronas que la red debe tener
en la capa intermedia, en este caso, las neuronas por default son adecuadas, 10.

9. Presionar nuevamente Next, y aparecerá un botón de entrenamiento “Train”, en este


punto, la red neuronal ha sido configurada con una sola capa intermedia y 10 neuronas en
ella. Como ya fu indicado cuales son los datos de entrenamiento y cuáles son los Targets, o
referencias, el alumno debe presionar el botón “Train”.

Tecnicas de Busqueda
10. Una vez finalizado el entrenamiento, hay que dar tres “Next” hasta llegar a la pantalla “Save
results”. Esta página es muy importante, ya que aquí se puede guardar la red neuronal
creada, así como su proceso de entrenamiento como un script. Para guardar tal script,
selecciona el botón "Simple Script".

11. En el cuestionario, el alumno debe dar nombre a la red neuronal realizada y a los datos que
se quieran exportar al workspace, para fines de esta práctica basta con enviar al workspace
el objeto con la red neuronal llamándola “resistencia”. El alumno debe presionar "save
network to MATLAB network object named:", y podrá ver en el workspace los nuevos
elementos.

12. Presionar el boton "Save results" y finalizar.

13. En este punto, ya se tiene una red neuronal definida y entrenada, por lo que es posible hacer
pruebas para verificar su funcionamiento.

14. El alumno puede ver la arquitectura de la red generada por medio de

view(resistencia)

15. La primera prueba es realizar la verificación de los valores de entrada con respecto al Target,
por medio del siguiente comando, que simula la red neuronal “resistencia” con los valores
de entrada “matrizEntrenamiento”.

salidaEntrenamiento=sim(resistencia, matrizEntrenamiento)

16. El alumno debe de verificar si el resultado es parecido al Target. Mostrar al profesor.

17. Para verificar el funcionamiento de la red neuronal, se puede observar la matriz de


confusión y la gráfica ROC, por medio de

plotconfusion(TargetResistencia,salidaEntrenamiento)

plotroc(TargetResistencia,salidaEntrenamiento)

18. El alumno debe interpretar tales gráficos, mostrar a su profesor.

19. Ya probado el funcionamiento de la red neuronal, hay que hacer pruebas con las matrices
de resultados en serie y en paralelo, por medio de:

salidaPruebas=sim(resistencia, matrizSerie)

salidaPruebas=sim(resistencia, matrizParalelo)

20. Comprobar sus resultados con lo aprendido por la red, ¿Clasificó adecuadamente las
muestras?, es decir, ¿A los resultados en paralelo los clasificó como 1, y a los resultados en
serie como 0? Mostrar al profesor.

21. Ahora el alumno debe de ingresar vectores que representen muestras de forma aleatoria
para verificar la correcta clasificación de la red, obviando que estas muestras tengan

Tecnicas de Busqueda
resultados correctos, manteniendo el orden de los vectores, tal que se componen en la
siguiente manera:

salidaPruebas=sim(resistencia, [valor serie o paralelo; resistencia 1 ; resistencia 2; resistencia 3])

22. Si se ingresa un valor correcto de resultado en paralelo, la red debe de arrojar un valor 1; si
se ingresa un valor correcto de resultado en serie, la red debe arrojar un valor 0. ¿Está
correctamente clasificado?

23. El alumno debe ingresar ahora vectores aleatorios, pero con resultados incorrectos, ya no
se debe de calcular el valor en serie o en paralelo correcto. ¿Qué sucede con los resultados
de la clasificación?

24. Ingresar la siguiente secuencia de consultas de verificación, y observar que sucede con la
salida de la red neuronal:

salidaPruebas=sim(resistencia, [1; 34 ; 12; 21])

salidaPruebas=sim(resistencia, [12; 34 ; 12; 21])

salidaPruebas=sim(resistencia, [34; 34 ; 12; 21])

salidaPruebas=sim(resistencia, [39; 34 ; 12; 21])

salidaPruebas=sim(resistencia, [80; 34 ; 12; 21])

25. Anotar los resultados de cada una de las consultas.

26. El alumno debe volver a ejecutar los scripts uno y dos, pero en esta ocasión va a seleccionar
100 muestras.

27. Debe de entrenar la red por medio de

resistencia=train(resistencia, matrizEntrenamiento, TargetResistencia);

28. En este momento ya se tiene una red neuronal entrenada pero con 100 muestras de
entrenamiento.

29. El alumno debe de ejecutar los pasos 15 a 25 nuevamente, ingresando la misma secuencia
de entradas mostrada en el paso 24. Observe que es lo que sucede con la clasificación, y
anote los resultados. Mostrar a su profesor.

30. El alumno debe volver a ejecutar los scripts uno y dos, pero en esta ocasión va a seleccionar
1000 muestras.

31. El alumno debe de ejecutar los pasos 15 a 25 nuevamente, ingresando la misma secuencia
de entradas mostrada en el paso 24. Observe que es lo que sucede con la clasificación, y
anote los resultados. Mostrar a su profesor.

32. Debe de entrenar la red por medio de

resistencia=train(resistencia, matrizEntrenamiento, TargetResistencia);

Tecnicas de Busqueda
33. En este momento ya se tiene una red neuronal entrenada pero con 1000 muestras de
entrenamiento.

34. El alumno debe de ejecutar los pasos 15 a 25 nuevamente, ingresando la misma secuencia
de entradas mostrada en el paso 24. Observe que es lo que sucede con la clasificación, y
anote los resultados. Mostrar a su profesor.

CUESTIONARIO

1. ¿Qué es lo que está tomando como punto de clasificación la red neuronal?


2. ¿Qué puedes concluir acerca de las secuencias de datos de ingreso que se realizaron
primero en el paso 24, y posteriormente en la repetición de tal paso, y de los resultados
obtenidos para cada vector de ingreso con respecto a la cantidad de muestras de
entrenamiento?
3. ¿La clasificación de la red neuronal es correcta?, ¿Por qué da datos tan “extraños” cuando
se meten valores aleatorios incorrectos?, ¿Qué significan tales resultados?
4. El alumno debe modificar los scripts para que el seleccione desde la línea de comandos
cuando quiere generar nuevas matrices de entrenamiento y de prueba, sin necesidad de
estar ejecutando dos scripts por vez.

CONCLUSIONES

Escribe tus conclusiones de la práctica.

BIBLIOGRAFÍA

Tecnicas de Busqueda
Bibliografía

En este apartado se muestra bibliografía complementaria para el desarrollo de estas prácticas.

1. Kim, P. (2017). Matlab deep learning. With machine learning, neural networks and
artificial intelligence, 130(21). Springer
2. Paluszek, M., & Thomas, S. (2020). Practical Matlab deep learning. A Project-
Based Approach, Michael Paluszek and Stephanie Thomas. Springer
3. Paluszek, M., & Thomas, S. (2016). MATLAB machine learning. Apress.
4. Ciaburro, G. (2017). MATLAB for machine learning. Packt Publishing Ltd.
5. Jiménez, E. C. (2021). Introducción al Machine Learning con MATLAB.
Marcombo.

Tecnicas de Busqueda

También podría gustarte