Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Funciones de Activación
Funciones de Activación
INTELIGENCIA ARTIFICAL II
PRACTICA 01
Código: 216787639
Sección: D02
Profesor: Julio Esteban Valdés López
ÍNDICE ................................................................................................................................... 2
INTRODUCCIÓN .................................................................................................................. 3
FUNCIONES DE ACTIVACIÓN ......................................................................................... 2
Función escalón ........................................................................................................................... 2
Función lineal a tramos ............................................................................................................... 3
Función sigmoidal........................................................................................................................ 4
Función signo .............................................................................................................................. 6
Función tangente hiperbólica ..................................................................................................... 7
Función lineal .............................................................................................................................. 8
Función gaussiana ....................................................................................................................... 9
Función sinusoidal ..................................................................................................................... 10
CONCLUSIÓN .................................................................................................................... 12
INTRODUCCIÓN
Función escalón
Código
Primero que nada, importe las librerías matplotlib y numpy, la primera me permite hacer
graficas en Python y la segunda tiene muchos usos, pero en este caso será usada para
generar números. Después de eso definí una función llamada funcionEscalon la cual va a
recibir una variable v la cual representa el valor. En está función primero comparamos si el
valor recibido es mayor a 0 retornamos un 1, si no es así retornamos un 0. Después de eso
ahora vamos a generar una serie de números que van desde el -10.0 hasta el 10.0 en
incrementos de 0.1. Esta serie de números serán guardadas en la variable v. Ahora vamos a
recorrer esa variable con un ciclo for y vamos a ir pasándolos a la función previamente
definida. Los resultados de esto lo vamos a guardar en plt que equivale a nuestra gráfica.
Antes de mostrar la grafica de la función debo definir los limiten en cada eje como en este
caso obtenemos valores de 0 y 1, escogí limites muy pequeños de -2 a 2. Finalmente
mostramos la gráfica con plt.show().
def funcionEscalon(v):
if(v > 0):
return 1
else:
return 0
v = numpy.arange(-10.0, 10.0, 0.1)
plt.xlim(-2, 2)
plt.ylim(-2, 2)
plt.show()
Grafica
Función lineal a tramos
Código
Primero que nada, importe las librerías matplotlib y numpy, la primera me permite hacer
graficas en Python y la segunda tiene muchos usos, pero en este caso será usada para
generar números. Después de eso definí una función llamada funcionLT la cual va a recibir
una variable v la cual representa el valor. En esta función primero comparamos si el valor
recibido es mayor o igual a 1 retornamos un 1, si es menor a 0 retornamos un 0 y si esta
entre 0 y 1 sin cumplir las anteriores condiciones retornamos el valor de dicha v. Después
de eso ahora vamos a generar una serie de números que van desde el -10.0 hasta el 10.0 en
incrementos de 0.1. Esta serie de números serán guardadas en la variable v. Ahora vamos a
recorrer esa variable con un ciclo for y vamos a ir pasándolos a la función previamente
definida. Los resultados de esto lo vamos a guardar en plt que equivale a nuestra gráfica.
Antes de mostrar la gráfica de la función debo definir los limiten en cada eje como en este
caso obtenemos valores de 0 y 1, escogí limites muy pequeños de -2 a 2. Finalmente
mostramos la gráfica con plt.show().
def funcionLT(v):
if(v >= 1):
return 1
elif(v < 0):
return 0
else:
return v
plt.xlim(-2, 2)
plt.ylim(-2, 2)
plt.show()
Grafica
Función sigmoidal
Código
Primero que nada, importe las librerías matplotlib, numpy y math, la primera me permite
hacer graficas en Python, la segunda tiene muchos usos, pero en este caso será usada para
generar números y la tercera para operaciones matemáticas. Después de eso definí una
función llamada funcionS la cual va a recibir una variable v la cual representa el valor y la
variable a que representa una constante. En esta función simplemente se realiza el cálculo
1/ (1+(e^-av)). Después de eso ahora vamos a generar una serie de números que van desde
el -5.0 hasta el 5.0 en incrementos de 0.1. Esta serie de números serán guardadas en la
variable v y vamos a definir la variable a como 1. Ahora vamos a recorrer esa variable con
un ciclo for y vamos a ir pasándolos a la función previamente definida. Los resultados de
esto lo vamos a guardar en plt que equivale a nuestra gráfica. Antes de mostrar la gráfica de
la función debo definir los limiten en cada eje como en este caso obtenemos valores de 0 y
1, escogí limites muy pequeños de -5 a 5 en el eje x y de 0 a 1 en el eje y. Finalmente
mostramos la gráfica con plt.show().
plt.xlim(-5, 5)
plt.ylim(0, 1)
plt.show()
Grafica
Función signo
Código
Primero que nada, importe las librerías matplotlib y numpy, la primera me permite hacer
graficas en Python y la segunda tiene muchos usos, pero en este caso será usada para
generar números. Después de eso definí una función llamada funcionSigno la cual va a
recibir una variable v la cual representa el valor. En esta función primero comparamos si el
valor recibido es mayor a v retornamos un 1, sino comparamos si es menor a 0 para retornar
un -1 si no es así retornamos un 0. Después de eso ahora vamos a generar una serie de
números que van desde el -2.0 hasta el 2.0 en incrementos de 0.1. Esta serie de números
serán guardadas en la variable v. Ahora vamos a recorrer esa variable con un ciclo for y
vamos a ir pasándolos a la función previamente definida. Los resultados de esto lo vamos a
guardar en plt que equivale a nuestra gráfica. Antes de mostrar la gráfica de la función
debo definir los limiten en cada eje como en este caso obtenemos valores de 0 y 1, escogí
limites muy pequeños de -2 a 2. Finalmente mostramos la gráfica con plt.show().
def funcionSigno(v):
if(v > 0):
return 1
elif(v < 0):
return -1
else:
return v
plt.xlim(-2, 2)
plt.ylim(-2, 2)
plt.show()
Grafica
Función tangente hiperbólica
Código
Para la función tangente hiperbólica simplemente usando la librería math llamamos tanh y
retornamos lo obtenido con v como parámetro.
def funcionTangenteH(v):
return math.tanh(v)
plt.xlim(-5, 5)
plt.ylim(-1, 1)
plt.show()
Grafica
Función lineal
Código
La función lineal como se conoce es muy simple pasamos como parámetro v y retornamos
el mismo valor, solo que este valor será multiplicado por una constante A.
plt.xlim(-1000, 1000)
plt.ylim(-1000, 1000)
plt.show()
Grafica
Función gaussiana
Código
plt.show()
Grafica
Función sinusoidal
Código
Para esta última función, nuevamente será necesaria la librería math ya que ahora vamos a
calcular la función seno, pero con 3 constantes y una variable. La constante B multiplica a
la variable v y el resultado le sumamos C. Lo que obtenemos le calculamos el seno y
finalmente lo multiplicamos por la constante A, después solo se retorna el valor.
plt.xlim(-10, 10)
plt.ylim(-1, 1)
plt.show()
Grafica
CONCLUSIÓN
Finalmente, para concluir considero que resulto ser una practica a simple vista muy
sencilla, los códigos no presentaron un gran grado de dificultad, el valor agregado está en el
análisis de la funciones, algunas de ellas como la umbral, la signo, la lineal y lineal a
tramos son bastantes simples, pero otras como la exponencial la cual va ir en decremento o
en aumento sin tocar el 0 y el 1 y para determinar tal decremento necesitaremos de la
constante a, la cual puede tener un valor negativo o positivo. Otros casos con la tangente
hiperbólica, la cual es visualmente muy parecido a la sigmoidal, la sinusoidal sabemos que
representa la función seno con algunas variaciones debido a las constantes. Y finalmente
esta la función gaussiana, esta es muy parecida a una función cuadrática, solo que aquí
utilizamos una constante Euler multiplicada por la constante A elevada a la -B*v^2 como
se puede observar la v cuadrada permite obtener este efecto de función cuadrática.