Компьютерная лингвистика

Новостная лента www.solarix.ru

Previous Entry Share
Сравнение оптимизаторов "Follow The Moving Leader" и "Nesterov moment + Adam"
kelijah
Для задачи посимвольной генерации теста ответа в чатботе сравниваю два алгоритма оптимизации:

1) штатный keras.optimizers.nadam, описанный тут http://cs229.stanford.edu/proj2015/054_report.pdf
2) FTML из https://github.com/keras-team/keras-contrib/blob/master/keras_contrib/optimizers/ftml.py, описанный тут.

Сравнивается значение per instance accuracy, достигаемое при обучении нейросетки, то есть успехом считается генерация всей цепочки символов ответа без единой ошибки.
Стоит заметить, что смена оптимизатора для keras-моделей в данном случае выполняется очень просто: достаточно подключить модуль через import keras_contrib.optimizers.ftml и затем при компиляции модели указать вместо 'nadam' экземпляр класса FTML - см. строки 461 и 462 в коде.

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

ftml = [0.8486, 0.8437, 0.8480, 0.8468, 0.8468, 0.8393, 0.8500]
nadam = [0.8486, 0.8386, 0.8295, 0.8391, 0.8242, 0.8293, 0.8356]

Видимо чтобы закрутить интригу, первые запуски каждого варианта дали совпадение до 4го знака после запятой после округления: 0.8486.

Нам нужно выяснить, является ли наблюдаемое в ходе этих двух серий экспериментов отличие средних выборочных значений проявлением случайности, или отличие действительно обусловлено объективным влиянием выбранного оптимизатора. Используем дисперсионный анализ, а именно штатную функцию scipy.stats.f_oneway для проверки нулевой гипотезы. Нулевая гипотеза в данном случае заключается в том, что отличие выборочных средних значений точности для FTML и nadam возникли случайно.

Расчет дает pvalue=0.6%. Это значит, что отвергая нулевую гипотезу, мы ошибемся с вероятностью 0.6%. Говоря по-человечески, мы можем смело утверждать, что отличие точности модели при использовании этих оптимизаторов является неслучайным, и FTML действительно в данном случае дает прирост в точности примерно на 1%.

?

Log in

No account? Create an account