Я починаю проект, де завданням є визначення типів кросівок із зображень. На даний момент я читаю про реалізацію TensorFlow та Torch . Моє запитання: скільки зображень для кожного класу потрібно для досягнення розумної ефективності класифікації?
Я починаю проект, де завданням є визначення типів кросівок із зображень. На даний момент я читаю про реалізацію TensorFlow та Torch . Моє запитання: скільки зображень для кожного класу потрібно для досягнення розумної ефективності класифікації?
Відповіді:
З Як мало прикладів тренувань занадто мало при навчанні нейронної мережі? на резюме:
Це дійсно залежить від вашого набору даних та мережевої архітектури. Я прочитав (2) одним із головних правил - це кілька тисяч зразків на клас, щоб нейронна мережа почала працювати дуже добре. На практиці люди намагаються бачити.
Хороший спосіб приблизно оцінити, якою мірою може бути корисно мати більше зразків тренувань - побудувати графік продуктивності нейронної мережі залежно від розміру навчального набору, наприклад з (1):
(2) Кірешан, Дан К., Уелі Мейер та Юрген Шмідхубер. "Передайте навчання латинським та китайським символам з глибокими нейронними мережами." У Міжнародній спільній конференції з нейронних мереж 2012 року (IJCNN), стор. 1-6. IEEE, 2012. https://scholar.google.com/scholar?cluster=7452424507909578812&hl=uk&as_sdt=0,22 ; http://people.idsia.ch/~ciresan/data/ijcnn2012_v9.pdf :
Для завдань класифікації, що мають кілька тисяч зразків на клас , користь (без нагляду чи нагляду) перевірити не просто.
Найкращий підхід - зібрати стільки даних, скільки ви зручно можете. Потім приступайте до проекту та робіть модель даних.
Тепер ви можете оцінити вашу модель, щоб побачити, чи вона має високу зміщення або велику різницю.
Висока різниця : У цій ситуації ви побачите, що помилка перехресної валідації вища за помилку тренувань після конвергенції. Існує значний розрив, якщо ви будуєте однакову щодо розміру даних тренувань.
Високий ухил : У цій ситуації похибка перехресної валідації трохи вище, ніж помилка тренувань, яка сама по собі є високою, коли планується проти розміру даних тренувань. Я будувати графік відповідно до розміру даних про тренування, я маю на увазі, ви можете вводити підмножини наявних даних про тренування і зберігати збільшення розміру підмножини та графіки помилок.
Якщо ви бачите, що ваша модель відрізняється великою дисперсією (надмір), додавання більше даних зазвичай допоможе на відміну від моделі з великим ухилом (недодатковістю), коли додавання нових навчальних даних не допомагає.
Також для кожного класу потрібно спробувати отримати однакову кількість зображень, інакше набори даних можуть перекоситися (більше одного виду).
Також я пропоную, якщо ви використовуєте TensorFlow , прочитайте докладніше про класифікатор зображень GOOGLE INCEPTION . Це вже навчений класифікатор у базі даних зображень google, і ви можете використовувати його для своїх зображень, таким чином вимоги до кількості зображень різко знижуються.