Deep Learning: Поєднання глибокої сверточной нейронної мережі з рекурентної нейронної мережею

Представляємо вам завершальну статтю з циклу по Deep Learning, в якій відображені підсумки роботи по навчанню ДБНС для зображень з певних областей на прикладі розпізнавання і тегів елементів одягу. Попередні частині ви знайдете під катом.



Цикл статей «Deep Learning»
1. Порівняння фреймворків для символьного глибокого навчання.
2. Transfer learning і тонка настройка глибоких згорткових нейронних мереж.
3. Поєднання глибокої сверточной нейронної мережі з рекурентної нейронної мережею.

Примітка: далі розповідь буде вестися від імені автора.

Введення
Якщо говорити про роль одягу в суспільстві, розпізнавання речей може мати безліч областей застосування. Наприклад, робота Лю та інших авторів, присвячена визначенню та пошуку немаркованих предметів одягу на зображеннях, допоможе розпізнавати найбільш схожі елементи в базі даних електронної комерції. Янг і Ю дивляться на процес розпізнавання елементів одягу з іншого боку: вони вважають, що цю інформацію можна використати в контексті відеоспостереження, для виявлення підозрюваних у злочинах.

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

На цю роботу мене надихнули недавні удосконалення в області машинного перекладу, завдання яких полягає в перекладі окремих слів або пропозицій. Тепер можна перекладати набагато швидше за допомогою рекурентних нейромереж (РНС), досягаючи при цьому високої швидкості. Кодер РНС читає початковий тег або мітку і перетворює її в векторне подання фіксованої довжини, яке, в свою чергу, використовується в якості початкового прихованого стану декодера РНС, формує тег або мітку. Ми пропонуємо піти по цьому ж шляху, використовуючи глибоку сверточную нейромережа (ДБНС) замість кодера РНС. Протягом останніх років стало ясно, що мережі ДБНС можуть створювати достатнє представлення вхідного зображення, вбудовуючи її в вектор фіксованої довжини, який можна використовувати для різних завдань. Можна природним чином використовувати ДБНС в якості кодувальника зображення: для цього спочатку потрібно провести попереднє навчання задачі класифікації зображень, використовуючи прихований рівень в якості входу для декодера РНС, формує теги.


Модель РНС-СНР для створення тегів зображень одягу

В цій роботі буде використано заздалегідь навчений по ImageNet модель GoogLeNet для вилучення компонентів СНР з набору даних ТОЩО. Потім функції СНР для навчання моделі РНС з тривалою короткостроковою пам'яттю для передбачення тегів ІН.


Архітектура GoogLeNet

Дані
Використовуємо набір даних ІН: повний пайплайн для розпізнавання і класифікації одягу людей в природних умовах. Це рішення може застосовуватися в різних областях, наприклад, в електронній комерції, при проведенні заходів, в інтернет-рекламі і так далі. Пайплайн складається з декількох етапів: розпізнавання частин тіла, різних каналів і візуальних атрибутів. ІН визначає 15 класів одягу і вводить еталонний набір оціночних даних для її класифікації, що складається більше ніж з 80 000 зображень. Також, ми використовуємо набір даних ТОЩО, щоб передбачати теги одягу для зображень, які раніше не були проаналізовані.

Зображення з тренувальних і тестових наборів даних володіють абсолютно різними показниками: здатністю, співвідношенням сторін, квітами і так далі. Для нейронних мереж потрібні вхідні дані фіксованого розміру, тому всі зображення ми перевели у формат: 3 × 224 × 224.

Одним з недоліків нерегулярних нейромереж є їх надмірна гнучкість: вони однаково добре навчаються розпізнавати як деталей одягу, так і перешкод, з-за чого підвищується ймовірність надмірної підгонки. Ми застосовуємо регуляризацию Тихонова (або L2-регуляризацию), щоб уникнути цього. Втім, навіть після цього був значний розрив у продуктивності між навчанням і перевіркою зображень ТОЩО, що вказує на надмірну підгонку в процесі тонкої настройки. Щоб усунути цей ефект, ми застосовуємо додаток даних для набору даних зображень ІН.

Існує безліч способів доповнення даних, наприклад, дзеркальне відображення по горизонталі, випадкова обрізка, зміна кольорів. Оскільки колірна інформація цих зображень дуже важлива, ми застосовуємо лише поворот зображень на різні кути: на 0, 90, 180 і 270 градусів.


Доповнені зображення ІН

Тонка настройка GoogleNet для ІН
Щоб впоратися з проблемою передбачення тегів ІН, ми йдемо за сценарієм тонкої настройки з попередній частині. Використана нами модель GoogLeNet спочатку була навчена на наборі даних ImageNet. Набір даних ImageNet містить близько 1 млн природних зображень і 1000 міток/категорій. У нашому розміченому наборі даних ІН міститься близько 80 000 зображень, що відносяться до категорії «одяг», і 15 міток/категорій. Набору даних ІН недостатньо для навчання настільки складної мережі, як GoogLeNet. Тому ми використовуємо вагові дані з моделі GoogLeNet, навченої по набору даних ImageNet. Проводимо тонку настройку всіх рівнів заздалегідь підготовлену моделі GoogLeNet шляхом безперервного зворотного поширення.


Заміна вхідного шару заздалегідь навченої мережі GoogLeNet на зображення ІН

Навчання РНС з тривалою короткостроковою пам'яттю
У цій роботі ми використовуємо модель РНС з тривалою короткостроковою пам'яттю, що володіє високою продуктивністю при виконанні послідовних завдань. В основі цієї моделі — комірка пам'яті, що кодує знання про спостережуваних вхідних даних в кожен момент часу. Поведінка осередку управляється затворами, в ролі яких використовуються шари, застосовувані мультиплікативно. Тут використовується три затвора:

  • забути поточне значення клітинки (забути затвор f),
  • прочитати вхідне значення клітинки (ввести затвор i),
  • вивести нове значення клітинки (вивести затвор o).

Рекурентна нейромережа з тривалою короткостроковою пам'яттю

Блок пам'яті містить клітинку «з», керовану за допомогою трьох затворів. Синім показано рекурентні підключення: висновок «m» в момент часу (t–1) подається назад в пам'ять під час «t» через три затвора; значення клітинки подається назад через затвор «забути»; передбачене слово в момент часу (t–1) подається назад на додаток до виходу пам'яті «m» у момент часу t в Softmax для передбачення тега.

Модель з тривалою короткостроковою пам'яттю навчається для передбачення основних тегів для кожного зображення. В якості входу використовуються функції ДБНС ІН (отримані з допомогою GoogLeNet). Потім виконується навчання моделі з тривалою короткостроковою пам'яттю (LSTM) на основі поєднань цих функцій ДБНС і міток для заздалегідь оброблених зображень.

Копія пам'яті LSTM створюється для кожного зображення LSTM і для кожної мітки таким чином, що всі LSTM використовують однакові параметри. Висновок (m)×(t−1) LSTM в момент часу (t -1) подається в LSTM в момент часу (t). Всі рекурентні підключення перетворюються на попереджувальні підключення в остаточній версії. Ми бачили, що подача зображення в кожен етап часу в якості додаткового введення дає незадовільні результати, оскільки мережа сприймає перешкоди на зображеннях і виробляє надмірну підгонку. Втрати знижуються по відношенню до всіх параметрів LSTM, верхньому рівню сверточной нейромережі вставки зображень і вбудовуванню міток.


Архітектура ДБНС-РНС для передбачення тегів ІН

Результати
Ми застосовуємо описану вище модель для передбачення тегів ІН. Точність прогнозів тегів в цій моделі швидко підвищується в першій частині ітерацій і стабілізується приблизно після 20 000 ітерацій.

Кожне зображення в наборі даних ІН складається тільки з унікальних типів одягу, ні зображень, на яких поєднуються різні типи одягу. Незважаючи на це, при тестуванні зображень з декількома типами одягу наша навчена модель досить точно створює теги для цих не оброблених раніше тестових зображень (точність склала близько 80%).

Нижче показаний приклад вихідних даних нашого передбачення: на тестовому зображенні ви бачите людину в костюмі і людини у футболці.


Тестове зображення, не анализированное раніше

На рисунку нижче показано передбачення тегів GoogLeNet з допомогою моделі GoogLeNet з навчанням за ImageNet.


Передбачення тегів GoogLeNet для тестового зображення з допомогою моделі GoogLeNet з навчанням за ImageNet

Як видно, передбачення по цій моделі не дуже точне, оскільки тестове зображення отримує тег «віндзорський краватку». На рисунку нижче показано передбачення тегів ІН за допомогою описаної вище моделі РНС-ГНСС з тривалою короткостроковою пам'яттю. Як видно, передбачення по цій моделі дуже точне, оскільки наше тестове зображення отримує теги «сорочка, футболка, верхня частина тулуба, костюм».


Передбачення тегів GoogLeNet для тестового зображення з допомогою моделі РНС-ГНСС з тривалою короткостроковою пам'яттю

Наша мета — розробка моделі, здатної передбачати теги категорій одягу для зображень одягу з високою точністю.

Висновок
У цій роботі ми порівнюємо точність передбачення тегів моделі GoogLeNet і моделі РНС-ГНСС з тривалою короткостроковою пам'яттю. Точність передбачення тегів другої моделі значно вище. Для її навчання використовували відносно невелика кількість навчальних ітерацій, близько 10 000. Точність прогнозів другої моделі швидко підвищується з збільшенням кількості навчальних ітерацій і стабілізується приблизно після 20 000 ітерацій. Для цієї роботи ми використовували тільки один ДП.

Завдяки тонкій настройці можна застосовувати вдосконалені моделі ДБНС в нових областях. Крім того, об'єднана модель ДБНС-РНС допомагає розширювати навчену модель для вирішення зовсім інших завдань, таких як формування тегів для зображення одягу.

Сподіваюся, ця серія публікацій допоможе вам провести навчання ДБНС для зображень з певних областей і багаторазово використовувати вже навчені моделі.

Якщо ви побачили неточність перекладу, повідомте будь ласка про це в особисті повідомлення.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.