Як CNN уникає зникаючої градієнтної проблеми


15

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

За даними Вікіпедії :

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

Я не розумію, чому обробка GPU видалить цю проблему?


2
Чи не підтвердила стаття wikipedia, чому GPU допомагає вирішити проблему градієнта? Це тому, що хоч градієнти невеликі, оскільки графічні процесори настільки швидкі, нам все ж вдається покращити параметри, роблячи багато кроків завдяки GPU?
Чарлі Паркер

2
Саме так. Проблема градієнта, що зникає, є причиною того, що ваги нижнього шару оновлюються дуже невеликою швидкістю, і тому тренування мережі потрібно вічно. Але, як і для графічних процесорів, ви можете робити більше обчислень (тобто більше оновлень ваг) за менший час, при все більшій обробці графічного процесора проблема, яка втрачає градієнт, певною мірою зникає .
Sangram

@CharlieParker, чи можете ви детальніше розглянути, GPU's are fast correlated with vanishing gradientsя можу зрозуміти швидку логіку з великою пропускною здатністю пам'яті для обробки декількох матричних множин! але ви можете, будь ласка, пояснити, що це стосується похідних? Проблема градієнта, що зникає, здається, більше справляється з ініціалізацією ваги , чи не так!
Ана

Відповіді:


13

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

Існує кілька способів вирішити проблему градієнта, що зникає. Я б здогадався, що найбільший ефект для CNN відбувся від переходу від сигмоподібних нелінійних одиниць до випрямлених лінійних одиниць. Якщо розглядати просту нейронну мережу, похибка якої залежить від ваги w i j лише через y j , деEwijyj

yj=f(iwijxi),

його градієнт дорівнює

wijE=Eyjyjwij=Eyjf(iwijxi)xi.

Якщо fff

f(u)=max(0,u),

http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf


2
Я трохи спантеличений щодо випрямлених лінійних одиниць. Так, для сигмоїдів тощо градієнт часто дуже малий, але для випрямлених лінійних одиниць він часто дорівнює нулю. Хіба це не гірше? Таким чином, якщо ваги одиниці невдалі, вони ніколи не зміниться.
Ганс-Пітер Штерр

2
Думаючи про це, з цієї причини можуть використовуватися протікаючі та / або галасливі релізи.
сонячний бік

5
Чому ваше перше речення правдиве? Тобто "Проблема градієнта, що зникає, вимагає, щоб ми використовували невеликі показники навчання з градієнтним спуском, для чого потім потрібно сходити малі кроки". Навіщо нам потрібні невеликі показники навчання для вирішення проблеми, що зникає? Якщо градієнти вже малі із-за зникаючих градієнтів, я б очікував, що їх малі лише погіршать.
Чарлі Паркер

2
Добре запитання, я мав би пояснити цю заяву краще. Проблема градієнта, що зникає, полягає не в тому, що всі градієнти невеликі (що ми могли б легко виправити за допомогою великих темпів навчання), а в тому, що градієнти зникають, коли ви розповсюджуєтесь по мережі. Тобто градієнти в деяких шарах невеликі, але в інших шари великі. Якщо ви використовуєте великі темпи навчання, вся справа вибухає (оскільки деякі градієнти великі), тому вам доведеться використовувати малу швидкість навчання. Використання декількох темпів навчання - це ще один підхід до вирішення проблеми за рахунок впровадження більшої кількості гіперпараметрів.
Лукас

3
Я заперечую, що рівень навчання здебільшого пов'язаний з проблемою градієнта, що вибухає . Зменшення градієнта вниз із надзвичайно низькою швидкістю навчання зовсім не запобігає зникненню градієнтів, воно просто затримує ефект, оскільки навчання значно сповільнюється. Сам ефект викликаний багаторазовим застосуванням нелінійностей та множенням малих значень. Звичайно, існує тенденція до зниження темпів навчання (за рахунок обчислювальної потужності), але це не має нічого спільного з зникаючими градієнтами, оскільки воно лише контролює, наскільки добре досліджується простір штату (за умови стабільних умов).
runDOSrun
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.