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

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

Невронни мрежи и дълбоко обучение

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

От един неврон към мрежа

В миналия час видяхте на екрана как един неврон никога не научава XOR. Един неврон е една права — и за много задачи правата не стига. Идеята, която спасява положението, е проста: ако подредим няколко неврона в слой и подадем изходите им на следващ слой, всеки следващ слой работи не върху суровите входове, а върху онова, което предишният е открил.

входен слойскрит слойскрит слойизходен слойВсяка връзка е едно тегло — тук те са 3·4 + 4·4 + 4·2 = 36.
Всеки кръг е неврон, всяка линия — тегло. Обучението намира стойностите на всички тегла едновременно.
  • Входен слой — по един „неврон“ за всеки признак на входа. Той не смята нищо, само подава числата.
  • Скрити слоеве — един или повече слоя от истински неврони. „Скрити“, защото никой не вижда изходите им — те са само за вътрешна употреба.
  • Изходен слой — по един неврон за всеки възможен отговор: един за „да/не“, десет за разпознаване на цифра.

Как два слоя решават XOR

Скритият слой построява нови признаци. За XOR стигат два неврона от урок 16: единият е ИЛИ (възбужда се при „поне един вход е 1“), другият е И („и двата са 1“). Изходният неврон гледа само тях: XOR е „ИЛИ, но не И“ — тегло +1 за ИЛИ и −1 за И.

x₁x₂ИЛИ(1, 1, 0)И(1, 1, −1)+1−1yb = 0XOR = ИЛИ, но не И
Мрежа за XOR с познатите тегла. Скритият слой превръща задачата в такава, която една права решава.
ВходИЛИ (скрит 1)И (скрит 2)z = ИЛИ − ИИзход
(0, 0)0000
(0, 1)1011
(1, 0)1011
(1, 1)1100

Скрит признак

Стойността, която изчислява неврон от вътрешен слой. Тук ги нагласихме на ръка (ИЛИ и И), но при истинска мрежа никой не казва на неврона какво да представлява — признакът се появява в хода на обучението.

Дълбоко обучение: какво разпознава всеки слой

Дълбока мрежа

Мрежа с повече от един скрит слой. Оттам идва „дълбоко обучение“ (deep learning). Съвременните мрежи имат десетки и стотици слоеве.

Защо толкова много? Защото всеки слой надгражда предишния. При разпознаване на образи картината е горе-долу такава:

пикселивходен слойръбовепърви скритчастиследващи скритиобектизходен слой
Всеки слой работи върху изхода на предишния и открива нещо по-сложно. Нивата не се задават от човек — появяват се сами.
  • Първият скрит слой гледа пиксели и открива ръбове — светло до тъмно, под различни ъгли.
  • Следващите слоеве съчетават ръбове в части: ъгли, дъги, кръгчета, после око, ухо, колело.
  • Последните слоеве съчетават части в обекти: лице, котка, автомобил.

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

Как се обучава мрежа: грешката се разпределя назад

При един неврон беше ясно: грешката е очакван − получен и поправяме неговите тегла. При мрежата грешката я виждаме само на изхода. Колко е виновно едно тегло дълбоко в първия скрит слой?

Отговорът се нарича обратно разпространение (backpropagation) и идеята му е в името:

  1. Подаваме примера напред през слоевете и получаваме изхода.
  2. Сравняваме го с етикета — това е грешката на изходния слой.
  3. Тръгваме назад: всеки неврон от предишния слой получава част от грешката според това колко е допринесъл за нея (по-голямо тегло към грешния изход — по-голяма „вина“).
  4. Продължаваме назад до първия скрит слой. Сега всеки неврон има своя грешка.
  5. Всяко тегло се поправя малко според своята грешка — както при перцептрона.

Речникът

  • Архитектура — колко слоя, колко неврона във всеки, как са свързани. Избира се от човека.
  • Параметри — всички тегла и отмествания. Намират се от обучението. Броят им е мярката, с която се сравняват моделите („7 милиарда параметъра“).
  • Епоха — както при перцептрона: едно преминаване през всички примери.

Кога мрежата е излишна

За малка таблица с няколко десетки реда мрежа с хиляди тегла ще запомни примерите, без да обобщи. Там решаващото дърво от урок 6 е и по-точно, и обяснимо. Мрежите са незаменими там, където признаците не могат да се опишат от човек: изображения, звук, текст.

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

  • Мрежата има входен, един или повече скрити и изходен слой; всяка връзка е едно тегло.
  • Един неврон е права; скритият слой строи нови признаци, които правят задачата решима с права — така два слоя решават XOR.
  • Дълбока е мрежа с повече от един скрит слой; всеки слой открива нещо по-сложно от предишния (ръбове → части → обекти).
  • Скритите признаци не се задават от човек — появяват се при обучението; затова мрежата трудно се обяснява.
  • При обучението грешката се измерва на изхода и се разпределя назад по слоевете; всяко тегло се поправя малко.