Първият собствен модел
Миналия час подготвихте таблица за модел. Преди да пуснем модел върху нея (следващата седмица, в Orange), ще обучите един върху нещо по-осезаемо — снимки или звуци от класната стая. Не с код, а с уеб инструмент на име Teachable Machine, но моделът е истински: невронна мрежа, която след 15 минути разпознава неща, които никой не я е учил да разпознава преди днес.
Целта на часа не е инструментът, а цикълът: събирам данни → обучавам → пробвам → откривам къде греши → подобрявам данните. Този цикъл е един и същ и за Teachable Machine, и за модел с милиард параметъра.
Как работи инструментът
Отваряте teachablemachine.withgoogle.com, натискате Get Started и избирате вид проект. Нищо не се инсталира; обучението се извършва в браузъра ви и снимките не се качват никъде, освен ако не решите да запазите проекта в Google Drive.
| Проект | Вход | Откъде идват примерите | Пример за задача |
|---|---|---|---|
| Image Project | снимка (Standard — 224×224) | уеб камера или качени файлове | химикал / ключове / телефон |
| Audio Project | звук на части по 1 секунда | микрофон или качени записи | пляскане / щракане с пръсти / тишина |
| Pose Project | точки на тялото от камерата | уеб камера | вдигната ръка / скръстени ръце |
- Класове — всяка колона отляво е един клас. Кръщавате ги смислено (
Class 1не помага на никого). - Примери —
Webcamзаписва кадри, докато държите бутона;Uploadприема файлове. Броят за всеки клас се вижда над примерите. - Обучение —
Train Model. ПодAdvancedса епохите (колко пъти минава през примерите) иUnder the hood— точност по клас и матрица на грешките. - Тест — панелът
Previewпоказва в реално време лента с увереност за всеки клас. - Експорт —
Export Modelдава файл (TensorFlow.js, Keras, TensorFlow Lite) или връзка, която може да се вгради в сайт или програма.
Какво става под капака
Обичайното възражение е: нали за обучение трябват десетки хиляди примери? Вярно е — но не за вашата част от работата.
Трансферно обучение (transfer learning)
Взимаме мрежа, обучена върху огромен набор от общи изображения, и използваме нейното „зрение“ за нова задача, като дообучаваме само последния слой.
Голямата мрежа вече знае какво е ръб, кръг, текстура, лице, метал. Вашите 40 снимки не я учат да вижда — те само ѝ казват кои от вече познатите признаци отличават вашите класове. Всяка снимка става ред от 1280 числа с етикет — точно таблицата от миналия час, само че признаците са направени от мрежата, а не от ваша SQL заявка.
Защо броят и разнообразието решават
- Балансирани класове — приблизително еднакъв брой примери за всеки клас. При 100 снимки на единия и 15 на другия моделът просто ще предпочита първия.
- Разнообразие — различен ъгъл, разстояние, осветление, фон, човек. Ако всички снимки на класа са направени на едно и също място, моделът ще научи мястото, не предмета.
- Условия като при употреба — ако приложението ще се ползва с телефон в коридора, снимките не бива да са само на бюрото до прозореца.
- Чисти етикети — снимка, попаднала в грешния клас, учи модела на грешното нещо също толкова добре, колкото верните.
Какво показва процентът
Увереност, а не истина
Лентата под всеки клас е увереността на модела, а не вероятността да е прав. Модел може да е уверен 98% и да греши — особено когато му покажете нещо, което не прилича на нито един от класовете, с които е обучен.
Няма клас „друго“
Ако сте обучили три класа, моделът задължително ще избере един от трите за всичко, което види — включително за празна стена. Ако приложението трябва да казва „не знам“, това се постига с отделен клас „нищо“ и с праг на увереността, който избирате вие.
Какво трябва да запомниш
- Teachable Machine обучава истински класификатор в браузъра: класове → примери → Train → Preview → Export.
- Работи с малко примери заради трансферното обучение — готова мрежа прави признаците, вашият слой само ги разделя.
- Класовете трябва да са балансирани, а примерите — разнообразни и в условията на реалната употреба.
- Моделът може да научи фона или ръката вместо предмета (пряк път); проверява се с нетипични входове.
- Процентът е увереност, не точност; без клас „нищо“ моделът винаги избира нещо.