Що таке концепція Tensorflow Bottlenecks?


Відповіді:


21

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

У CNN (наприклад, мережа Inception Google) додаються шари вузьких місць, щоб зменшити кількість карт функцій (він же "канали") в мережі, які в іншому випадку мають тенденцію до збільшення в кожному шарі. Це досягається використанням 1х1 згортки з меншими вихідними каналами, ніж канали введення.

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


Привіт Ніл! У мене дуже просте питання, я думаю, але я все ще плутаюся. ai.stackexchange.com/questions/21172/… Ви маєте час надати мені відповідь?
jgauth

@jgauth: Я підписуюся на RSS-канал усіх питань на цьому веб-сайті, і я намагаюся відповісти на всі запитання, які я бачу, де я думаю, що можу. Немає необхідності зв'язуватися зі мною безпосередньо, щоб переглянути питання. Якщо ви хочете зв’язатися зі мною з приводу чогось конкретного, найкраще це зробити за відповідним питанням або в чаті на сайті, якщо такого немає.
Ніл Слейтер

8

Уявіть, ви хочете перерахувати останній шар попередньо підготовленої моделі:

Input->[Freezed-Layers]->[Last-Layer-To-Re-Compute]->Output

Щоб тренувати [Last-Layer-To-Re-Compute] , потрібно оцінити виходи [Freezed-Layers] кілька разів для заданих вхідних даних. Щоб заощадити час, ви можете обчислити ці виходи лише один раз .

Input#1->[Freezed-Layers]->Bottleneck-Features-Of-Input#1

Потім ви зберігаєте всі функції Bottleneck-Of-Input # i та безпосередньо використовуєте їх для тренування [Last-Layer-To-Re-Compute].

Пояснення з функції "cache_bottlenecks" прикладу "image_retraining":

Оскільки ми, ймовірно, будемо читати одне і те ж зображення кілька разів (якщо під час тренінгу не застосовуються спотворення), це може значно прискорити роботу, якщо ми обчислимо значення шару вузького місця для кожного зображення під час попередньої обробки, а потім просто прочитаємо ці кешовані значення неодноразово під час тренувань.


5

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

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

Оскільки це командний рядок, я не знаю точного алгоритму. Алгоритм є загальнодоступним кодом у Github, але він нібито настільки складний (час виконання дуже тривалий за визначенням), що я вважаю, що я не можу просто записати його у такий тип відповіді.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.