¿Propiedades para construir una red neuronal de perceptrón multicapa usando Keras?

8

Estoy tratando de construir y entrenar una red neuronal perceptrón multicapa que predice correctamente qué presidente ganó en qué condado por primera vez. Tengo la siguiente información para los datos de entrenamiento.

Población total Edad media% Grados o grados Tasa de desempleo Ingreso per cápita Total de hogares Tamaño promedio del hogar% Vivienda ocupada por el propietario% Vivienda ocupada por el inquilino% Vivienda vacante Valor medio de la vivienda Crecimiento de la población Crecimiento de la vivienda Crecimiento de la vivienda Crecimiento del ingreso per cápita Ganador

Eso es 14 columnas de datos de entrenamiento y la 15ta columna es lo que debería ser el resultado.

Estoy tratando de usar Keras para construir una red neuronal de perceptrón multicapa, pero necesito ayuda para entender algunas propiedades y las ventajas de elegir diferentes opciones para estas propiedades.

  1. FUNCION DE ACTIVACION

Sé que mi primer paso es crear una función de activación. Siempre estudié redes neuronales que utilizaban funciones de activación sigmoidea. ¿Es la función de activación sigmoidea la mejor? ¿Cómo sabes cuál usar? Keras además ofrece las opciones de usar una función de activación softmax, softplus, relu, tanh, lineal o hard_sigmoid. Estoy de acuerdo con usar lo que sea, pero solo quiero poder entender por qué y los pros y los contras.

  1. PROBABILIDAD INICIALIZACIONES

Sé que las inicializaciones definen la distribución de probabilidad utilizada para establecer los pesos aleatorios iniciales de las capas de Keras. Las opciones que ofrece Keras son uniforme lecun_uniforme, normal, identidad, ortogonal, cero, glorot_normal, glorot_uniform, he_normal y he_uniform. ¿Cómo afecta mi selección aquí mi resultado final o modelo? ¿No debería ser importante porque estamos "entrenando" cualquier modelo aleatorio con el que empecemos y de todos modos obtenemos una ponderación más óptima de las capas?

pr338
fuente

Respuestas:

6

1) La activación es una opción de arquitectura, que se reduce a una opción de hiperparámetro. Puede hacer un argumento teórico para usar cualquier función, pero la mejor manera de determinar esto es probar varias y evaluar en un conjunto de validación. También es importante recordar que puede mezclar y combinar activaciones de varias capas.

2) En teoría, sí, muchas inicializaciones aleatorias serían las mismas si sus datos se comportaran extremadamente bien y su red fuera ideal. Pero en la práctica, las inicializaciones buscan garantizar que el gradiente comience de manera razonable y que la señal pueda propagarse correctamente. Probablemente, en este caso, cualquiera de esas inicializaciones funcionaría de manera similar, pero el mejor enfoque es probarlas, cambiando si obtiene resultados no deseados.

jamesmf
fuente