Нужен хороший способ выбрать и скорректировать “темп обучения”

FacesContext является точкой привязки для подключения к рамочной и container- конкретных услуг. Например, вы можете получить базовые объекты httprequest и context для запроса страницы, который обращается к вашему компоненту поддержки, пройдя через Facescontext. Это включает контекст безопасности, в котором выполняется запрос веб-страницы.

Общая философия JSF заключается в том, что предоставляемые пользователем компоненты должны быть достаточно абстрактными, чтобы не зависеть от таких деталей относительно того, работают ли они в традиционной среде JSP или что-то более экзотическое, поэтому, если в ссылке есть ссылка на Facescontext bean, это потенциальный признак плохого дизайна, тем более что ожидается, что bean-компоненты будут внедрены в него, а не выходят на улицу в поисках вещей.

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

Ссылка: Как использовать объект контекста Facescontext

11
задан Makoto 20 January 2016 в 23:51
поделиться

4 ответа

Иногда процесс снижения скорости обучения с течением времени называется «отжигом» скорости обучения.

Есть множество возможных «графиков отжига», например, когда скорость обучения является линейной функцией времени:

u(t) = c / t

... где c - некоторая константа. Или есть расписание «поиск-затем-схождение»:

u(t) = A * (1 + (c/A)*(t/T)) / 
           (1 + (c/A)*(t/T) + T*(t^2)/(T^2))

... которое поддерживает скорость обучения на уровне A , когда t мало по сравнению с T ] (фаза «поиска»), а затем снижает скорость обучения, когда t велико по сравнению с T (фаза «схождения»). Конечно, для обоих этих подходов вам необходимо настроить параметры (например, c , A , или T ), но мы надеемся, что их введение поможет больше, чем повредит. :)

Некоторые ссылки:

  • Расписания скорости обучения для более быстрого поиска по стохастическому градиенту , Кристиан Даркен, Джозеф Чанг и Джон Муди, Нейронные сети для обработки сигналов 2 --- Труды семинара IEEE 1992 года, IEEE Press , Piscataway, NJ, 1992.
  • Метод стохастической аппроксимации , Герберт Роббинс и Саттон Монро, Annals of Mathematical Statistics 22, # 3 (сентябрь 1951 г.), стр. 400–407.
  • Нейронные сети и обучение Машины (в частности, раздел 3.13), Саймон С. Хайкин, 3-е издание (2008 г.), ISBN 0131471392, 9780131471399
  • Вот страница , на которой кратко обсуждается адаптация скорости обучения .
18
ответ дан 3 December 2019 в 02:53
поделиться

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

Самый простой способ - уменьшить скорость обучения линейно с количеством итераций. Каждые 25 (или какое-то другое произвольное число) вычитайте часть скорости, пока она не дойдет до хорошего минимума.

Вы также можете сделать это нелинейно с количеством итераций. Например, умножайте скорость обучения на 0,99 на каждой итерации, снова, пока она не достигнет хорошего минимума.

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

умножайте скорость обучения на 0,99 на каждой итерации, снова, пока она не достигнет хорошего минимума.

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

умножайте скорость обучения на 0,99 на каждой итерации, снова, пока она не достигнет хорошего минимума.

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

7
ответ дан 3 December 2019 в 02:53
поделиться

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

Вектор состояния в конечном итоге установится в равновесие, которое достигает баланс между «слишком много» и «слишком мало». Так работают многие системы в биологии

1
ответ дан 3 December 2019 в 02:53
поделиться

Рассматривали ли вы другие методы обучения, не зависящие от скорости обучения?

Существуют методы обучения, которые обходят необходимость в скорости обучения для вычисления матрицы Гессе (например, Левенберга-Марквардта), в то время как я встречал алгоритмы прямого поиска (например, разработанные Норио Баба).

4
ответ дан 3 December 2019 в 02:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: