Актуальні теми
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Я видалив 74% нейронів з нейронної мережі.
Він знизив точність лише на 0,50%.
Ось розбивка (з кодом):
У тренованої нейронної мережі завжди є нейрони, які не роблять істотного впливу на продуктивність.
Але вони все одно споживають пам'ять.
Їх можна видалити без істотного порушення точності.
Давайте подивимося, як їх визначити!
Ось кроки:
Крок 1) Тренуйте нейронну мережу як зазвичай.
Крок 2) Пропустіть валідацію через навчену мережу і для кожного нейрона в прихованих шарах обчисліть:
- Середня активація
- Дисперсія активацій (якщо активації можуть бути -ve)
Перевірте це👇

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

Давайте подивимося на код.
Починаємо з визначення простої нейронної мережі та тренуємо її.
Оскільки ми будемо обчислювати активації на рівні нейронів пізніше для обрізки, ми повертаємо всі проміжні активації в прямому проході.
Перевірте це👇

Далі ми визначаємо два списки з трьома елементами:
- Один буде зберігати засіб активацій
- Ще буде зберігати std dev активацій
Ми передаємо набір валідації через нашу модель, щоб обчислити цю статистику для кожного прихованого шару.
Перевірте це 👇

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

Для обрізки ми перебираємо список порогових значень і:
- Створіть нову мережу та передайте ваги, які перевищують поріг.
- Оцініть нову мережу та розрахуйте загальну кількість параметрів.
- Додайте результати до списку.
Перевірте це 👇

У цій таблиці порівнюється точність і зменшення розміру обрізаної моделі за кількома пороговими значеннями порівняно з оригінальною моделлю.
При середньому = 0,1 і std-dev=0,4:
- Точність моделі падає на 0,08%.
- Розмір моделі зменшується на 62%.
Це величезне скорочення.
Перевірте це 👇

Ось ще один цікавий результат.
При середньому=0,5 і std-dev=1:
- Точність моделі падає на 0,5%.
- Розмір моделі зменшується на 74%.
Таким чином, по суті, ми отримуємо майже аналогічні показники для 1/4 параметрів.
Перевірте це 👇

Звичайно, є компроміс між точністю та розміром. У міру зменшення розміру його точність падає (див. відео).
Але в більшості випадків точність – не єдиний показник, який ми оптимізуємо.
Натомість ключовими факторами є кілька операційних показників, таких як ефективність, пам'ять тощо.
48,61K
Найкращі
Рейтинг
Вибране