Curso Python IA
Curso Python IA
Python
Instalacion y
Configuracion de Python
Instalación y Configuración de Python
https://www.python.org/
Una vez instalado el intérprete, debemos elegir un editor código, el cual
nos parezca más fácil de trabajar y que sea potente.
Una buena opción para empezar es Visual Studio Code:
https://code.visualstudio.com/download
Algunas extensiones útiles para VSCode
Python Debugger Material Icon Theme
Supermaven
Conceptos Basicos
de Python
Varibales, Operadores y Expresiones
Al ser un lenguaje de alto nivel, Python dispone de los tipos de datos
elementales en cualquier lenguaje de programación, pero además incluye
estructuras de datos más complejas y con altas prestaciones que facilitan en
muchos aspectos la tarea del programador.
de las tareas
Discusión
Varibales
En Python todo lo que creamos son objetos y las variables son referencias a
esos objetos, las variables se definen por asignación utilizando el signo =, por
ejemplo:
a=5
b = 8.0
nombre = "Catalina"
Piensa el proceso de asignación como la acción de etiquetar las direcciones de
memorias en donde se almacenan los objetos de Python, tal como se
esquematiza en la figura.
de las tareas
Discusión
Tipos de Datos Basicos
Al ser un lenguaje de alto nivel, Python dispone de los tipos de datos
elementales en cualquier lenguaje de programación, pero además incluye
estructuras de datos más complejas y con altas prestaciones que facilitan en
muchos aspectos la tarea del programador.
Enteros (int)
De coma Flotabte (float)
Booleanos (bool)
de las tareas
Cadenas de Caracteres
Discusión
Operadores Aritmeticos
En cualquier lenguaje de programación los operadores aritméticos permiten
realizar las operaciones aritméticas básicas con tipos numéricos, además de que
permiten formar expresiones compuestas. En la tabla se muestran los
operadores aritméticos disponibles en Python y la operación que realizan.
de las tareas
Discusión
Operadores Relacionales
Los operadores relacionales (o de comparación) nos permite efectuar
comparaciones entre objetos de Python. El resultado de una comparación es un
valor booleano True o False.
de las tareas
# "mayor o igual que" # "menor o igual que"
Discusión
30 >= 30 20 <= 10
Operadores Logicos
Los operadores lógicos nos sirven para realizar operaciones de lógica booleana
entre valores de tipo bool.
de las tareas
Discusión
Estructuras de Control
En un lenguaje de programación, las estructuras de control permiten modificar el
flujo de la ejecución de un conjunto de instrucciones. Se pueden distinguir tres
tipos básicos de control de flujo, a saber:
Control secuencial
Control de selección
Control de repetición
de las tareas
Discusión
Estructuras de Control
Condicional if-elif-else
El condicional if-elif-else es una estructura de control de selección que sirve para
tomar decisiones, basándose en la evaluación de condiciones y/o
comparaciones, en el flujo del programa. La sintaxis más general para if-elif-else
if cond1:
# hacer algo
elif cond2:
# hacer otra cosa
...
de las tareas
elif condn:
# hacer algo más
Discusión
else:
# hacer algo por default
Estructuras de Control
Ciclo for
El bucle for es una estructura de control de repetición, en la cual se conocen a
priori el número de iteraciones a realizar.
En lenguajes como C++ o Java, el ciclo for necesita de una variable de ciclo de
tipo entero que irá incrementándose en cada iteración.
En Python, la cuestión es un poco diferente, el ciclo for recorre una secuencia y
en la k-ésima iteración la variable de ciclo adopta el valor del elemento en la k-
ésima posición del iterable.
de las tareas
# Hacer algo ...
Discusión
numeros = [18,50,90,-20,100,80,37]
for n in numeros:
print(n)
Estructuras de Control
Ciclo while
El ciclo while ejecuta un bloque de instrucciones mientras haya una condición
que se cumpla. La sintaxis de while es:
while cond:
# hacer algo
x=1
while x < 5:
de las tareas
print(x)
x += 1
Discusión
Estructuras de Control
Sentencia try-except
Cuando consideremos que puede ocurrir un error durante la ejecución de nuestro
código, podemos utilizar un bloque try-except para manejar la excepción que
podría surgir.
Básicamente lo que hace es indicarle a Python que intente ejecutar algún código
y le dice qué hacer en el caso de que el código genere un tipo particular de
excepción.
La sintaxis básica de try-except es:
try:
# Código que puede generar una excepción
# Si ocurre una excepción aquí, el control se transfiere al
de las tareas
bloque except
except ExcepciónX:
Discusión
# Código que maneja la excepción de tipo ExcepciónX
a = int(input("Ingrese un número entero: "))
b = int(input("Ingrese otro número entero: "))
try:
c=a/b
except ZeroDivisionError:
print("Estás intentando dividir por cero")
Estructuras de Control
Algunos de los tipos de errores o excepciones más comunes se describen
brevemente a continuación:
de las tareas
definida previamente en el programa.
IndexError: Se produce cuando se intenta acceder a un elemento de una
Discusión
secuencia con un índice fuera de rango.
KeyError: Ocurre cuando se intenta acceder a una clave inexistente en un
diccionario.
FileNotFoundError: Ocurre cuando se intenta abrir un archivo que no existe.
ImportError: Se produce cuando no se encuentra el módulo que se intenta
importar.
OSError: Se genera cuando hay un error al realizar una operación del sistema
operativo, como abrir un archivo.
Modulo 1: Introduccion a Python y Librerias para IA
Librería Numpy
Librería NumPy
NumPy es una biblioteca de Python muy popular que se utiliza
principalmente para realizar cálculos matemáticos y científicos.
de las tareas
Discusión
Que es NumPy?
El término NumPy es en realidad la abreviatura de «Numerical Python».
de las tareas
estadísticas en Python. Funciona muy bien para multiplicar matrices o cuadros
multidimensionales. La integración con C/C++ y Fortran es muy sencilla.
Discusión
Que es NumPy?
Incorpora una nueva clase de objetos llamados arrays que permite representar
colecciones de datos de un mismo tipo en varias dimensiones, y funciones muy
eficientes para su manipulación.
de las tareas
Discusión
Como funciona NumPy?
Esta plataforma incluye objetos multidimensionales en «arrays» y un paquete
que reagrupe herramientas de integración para la implementación en Python.
En términos sencillos, NumPy es una mezcla de C y Python que se utiliza como
alternativa a la programación tradicional en MATLAB.
de las tareas
Además, otras bibliotecas dependen en gran medida de los arrays NumPy que
utilizan como inputs y outputs (entrada y salida de datos). Por ejemplo,
Discusión
TensorFlow y Scikit aprenden a utilizar arrays NumPy para calcular
multiplicaciones de matrices.
de las tareas
Discusión
La Clase de objetos array
La estructura de datos «ndarray» o «n-dimensional array» es la funcionalidad
principal de NumPy. Estos cuadros tienen la particularidad de ser homogéneos,
por lo que todos los elementos deben ser del mismo tipo.
Por lo general, los arrays de NumPy son más rápidos que las listas de Python.
Sin embargo, dado que solo es posible almacenar datos del mismo tipo en
cada columna, las listas de Python son más flexibles.
Para utilizar NumPy primero hay que importar la biblioteca, que se utiliza más a
menudo bajo su alias «np», que facilita su uso.
de las tareas
Aquí podemos hacer un ejemplo:
Discusión
import numpy as np
Pero esto lo podemos revisar con un pequeño código, para que veamos un
versus de cómo trabaja con la asignación de memoria:
import sys
import numpy as np
de las tareas
s = range(1000)
Discusión
print('Resultado lista de Python:')
print(sys.getsizeof(5)*len(s))
d = np.arange(1000)
print('Resultado Numpy array:')
print(d.size*d.itemsize)
Pero por que usamos Numpy en lugar
de las lista de Python
Ahora veamos un versus de la rapidez:
import time
import numpy as np
size = 1000000
l1 = range(size)
de las tareas
l2 = range(size)
start = time.time()
a1 = np.arange(size)
Discusión
result = [(x,y) for x,y in zip(l1,l2)]
a2 = np.arange(size)
print('Resultado lista de Python:')
print((time.time() - start)*1000)
start = time.time()
result = a1 + a2
print('Resultado Numpy array:')
print((time.time() - start)*1000)
Discusión
de las tareas
Modulo 1: Introduccion a Python y Librerias para IA
Librería Pandas
Librería Pandas de Python
Limpiar los datos haciendo cosas como eliminar los valores perdidos y filtrar
las filas o columnas según algunos criterios.
import pandas as pd
Estructura de datos de Pandas
Como lo explicamos previamente, los dos componentes principales de Pandas
son la Serie y el DataFrame.
Ten en cuenta que el índice de los DataFrame como de las Series, contienen las
claves del diccionario original y están ordenas, por lo que el primer índice
siempre será 0. Por ejemplo, Argentina será el índice en 0, mientras que Perú
será el índice en 3.
Estructura de datos de Pandas
Por su parte, los DataFrames de Pandas son estructuras de datos de dos o más
dimensiones, básicamente una tabla con filas y columnas. Las columnas tienen
nombres y las filas tienen índices. Para crear un DataFrame utilizamos la
instrucción con el mismo nombre junto al conjunto de datos, como se muestra
a continuación:
import pandas as pd
df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6]]))
print('DataFrame:')
print(df)
En este ejemplo creamos un DataFrame de tres filas y tres columnas.
import numpy as np
import pandas as pd
datos = np.array([[‘’, ‘Col1’, ‘Col2’], [‘Fila1’, 11, 22], [‘Fila2’, 33, 44]])
print(pd.DataFrame(datos = datos[1:, 1:], index=datos[1:, 0], columns=
datos[0, 1:]))
Aquí utilizamos numpy para pasar a la funcion dataframe de pandas y asi crear
nuestra matriz.
Estructura de datos de Pandas
Otro ejemplo:
import numpy as np
import pandas as pd
Visto todos los pasos anteriores, que son básicos en el manejo de datos con
Pandas, veamos cómo podemos implementar esta librería específicamente
para Machine Learning, comenzando por el primer paso que es el de importar
los datos.
Para cumplir con estas acciones hay diferentes comandos para cada una de
ellas, pero cuando se abre un archivo se verá de la siguiente manera:
pd.read_tipoarchivo()
Hay diferentes tipos de archivos con los que puede trabajar Pandas, por lo que
se debe reemplazar “tipoarchivo” con el tipo de archivo real, por ejemplo CSV.
df.to_csv(elarchivo)
Para añadir una columna a una posición especifica dentro del Dataframe:
Año = ['2020', '2019', '2022', '2015']
df.insert(1, ‘Año’, año)
Modulo 1: Introduccion a Python y Librerias para IA
Librería Matplolib
Definición
Para instalar matplotlib es muy simple, aunque puedes utilizar pip en caso de
que lo sepas usar.
https://matplotlib.org/stable/install/index.html
Cada eje tiene un eje x y otro eje y, y cada uno de ellos contiene una
numeración. También existen las etiquetas de los ejes, el título y la leyenda que
se deben tener en cuenta cuando se quieren personalizar los ejes, pero
también teniendo en cuenta que las escalas de los ejes y las líneas de la
cuadrícula pueden ser útiles.
Matplotlib – pyplot - pylab
Cuando se habla de matplotlib hablamos de todo el paquete de visualización
de datos de Python.
Este es especialmente útil cuando desees trazar rápidamente algo sin definir
ninguna figura o eje, como pudimos ver en el ejemplo presentado
anteriormente, en este no se ha especificado explícitamente los componentes,
pero al final se lograron los objetivos que fue el de graficar los datos.
Matplotlib – pyplot - pylab
Por último, tenemos pylab, este es otro modulo que se instala junto al paquete
matplotlib. Se recomienda su uso cuando se trabajaba con matrices, haciendo
matemáticas de forma interactiva y se quiera tener acceso a las funciones de
trazado.
Es posible que todavía veas esta librería en tutoriales más antiguos y ejemplos
de matplotlib, pero ya no se recomienda su uso, con el uso de los nuevos IDE y
kernel que están disponible en la actualidad.
Datos para graficar en Matplotlib
Los datos de Machine Learning para graficar en matplotlib deberán estar
estructurados bajo la librería de NumPy, por lo que es recomendable revisar
esta librería, primeramente.
Por supuesto, las matrices no son lo único que puedes graficar, también existe
la posibilidad de pasar listas de Python.
de las tareas
Discusión
Teoría de ML
Vamos a empezar por un poco de teoría. Explicaremos muy por encima algunos
términos
y asuntos que son importantes en el mundo del Machine Learning.
de las tareas
Redes neuronales son un modelo computacional que intenta imitar el
Discusión
comportamiento de las neuronas de cerebros biológicos. En este modelo se
crean varias capas de neuronas interconectadas con las neuronas de las
capas anteriores y siguientes con unos pesos en los enlaces.
TensorFlow
TensorFlow es una herramienta de machine learning.
Popularizada por su eficiencia con redes neuronales de aprendizaje profundo
pero que permite la ejecución de procesos distribuidos que no tengan nada que
ver con redes neuronales.
de las tareas
Discusión
TensorFlow
Sus Estimators representan un modelo completo y ofrecen los mecanismos
para entrenar los modelos, evaluar su error y generar predicciónes. Son la capa
de más alto nivel.
de las tareas
tf.estimator.DNNClassifier para modelos de clasificación con redes
profundas.
Discusión
tf.estimator.DNNLinearCombinedClassifier para clasificación combinada de
modelos lineares y con redes profundas.
de las tareas
Layers: ofrece una api de alto nivel para la creación de capas de neuronas
Discusión
facilitando sus interconexiones, funciones de activación, etc.
Instalando y Probando TensorFlow
Lo primero que debemos hacer es instalar TensorFlow. Para ello podemos ver
cómo hacerlo según nuestro SO en:
de las tareas
Discusión
¿Qué es TensorFlow?
TensorFlow es una librería de código abierto para cálculo numérico, usando
como forma de programación grafos de flujo de datos. Los nodos en el grafo
representan operaciones matemáticas, mientras que las conexiones o links del
grafo representan los conjuntos de datos multidimensionales (tensores) .
de las tareas
producción de productos de Google, remplazando el rol de su predecesor de
código cerrado, DistBelief.
Discusión
¿Qué es TensorFlow?
TensorFlow es el sistema de aprendizaje automático de segunda generación de
Google Brain, liberado como software de código abierto el 9 de noviembre del
2015.
de las tareas
Los cómputos de TensorFlow están expresados como stateful dataflow graphs.
Discusión
El nombre TensorFlow deriva de las operaciones que las redes neuronales
realizan sobre arrays multidimensionales de datos. Estos arrays
multidimensionales son referidos como "tensores".
Redes Neuronales
¿Qué son las Redes Neuronales?
Las redes neuronales son modelos de computación inspirados en el sistema
nervioso humano, compuestos por capas de nodos o neuronas interconectadas
que procesan información de manera similar a cómo lo hacen las neuronas
biológicas.
Estas redes constan de una capa de entrada, una o varias capas ocultas y una
capa de salida.
Cada neurona recibe entradas de otras, las procesa y transmite una salida a las
neuronas de la siguiente capa.
de las tareas
Durante el entrenamiento, las redes ajustan las ponderaciones de las
conexiones entre las neuronas para mejorar su precisión en la realización de
Discusión
tareas específicas.
¿Qué son las Redes Neuronales?
Las redes neuronales se utilizan en una amplia variedad de aplicaciones,
incluyendo el reconocimiento de imágenes, el procesamiento de lenguaje
natural, la traducción automática, el diagnóstico médico, la predicción
financiera y la previsión de la demanda de energía.
Estas redes son especialmente útiles para resolver problemas complejos que
son difíciles de manejar con algoritmos tradicionales, como el reconocimiento
de imágenes y el procesamiento de lenguaje natural.
de las tareas
neuronales, ya que introducen no linealidades en el modelo, permitiendo que
las redes aprendan relaciones y patrones más complejos en los datos.
Discusión
Ejemplos comunes de funciones de activación incluyen la función sigmoide,
ReLU y softmax, cada una adecuada para diferentes casos de uso.
¿Qué son las Redes Neuronales?
Las redes neuronales se clasifican según su arquitectura, métodos de
entrenamiento y usos. Entre los tipos más comunes se encuentran las redes
neuronales prealimentadas, recurrentes (RNN), convolucionales (CNN) y
generativas adversarias (GAN).
de las tareas
Discusión
¿Por qué son importantes las redes
neuronales?
Las redes neuronales resultan especialmente adecuadas para llevar a cabo el
reconocimiento de patrones a fin de identificar y clasificar objetos o señales en
sistemas de voz, visión y control. También se pueden emplear para el
modelado y la predicción de series temporales.
de las tareas
eléctricos que utilizan.
Los cajeros automáticos pueden aceptar depósitos bancarios de forma
Discusión
fiable mediante la lectura del número de cuenta y del importe del depósito
en un cheque.
Los patólogos confían en aplicaciones de detección de cáncer como guía a
la hora de clasificar los tumores como benignos o malignos en función de la
uniformidad del tamaño de las células, el grosor de la masa, la mitosis y
otros factores.
¿Cómo funcionan las redes neuronales?
Las células del cerebro humano, llamadas neuronas, forman una red compleja
y con un alto nivel de interconexión y se envían señales eléctricas entre sí para
ayudar a los humanos a procesar la información.
De manera similar, una red neuronal artificial está formada por neuronas
artificiales que trabajan juntas para resolver un problema.
de las tareas
Las neuronas artificiales son módulos de software, llamados nodos, y las redes
neuronales artificiales son programas de software o algoritmos que, en
Discusión
esencia, utilizan sistemas informáticos para resolver cálculos matemáticos.
¿Cómo funcionan las redes neuronales?
Capa de entrada
La información del mundo exterior entra en la red neuronal artificial desde la
capa de entrada. Los nodos de entrada procesan los datos, los analizan o los
clasifican y los pasan a la siguiente capa.
de las tareas
Capa oculta
Las capas ocultas toman su entrada de la capa de entrada o de otras capas
Discusión
ocultas. Las redes neuronales artificiales pueden tener una gran cantidad de
capas ocultas. Cada capa oculta analiza la salida de la capa anterior, la procesa
aún más y la pasa a la siguiente capa.
¿Cómo funcionan las redes neuronales?
Capa de salida
La capa de salida proporciona el resultado final de todo el procesamiento de
datos que realiza la red neuronal artificial. Puede tener uno o varios nodos. Por
ejemplo, si tenemos un problema de clasificación binaria (sí/no), la capa de
salida tendrá un nodo de salida que dará como resultado 1 o 0. Sin embargo, si
tenemos un problema de clasificación multiclase, la capa de salida puede estar
formada por más de un nodo de salida.
de las tareas
Discusión
¿Cómo funcionan las redes neuronales?
de las tareas
En teoría, las redes neuronales profundas pueden asignar cualquier tipo de
entrada a cualquier tipo de salida. Sin embargo, también necesitan mucho más
Discusión
entrenamiento en comparación con otros métodos de machine learning.
Necesitan millones de ejemplos de datos de entrenamiento en lugar de los
cientos o miles que podría necesitar una red más simple.
¿Cómo funcionan las redes neuronales?
de las tareas
Discusión
Modulo 1: Introduccion a Python y Librerias para IA
Características
Son un subconjunto del machine learning y el núcleo de los algoritmos de
deep learning.
Están formadas por nodos interconectados que reciben información, la
procesan y la pasan a través de otra neurona artificial.
Son particularmente útiles para identificar patrones en imágenes.
Se pueden utilizar para clasificar imágenes, detectar objetos y segmentar
imágenes.
¿Qué son las redes neuronales convolucionales?
Aplicaciones
Diagnóstico médico, como interpretar imágenes médicas, como
radiografías, resonancias magnéticas y tomografías.
Procesamiento de lenguaje natural.
Análisis de series temporales.
Reconocimiento del habla.
Entrenamiento
La red aprende de forma automática a ajustar iterativamente los coeficientes
para detectar características cada vez más complejas.
¿Cómo funcionan las redes neuronales
convolucionales?
Las redes neuronales convolucionales se distinguen de otras redes neuronales
por su rendimiento superior con entradas de señal de imagen, voz o audio. Se
componen de tres tipos principales de capas:
Capa convolucional
Capa de agrupación
Capa totalmente conectada
https://playground.tensorflow.org/
Ejemplo de una Red Densa
Ejemplo de una Red Densa
Ejemplo de una Red Densa
Ejemplo de una Red Densa
Funciones
Función ReLU
La función de activación ReLU (Unidad Lineal Rectificada) es una función que se
utiliza en redes neuronales para introducir no linealidad. Es una de las
funciones de activación más populares y utilizadas.
Cómo funciona:
Si la entrada es positiva, la función ReLU emite directamente la entrada.
Si la entrada es negativa, la función ReLU emite cero.
Función Sigmoid
La función sigmoide se utiliza comúnmente en las redes neuronales como una
función de activación para las capas ocultas. Esta función toma un valor de
entrada y lo comprime en un rango comprendido entre 0 y 1, lo que la
convierte en una función útil para modelar probabilidades y realizar
clasificaciones binarias. La función sigmoide tiene una forma característica de
«S» que le da su nombre.
Red Convolucional
La clave dentro de una red convolucional es encontrar las características bien
específicas, de esta manera podemos predecir a que se refiere la imagen.
Red Convolucional
La clave dentro de una red convolucional es encontrar las características bien
específicas, de esta manera podemos predecir a que se refiere la imagen.
Red Convolucional
La clave dentro de una red convolucional es encontrar las características bien
específicas, de esta manera podemos predecir a que se refiere la imagen.
Red Convolucional
La clave dentro de una red convolucional es encontrar las características bien
específicas, de esta manera podemos predecir a que se refiere la imagen.
Técnicas de regularización para
redes neuronales: optimiza tus
modelos de aprendizaje profundo
Técnicas de Regularizacion
La regularización en redes neuronales es fundamental para evitar el
sobreajuste y mejorar la generalización de los modelos.
de las tareas
Discusión
Que es la Regularizacion ?
“La regularización en las redes neuronales es un conjunto de técnicas
utilizadas para prevenir el sobreajuste y mejorar la capacidad de
generalización del modelo.”
de las tareas
Discusión
Redes neuronales y sobreajuste
Las redes neuronales tienen la capacidad de aprender patrones complejos en
los datos de entrenamiento, lo que les permite ajustarse y abordar problemas
difíciles.
de las tareas
patrones fundamentales y generalizables.
Discusión
Esto puede llevar a una mala capacidad predictiva del modelo en datos nuevos
y no vistos durante el entrenamiento.
Importancia de la regularización en
redes neuronales
La regularización es crucial para controlar el sobreajuste en las redes
neuronales. Al aplicar técnicas de regularización, se controla la complejidad del
modelo y se evita que los pesos y parámetros se vuelvan demasiado grandes o
especializados en los datos de entrenamiento.
de las tareas
La regularización también proporciona una forma de lidiar con la alta
dimensionalidad y complejidad de los modelos de aprendizaje profundo.
Discusión
Al reducir la complejidad del modelo, las técnicas de regularización ayudan a
evitar el sobreajuste y mejoran la capacidad de generalización.
Técnicas de regularización para redes
neuronales
Aqui, nos centraremos en las diferentes técnicas de regularización que se
emplean en las redes neuronales con el objetivo de controlar el sobreajuste y
mejorar la capacidad de generalización.
de las tareas
Discusión
Regularización L1 y L2
La regularización L1 y L2 son técnicas populares para controlar los pesos de los
parámetros en una red neuronal.
de las tareas
proporcional a la suma de los valores al cuadrado de los pesos. Esta
técnica ayuda a reducir los pesos más grandes y fomenta el uso de
Discusión
todos los pesos en menor medida, logrando una mejor generalización.
Decaimiento de pesos (Weight Decay)
de las tareas
Discusión
Dropout
El dropout es una técnica de regularización que apaga aleatoriamente un
porcentaje de neuronas durante el entrenamiento de la red neuronal.
de las tareas
Discusión
Normalización por lotes (Batch
Normalization)
La normalización por lotes es una técnica de regularización que normaliza las
activaciones de salida en cada capa oculta de la red.
de las tareas
Discusión
Aumento de datos (Data Augmentation)
de las tareas
Discusión
Parada temprana (Early Stopping)
de las tareas
Discusión
Cómo implementar las técnicas de
regularización
Para implementar eficazmente las técnicas de regularización en redes
neuronales, es necesario considerar varios aspectos clave que afectan tanto a
la elección de la técnica adecuada como a su impacto en la arquitectura de la
red neuronal y las consideraciones durante el entrenamiento.
de las tareas
Discusión
Cómo implementar las técnicas de
regularización
Para implementar eficazmente las técnicas de regularización en redes
neuronales, es necesario considerar varios aspectos clave que afectan tanto a
la elección de la técnica adecuada como a su impacto en la arquitectura de la
red neuronal y las consideraciones durante el entrenamiento.
de las tareas
Discusión
Elección de la técnica adecuada
de las tareas
regularización y cómo se adaptan a las necesidades del proyecto.
Discusión
Ventajas y desventajas de las
técnicas de regularización
Ventajas y de las técnicas de
regularización
Las técnicas de regularización en redes neuronales ofrecen varias ventajas
importantes:
de las tareas
Control de la complejidad del modelo: Las técnicas de regularización
permiten controlar la complejidad del modelo al limitar los valores de
Discusión
los pesos de los parámetros. Esto evita que los pesos se vuelvan
demasiado grandes y ayuda a evitar el problema del estallido del
gradiente y la inestabilidad durante el entrenamiento.
Ventajas y de las técnicas de
regularización
Mejora del tiempo de convergencia: Al reducir la complejidad del
modelo, las técnicas de regularización pueden acelerar el proceso de
convergencia durante el entrenamiento. Esto se debe a que se facilita
el aprendizaje de pesos óptimos y se reduce la dependencia en la
inicialización de los pesos.
de las tareas
previamente. Esto es especialmente útil en situaciones donde el
conjunto de datos es limitado o ruidoso.
Discusión
Desventajas y de las técnicas de
regularización
A pesar de las ventajas, las técnicas de regularización en redes neuronales
también presentan algunas desventajas a considerar:
de las tareas
Discusión
Desventajas y de las técnicas de
regularización
Elección de hiperparámetros: Las técnicas de regularización en redes
neuronales suelen requerir la elección de hiperparámetros, como los
coeficientes de regularización o los porcentajes de apagado en el
dropout. La selección incorrecta de estos hiperparámetros puede
afectar el rendimiento y la eficacia de la regularización.
de las tareas
lo que significa que algunas características de entrada pueden ser
ignoradas por el modelo.
Discusión