Яка модель глибокого навчання може класифікувати категорії, які не є взаємовиключними


9

Приклади: у мене є речення в описі посади: "Старший інженер Java у Великобританії".

Я хочу використовувати модель глибокого навчання, щоб передбачити її як 2 категорії: English і IT jobs. Якщо я використовую традиційну модель класифікації, вона може передбачити лише 1 мітку з softmaxфункцією на останньому шарі. Таким чином, я можу використовувати 2 модельні нейронні мережі для прогнозування "Так" / "Ні" для обох категорій, але якщо у нас більше категорій, це занадто дорого. Тож у нас є якась модель поглибленого або машинного навчання, щоб передбачити одночасно 2 чи більше категорій?

"Редагувати": з 3 мітками за традиційним підходом вона буде закодована [1,0,0], але в моєму випадку вона буде закодована [1,1,0] або [1,1,1]

Приклад: якщо у нас є 3 мітки, і речення можуть відповідати всім цим міткам. Отже, якщо вихід з функції softmax дорівнює [0,45, 0,35, 0,2], ми повинні класифікувати його на 3 мітки або 2 мітки, а може бути один? Основна проблема, коли ми це робимо, це: який хороший поріг класифікувати на 1, 2 або 3 мітки?


Ми повинні використовувати сигмоїдну функцію замість функції softmax. Він може призначити декілька класів точкам даних.
NITISH MAHAJAN

Відповіді:


6

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

Вам потрібно змінити втрату на двійкову кросцентропію, оскільки категорична перехресна ентропія лише отримує втрати від прогнозування позитивних цілей. Щоб зрозуміти це, подивіться формулу категоричної втрати кросцентропії на одному прикладіi (індекси класів є j):

Li=jti,jlog(pi,j)

У звичайному режимі багатокласового використання ви використовуєте софтмакс, так що передбачення для правильного класу безпосередньо залежить від прогнозів для інших класів. Якщо ви заміните софтмакс сигмоїдом, це вже не відповідає дійсності, тому негативні приклади (деti,j=0) більше не використовуються у навчанні! Ось чому вам потрібно перейти на бінарну кросцентропію, яка використовує як позитивні, так і негативні приклади: Li=jti,jlog(pi,j)j(1ti,j)log(1pi,j)


чому нам потрібно використовувати двійкову кросцентропію замість категоричної кросцентропії як функцію втрати? ви можете пояснити більше? Зараз я використовую активацію сигмоїдів @robintibor
voxter

Я додав пояснення до відповіді @voxter
robintibor

Блискуче! Дякую. Крім того, чи можете ви надати кілька документів або навчальних посібників, які пояснюють більше математики щодо функцій у поглибленому навчанні, як, як ви мені пояснили?
voxter

1
Чудово. Ці підручники можуть допомогти: neuralnetworksanddeeplearning.com deeplearning.net/tutorial deeplearning.stanford.edu/tutorial
robintibor
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.