machine learning - neural - Redes neuronales: ¿Qué significa "linealmente separable"?
neural networks and deep learning coursera (3)
Actualmente estoy leyendo el libro de Machine Aprendizaje de Tom Mitchell. Cuando se habla de redes neuronales, Mitchell afirma:
"Aunque la regla del perceptrón encuentra un vector de peso exitoso cuando los ejemplos de entrenamiento son linealmente separables, puede no converger si los ejemplos no son separables linealmente".
¿Tengo problemas para entender lo que quiere decir con "linealmente separable"? Wikipedia me dice que "dos conjuntos de puntos en un espacio bidimensional son linealmente separables si pueden estar completamente separados por una sola línea".
¿Pero cómo se aplica esto al conjunto de entrenamiento para redes neuronales? ¿Cómo pueden las entradas (o unidades de acción) ser linealmente separables o no?
No soy el mejor en geometría y matemática. ¿Alguien podría explicarme como si tuviera 5 años? ;) ¡Gracias!
Esto significa que hay un hiperplano (que divide el espacio de entrada en dos espacios medios) de manera que todos los puntos de la primera clase están en un medio espacio y los de la segunda clase están en el otro medio espacio.
En dos dimensiones, eso significa que hay una línea que separa los puntos de una clase de los puntos de la otra clase.
EDITAR: por ejemplo, en esta imagen, si los círculos azules representan puntos de una clase y los círculos rojos representan puntos de la otra clase, estos puntos son linealmente separables.
En tres dimensiones, significa que hay un plano que separa los puntos de una clase de los puntos de la otra clase.
En dimensiones superiores, es similar: debe existir un hiperplano que separe los dos conjuntos de puntos.
Mencionas que no eres bueno en matemáticas, así que no estoy escribiendo la definición formal, pero házmelo saber (en los comentarios) si eso ayuda.
Mira los siguientes dos conjuntos de datos:
^ ^
| X O | AA /
| | A /
| | / B
| O X | A / BB
| | / B
+-----------> +----------->
El conjunto de datos izquierdo no es separable linealmente (sin usar un kernel). El derecho es separable en dos partes para A'' and
B` por la línea indicada.
Es decir, no puede dibujar una línea recta en la imagen de la izquierda, de modo que todas las X
están en un lado, y todas las O
están en el otro. Es por eso que se llama "no separable linealmente" == no existe una variedad lineal que separe las dos clases.
Ahora, el famoso truco del kernel (que sin duda se discutirá en el libro siguiente) realmente permite que muchos métodos lineales se usen para problemas no lineales al agregar virtualmente dimensiones adicionales para hacer que un problema no lineal sea separable linealmente.
Supongamos que quiere escribir un algoritmo que decide, basándose en dos parámetros, tamaño y precio, si una casa se venderá en el mismo año en que se puso a la venta o no. Entonces tiene 2 entradas, tamaño y precio, y una salida, venderá o no venderá. Ahora, cuando reciba sus conjuntos de entrenamiento, podría ocurrir que la salida no se acumule para hacer que nuestra predicción sea más fácil (¿Puede decirme, basado en el primer gráfico si X
será una N o S? ¿Qué tal el segundo gráfico):
^
| N S N
s| S X N
i| N N S
z| S N S N
e| N S S N
+----------->
price
^
| S S N
s| X S N
i| S N N
z| S N N N
e| N N N
+----------->
price
Dónde:
S-sold,
N-not sold
Como puede ver en el primer gráfico, no puede separar realmente las dos salidas posibles (vendidas / no vendidas) por una línea recta, sin importar cómo intente siempre habrá tanto S
como N
en ambos lados de la línea. , lo que significa que su algoritmo tendrá muchas líneas possible
, pero no una línea correcta y última para dividir las 2 salidas (y, por supuesto, para predecir nuevas, que es el objetivo desde el principio). Es por eso que los conjuntos de datos linearly separable
(el segundo gráfico) son mucho más fáciles de predecir.