Досега правилата ги пишехме ние
В уроци 5–9 всяко решение на програмата беше написано от човек: съветникът по правила, решаващото дърво, минимакс. Програмистът знае правилото и го превежда на C#. Това работи, докато правилото може да се каже с думи.
Опитайте да напишете правилото „това е снимка на котка“ или „това писмо е спам“. Не става. Правилото съществува — вие го прилагате безпогрешно, — но не можете да го изкажете. Точно за такива задачи е машинното обучение: не пишем правилото, а даваме примери и оставяме програмата да го извлече.
Обучаващи примери, обобщение, грешка
Обучаващ пример
Двойка „вход → верен изход“. Входът е това, което програмата ще получава (снимка, писмо, число), изходът е отговорът, който искаме (котка, спам, цена). Верният изход е даден от човек и се нарича етикет.
От урок 11 знаете етикета като „колоната с отговора“ в таблицата от данни. Всеки ред от таблицата е един обучаващ пример.
Обобщение (generalization)
Способността на наученото правило да дава верен отговор за нов вход, който не е бил сред примерите. Това е целта. Правило, което помни само примерите, е безполезно.
Грешка
Разликата между отговора, който правилото дава, и верния етикет. Обучението е процес, който променя правилото така, че грешката върху примерите да намалява.
Как се извлича правило от примери
Вижте един пример: 3 → 7. Кое е правилото? Има поне четири кандидата, които го обясняват:
| Кандидат | 3 → ? | 5 → ? | Оцелява ли след 5 → 11 |
|---|---|---|---|
| n + 4 | 7 | 9 | не |
| 2n + 1 | 7 | 11 | да |
| 3n − 2 | 7 | 13 | не |
| n² − 2 | 7 | 23 | не |
Един пример не стига — четири различни правила го обясняват. Вторият пример 5 → 11 отсява три от тях. Така работи и машината: започва с някакво правило, проверява го върху примерите, вижда къде греши и го поправя. С всеки пример множеството от правила, които „оцеляват“, се свива.
- Започни с някакво правило (в началото — произволно).
- Приложи го върху обучаващ пример и сравни с етикета.
- Ако има грешка, промени правилото така, че да я намали.
- Повтори с всички примери, докато грешките изчезнат или спрат да намаляват.
Кога примерите са достатъчни
Машината намира правило, което пасва на примерите. Дали то е вярното правило зависи изцяло от примерите. Три условия:
Разнообразие
Ако всички примери с етикет „да“ са числата 4, 8, 12, 20, две правила пасват еднакво добре: „четно“ и „дели се на 4“. Примерът 6 решава спора. Липсва ли той, машината може да научи грешното правило, без някой да разбере. Това е и поуката от урок 13: изкривената извадка дава изкривено правило.
Брой
Колкото повече кандидати за правило има, толкова повече примери трябват, за да остане само един. За „2n + 1“ стигат два-три примера. За „това е котка“ — десетки хиляди снимки, защото правилото е неизмеримо по-сложно.
Без противоречия
Ако сред примерите има 4 → да и по-нататък 4 → не, никое правило не може да пасне на всички. Такива противоречия идват от грешки при етикетирането — точно проблемите, които чистехме в урок 12.
| Достатъчни примери | Недостатъчни примери | |
|---|---|---|
| Разнообразие | покриват всички важни случаи | всички „да“ си приличат по нещо странично |
| Брой | повече от кандидатите за правило | две-три двойки за сложна задача |
| Етикети | един вход — един отговор | един и същ вход с различни отговори |
| Резултат | правилото обобщава | правилото пасва на примерите, но греши на новото |
Какво трябва да запомниш
- При машинното обучение правилото не се пише, а се извлича от примери „вход → верен изход“.
- Верният изход в примера се нарича етикет и е даден от човек — затова говорим за обучение с учител.
- Обучението променя правилото така, че грешката върху примерите да намалява.
- Целта е обобщение — верен отговор за вход, който не е бил сред примерите.
- Примерите са достатъчни, когато са разнообразни, достатъчно на брой и без противоречия.