Nee, natuurlijk neem ik dat niet serieus. Er moet toch een grens zijn aan hoe ver je een onderwerp kunt vereenvoudigen. Maar voor de eerste stappen, om de basisconcepten te begrijpen en snel in het onderwerp te komen, kan het misschien acceptabel zijn. En hoe we dit materiaal goed kunnen noemen (opties: 'Machine Learning voor Dummies', 'Data-analyse voor Beginners', 'Algoritmen voor de Kleinsten'), zullen we aan het eind bespreken.
Laten we ter zake komen. Ik heb een aantal praktische programma's in MS Excel geschreven voor de visualisatie en het duidelijke weergave van de processen die plaatsvinden in verschillende methoden van machine learning bij data-analyse. Seeing is believing, tenslotte, zoals de cultuurelleftalingen zeggen, die de meeste van deze methoden hebben ontwikkeld (overigens zijn er zeker uitzonderingen. De krachtige 'Support Vector Machine' of SVM is een uitvinding van onze landgenoot Vladimir Vapnik, van het Moskouse Instituut voor Beheer. 1963, trouwens! Tegenwoordig geeft hij echter les en werkt hij in de VS).
Drie bestanden ter inzage
1. K-means clustering
Dit soort taken valt onder 'unsupervised learning', waarbij we de oorspronkelijke gegevens moeten splitsen in een vooraf bekend aantal categorieĆ«n, maar waarbij we geen 'juiste antwoorden' hebben; deze moeten we uit de gegevens zelf halen. De fundamentale klassieke taak van het vinden van rassen van irisbloemen (Ronald Fisher, 1936!) wordt beschouwd als de eerste stap in dit kennisgebied ā is precies van deze aard.
De methode is vrij eenvoudig. We hebben een set objecten, voorgesteld als vectoren (sets van N getallen). Voor de irissen is dit een set van 4 getallen die de bloem karakteriseren: de lengte en breedte van de buitenste en binnenste delen van de bloembekers, respectievelijk (). Voor de afstand, of maat voor nabijheid tussen objecten, wordt de gebruikelijke Euclidische metric gekozen.
Vervolgens worden willekeurig (of niet willekeurig, zie verder) de clustercentra gekozen, en worden de afstanden van elk object tot de clustercentra berekend. Elk object wordt in deze iteratiefase gemarkeerd als behorende tot het dichtstbijzijnde centrum. Vervolgens wordt het centrum van elk cluster verplaatst naar het gemiddelde van de coƶrdinaten van zijn leden (in de natuurkunde wordt dit ook wel het 'zwaartepunt' genoemd), en de procedure wordt herhaald.
Het proces convergeert vrij snel. Op de afbeeldingen in twee dimensies ziet het er zo uit:
1. Initiƫle willekeurige spreiding van punten op het vlak en het aantal clusters

2. Het instellen van de centra van de clusters en het toewijzen van punten aan hun clusters

3. Het verplaatsen van de coƶrdinaten van de clustercentra, herschikken van de toewijzing van punten, totdat de centra stabiliseren. De bewegingsroute van het clustercentrum naar de eindpositie is zichtbaar.

Op elk moment kunnen nieuwe clustercentra worden ingesteld (zonder een nieuwe spreiding van punten te genereren!) en je kunt zien dat het splitsingsproces niet altijd eenduidig is. Wiskundig betekent dit dat we in de geoptimaliseerde functie (de som van de kwadraten van de afstanden van de punten tot de centra van hun clusters) geen globaal, maar een lokaal minimum vinden. Dit probleem kan worden overwonnen door de begincentra van de clusters niet willekeurig te kiezen, of door mogelijke centra systematisch te onderzoeken (soms is het voordelig om ze precies in een van de punten te plaatsen, dan is er tenminste de garantie dat we geen lege clusters krijgen). In ieder geval heeft een eindige set altijd een exacte ondergrens.
(vergeet niet de macro-ondersteuning in te schakelen. De bestanden zijn op virussen gecontroleerd)
Een beschrijving van de methode op Wikipedia ā
2. Benadering met functies en dataverdeling. Overfitting
De opmerkelijke wetenschapper en popularisator van de wetenschap van gegevens, K.V. Vorontsov, zegt kort over de methoden van machine learning dat het "de wetenschap van het trekken van krommen door punten" is. In dit voorbeeld zullen we patronen in de gegevens vinden met de methode van de kleinste kwadraten.
De techniek van het splitsen van de originele gegevens in "trainings-" en "testset" wordt getoond, evenals het fenomeen van overfitting, of "overtraining" op de gegevens. Bij een juiste benadering zullen we een bepaalde fout hebben op de trainingsgegevens en een iets grotere op de testset. Bij een onjuiste benadering ā exacte afstemming op de trainingsgegevens en een enorme fout op de testset.
(Een bekend feit is dat door N punten een unieke kromme van de N-1de graad kan worden getrokken, en deze manier levert in het algemeen niet het gewenste resultaat op. )
1. We geven de initiƫle spreiding op

2. We verdelen de punten in "trainings-" en "testset" in een verhouding van 70 naar 30.

3. We draw an approximating curve through the training points and see the error it produces on the validation data.

4. We draw an exact curve through the training points and see a monstrous error on the validation data (and zero on the training data, but whatās the use?).

This shows the simplest case with a single split into 'training' and 'validation' subsets; generally, this is done multiple times for better tuning of the coefficients.
Enable macros for proper functionality.
3. Gradient descent and the dynamics of error change.
Here will be the 4-dimensional case and linear regression. The coefficients of linear regression will be determined step by step using the gradient descent method, initially all coefficients are zeros. A separate graph shows the dynamics of error reduction as the coefficients are fine-tuned more accurately. There is an option to view all four 2-dimensional projections.
If the step size of the gradient descent is too large, we can see that every time we jump over the minimum, and it takes more steps to reach the result, although in the end, we will still get there (unless the step is raised too highāthen the algorithm will 'run wild'). The graph of error dependence on the iteration step will not be smooth but 'jumpy'.
1. Generate data, specify the gradient descent step.

2. With the correct choice of gradient descent step, we smoothly and quickly reach the minimum.

3. With an incorrect choice of the gradient descent step, we overshoot the maximum; the error graph is 'jumpy', convergence takes more steps.

en

4. With a completely incorrect choice of the gradient descent step, we move away from the minimum.

(To reproduce the process with the shown values for the gradient descent step, check the 'reference data' box).
How does the esteemed community view this simplification and method of presenting the material? Is it worth translating the article into English?
Bron: habr.com
