Aprenentatge automàtic sense Python, Anaconda i altres rèptils

No, bé, és clar, no dic seriosament. Hi ha d'haver un límit en la mesura en què és possible simplificar una assignatura. Però per a les primeres etapes, entendre conceptes bàsics i "entrar" ràpidament en el tema, pot ser acceptable. Debatrem com anomenar correctament aquest material (opcions: “Aprenentatge automàtic per a maniquís”, “Anàlisi de dades dels bolquers”, “Algorismes per als més petits”) al final.

Fins al punt. Va escriure diversos programes d'aplicació en MS Excel per a la visualització i representació visual dels processos que es produeixen en diferents mètodes d'aprenentatge automàtic quan s'analitza les dades. Veure és creure, després de tot, com diuen els portadors de la cultura, que va desenvolupar la majoria d'aquests mètodes (per cert, no tots. La "màquina de vectors de suport" més potent, o SVM, màquina de vectors de suport és la invenció de el nostre compatriota Vladimir Vapnik, Institut de Gestió de Moscou, 1963, per cert! Ara, però, ensenya i treballa als EUA).

Tres expedients per revisar

1. K-significa agrupació

Problemes d'aquest tipus es refereixen a "aprenentatge no supervisat", quan hem de dividir les dades inicials en un nombre determinat de categories conegudes per endavant, però no tenim cap nombre de "respostes correctes"; hem d'extreure-les de les mateixes dades. . El problema clàssic fonamental de trobar subespècies de flors d'iris (Ronald Fisher, 1936!), que es considera el primer signe d'aquest camp de coneixement, és precisament d'aquesta naturalesa.

El mètode és bastant senzill. Tenim un conjunt d'objectes representats com a vectors (conjunts de N nombres). En els iris, es tracta de conjunts de 4 números que caracteritzen la flor: la longitud i l'amplada dels lòbuls exterior i interior del periant, respectivament (Els iris de Fischer - Viquipèdia). La mètrica cartesiana habitual es tria com a distància o mesura de proximitat entre objectes.

A continuació, els centres de clúster es seleccionen aleatòriament (o no aleatòriament, vegeu més avall) i es calculen les distàncies de cada objecte als centres de clúster. Cada objecte en un pas d'iteració donat es marca com a pertanyent al centre més proper. Aleshores, el centre de cada clúster es transfereix a la mitjana aritmètica de les coordenades dels seus membres (per analogia amb la física, també s'anomena "centre de massa") i es repeteix el procediment.

El procés convergeix amb força rapidesa. A les imatges en dues dimensions es veu així:

1. Distribució aleatòria inicial de punts del pla i nombre de cúmuls

Aprenentatge automàtic sense Python, Anaconda i altres rèptils

2. Especificació de centres de clúster i assignació de punts als seus clústers

Aprenentatge automàtic sense Python, Anaconda i altres rèptils

3. Trasllat de les coordenades dels centres del clúster, recalculant la filiació dels punts fins que els centres s'estabilitzin. És visible la trajectòria del centre del clúster movent-se a la seva posició final.

Aprenentatge automàtic sense Python, Anaconda i altres rèptils

En qualsevol moment, podeu establir nous centres de clúster (sense generar una nova distribució de punts!) i veure que el procés de partició no sempre és inequívoc. Matemàticament, això vol dir que per a la funció que s'està optimitzant (la suma de les distàncies al quadrat dels punts als centres dels seus cúmuls), no trobem un mínim global, sinó local. Aquest problema es pot superar ja sigui mitjançant una tria no aleatòria dels centres de clúster inicials, o bé enumerant els possibles centres (de vegades és avantatjós situar-los exactament en un dels punts, aleshores almenys hi ha la garantia que no quedarem buits). clústers). En qualsevol cas, un conjunt finit sempre té un ínfim.

Podeu jugar amb aquest fitxer en aquest enllaç (no oblideu activar el suport de macros. Els fitxers s'han analitzat per detectar virus)

Descripció del mètode a la Viquipèdia - mètode k-means

2. Aproximació per polinomis i desglossament de dades. Reformació

Científic i divulgador notable de la ciència de dades K.V. Vorontsov descriu breument els mètodes d'aprenentatge automàtic com "la ciència de dibuixar corbes a través de punts". En aquest exemple, trobarem un patró a les dades utilitzant el mètode dels mínims quadrats.

Es mostra la tècnica de dividir les dades d'origen en "entrenament" i "control", així com un fenomen com el reciclatge o el "reajustament" a les dades. Amb una aproximació correcta, tindrem un cert error en les dades d'entrenament i un error una mica més gran en les dades de control. Si és incorrecte, es tradueix en un ajust precís de les dades d'entrenament i un gran error a les dades de la prova.

(És un fet ben conegut que a través de N punts es pot dibuixar una sola corba de grau N-1, i aquest mètode en el cas general no dóna el resultat desitjat. Polinomi d'interpolació de Lagrange a la Viquipèdia)

1. Estableix la distribució inicial

Aprenentatge automàtic sense Python, Anaconda i altres rèptils

2. Dividim els punts en “entrenament” i “control” en una proporció de 70 a 30.

Aprenentatge automàtic sense Python, Anaconda i altres rèptils

3. Tracem la corba aproximada al llarg dels punts d'entrenament, veiem l'error que dóna a les dades de control

Aprenentatge automàtic sense Python, Anaconda i altres rèptils

4. Tracem una corba exacta pels punts d'entrenament, i veiem un error monstruós a les dades de control (i zero a les dades d'entrenament, però de què serveix?).

Aprenentatge automàtic sense Python, Anaconda i altres rèptils

Es mostra, per descomptat, l'opció més senzilla amb una sola divisió en subconjunts "entrenament" i "control"; en el cas general, això es fa moltes vegades per al millor ajust dels coeficients.

El fitxer està disponible aquí, escanejat per antivirus. Activa les macros per al correcte funcionament

3. Descens del gradient i dinàmica de canvi d'error

Hi haurà un cas de 4 dimensions i una regressió lineal. Els coeficients de regressió lineal es determinaran pas a pas mitjançant el mètode de descens del gradient, inicialment tots els coeficients són zero. Un gràfic separat mostra la dinàmica de la reducció d'errors a mesura que els coeficients s'ajusten cada cop amb més precisió. És possible veure les quatre projeccions bidimensionals.

Si fixeu massa gran el pas de descens del desnivell, podeu veure que cada vegada ens saltarem el mínim i arribarem al resultat en un nombre més gran de passos, tot i que al final encara hi arribarem (tret que endarrerim també el pas de baixada). molt - aleshores l'algoritme anirà "en piques"). I el gràfic de l'error depenent del pas d'iteració no serà suau, sinó "entrecot".

1. Genereu dades, configureu el pas de descens del gradient

Aprenentatge automàtic sense Python, Anaconda i altres rèptils

2. Amb la selecció correcta del pas de descens del gradient, arribem al mínim sense problemes

Aprenentatge automàtic sense Python, Anaconda i altres rèptils

3. Si el pas de descens del gradient no s'ha seleccionat correctament, superem el màxim, el gràfic d'error és "quic", la convergència requereix un nombre més gran de passos

Aprenentatge automàtic sense Python, Anaconda i altres rèptils
и

Aprenentatge automàtic sense Python, Anaconda i altres rèptils

4. Si seleccionem el pas de descens del gradient completament incorrectament, ens allunyem del mínim

Aprenentatge automàtic sense Python, Anaconda i altres rèptils

(Per reproduir el procés utilitzant els valors del pas de descens del gradient que es mostren a les imatges, marqueu la casella "dades de referència").

El fitxer es troba en aquest enllaç, cal que habiliteu les macros, no hi ha virus.

Segons la respectada comunitat, és acceptable aquesta simplificació i mètode de presentació del material? Val la pena traduir l'article a l'anglès?

Font: www.habr.com

Afegeix comentari