Redes Neuronales

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

REGRESIÓN LOGÍSTICA CON UNA RED NEURONAL SIMPLE

Construirás un clasificador de regresión logística para reconocer a los gatos. Esta tarea lo guiará a través
de cómo hacer esto con una mentalidad de red neuronal, y así también perfeccionará sus intuiciones sobre
el aprendizaje profundo.
Instrucciones:
No utilice bucles (para / mientras) en su código
Aprenderás a:
Construye la arquitectura general de un algoritmo de aprendizaje

 Inicializando parámetros
 Cálculo de la función de costes y su gradiente.
 Usando un algoritmo de optimización (pendiente de gradiente)
 Reúna las tres funciones anteriores en una función de modelo principal, en el orden
correcto.

1 - PACKAGES
Primero, ejecutemos la celda a continuación para importar todos los paquetes que necesitará durante esta
asignación.

Numpy: es el paquete fundamental para la computación científica con Python.


h5py: es un paquete común para interactuar con un conjunto de datos que se almacena en un archivo H5.
matplotlib :es una famosa biblioteca para trazar gráficos en Python.
PIL y scipy: se utilizan aquí para probar su modelo con su propia imagen al final.

2 – DATA SET
Se le proporciona un conjunto de datos ("data.h5") que contiene:
- un conjunto de entrenamiento de imágenes m_train etiquetadas como cat (y = 1) o no cat (y = 0)
- un conjunto de prueba de m_test imágenes etiquetadas como cat o no cat
- cada imagen es de forma (num_px, num_px, 3) donde 3 es para los 3 canales (RGB). Por lo tanto, cada
imagen es cuadrada (altura = num_px) y (ancho = num_px).

Construirá un algoritmo simple de reconocimiento de imágenes que puede clasificar correctamente las
imágenes como cat o no cat.

Cargue los datos ejecutando el siguiente código.

Se agregó "_orig" al final de los conjuntos de datos de imagen (entrenar y probar) porque los vamos a
preprocesar. Después del preprocesamiento, terminaremos con train_set_x y test_set_x (las etiquetas
train_set_y y test_set_y no necesitan ningún preprocesamiento).
Cada línea de su train_set_x_orig y test_set_x_orig es una matriz que representa una imagen. Puedes
visualizar un ejemplo ejecutando el siguiente código. (Puede cambiar el valor del índice y volver a ejecutar
para ver otras imágenes).

Muchos errores de software en el aprendizaje profundo provienen de tener dimensiones de matriz / vector
que no encajan. Si puede mantener sus dimensiones matriciales / vectoriales rectas, recorrerá un largo
camino hacia la eliminación de muchos errores.
ACTIVIDAD 1: Encuentra los valores para:
- m_train (número de ejemplos de entrenamiento)
- m_test (número de ejemplos de prueba)
- num_px (= altura = ancho de una imagen de entrenamiento)
Recuerde que train_set_x_orig es una matriz numpy de forma (m_train, num_px, num_px, 3). Por ejemplo,
puede acceder a m_train escribiendo train_set_x_orig.shape [0].

m_train =
m_test =
num_px =

Para mayor comodidad, ahora debe cambiar la forma de las imágenes de forma (num_px, num_px, 3) en
una variedad de formas (num_px ∗∗ num_px ∗∗ 3, 1). Después de esto, nuestro conjunto de datos de
entrenamiento (y prueba) es una matriz numpy donde cada columna representa una imagen aplanada.
Debe haber m_train (respectivamente m_test) columnas.

ACTIVIDAD 2: remodelar los conjuntos de datos de entrenamiento y prueba para que las imágenes de
tamaño (num_px, num_px, 3) se aplanen en vectores de forma individuales (num_px ∗∗ num_px ∗∗ 3, 1).
Un truco cuando desea aplanar una matriz X de forma (a, b, c, d) a una matriz X_flatten de forma (b ∗∗ c ∗∗
d, a) es utilizar: X_flatten = X.reshape (X.shape [0], -1) .T # X.T es la transposición de X

train_set_x_flatten =
test_set_x_flatten =
3 – PRE PROCESAMIENTO

Para representar imágenes en color, se deben especificar los canales rojo, verde y azul (RGB) para cada
píxel, por lo que el valor del píxel es en realidad un vector de tres números que van de 0 a 255.
Un paso de preprocesamiento común en el aprendizaje automático es centrar y estandarizar su conjunto
de datos, lo que significa que resta la media de toda la matriz numpy de cada ejemplo y luego divide cada
ejemplo por la desviación estándar de la matriz numpy completa. Pero para los conjuntos de datos de
imágenes, es más simple y conveniente, y funciona casi tan solo para dividir cada fila del conjunto de
datos por 255 (el valor máximo de un canal de píxeles).
Vamos a estandarizar nuestro conjunto de datos.

Recordar:
Los pasos comunes para pre procesar un nuevo conjunto de datos son:

 Determine las dimensiones y formas del problema (m_train, m_test, num_px, ...)
 Cambie la forma de los conjuntos de datos de modo que cada ejemplo sea ahora un vector de
tamaño (num_px * num_px * 3, 1)
 "Estandarizar" los datos

4– ARQUITECTURA GENERAL DE UN ALGORITMO DE APRENDIZAJE


Es hora de diseñar un algoritmo simple para distinguir las imágenes de gato de las que no lo son.
Construirás una regresión logística, usando un dataset de red neuronal. La siguiente figura explica por qué
la regresión logística es en realidad una red neuronal muy simple.
CONSTRUYENDO LAS PARTES DE NUESTRO ALGORITMO.
Los pasos principales para construir una red neuronal son:
 Defina la estructura del modelo (como el número de entidades de entrada)
 Inicializar los parámetros del modelo.
 Calcular la pérdida actual (propagación hacia adelante)
 Calcular el gradiente actual (propagación hacia atrás)
 Actualizar parámetros (pendiente de gradiente)

ACTIVIDAD 3: Implementar la inicialización de parámetros. Tienes que inicializar w como un vector de


ceros. Si no sabe qué función numpy usar, busque np.zeros () en la documentación de la biblioteca
Numpy.

def initialize_with_zeros(dim):
"""
Esta función crea un vector de ceros de forma (dim, 1) para w e inicializa b a 0.
Entrada:
dim - tamaño del vector w que queremos (o número de parámetros en este caso)

Salida:
w - vector de forma inicializado (dim, 1)
b - escalar inicializado (corresponde al sesgo) """

w=
b=

assert(w.shape == (dim, 1))


assert(isinstance(b, float) or isinstance(b, int))

return w, b

ACTIVIDAD 4: Implementar la función sigmoidea para realizar la predicción

def sigmoid(z):

s=
return s

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy