Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Introduccion al Deep Learning, Monografías, Ensayos de Inteligencia Artificial

Conceptos basicos del Deep Learning y las Redes Neuronales.

Tipo: Monografías, Ensayos

2019/2020

Subido el 13/12/2020

matias-guerrero-7
matias-guerrero-7 🇨🇱

1 documento

1 / 15

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Matias Guerrero C.
Manuel Meneses G.
Tarea N°1: Conceptos basicos de Machine
Learning y Redes Neuronales.
Escuela de Ingeniería Eléctrica
Facultad de Ingeniería
Valparaíso, 23 de septiembre de 2020
Profesor Gabriel Hermosilla
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Vista previa parcial del texto

¡Descarga Introduccion al Deep Learning y más Monografías, Ensayos en PDF de Inteligencia Artificial solo en Docsity!

Matias Guerrero C.

Manuel Meneses G.

Tarea N°1: Conceptos basicos de Machine

Learning y Redes Neuronales.

Escuela de Ingeniería Eléctrica

Facultad de Ingeniería

Valparaíso, 23 de septiembre de 20 20

Profesor Gabriel Hermosilla

Índice general

  • Introducción
  • 1 Desarrollo
    • 1.1 Machine Learning (Conceptos)
      • 1.1.1 Tipos de Aprendizaje
      • 1.1.2 Elementos dentro del Machine Learning
      • 1.1.3 Regresión Lineal
      • 1.1.4 Pérdidas y Descenso de Gradiente
      • 1.1.5 Deep Learning
    • 1.2 Redes Neuronales (Conceptos)
      • 1.2.1 Neurona Artificial ( Modelo del Perceptron)
      • 1.2.2 Funcion de Activacion
      • 1.2.3 Arquitecturas
      • 1.2.4 Proceso de Aprendizaje: Backpropagation
    • 1.3 Redes Neuronales: Aplicación de Algoritmos basicos
  • Discusión y conclusiones
  • Referencias

1.1 Machine Learning (Conceptos)

El Machine Learning representa una forma de la inteligencia artificial, la cual permite a un sistema aprender

de los datos en lugar de aprender mediante la programación explícita. Si bien lo anterior suena sencillo el

machine Learning no es un proceso fácil, ya que conforme el algoritmo utilizado será la forma en que la

maquina adquiera datos de entrenamiento, para poder producir modelos cada vez más precisos (basados

en datos).

Este tipo de aprendizaje se puede entender como una acción realizada por la máquina para resolver una

tarea, es decir, si el resultado es favorable se continúa utilizando dicho método y si el resultado no es el

esperado, la maquina podrá discernir entre los algoritmos aplicados para determinar el más eficiente y poder

realizar la acción de forma correcta según el entrenamiento aplicado previamente. Es por eso que el

Machine Learning es la base de la Inteligencia Artificial, la cual se define como la rama de la informática

encargada de replicar la forma en que funciona la mente y los procesos cerebrales en los seres vivos, para

poder replicarlos en las maquinas.

El Machine Learning normalmente hace referenciar a los cambios que realiza un sistema en tareas asociadas

con la Inteligencia como, por ejemplo, reconocimiento facial, diagnósticos, planificación, control,

predicciones, entre otras. De tal manera que la máquina se adapte y modifique sus acciones al presentarse

nuevas circunstancias en el desarrollo de sus tareas, buscando una forma óptima de resolverlas haciendo

uso de la ciencia o ramas académicas tales como: Estadística, Modelos cerebrales, Teoría de control

adaptativa, Modelos evolutivos, Algebra línea, entre otras muchas posibilidades.

1.1.1 Tipos de Aprendizaje

Según lo analizado anteriormente y considerando que el machine Learning al igual que una mente humana

o de un animal requiere un régimen de entrenamiento con la finalidad de realizar una tarea específica,

podemos resumir dicho régimen de entrenamiento en 3 tipos de aprendizaje:

  • Aprendizaje Supervisado: Comienza típicamente con un conjunto establecido de datos y una cierta

comprensión de cómo se clasifican. Este tipo de aprendizaje tiene la intención de encontrar

patrones en datos que se pueden aplicar a un proceso de analítica. Algunos ejemplos son el

aprendizaje por clasificación y la regresión.

  • Aprendizaje No Supervisado: El aprendizaje no supervisado se utiliza cuando el problema requiere

una cantidad masiva de datos sin etiquetar, es decir una estructura de aprendizaje en ausencia de

cualquier valor de salida identificado. Algunos ejemplos son el aprendizaje son por medio de

Clustering y las reglas de asociación.

  • Aprendizaje por Refuerzo: Este tipo de aprendizaje es un modelo conductual, es decir, recibe

retroalimentación del análisis de datos, conduciendo el usuario hacia el mejor resultado (el sistema

aprende a través de la prueba y el error). Un ejemplo de este modelo es el MDP (proceso de decisión

de Márkov).

1.1.2 Elementos dentro del Machine Learning

A continuación, se definen diversos elementos, los cuales nos ayudaran a comprender los algoritmos

utilizados en los puntos 1.1.3 y 1.1.4:

  • Entrada: Datos que son entregados al algoritmo.
  • Salida (𝑦

𝑗

): Resultado entregado por el algoritmo.

  • Pesos (𝑤

𝑖𝑗

): representa la ponderación de conexiones entre los nodos 𝑖 y 𝑗.

  • Target: el vector target (𝑡), es el dato extra que se necesita para el aprendizaje supervisado

(respuesta correcta que el algoritmo debe aprender).

  • Error (𝐸): función que calcula la inexactitud de la red haciendo uso de las salidas (𝑦) y los targets

1.1.3 Regresión Lineal

La regresión lineal es un algoritmo de aprendizaje supervisado que se utiliza en Machine Learning y en

estadística. La cual, en su versión más sencilla, lo que hace es dibujar una recta (recta de regresión) que nos

indicará la tendencia de un conjunto de datos continuos, y es de la forma:

0

1

En este caso se describe la relación algebraica entre las dos variables (x, y), pero si nos enfocamos

directamente en el Machine Learning la ecuación es de la siguiente forma:

1

1

En este caso este algoritmo mide el error con respecto a los puntos de entrada y el valor “Y” de salida real.

En este caso 𝑦′ representa el target(t), 𝑏 la coordenada de origen o intercepto con eje 𝑦, 𝑤 1

es la ponderación

del atributo 1 y 𝑥1 es un atributo entregado. Además, si se desea minimizar el error se pueden considerar 𝑛

atributos, dejando la ecuación de la siguiente forma:

𝑛

ℎ= 1

Si todos estos elementos anteriores se reúnen, es posible entrenar continuamente al modelo y explotar los

resultados aprendiendo de los datos (Inteligencia Artificial).

Figura 1 Inteligencia Artificial y sus derivados.

1.2 Redes Neuronales (Conceptos)

Una Red Neuronal artificial es un modelo computacional inspirado en el comportamiento de la estructura

del sistema nervioso humano. Consiste en un grupo de unidades de procesamiento llamadas neuronas

artificiales, que están conectadas entre sí para transmitir señales. La información de entrada estimula y pasa

a través de la red neuronal (donde se realizan varias operaciones) para producir el valor de salida. Ya que

este tipo de modelo pertenece al área de Machine Learning (IA) aprenden por sí mismo, en lugar de ser

programados explícitamente. Son buenos en áreas donde la programación tradicional es difícil de expresar

soluciones funcionales. Aunque las redes neuronales son más abstractas, el objetivo de estas es resolver

problemas de la misma manera que el cerebro humano. Las redes neuronales actuales suelen contener de

miles a millones de unidades neuronales.

1.2.1 Neurona Artificial ( Modelo del Perceptron)

Entre las décadas de 1950 y 1960, el científico Frank Rosenblatt se inspiró en Warren McCulloch y Walter

Pitts para crear el Perceptrón, de esta unidad nacerán y mejorarán las redes neuronales artificiales. El

perceptrón o bien dicho la neurona, es la unidad básica de procesamiento dentro de una red neuronal,

requiere varias entradas binarias (x1, x2, etc.), y produce una única salida binaria. Para calcular la salida, se

introdujo el concepto de pesos (w1, w2, etc.) que representa la importancia de cada entrada en la salida. Si

la suma del peso multiplicado por la entrada es mayor o menor que un determinado umbral, la salida de la

neurona será 1 o 0. Su propósito principal es tomar decisiones binarias simples o crear funciones lógicas,

como OR y AND.

Para entenderlo de forma más simple, la neurona es una función matemática la cual tiene valores de entrada

con los que realiza una suma ponderada, cada ponderación viene dada por cada peso que se les asigna a las

entradas, estos pesos indican con que intensidad la variable de entrada afecta a la neurona.

La suma ponderada que realiza la neurona viene de la regresión lineal, la cual con las variables de entrada

definen una recta o hiperplano al que podemos variar la inclinación utilizando nuestros parámetros, además

la regresión lineal tiene un término independiente que permite mover verticalmente a la recta. En el caso

de la neurona también se encuentra este término y se denomina bias (sesgo), se representa como otra

entrada a la neurona, pero con una variable siempre asignada a 1.

Figura 2 Representación Neurona Artificial con 3 datos de entradas (x) y sus respectivos pesos (w).

1.2.2 Funcion de Activacion

Antes de comenzar a construir una red neuronal, debemos definir la salida de la neurona según lo que

queremos que brinde la red. Por lo que sabemos, la neurona realiza una suma ponderada que da como

resultado un valor lineal, para esto la función de activación cumple el rol de distorsionar la salida añadiendo

deformaciones no-lineales para poder encadenar de forma efectiva varias neuronas.

El papel de la función de activación es distorsionar el plano generado por la neurona, esta distorsión

depende de cada función, por eso buscamos una función con una derivada simple para minimizar el costo

computacional. A continuación, se observan algunas de las principales funciones de Activación:

Figura 3 Funciones de Activación más usadas.

estimulados de izquierda a derecha (feedforward) y el entrenamiento suele ser mediante

Backpropagation.

  • Recurrent networks: se distingue porque integra al menos un bucle de realimentación, a través

de los cuales permite que la información persista durante algunas épocas de entrenamiento.

  • Convolutional Neural Networks: Son usadas principalmente en procesamiento de imágenes. No

todas las capas están formadas con neuronas, se dividen en dos bloques: el primero, por las capas

convolucionales identifica patrones gráficos, mientras que el segundo clasifica los datos.

1.2.4 Proceso de Aprendizaje: Backpropagation

Pero una de las principales características del Deep Learning es que se busca es que no seamos nosotros los

que ajusten los parámetros de la red neuronal, sino que se ajusten automáticamente por la propia red, para

esto se busca la manera de que la propia red sea la que aprenda por si sola a partir de los datos.

El algoritmo más utilizado para que una red neuronal aprenda se denomina “Backpropagation”, este

algoritmo se basa en el aprendizaje supervisado y en el modelo del cálculo del gradiente. Es un proceso

iterativo que comienza estimulando la red con los datos hacia adelante (forwardpropagation), y una vez en

la salida se calcula el error de la predicción y se propaga hacia atrás (backpropagation), calculando el error

en cada capa y neurona, generando que los pasos se puedan ir actualizando.

Para el error se utiliza una función de perdida con la que se mide la predicción entregada por la red en

relación con la etiqueta (predicción deseada). Para una mayor exactitud se busca que el coste de sea cero

por lo que a medida que los pesos se ajustan o mejor dicho se entrena el modelo, la red entregara

predicciones correctas.

Figura 5 Representación del Backpropagation.

Entonces, se utiliza el descenso del gradiente para optimizar la función de pérdida dentro de la red, y al

propagar el error hacia atrás se genera que cada neurona le llegue parte de él y así poder compensar los

parámetros de cada una de ellas. Esto tiene sentido, ya que en una red neuronal el error de las capas

anteriores depende directamente del error de las capas posteriores, por lo que cada neurona tiene una

responsabilidad en el resultado final y con el uso de este algoritmo de retro propagación hacia atrás se

detecta que parte de culpa tiene cada neurona en el error. Por lo que se detectan todos los errores con una

única propagación hacia atrás.

1.3 Redes Neuronales: Aplicación de Algoritmos basicos

  • Algoritmo del Perceptrón: En esta sección aplicaremos lo visto anteriormente para así poder

entender de mejor manera el funcionamiento de una neurona aplicando el siguiente algoritmo:

  1. Se inicia el vector de pesos en cero (𝑤⃗⃗ = 0 ).
  2. Elegir un ejemplo (Entradas y etiquetas) en un orden circular o aleatorio.
  3. Se calcula la suma ponderada y si 𝑤⃗⃗ clasifica a 𝑥 correctamente, es decir: (𝑤⃗⃗ ∗ 𝑥

𝑢

𝑢

  • 1 , o

𝑢

𝑢

= − 1. Entonces no se hace nada, en caso contrario se aplica la

siguiente regla para modificar los pesos: 𝑤

𝑢

𝑢

  1. Volver al punto 2, hasta que los pesos hagan que el sistema clasifique correctamente o se

acerque a un valor deseado.

El algoritmo se aplicará en los siguientes ejemplos:

o Tabla OR:
  1. Pesos en cero: 𝑤⃗⃗ = [ 0 0 0 ].
  2. Seleccionamos < 𝑥

1

1

= 0 y 𝑡

1

= − 1 por lo que se deben corregir

los pesos: 𝑤

= [ 0 0 0 ] + (− 1 ) ∗ [ 1 − 1 − 1 ] = [− 1 1 1 ].
  1. Seleccionamos < 𝑥

4

4

: ( 1 ∗ (− 1 ) + 1 ∗ 1 + 1 ∗ 1 ) = 1 y 𝑡

4

= + 1 por lo que no se deben corregir

los pesos.

  1. Seleccionamos < 𝑥

3

3

: ( 1 ∗ (− 1 ) + 1 ∗ 1 + (− 1 ) ∗ 1 ) = − 1 y 𝑡

3

= + 1 por lo que se deben

corregir los pesos: 𝑤

= [− 1 1 1 ] + 1 ∗ [ 1 1 − 1 ] = [ 0 2 0 ].
  1. Seleccionamos < 𝑥

2

2

= − 2 y 𝑡

2

= + 1 por lo que se deben corregir

los pesos: 𝑤

= [ 0 2 0 ] + 1 ∗ [ 1 − 1 1 ] = [ 1 1 1 ].
  1. Luego al comprobar nuevamente los ejemplos con el vector de pesos 𝑤⃗⃗ = [ 1 1 1 ], los pesos se

mantienen por lo que la clasificación es posible de realizar para la tabla OR.

  • Algoritmo de Backpropagation: Para este ejemplo, se aplicará el algoritmo de

Backpropagation con MSE, se usará la función de activación sigmoidal y los pesos inicializados en

cero. El objetivo de este algoritmo es encontrar los valores de las salidas de cada neurona y los

próximos pesos después de una iteración.

  1. Se comienza con el paso hacia adelante, calculando la respuesta de la neurona en cada capa con los pesos en cero:

1

2

0

𝑫

𝑨

𝑩

𝑪

  1. Ahora calculadas las respuestas, se propaga la señal de error hacia atrás (backpropagation), comenzando por la

regla de la capa de salida , se ajustan los deltas:

𝐴

𝐴

𝐴

𝐴

𝐴

𝑨

𝐵

𝐵

𝐵

𝐵

𝐵

𝑩

𝐶

𝐶

𝐶

𝐶

𝐶

𝑪

Y luego se ajustan los pesos de la capa de salida:

𝐴

𝐴

𝐴

𝑨

𝐵

𝐵

𝐵

𝑩

𝐶

𝐶

𝐶

𝑪

  1. Por último, usando la regla de la capa oculta , se ajusta el delta:

𝐷

𝐴

𝐴

𝐵

𝐵

𝐶

𝐶

𝐷

𝑫

Y luego se ajustan los pesos de la red:

𝐷

1

𝐷

𝒉

𝟏

𝑫

𝟐

ℎ 2

𝐷

𝒉 𝟐

𝑫

𝟐

Figura 6 Algoritmo de Backpropagation.

Discusión y conclusiones

La inteligencia artificial y el estudio de cómo funciona la mente humana es la base fundamental del Machine

Learning y sus derivados. En estos tipos de aprendizaje mediante modelos y algoritmos se intenta replicar la

forma en que los seres humanos piensan, pero esta vez enfocado en las maquinas, logrando que estas

tengan una retroalimentación y puedan aprender a partir de las etapas de entrenamiento aplicadas.

Para poder entender el funcionamiento del Machine Learning y su derivado, el Deep Learning, es necesario

tener una base sólida de programación junto con el manejo de vectores, matrices, algebra lineal e incluso

estadística y manejo de datos, para poder definir de mejor forma las entradas y salidas de un sistema. Dichas

entradas cumplen un rol fundamental, ya que gracias a estas es posible determinar los estados siguientes y

tener una retroalimentación positiva para que la maquina pueda aprender, teniendo en consideración tanto

el vector de error, como el descenso de gradiente, el cual tiene como función principal determinar si la tasa

de aprendizaje es adecuada (|∇𝑓| ∙ 𝑎), es decir si su valor es elevado nunca se llegara a un valor optimo

debido al gran desplazamiento que se produce y si su valor es muy pequeño el tiempo de ejecución será

muy alto. Es por ese motivo, para que una maquina tenga un aprendizaje optimo se recomienda que el valor

de la tasa de aprendizaje sea aproximadamente un 0.4 % de la magnitud del gradiente.

Cuando Hablamos de Deep Learning o “aprendizaje profundo” se hace referencias al uso de

transformaciones lineales, no lineales y las redes neuronales, las cuales tienen la capacidad de aprender

generando conocimiento jerarquizado basado en niveles. Esto último es esencial en el uso del Deep

Learning, ya que una sola neurona colapsaría y no se lograría el aprendizaje esperado.

Según lo desarrollado anteriormente existen 3 tipos de aprendizaje: supervisado, no supervisado y

reforzado. En este caso se utiliza el algoritmo del perceptrón el cual es uno de los tipos de aprendizaje más

sencillos, entregando resultados óptimos en problemas de regresión lineal y clasificación, pero al momento

de ser utilizado en problemas no lineales genera problemas debido a que el valor nunca converge debido a

que se presenta un argumento cíclico. En segunda instancia tenemos el algoritmo de Backpropagation

basado en el aprendizaje supervisado el cual un proceso iterativo, es decir, es capaz de calcular el error en

cada capa y neurona, generando que los pasos siguientes se puedan ir actualizando, donde se obtuvieron

los resultados esperados.