1   2   3   4   5   6   7   8   9   ...   23
Ім'я файлу: Богайчук Нейронні мережі.docx
Розширення: docx
Розмір: 1578кб.
Дата: 14.03.2021
скачати
Пов'язані файли:
strategichniy_menedzhment_.doc

Типи нечислових змінних



Можна виділити два основних типи нечислових змінних: впорядковані (звані також ординальні - від англ. Order - порядок) і категоріальні. В обох випадках змінна відноситься до одного з дискретного набору класів . Але в першому випадку ці класи впорядковані - їх можна ранжувати:

, тоді як у другому така впорядкованість відсутня [30]. Як приклад упорядкованих змінних можна привести порівняльні категорії: погано

  • добре - відмінно, або повільно - швидко. Категоріальні змінні просто позначають один з класів, є іменами категорій. Наприклад, це можуть бути імена людей або назви кольорів: білий, синій, червоний.



      1. Кодування ординальних змінних



Ординальні змінні ближчі до числової формі, тому що числовий ряд також впорядкований. Відповідно, для кодування таких змінних залишається лише поставити у відповідність номерам категорій такі числові значення, які зберігали б існуючу впорядкованість. Природно, при цьому є велика свобода вибору - будь-яка монотонна функція від номера класу породжує свій спосіб кодування. Яка ж з нескінченного різноманіття монотонних функцій - найкраща?

Відповідно до викладеного вище загального принципу, ми повинні прагнути до того, щоб максимізувати ентропію закодованих даних. При використанні сигмоідної функцій активації всі вихідні значення лежать в кінцевому інтервалі - зазвичай [0,1] або [-1,1]. З усіх статистичних функцій розподілу, визначених на кінцевому інтервалі, максимальну ентропію має рівномірний розподіл.

Що стосується даного випадку, кодування змінних числовими значеннями повинно призводити, по можливості, до рівномірного заповнення одиничного інтервалу закодованими прикладами. (Захоплюючи заодно і етап нормування) При такому способі "оцифровування" все приклади будуть нести приблизно однакове інформаційне навантаження.

Виходячи з цих міркувань, можна запропонувати наступний практичний рецепт кодування ординальних змінних. Одиничний інтервал розбивається на n відрізків - по кількості класів - з довжинами пропорційними числу прикладів кожного класу в навчальній вибірці:

, де - число прикладів класу , а - загальне число прикладів. Центр кожного такого відрізка буде чисельним значенням для відповідного ординального класу (див. Рис. 1.1) [30].




Рис 1.1 Ілюстрація способу кодування кардинальних змінних з урахуванням кількості прикладів кожної категорії.

      1. Кодування категоріальних змінних



В принципі, категоріальні змінні також можна закодувати описаним вище способом, пронумерувавши їх довільним чином. Однак, таке нав'язування

неіснуючої впорядкованості тільки ускладнить вирішення завдання. Оптимальне кодування не повинно спотворювати структури співвідношень між класами. Якщо класи не впорядковані, така ж повинна бути і схема кодування.

Найбільш природною виглядає і найчастіше використовується на практиці двійкове кодування типу "n -> n", коли імена n категорій кодуються значеннями n бінарних нейронів, причому перша категорія кодується як (1,0,0,…,0) , друга, відповідно – (0,1,0,…,0) і т.д. аж до n-ної: (0,0,0,…,1). (Можна використовувати біполярну систему кодування, в якій нулі замінюються на "-1".) [30]. Легко переконатися, що в такому симетричному кодуванні відстані між усіма векторами-категоріями рівні.

Таке кодування, однак, не оптимально в разі, коли представлені класи істотно розрізняються числом прикладів. В цьому випадку, функція розподілу значень змінної вкрай неоднорідна, що істотно знижує інформативність цієї змінної. Тоді має сенс використовувати більш компактний, але симетричний код n -> m , коли імена n класів кодуються m-бітний двійковим кодом. Причому, в новому кодуванні активність кодуючих нейронів повинна бути рівномірна: мати приблизно однакове середнє за прикладами значення активації. Це гарантує однакову значимість ваг, що відповідають різним нейронам.

Як приклад розглянемо ситуацію, коли один з чотирьох класів (наприклад, клас С1) якоїсь категоріальної змінної представлений набагато більшим числом прикладів, ніж інші: . . Просте кодування n ->

n призвело б до того, що перший нейрон активувався б набагато частіше за

інших. Відповідно, ваги нейронів що залишилися мали б менше можливостей для навчання. Цієї ситуації можна уникнути, закодувавши чотири класи двома бінарними нейронами наступним чином: , що забезпечує рівномірне "завантаження" кодуючих нейронів [31].

      1. 1   2   3   4   5   6   7   8   9   ...   23

        скачати

© Усі права захищені
написати до нас