Saltar al contenido principal
LibreTexts Español

7.4: Aprendizaje semi-supervisado

  • Page ID
    149988
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    No existe una distinción profunda entre métodos supervisados y no supevisados, algunos de los no supervisados (como SOM o PCA) podrían usar entrenamiento mientras que algunos supervisados (LDA, Random Forest, particionamiento recursivo) son útiles directamente como visualizaciones.

    Y hay un aprendizaje intermedio semisupervisado. Toma en cuenta tanto las características de datos como el etiquetado de datos (Figura\(\PageIndex{2}\)).

    Una de las características más importantes de SSL es la capacidad de trabajar con la muestra de entrenamiento muy pequeña. Muchas ideas realmente brillantes están incrustadas en SSL, aquí ilustramos dos de ellas. El autoaprendizaje es cuando la clasificación se desarrolla en múltiples ciclos. En cada ciclo, los puntos de prueba que son más seguros, se etiquetan y se agregan al conjunto de entrenamiento:

    Screen Shot 2019-01-26 en 1.23.22 AM.png
    Figura\(\PageIndex{1}\) La red neuronal.

    Código\(\PageIndex{1}\) (R):

    library(SSL)
    iris.30 <- seq(1, nrow(iris), 30) # only 5 labeled points!
    iris.sslt1 <- sslSelfTrain(iris[iris.30, -5], iris[iris.30, 5], iris[-iris.30, -5], nrounds=20, n=5) # n found manually, ignore errors while searching
    iris.sslt2 <- levels(iris$Species)[iris.sslt1]
    Misclass(iris.sslt2, iris[-iris.30, 5])
    Screen Shot 2019-01-26 en 1.25.28 AM.png
    Figura\(\PageIndex{2}\) Cómo el aprendizaje semi-supervisado puede mejorar los resultados del aprendizaje. Si solo se usan datos etiquetados, entonces la división más lógica es entre puntos etiquetados. Sin embargo, si miramos el conjunto de pruebas, se hace evidente que los puntos de entrenamiento son partes de estructuras más complicadas, y la división real va en la otra dirección.

    Como ves, con solo 5 puntos de datos (aproximadamente 3% de los datos vs 33% de los datos en iris.train), el autoinclinamiento semi-supervisado (basado en el incremento del gradiente en este caso) alcanzó 73% de precisión.

    Otro enfoque semi-supervisado se basa en la teoría de grafos y utiliza la propagación de etiquetas gráficas:

    Código\(\PageIndex{2}\) (R):

    iris.10 <- seq(1, nrow(iris), 10) # 10 labeled points
    iris.sslp1 <- sslLabelProp(iris[, -5], iris[iris.10, 5], iris.10, graph.type="knn", k=30) # k found manually
    iris.sslp2 <- ifelse(round(iris.sslp1) == 0, 1, round(iris.sslp1)) ## "practice is when everything works but nobody knows why..."
    iris.sslp3 <- levels(iris$Species)[iris.sslp2]
    Misclass(iris.sslp3[-iris.10], iris[-iris.10, 5])

    La idea de este algoritmo es similar a lo que se mostró en la ilustración (Figura\(\PageIndex{2}\)) anterior. La propagación de etiquetas con 10 puntos supera a Randon Forest (ver arriba) que utilizó 30 puntos.


    This page titled 7.4: Aprendizaje semi-supervisado is shared under a Public Domain license and was authored, remixed, and/or curated by Alexey Shipunov via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.