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

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

Обучение на модел без код — Teachable Machine

За 20 минути обучавате класификатор на изображения или звуци в браузъра. Какво прави той наистина, защо стигат 40 примера, и защо броят и разнообразието им решават всичко.

Първият собствен модел

Миналия час подготвихте таблица за модел. Преди да пуснем модел върху нея (следващата седмица, в Orange), ще обучите един върху нещо по-осезаемо — снимки или звуци от класната стая. Не с код, а с уеб инструмент на име Teachable Machine, но моделът е истински: невронна мрежа, която след 15 минути разпознава неща, които никой не я е учил да разпознава преди днес.

Целта на часа не е инструментът, а цикълът: събирам данни → обучавам → пробвам → откривам къде греши → подобрявам данните. Този цикъл е един и същ и за Teachable Machine, и за модел с милиард параметъра.

Как работи инструментът

Отваряте teachablemachine.withgoogle.com, натискате Get Started и избирате вид проект. Нищо не се инсталира; обучението се извършва в браузъра ви и снимките не се качват никъде, освен ако не решите да запазите проекта в Google Drive.

ПроектВходОткъде идват примеритеПример за задача
Image Projectснимка (Standard — 224×224)уеб камера или качени файловехимикал / ключове / телефон
Audio Projectзвук на части по 1 секундамикрофон или качени записипляскане / щракане с пръсти / тишина
Pose Projectточки на тялото от камератауеб камеравдигната ръка / скръстени ръце
  1. Класове — всяка колона отляво е един клас. Кръщавате ги смислено (Class 1 не помага на никого).
  2. Примери — Webcam записва кадри, докато държите бутона; Upload приема файлове. Броят за всеки клас се вижда над примерите.
  3. Обучение — Train Model. Под Advanced са епохите (колко пъти минава през примерите) и Under the hood — точност по клас и матрица на грешките.
  4. Тест — панелът Preview показва в реално време лента с увереност за всеки клас.
  5. Експорт — Export Model дава файл (TensorFlow.js, Keras, TensorFlow Lite) или връзка, която може да се вгради в сайт или програма.

Какво става под капака

Обичайното възражение е: нали за обучение трябват десетки хиляди примери? Вярно е — но не за вашата част от работата.

снимка224×224готова мрежаобучена от Googleвърху милиони снимки(не се променя)1280числавашиятслойсе обучаваОбучава се само последната част — затова стигат минути и десетки снимки.
Готовата мрежа превръща снимката в 1280 числа, описващи какво има на нея. Върху тези числа се обучава съвсем малък класификатор.

Трансферно обучение (transfer learning)

Взимаме мрежа, обучена върху огромен набор от общи изображения, и използваме нейното „зрение“ за нова задача, като дообучаваме само последния слой.

Голямата мрежа вече знае какво е ръб, кръг, текстура, лице, метал. Вашите 40 снимки не я учат да вижда — те само ѝ казват кои от вече познатите признаци отличават вашите класове. Всяка снимка става ред от 1280 числа с етикет — точно таблицата от миналия час, само че признаците са направени от мрежата, а не от ваша SQL заявка.

Защо броят и разнообразието решават

  • Балансирани класове — приблизително еднакъв брой примери за всеки клас. При 100 снимки на единия и 15 на другия моделът просто ще предпочита първия.
  • Разнообразие — различен ъгъл, разстояние, осветление, фон, човек. Ако всички снимки на класа са направени на едно и също място, моделът ще научи мястото, не предмета.
  • Условия като при употреба — ако приложението ще се ползва с телефон в коридора, снимките не бива да са само на бюрото до прозореца.
  • Чисти етикети — снимка, попаднала в грешния клас, учи модела на грешното нещо също толкова добре, колкото верните.

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

Увереност, а не истина

Лентата под всеки клас е увереността на модела, а не вероятността да е прав. Модел може да е уверен 98% и да греши — особено когато му покажете нещо, което не прилича на нито един от класовете, с които е обучен.

Няма клас „друго“

Ако сте обучили три класа, моделът задължително ще избере един от трите за всичко, което види — включително за празна стена. Ако приложението трябва да казва „не знам“, това се постига с отделен клас „нищо“ и с праг на увереността, който избирате вие.

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

  • Teachable Machine обучава истински класификатор в браузъра: класове → примери → Train → Preview → Export.
  • Работи с малко примери заради трансферното обучение — готова мрежа прави признаците, вашият слой само ги разделя.
  • Класовете трябва да са балансирани, а примерите — разнообразни и в условията на реалната употреба.
  • Моделът може да научи фона или ръката вместо предмета (пряк път); проверява се с нетипични входове.
  • Процентът е увереност, не точност; без клас „нищо“ моделът винаги избира нещо.