NI-ROZ / ANI-ROZ

Metodika cvičeníTeacher notes

Začněte obrazem a ručním pokusem. V první půlhodině neodvozujte vlastní čísla. Studenti nejprve potřebují rozlišit původní body, jejich projekce a ztracené kolmé odchylky.Start with an image and manual experiment. Do not derive eigenvalues in the first half-hour. Students first need to distinguish original points, their projections and lost perpendicular displacements.

RozvrženíSchedule

0–15 minDBSCAN a SVM jako krátké ukázkyDBSCAN and SVM as brief examples
15–35 minKrokování projekce a ruční rotace osyProjection steps and manual axis rotation
35–45 minRekonstrukce a ztracený směrReconstruction and the lost direction
45–60 minProtipříklady, centrování a měřítkoCounterexamples, centring and scale
60–70 minProjekce, variance, kovarianceProjection, variance and covariance
70–85 minPCA skutečných obrázkůPCA on real images
85–90 minKrátký závěrBrief conclusion

Číselná vodítkaNumerical guidance

Výchozí syntetický mrak má 480 bodů a seed 42. Jeho maximum je na 35.5427°, s výběrovou variancí 5.879041 a podílem 94.0758 %. Opačná orientace osy je rovnocenná.The default synthetic cloud has 480 points and seed 42. Its maximum is at 35.5427°, with sample variance 5.879041 and retained fraction 94.0758%. Reversing the axis orientation is equivalent.

DBSCAN má ve výchozím nastavení ε = 0,18 a min_samples = 6. Na našich 264 bodech vyjdou 2 shluky a 14 šumových bodů. To jsou výsledky našich dat, nikoli přepis čísel původního videa.Default DBSCAN uses ε = 0.18 and min_samples = 6. Our 264 points yield 2 clusters and 14 noise points. These results belong to our data, not the original reel.

Tři vlastní grafy porovnávají druhý hlavní směr, směr otočený o 45° od PC1 a PC1. Zachovávají přibližně 5,9 %, 50,0 % a 94,1 % rozptylu stejných bodů.Our three plots compare PC2, a direction 45° from PC1, and PC1. They retain approximately 5.9%, 50.0% and 94.1% of the variance of the same points.

Na co dát pozorPoints to watch

Hodnocení a navazující práceAssessment and extensions

Orientačně 10 bodů: 2 za ruční měření, 2 za vysvětlení projekce a rekonstrukce, 2 za DBSCAN, 2 za protipříklady a jednotky, 2 za čestné rozlišení variance, MSE a čitelnosti. Důležitější je zdůvodnění než nejvyšší číslo.An optional 10-point rubric: 2 for manual measurements, 2 for projection and reconstruction reasoning, 2 for DBSCAN, 2 for counterexamples and units, and 2 for distinguishing variance, MSE and readability. Reasoning matters more than the highest number.

Rozšíření: PCA před klasifikací v pipeline, výběr počtu složek pouze uvnitř validačního protokolu, metriky zachování vzdáleností, DBSCAN s různými hustotami. U textur dělte podle zdrojových snímků nebo sekvencí.Extensions: PCA before classification in a pipeline, component selection inside validation only, distance-preservation measures, and DBSCAN with varying densities. For textures, split by source image or sequence.

Původ materiálu a zdrojeProvenance and sources

Podnětem jsou tři videa Andrewa Tanga (@ml.swe). Ve výkladu používáme vlastní programy a vlastní syntetické body. Originály zůstávají pouze v odkazech a citacích pod souvisejícími slidy. Nový distribuční balík neobsahuje kopie videí ani převzaté snímky.Three videos by Andrew Tang (@ml.swe) inspired these topics. The explanations use our own programs and synthetic points. Originals appear only as links and citations below the related slides. The new distribution package contains no copied clips or source frames.

HTML, CSS a JavaScript jsou editovatelné. Přesná syntetická data jsou v examples/datasets.json. Odkazy a autorství zdrojových videí jsou v assets/sources.json. Starší cvičení zůstává v archive/ml-basics-20261018.HTML, CSS and JavaScript are editable. Exact synthetic points are in examples/datasets.json. Source-video URLs and attribution are recorded in assets/sources.json. The previous lab remains in archive/ml-basics-20261018.

Vlastní vektory v klikátkuEigenvectors in the interactive plot

Přepínač je zpočátku vypnutý. Odkryjte ho až po ručním hledání osy. Modrá šipka a hodnoty u₁, λ₁ patří první složce, fialová dvojice u₂, λ₂ druhé. Oranžová osa je směr zvolený studentem. Její otáčení nemění kovarianční matici ani její vlastní vektory a čísla. Změna dat, jednotek či standardizace je přepočítá.The toggle starts off. Reveal it after students search manually. The blue arrow and values u₁, λ₁ belong to PC1. The purple pair u₂, λ₂ belongs to PC2. The orange axis is the student’s chosen direction. Rotating it does not change the covariance matrix or its eigenvectors and eigenvalues. Changing data, units or standardization recomputes them.

Vypisované vektory mají normu 1. Šipky používají shodnou ilustrační délku pro čitelnost, jejich délky nepředstavují vlastní čísla. Znaménko vlastního vektoru lze obrátit. U kruhového mraku jsou vlastní čísla stejná a zobrazená báze je jen jedna z mnoha rovnocenných voleb.The reported vectors have norm 1. Arrows use the same illustrative display length for readability. Their lengths do not represent the eigenvalues. An eigenvector’s sign may be reversed. The circular cloud has equal eigenvalues, so the displayed basis is only one of many equally valid choices.

Číselně ověřujte Cuᵢ = λᵢuᵢ a u₁ᵀu₂ = 0. Při porovnávání s knihovnou připusťte opačná znaménka a u shodných vlastních čísel i jinou ortonormální bázi.Check Cuᵢ = λᵢuᵢ and u₁ᵀu₂ = 0 numerically. When comparing with a library, allow opposite signs and, for equal eigenvalues, a different orthonormal basis.

NumPy: symmetric eigenproblem and normalized eigenvectors

Geometrie na slidu 4Geometry on slide 4

Dvě klikátka používají stejných 160 syntetických bodů: 60 ve vnitřní třídě a 100 ve vnějším prstenci, seed 23. V první záložce studenti otáčejí a posouvají přímku. Ve druhé volí střed c = (cₓ, cᵧ), příznak z = (x − cₓ)² + (y − cᵧ)² a výšku h vodorovné roviny. Hranice z = h odpovídá kružnici o poloměru √h ve 2D.Both examples use the same 160 synthetic points: 60 in the inner class and 100 in the outer ring, seed 23. In the first tab, students rotate and shift a line. In the second, they choose centre c = (cₓ, cᵧ), feature z = (x − cₓ)² + (y − cᵧ)² and horizontal plane height h. Boundary z = h corresponds to a circle of radius √h in 2D.

Výchozí střed je (0, 0) a výška 1,44. Na těchto bodech dává kružnice 0 chyb. Posun středu nebo výšky může chyby přidat. Rotace kamery mění pouze ortografický pohled, nikoli příznaky, třídy nebo predikce. Křížky označují aktuální chyby a původní barvy stále označují skutečné třídy.The default centre is (0, 0) and height is 1.44. The circle makes 0 errors on these points. Changing the centre or height can introduce errors. Camera rotation changes only the orthographic view, not features, labels or predictions. Crosses mark current errors. Original point colours still encode true classes.

Ukázka hranice nastavuje ručně. Neřeší optimalizaci SVM, maximální margin ani obecný RBF kernel. Počet chyb na zobrazených bodech není vyhodnocení na nezávislém testu. Odkaz na původní video je v citaci pod slidem. Vzorce jsou zpočátku sbalené.The example sets boundaries manually. It does not solve SVM optimization, maximum margin or a general RBF kernel. Errors on displayed points do not constitute evaluation on an independent test set. The original video is linked in the citation below the slide. Equations start collapsed.

SVM kernel boundary examples · scikit-learn

Vysvětlení pojmů pro studentyExplaining terms to students

Pod každým slidem je rozbalovací výklad. Souvislá verze je v odkazu Výklad. U slidu 12 začněte k = 0: všechny rekonstrukce jsou společný trénovací průměr. Pak postupně přidávejte složky. V záložce Co je složka? odlište společný vzor uⱼ, koeficient zⱼ jednoho obrázku a vlastní číslo λⱼ jako rozptyl trénovacích koeficientů.Each slide has an expandable explanation. Guide opens the continuous version. Start slide 12 at k = 0: all reconstructions are the shared training mean. Then add components in order. In What is a component?, distinguish shared pattern uⱼ, score zⱼ for one image, and eigenvalue λⱼ as variance of training scores.

Barevné vzory ukazují kladné a záporné váhy, nikoli třídy. Všechny tři používají společnou barevnou škálu. Zobrazení šedých obrázků mapuje vyšší pixelovou hodnotu na tmavší odstín. Při tvrzení o úspoře paměti oddělte k souřadnic každého obrázku od společného modelu, který obsahuje průměr a naučené směry.Coloured patterns show positive and negative weights, not classes. All three use a shared colour scale. Grayscale image display maps larger pixel values to darker shades. When discussing storage, distinguish k coordinates per image from the shared model containing the mean and learned directions.

Krokované scényStep-by-step scenes

Slide 2 používá stejné DBSCAN parametry i data jako slide 3. Růst ukazuje frontu jádrových bodů prvního shluku. Posuvník počítá zpracovaná jádra, ne body celého datasetu. Krok 3 teprve ukáže celý výsledek. Animace se po opuštění slidu zastaví.Slide 2 uses the same DBSCAN parameters and data as slide 3. Expansion follows the core-point queue of the first cluster. The slider counts processed cores, not every point in the dataset. Step 3 shows the complete result. Animation stops when you leave the slide.

Na slidu 5 přepínejte původní body, kolmou projekci a samostatnou 1D reprezentaci. Posuvník mění směr a skutečný rozptyl. Na slidu 7 zůstává stejné měřítko i data a mění se jen osa. Výpočet používá všech 480 bodů.On slide 5, switch between original points, perpendicular projection and the separate 1D representation. The slider changes direction and actual variance. Slide 7 keeps the same data and scale and changes only the axis. All 480 points enter the calculation.

Volba počtu složekChoosing the component count

Na slidu 13 jsou grafy propojené se stejným k a stejným obrázkem jako v předchozí ukázce. V horním grafu mají zelené sloupce index j ≤ k. Dolní graf používá součet jejich podílů. Změna obrázku ovlivní rekonstrukci a její MSE, nikoli spektrum naučené na tréninku. Tlačítka prahů hledají nejmenší k s podílem alespoň 90 %, 95 % nebo 99 %.Slide 13 links its plots to the same k and selected image as the preceding example. Green bars in the upper plot have index j ≤ k. The lower plot sums their fractions. Changing the image affects reconstruction and its MSE, not the training spectrum. Threshold buttons find the smallest k reaching at least 90%, 95% or 99%.

Průměr a směry jsou společná část modelu, kterou musíme uchovat navíc k souřadnicím obrázku. Menší k samo o sobě neurčuje skutečnou velikost komprimovaného souboru. Pro výběr k v klasifikaci použijte validační protokol. Prohlížení těchto deseti obrázků není konečné testování klasifikátoru.The shared mean and directions must be stored in addition to each image’s coordinates. A smaller k alone does not specify the size of an actual compressed file. Use a validation protocol to select k for classification. Inspecting these ten images is not final classifier testing.

Pseudokódy všech ukázekPseudocode for all examples