Мрежа, която се обучава пред очите ви
Досега мрежите бяха на хартия. Днес ще обучите истински — в браузъра, без инсталация и без код. TensorFlow Playground (playground.tensorflow.org) е уеб страница, на която се вижда всичко от последните пет урока наведнъж: примерите, признаците, слоевете, теглата и грешката, която намалява епоха след епоха.
Целта на часа не е да „накараме мрежата да заработи“, а да проведем няколко експеримента и да запишем какво сме видели. Както в лабораторията по физика: променяме едно нещо, измерваме едно число.
Какво показва екранът
- Данни (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.
Протокол за експеримент
Един експеримент дава отговор на един въпрос. За да е сигурно, че отговорът е заради нашата промяна, а не заради нещо друго:
- Запишете въпроса: „Какво става с Test loss, ако…?“
- Нагласете всичко и натиснете бутона за нулиране (кръглата стрелка до ▶), за да започнат теглата отначало.
- Променете само едно нещо спрямо предишния опит.
- Пуснете обучението и го спрете на уговорен брой епохи — например 300. Броячът Epoch е горе вляво.
- Запишете Test loss и с едно изречение какво се вижда на картината.
- Повторете същия опит още веднъж — теглата тръгват от случайни стойности и резултатът леко се различава.
Какво да очаквате
Не всеки опит трябва да „успее“. Провалът е също резултат: мрежа без скрити слоеве, която не научава кръга, е точно перцептронът от урок 16 и правата, която не стига. Мрежа, която е перфектна върху обучаващите точки и слаба върху тестовите, е примерът, който запомня, вместо да обобщава.
Какво трябва да запомниш
- В Playground всяка точка е пример: мястото ѝ са признаците, цветът е етикетът.
- Test loss е числото, което измерва обобщението; Training loss — само запомнянето на примерите.
- Мрежа без скрити слоеве е един перцептрон и дели само с права.
- Експериментът е по протокол: една промяна, едно число, уговорен брой епохи, повторение.
- Резултатът зависи и от случайните начални тегла — един опит не е доказателство.