Vamos a utilizar como ejemplo de pruebas un problema en el cual unas imágenes están más o menos dañadas y se trata de con la entrada de la imagen dar cómo salida una valoración de la calidad (de -1 a 1).
- Probamos una red ordinaria (conectividad completa). Aquí tienes un programa ya con todo para empezar
- Probamos una red convolutiva como las que hemos usado para reconocer cifras.
- Vamos con la variante tipo Inception. A la hora de definir la arquitectura de la red, la parte Inception es a su vez una lista, cuyo primer componente es 'i' y luego sucesivas listas, cada una conteniendo las capas de esa rama. Por ejemplo,
['i',['3c3'],['3c5']]
Pruébalo, utilizando distintos parámetros para ver distintas posibilidades.
En concreto, haz las siguientes pruebas:
- Como la salida va de -1 a 1 podemos darle esa pista a la red. Pon como activación de salida, por ejemplo, una capa
Hardtanh
- Prueba la regularización y algún otro de los métodos que vimos para controlar la complejidad de la red
- Prueba distintas medidas de error y métodos de ajuste
- Indaga la influencia de la muestra y la inicialización variando el número de pruebas que hace
- Las capas ordinarias varíalas en cantidad y parámetros
- La parte variante, pon más o menos ramas y más o menos complejas
- Añade reductoras
- Vamos con la variante tipo Xception. La definición es similar, pero el primer componente es 'x' Fíjate que en los bloques Xception, las ramas son todas de 1 procesador, así que mejor que ni siquiera lo pongas, para no liarte (si no hay número antes de la c toma 1). Y que hay tantas ramas como procesadores tenga la capa previa; asegúrate. Por ejemplo, si la capa previa fuese de 3 procesadores, podría ser
['x',['c3'],['c5'],['c3']]
Haz las mismas pruebas que antes.
- Combina un par de variantes distintas en una misma red
- Viendo la estructura de estas dos variantes, ¿cómo harías tú otra distinta?