Вчера въртяхме теглата на ръка
В миналия урок намерихте тегла за И и за ИЛИ с опити на хартия. За два входа това е лесно. Един неврон, който гледа снимка 100 на 100 пиксела, има 10 000 тегла. Никой не може да ги налучка. Трябва процедура, която ги настройва сама — по примерите и по грешката, както обещахме в урок 15.
Такава процедура има и е изненадващо кратка. Розенблат я публикува заедно с перцептрона. Нарича се правило на перцептрона и се събира в три реда.
Правилото на перцептрона
- Вземи един обучаващ пример: вход
xи етикетt(очакван изход). - Пресметни изхода на неврона
yс текущите тегла. - Пресметни грешката:
грешка = очакван − получен = t − y. - Поправи всяко тегло:
ново w = старо w + скорост × грешка × x. Отместването се поправя като тегло, чийто вход е винаги 1:ново b = старо b + скорост × грешка.
грешка = t − y (може да е −1, 0 или +1)
w₁ ← w₁ + скорост · грешка · x₁
w₂ ← w₂ + скорост · грешка · x₂
b ← b + скорост · грешкаЗащо това работи
Грешката е +1, когато невронът е казал 0, а е трябвало 1. Тогава сумата z е била твърде малка. Правилото увеличава теглата на входовете, които са били 1 — при следващия път същият вход ще даде по-голяма сума. При грешка −1 всичко е обратно: теглата на активните входове намаляват. Входове с x = 0 не се пипат — те не са участвали в грешката.
При грешка 0 нищо не се променя. Невронът се учи само от грешките си.
Една стъпка на ръка
Обучаваме И. Тегла (1, 1), отместване 0, скорост 1. Пример (0, 1) с етикет 0.
- Сума:
1·0 + 1·1 + 0 = 1, значи изходy = 1. - Грешка:
0 − 1 = −1. w₁ = 1 + 1·(−1)·0 = 1— не се променя, входът беше 0.w₂ = 1 + 1·(−1)·1 = 0— намалява.b = 0 + 1·(−1) = −1.
Нови тегла (1, 0), отместване −1. Проверете: при същия вход (0, 1) сумата сега е −1, изход 0 — вярно.
Епоха и кога процесът спира
Епоха
Едно преминаване през всички обучаващи примери. При четири примера една епоха са четири стъпки.
Една епоха рядко стига — поправката за един пример може да развали друг. Затова примерите се обхождат отново и отново. Обучението спира, когато:
- в цяла епоха няма нито една грешка — невронът дава верен изход за всички примери и повече няма какво да се поправя; или
- е достигнат предварително зададен брой епохи — предпазител за случая, в който грешките никога не изчезват.
Скоростта на обучение
Скорост на обучение (learning rate)
Числото, по което се умножава поправката. Определя колко голяма стъпка прави всяко тегло при грешка.
Представете си, че сте в мъгла и търсите най-ниската точка на долина. Виждате само наклона под краката си и правите стъпка надолу. Колко голяма да е стъпката?
- Твърде малка — всяка поправка е мъничка и трябват стотици епохи, за да се стигне до верните тегла.
- Твърде голяма — поправката прескача целта, следващата грешка я връща в обратната посока, теглата се мятат.
- Подходяща — стига за няколко епохи. Няма формула коя е; пробва се.
При нашите примери с входове 0 и 1 и цели тегла скорост 1 е напълно добра — и позволява да смятаме на ръка. При истински данни с признаци като площ 85 м² или възраст 17 скоростта е малко число, например 0,01, иначе една-единствена грешка променя теглата с десетки.
Какво трябва да запомниш
- Грешка = очакван − получен; за неврон с изход 0/1 тя е −1, 0 или +1.
- Ново тегло = старо + скорост × грешка × вход; отместването се поправя със скорост × грешка.
- Входове, които са били 0, не променят теглото си; при грешка 0 нищо не се променя.
- Епоха е едно преминаване през всички примери; обучението спира при епоха без грешки или при достигнат брой епохи.
- Скоростта на обучение е големината на стъпката: малка — пълзи, голяма — прескача.