Двонаправлена рекурентна нейронна мережа (англ. bidirectional recurrent neural network, BRNN) з'єднують у протилежних напрямках два прихованих шари з однаковим входом. Завдяки такій формі породжувального навчання, вихідний шар рекурентної нейронної мережі може отримувати інформацію з минулих (попередніх) та майбутніх станів (наступних) одночасно.[2] Вони були винайдені в 1997 році Майком Шустером і Кулдіпом Палівалем.[1] BRNN були введені для збільшення кількості вхідної інформації, доступної для мережі. Наприклад, багатошаровий персептрон (MLP) та нейронна мережа з часовою затримкою (TDNNs) мають обмеження на гнучкість вхідних даних, оскільки вони вимагають фіксування вхідних даних. Стандартна рекурентна нейронна мережа (RNN) також має обмеження, оскільки майбутня вхідна інформація не може бути досягнута з поточного стану. Навпаки, BRNN не вимагає фіксації вхідних даних. Більш того, майбутня вхідна інформація доступна з поточного стану.
BRNN особливо корисні, коли наявність контексту вхідних даних покращує результат. Наприклад, при розпізнаванні рукописного тексту, точність може бути посилена розпізнанням букв, розташованих до і після поточної.
Принцип BRNN полягає в тому, щоб розбити нейрони звичайної RNN на два напрямки: один для додатного напрямку часу (подальші стани), а інший для від'ємного напрямку часу (попередні стани). Вихід цих двох станів не пов'язаний з входами станів протилежного напрямку. Загальна структура RNN та BRNN бути зображена на діаграмі. Використовуючи два напрямки часу, може бути використана вхідна інформація з минулого та майбутнього поточного періоду, на відміну від стандартного RNN, що вимагає затримок для включення майбутньої інформації.[1]
BRNN можна навчити, використовуючи подібні алгоритми в порівнянні з RNN, тому що два спрямованих нейрони не мають ніяких взаємодій. Проте, коли застосовується зворотне поширення, потрібні додаткові процеси, оскільки оновлення вхідних і вихідних шарів не можуть бути виконані одночасно. Загальні процедури тренувань полягають у наступному: для форвардного проходу спочатку проходять подальші стани і попередні стани, а потім проходять вихідні нейрони. Для зворотного проходу спочатку проходять вихідні нейрони, після чого передаються подальші і попередні стани. Після проходження вперед і назад, ваги оновлюються.[1]
BRNN застосовується у задача: