Nano Hash - криптовалюты, майнинг, программирование

Когда прекратить обучение CNN

В тензорном потоке я выполнял обучение cnn для фиксированного количества эпох и сохранял контрольные точки между ними после указанного количества интервалов эпох. Для оценки модели контрольные точки восстанавливаются и выполняют прогноз для набора данных проверки.

Я хочу автоматизировать процесс обучения, а не использовать фиксированные эпохи. Объясните, пожалуйста, как можно использовать величину потерь в мини-партиях для определения точки остановки? Также, пожалуйста, помогите мне реализовать снижение скорости обучения в тензорном потоке. Что лучше постоянное затухание или экспоненциальное и как определить коэффициент затухания?


Ответы:


1

Во-первых, для количества итераций вы можете выйти из обучения, если ваша потеря перестала улучшаться в партии, т. Е. Если разница между двумя значениями потерь, СРЕДНЯМИ по партиям (для уменьшения колебаний партии), меньше определенного порога.

Но вы, наверное, поняли, что порог — это тоже гиперпараметр! На самом деле существует довольно много попыток полностью автоматизировать машинное обучение, но независимо от того, что вы делаете, вы все равно получаете некоторые гиперпараметры.

Во-вторых, для коэффициента затухания он используется, когда вы чувствуете, что потеря перестала улучшаться, и думаете, что вы находитесь в локальном минимуме и колеблетесь в колодце и из него, но на самом деле не входите (эта метафора работает только тогда, когда у вас есть 2 измерения, но я нахожу это все еще полезно).

Почти каждый раз, когда это делается в литературе, это выглядит очень рукотворно: например, вы тренируетесь в течение 200 эпох, вы видите, что оно достигло плато, поэтому вы уменьшаете свой LR с помощью ступенчатой ​​​​функции (аргумент лестница = True в TF), а затем снова.

Что обычно используется, так это деление скорости обучения на 10 (экспоненциальное затухание), но, как и раньше, это очень произвольно!

Подробнее о том, как реализовать снижение скорости обучения в TF, вы можете узнать в ответе dga это ТАК вопрос. Это довольно просто!

Что может помочь с графиком и значениями, которые вы используете, так это перекрестная проверка, но часто вы можете просто посмотреть на свои потери и сделать это вручную.

В глубоком обучении нет серебряной пули, есть только пробы и ошибки.

29.09.2016
  • Если вы считаете, что это решило вашу проблему, вы можете принять это, если это только помогло, вы можете проголосовать за него. 30.09.2016
  • Джин, можете ли вы предложить другие критерии остановки, полезные в обучении cnn, помимо функции потерь? Я видел что-то вроде разрыва между точностью обучения и проверки. 01.10.2016
  • У вас также есть, я бы сказал, самый важный критерий остановки, который заключается в том, что как только ваши потери при проверке перестают уменьшаться или даже начинают расти, это является серьезным признаком переобучения, и, следовательно, вы должны абсолютно прекратить тренироваться. 01.10.2016
  • Другой вопрос: у вас должны быть (после нескольких итераций) потери при обучении ниже потерь при проверке. Если вы этого не заметите, это означает, что есть проблема в том, как вы определили наборы или обучили свой алгоритм. 01.10.2016
  • В свете того, что я сказал, если разрыв между обучением и потерями при проверке все еще увеличивается и превышает пороговое значение, это означает, что ваше обучение уменьшается, а ваши потери при проверке перестали уменьшаться или увеличились. Или что ваши потери при обучении перестали уменьшаться, но потери при проверке увеличились, что в любом случае нехорошо, как я вам сказал, поэтому, я думаю, вы могли бы составить такие критерии. 01.10.2016
  • Если вы работаете с CNN, когда вы мельком увидели свои обучающие и валидационные ограничения, и если они выглядели нормально, взгляните на свои фильтры, часто именно они скажут вам, хорошо вы поработали или нет. Как только вы получите параметры регуляризации и архитектуру в порядке, ваш график обучения не должен иметь большого значения. 01.10.2016
  • Большое спасибо за ценные предложения :) Я думаю, что теперь я могу перейти к внедрению критериев остановки в моем учебном процессе. 03.10.2016
  • Джин, во время реализации после фиксированного количества итераций я могу перейти к этапу оценки, на котором я буду вычислять потери при обучении (по всему набору обучающих данных) и потери при проверке. Правильно ли это, или мне нужно рассчитать средние потери при обучении, полученные на мини-партиях по итерациям? 03.10.2016
  • В dl нет правильного пути!^^ Вы можете рассчитать потери при обучении по партиям, но вы получите очень зашумленный сигнал, поэтому вам придется его сгладить и использовать скользящее среднее. Или вы можете рассчитать потери для всего тренировочного набора, но часто это будет слишком дорого/слишком много для памяти для большинства приложений. Для получения дополнительной информации я советую вам прочитать открытый курс по DL, такой как электронная книга Майкла Нильсена или CS 321 от karpathy. 03.10.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..