2017-02-18 9 views
0

Всякий раз, когда я делал линейную регрессионную модель, она просто расходилась, все время. Я действительно не мог найти решений для этого. Но когда я изменил курс обучения до 0,0000252, он сработал! Но еще одна проблема заключается в том, что он учится так медленно, так что мне нужно ждать, пока модель научится более 10 минут.Как закрепить обучение без изменения скорости обучения в линейной регрессии

Как я могу закрепить обучение, не меняя скорость обучения?

ответ

2

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

Предполагая, что обучение SGD основе является путь:

  • Вы должны использовать какой-то учебный-график
    • Добавить по крайней мере затухания обучения скорости, что снижает обучения-курс например, после каждой эпохи с коэффициентом примерно 0,9 (да, еще один гиперпараметр)
    • Попробуйте использовать какой-то импульс, например Нестеров-импульс, который был разработан для выпуклого-оптимизации (ваш случай является выпуклым) и занимает прочные гарантии
      • Этот вид импульса даже популярен в невыпуклая установки
      • Наиболее глубокое обучение LIBS должны обеспечить это вне -The ящик
  • Вы можете попробовать адаптивные алгоритмы, основанные обучения, курса, как:
    • Адам, AdaDelta, AdaGrad, ...
    • Они пытаются снять нагрузку с отбора тех LR-гиперпараметрами в то же время пытается конвергенция как можно быстрее
      • Конечно они эвристика (строго говорят), но они, кажется, работают хорошо для большинства людей (хотя оптимизированная SGD является большую часть времени в лучшем случае)
      • наиболее глубокое обучение ЛИЭС должны обеспечить это вне коробки
  • Использование специализированного программного обеспечения для линейных-моделей, таких как liblinear или другие

И еще одно, потому что я удивлен, что это легко заметить расхождение по этой простой проблеме: нормализовать ввод!