Що таке поняття і як можна обчислити значення Bottleneck? Як ці значення допомагають класифікації зображень? Будь ласка, поясніть простими словами.
Що таке поняття і як можна обчислити значення Bottleneck? Як ці значення допомагають класифікації зображень? Будь ласка, поясніть простими словами.
Відповіді:
Вузьке місце в нейронній мережі - це лише шар з меншою кількістю нейронів, ніж шар нижче або над ним. Наявність такого шару спонукає мережу стискати представлення функцій, щоб найкраще вміститись у доступному просторі, щоб отримати найкращі втрати під час тренувань.
У CNN (наприклад, мережа Inception Google) додаються шари вузьких місць, щоб зменшити кількість карт функцій (він же "канали") в мережі, які в іншому випадку мають тенденцію до збільшення в кожному шарі. Це досягається використанням 1х1 згортки з меншими вихідними каналами, ніж канали введення.
Зазвичай ви не обчислюєте ваги для вузьких шарів безпосередньо, тренувальний процес обробляє це, як і для всіх інших ваг. Вибір хорошого розміру для шару вузького місця - це те, що ви повинні здогадатися, а потім експериментувати, щоб знайти мережеві архітектури, які добре працюють. Метою тут зазвичай є пошук мережі, яка добре узагальнює нові зображення, а шари вузьких місць допомагають, зменшуючи кількість параметрів у мережі, в той час як все ще дозволяють їй бути глибоким і представляти багато карт функцій.
Уявіть, ви хочете перерахувати останній шар попередньо підготовленої моделі:
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":
Оскільки ми, ймовірно, будемо читати одне і те ж зображення кілька разів (якщо під час тренінгу не застосовуються спотворення), це може значно прискорити роботу, якщо ми обчислимо значення шару вузького місця для кожного зображення під час попередньої обробки, а потім просто прочитаємо ці кешовані значення неодноразово під час тренувань.
Вузьке вузьке місце Tensorflow є останньою фазою перед початком розробки програм перед початком фактичного навчання з розпізнаванням даних. Це фаза, коли з кожного навчального зображення формується структура даних, яка може проходити завершальну фазу тренінгу і відрізняти зображення від кожного іншого зображення, що використовується в навчальному матеріалі. Дещо як відбиток зображення.
Він бере участь у команді перепідготовки і, як випливає з назви, це головний споживач часу виконання команди. Кількість навчального матеріалу, можливо, доведеться поставити під загрозу, якщо це вузьке місце здається занадто трудомістким.
Оскільки це командний рядок, я не знаю точного алгоритму. Алгоритм є загальнодоступним кодом у Github, але він нібито настільки складний (час виконання дуже тривалий за визначенням), що я вважаю, що я не можу просто записати його у такий тип відповіді.