Онлайн час в Google Meet
Лого на 91. НЕГ „Проф. Константин Гълъбов“

11. клас · Избираем модул · Урок 20

Експерименти с TensorFlow Playground

Обучаваме невронни мрежи в браузъра: какво показва всяка част на екрана и как се прави експеримент по протокол — променяме едно нещо, наблюдаваме едно число.

Мрежа, която се обучава пред очите ви

Досега мрежите бяха на хартия. Днес ще обучите истински — в браузъра, без инсталация и без код. TensorFlow Playground (playground.tensorflow.org) е уеб страница, на която се вижда всичко от последните пет урока наведнъж: примерите, признаците, слоевете, теглата и грешката, която намалява епоха след епоха.

Целта на часа не е да „накараме мрежата да заработи“, а да проведем няколко експеримента и да запишем какво сме видели. Както в лабораторията по физика: променяме едно нещо, измерваме едно число.

Какво показва екранът

▶ пускане · брояч на епохи · скорост на обучение · активацияДАННИ4 набора, шумПРИЗНАЦИX₁, X₂, X₁², …СКРИТИ СЛОЕВЕ+ / − слоеве и неврониИЗХОДкартина + загубаЧетем отляво надясно: данните минават през признаците и слоевете до изхода.
Четирите области на страницата и лентата с управлението отгоре.
  • Данни (DATA) — четири готови набора от точки в два цвята. Всяка точка е пример с два признака (мястото ѝ) и етикет (цветът). Наборите: две купчинки (Gaussian), кръг в пръстен (Circle), четири квадранта (Exclusive or — това е XOR) и две спирали (Spiral). Плъзгачът Noise добавя шум — разменя цвета на случайни точки.
  • Признаци (FEATURES) — какво получава мрежата за всяка точка. По подразбиране само координатите X₁ и X₂. Останалите (X₁², X₁X₂, sin) са признаци, изчислени на ръка — оставете ги изключени, освен ако задачата не казва друго.
  • Скрити слоеве (HIDDEN LAYERS) — с „+“ и „−“ добавяте и махате слоеве и неврони във всеки слой. Всяко кръгче е неврон, а миниатюрната картинка в него показва как той дели равнината. Линиите са теглата: дебелината е големината, цветът — знакът.
  • Изход (OUTPUT) — голямата картина показва какво казва мрежата за всяка точка от равнината; фонът е предсказанието, точките са примерите. Отгоре са двете числа, които ни интересуват: Training loss и Test loss.
  • Лентата отгоре — бутон ▶ пуска и спира обучението, броячът Epoch показва епохите, Learning rate е скоростта на обучение от урок 17, Activation е активиращата функция (оставете я както е).

Загуба (loss)

Число, което измерва колко греши мрежата — 0 е идеално, около 0,5 е „познава наслуки“. Training loss е грешката върху примерите, с които се учи; Test loss — върху примери, които не е виждала. Второто число е обобщението от урок 15.

Протокол за експеримент

Един експеримент дава отговор на един въпрос. За да е сигурно, че отговорът е заради нашата промяна, а не заради нещо друго:

  1. Запишете въпроса: „Какво става с Test loss, ако…?“
  2. Нагласете всичко и натиснете бутона за нулиране (кръглата стрелка до ▶), за да започнат теглата отначало.
  3. Променете само едно нещо спрямо предишния опит.
  4. Пуснете обучението и го спрете на уговорен брой епохи — например 300. Броячът Epoch е горе вляво.
  5. Запишете Test loss и с едно изречение какво се вижда на картината.
  6. Повторете същия опит още веднъж — теглата тръгват от случайни стойности и резултатът леко се различава.

Какво да очаквате

Не всеки опит трябва да „успее“. Провалът е също резултат: мрежа без скрити слоеве, която не научава кръга, е точно перцептронът от урок 16 и правата, която не стига. Мрежа, която е перфектна върху обучаващите точки и слаба върху тестовите, е примерът, който запомня, вместо да обобщава.

Какво трябва да запомниш

  • В Playground всяка точка е пример: мястото ѝ са признаците, цветът е етикетът.
  • Test loss е числото, което измерва обобщението; Training loss — само запомнянето на примерите.
  • Мрежа без скрити слоеве е един перцептрон и дели само с права.
  • Експериментът е по протокол: една промяна, едно число, уговорен брой епохи, повторение.
  • Резултатът зависи и от случайните начални тегла — един опит не е доказателство.