Feature learning - Feature learning
| En del av en serie på |
|
Maskininlärning och datautvinning |
|---|
I maskininlärning är funktionsinlärning eller representationsinlärning en uppsättning tekniker som gör det möjligt för ett system att automatiskt upptäcka de representationer som behövs för funktionsdetektering eller klassificering från rådata. Detta ersätter manuell funktionsteknik och gör det möjligt för en maskin att både lära sig funktionerna och använda dem för att utföra en specifik uppgift.
Funktionsinlärning motiveras av det faktum att maskininlärningsuppgifter som klassificering ofta kräver inmatningar som är matematiskt och beräkningsvänligt att bearbeta. Verklig data som bilder, video och sensordata har dock inte gett försök att algoritmiskt definiera specifika funktioner. Ett alternativ är att upptäcka sådana funktioner eller representationer genom undersökning, utan att förlita sig på explicita algoritmer.
Funktionsinlärning kan antingen övervakas eller utan tillsyn.
- Vid övervakad funktionsinlärning lärs in funktioner med hjälp av märkta indata. Exempel inkluderar övervakade neurala nätverk , flerskiktsperceptron och (övervakad) ordbokslärning .
- I icke-övervakad funktionsinlärning lärs in funktioner med omärkta indata. Exempel är ordboksinlärning, oberoende komponentanalys , autokodare , matrisfaktorisering och olika former av kluster .
Övervakad
Övervakad funktionsinlärning är inlärningsfunktioner från märkta data. Datamärket tillåter systemet att beräkna en felterm, i vilken grad systemet inte producerar etiketten, som sedan kan användas som återkoppling för att korrigera inlärningsprocessen (minska / minimera felet). Tillvägagångssätt inkluderar:
Övervakad ordbokslärande
Ordboksinlärning utvecklar en uppsättning (ordlista) av representativa element från ingångsdata så att varje datapunkt kan representeras som en viktad summa av de representativa elementen. Ordbokselementen och vikterna kan hittas genom att minimera medelrepresentationsfelet (över inmatningsdata), tillsammans med L1- reglering på vikterna för att möjliggöra sparsitet (dvs. representationen av varje datapunkt har endast några få nollvikter).
Övervakad ordboksinlärning utnyttjar både strukturen som ligger bakom indata och etiketter för att optimera ordbokselementen. Exempelvis tillämpar denna övervakade ordboksinlärningsteknik ordboksinlärning på klassificeringsproblem genom att gemensamt optimera ordbokselementen, vikter för att representera datapunkter och klassificeringsparametrar baserat på inmatningsdata. I synnerhet formuleras ett minimeringsproblem, där objektivfunktionen består av klassificeringsfelet, representationsfelet, en L1- reglering på de representerande vikterna för varje datapunkt (för att möjliggöra gles representation av data) och en L2- reglering på parametrarna av klassificeraren.
Neurala nätverk
Neurala nätverk är en familj av inlärningsalgoritmer som använder ett "nätverk" som består av flera lager av sammankopplade noder. Det är inspirerat av djurets nervsystem, där noderna ses som nervceller och kanter ses som synapser. Varje kant har en tillhörande vikt och nätverket definierar beräkningsregler för överföring av ingångsdata från nätverkets inmatningsskikt till utgångsskiktet. En nätverksfunktion associerad med ett neuralt nätverk karaktäriserar förhållandet mellan in- och utgångslager, vilket parametreras av vikterna. Med lämpligt definierade nätverksfunktioner kan olika inlärningsuppgifter utföras genom att minimera en kostnadsfunktion över nätverksfunktionen (vikter).
Neurala nätverk med flera lager kan användas för att utföra funktionsinlärning, eftersom de lär sig en representation av deras ingång vid det eller de dolda lagren som därefter används för klassificering eller regression vid utgångsskiktet. Den mest populära nätverksarkitekturen av denna typ är siamesiska nätverk .
Oövervakad
Oövervakad funktionsinlärning är inlärningsfunktioner från omärkta data. Målet med icke-övervakad funktionsinlärning är ofta att upptäcka lågdimensionella funktioner som fångar någon struktur som ligger bakom de högdimensionella indata. När funktionsinlärningen utförs på ett övervakat sätt möjliggör det en form av halvövervakad inlärning där funktioner som lärts från en omärkt dataset sedan används för att förbättra prestanda i en övervakad miljö med märkt data. Flera tillvägagångssätt introduceras i det följande.
K - betyder kluster
K - betyder klustring är ett tillvägagångssätt för vektorkvantisering. I synnerhet, med tanke på en uppsättning n- vektorer,grupperar k- medel gruppering dem i k-kluster (dvs. delmängder) på ett sådant sätt att varje vektor tillhör klustret med närmaste medelvärde. Problemet är beräkningsmässigt NP-svårt , även om suboptimala giriga algoritmer har utvecklats.
K-betyder klustring kan användas för att gruppera en omärkt uppsättning ingångar i k- kluster och sedan använda centroiderna för dessa kluster för att producera funktioner. Dessa funktioner kan produceras på flera sätt. Det enklaste är att lägga till k binära funktioner till varje prov, där varje egenskap j har värdet ett iff den j : te centroid läras genom k • medel ligger närmast provet under övervägande. Det är också möjligt att använda avstånden till klustren som funktioner, kanske efter att ha transformerat dem genom en radiell basfunktion (en teknik som har använts för att träna RBF-nätverk ). Coates och Ng noterar att vissa varianter av k- medel beter sig på samma sätt som glesa kodningsalgoritmer .
I en jämförande utvärdering av icke-övervakade funktionsinlärningsmetoder fann Coates, Lee och Ng att k -medlen kluster med en lämplig transformation överträffar de nyligen uppfunna auto-kodarna och RBM: erna för en bildklassificeringsuppgift. K -medlen förbättrar också prestandan inom NLP- domänen , särskilt för namngivenhetsigenkänning ; där konkurrerar den med brunt kluster , liksom med distribuerade ordrepresentationer (även kända som neurala ordinbäddningar).
Huvudsaklig komponentanalys
Principal component analysis (PCA) används ofta för dimensionreduktion. Ges en omärkt uppsättning n indatavektorerna, PCA genererar p (som är mycket mindre än dimensionen för ingångsdata) höger singulära vektorer motsvarande den p största singulära värdena i datamatrisen, där k : te raden i datamatrisen är den k : te indatavektor skiftas med prov medelvärdet av insignalen (dvs subtrahera provets medelvärde från datavektor). Ekvivalent, är dessa singulära vektorer är de egenvektorer som motsvarar den p största egenvärdena hos den prov kovariansmatrisen av indatavektorerna. Dessa p singularvektorer är funktionsvektorerna som lärt sig från indata, och de representerar riktningar längs vilka data har de största variationerna.
PCA är en linjär funktion inlärning eftersom p singulära vektorer är linjära funktioner i datamatrisen. Singularvektorerna kan genereras via en enkel algoritm med p iterationer. I i : te iterationen, projektionen av datamatrisen på (i-1) : te egenvektor subtraheras, och jag är: te singulära vektorn hittades som höger singular vektor som motsvarar den största singulära hos restdatamatrisen.
PCA har flera begränsningar. För det första antar det att riktningarna med stor varians är av mest intresse, vilket kanske inte är fallet. PCA förlitar sig bara på ortogonala omvandlingar av originaldata, och det utnyttjar endast första och andra ordningens ögonblick , vilket kanske inte väl kännetecknar datadistributionen. Dessutom kan PCA effektivt reducera dimensionen endast när indatavektorerna är korrelerade (vilket resulterar i några få dominerande egenvärden).
Lokal linjär inbäddning
Lokal linjär inbäddning (LLE) är en icke-linjär inlärningsmetod för att generera lågdimensionella grannbevarande representationer från (omärkta) högdimensionella inmatningar. Tillvägagångssättet föreslogs av Roweis och Saul (2000). Den allmänna idén med LLE är att rekonstruera de ursprungliga högdimensionella uppgifterna med hjälp av lägre-dimensionella punkter samtidigt som vissa geometriska egenskaper hos stadsdelarna bibehålls i den ursprungliga datamängden.
LLE består av två stora steg. Det första steget är för "grannbevarande", där varje ingångsdatapunkt Xi rekonstrueras som en viktad summa av K närmaste granndatapunkter, och de optimala vikterna hittas genom att minimera det genomsnittliga kvadratiska rekonstruktionsfelet (dvs. skillnaden mellan en ingång punkt och dess rekonstruktion) under begränsningen att vikterna i varje punkt sammanfattas till en. Det andra steget är "dimensionreduktion", genom att leta efter vektorer i ett lägre dimensionellt utrymme som minimerar representationsfelet med de optimerade vikterna i det första steget. Observera att vikterna i det första steget optimeras med fasta data, som kan lösas som ett problem med minsta kvadrat . I det andra steget optimeras lägre-dimensionella punkter med fasta vikter, som kan lösas via gles egenvärdesnedbrytning.
De rekonstruktionsvikter som erhölls i det första steget fångar upp de "inneboende geometriska egenskaperna" för ett område i ingångsdata. Det antas att originaldata ligger på en jämn nedre dimensionell grenrör , och de "inneboende geometriska egenskaperna" som fångas av vikterna i den ursprungliga informationen förväntas också finnas på grenröret. Det är därför samma vikter används i det andra steget i LLE. Jämfört med PCA är LLE mer kraftfullt när det gäller att utnyttja den underliggande datastrukturen.
Oberoende komponentanalys
Oberoende komponentanalys (ICA) är en teknik för att bilda en datarepresentation med hjälp av en viktad summa av oberoende icke-Gaussiska komponenter. Antagandet om icke-Gaussisk införs eftersom vikterna inte kan bestämmas unikt när alla komponenter följer Gaussisk fördelning.
Ej övervakad ordbokslärande
Oövervakad ordbokslärning använder inte datatiketter och utnyttjar strukturen som ligger bakom datan för att optimera ordlistaelement. Ett exempel på icke-övervakad ordboksinlärning är gles kodning , som syftar till att lära sig grundfunktioner (ordbokselement) för datarepresentation från omärkta indata. Sparse kodning kan användas för att lära sig överkompletta ordböcker, där antalet ordbokselement är större än dimensionen på indata. Aharon et al. föreslagen algoritm K-SVD för att lära sig en ordlista med element som möjliggör gles representation.
Multilayer / djupa arkitekturer
Den hierarkiska arkitekturen i det biologiska neurala systemet inspirerar djupinlärningsarkitekturer för funktionsinlärning genom att stapla flera lager av inlärningsnoder. Dessa arkitekturer utformas ofta utifrån antagandet om distribuerad representation : observerade data genereras av interaktioner mellan många olika faktorer på flera nivåer. I en djupinlärningsarkitektur kan utgången från varje mellanlager ses som en representation av den ursprungliga inmatningsdata. Varje nivå använder representationen från tidigare nivå som inmatning och producerar nya representationer som utdata, som sedan matas till högre nivåer. Ingången vid det nedre lagret är rådata, och utgången från det slutliga lagret är den slutliga lågdimensionella funktionen eller representationen.
Begränsad Boltzmann-maskin
Begränsade Boltzmann-maskiner (RBM) används ofta som byggsten för flerskiktsinlärningsarkitekturer. En RBM kan representeras av en oriktad bipartitgraf som består av en grupp binära dolda variabler , en grupp synliga variabler och kanter som förbinder de dolda och synliga noder. Det är ett speciellt fall för de mer generella Boltzmann-maskinerna med begränsningen av inga intra-nod-anslutningar. Varje kant i en RBM är associerad med en vikt. Vikterna tillsammans med anslutningarna definierar en energifunktion , baserad på vilken en gemensam fördelning av synliga och dolda noder kan utformas. Baserat på topologin för RBM är de dolda (synliga) variablerna oberoende, beroende av de synliga (dolda) variablerna. Sådant villkorligt oberoende underlättar beräkningar.
En RBM kan ses som en enskiktsarkitektur för obevakad funktionsinlärning. I synnerhet motsvarar de synliga variablerna indata och de dolda variablerna motsvarar funktionsdetektorer. Vikterna kan tränas genom att maximera sannolikheten för synliga variabler med hjälp Hinton s kontras divergens (CD) algoritm.
I allmänhet tenderar RBM genom att lösa maximeringsproblemet att resultera i icke-glesa representationer. Sparse RBM föreslogs för att möjliggöra glesa representationer. Tanken är att lägga till en regulariseringsterm i den objektiva funktionen för datalikhet, vilket straffar avvikelsen från de förväntade dolda variablerna från en liten konstant .
Autokodare
En autokodare som består av en kodare och en avkodare är ett paradigm för djupinlärningsarkitekturer. Ett exempel tillhandahålls av Hinton och Salakhutdinov där kodaren använder rådata (t.ex. bild) som inmatning och producerar funktion eller representation som utdata och avkodaren använder den extraherade funktionen från kodaren som ingång och rekonstruerar den ursprungliga inmatade rådata som utdata. Kodaren och avkodaren är konstruerade genom att stapla flera lager av RBM. Parametrarna som är involverade i arkitekturen utbildades ursprungligen på ett girigt lager-för-lager-sätt: efter att ett lager av funktionsdetektorer har lärt sig, tröttas de ut som synliga variabler för träning av motsvarande RBM. Nuvarande tillvägagångssätt tillämpar vanligtvis end-to-end-träning med stokastiska nedfartsmetoder . Träning kan upprepas tills vissa stoppkriterier är uppfyllda.
Se även
- Automated machine learning (AutoML)
- Grundfunktion
- Djup lärning
- Funktionsdetektering (datorsyn)
- Särdragsextraktion
- Kärntrick
- Vektorkvantisering
- Variant autokodare