9.8.17 Среда

Великий день для человечества. Шутя. Отличный день для меня :). Спустя неделю код для Mini Batch GD наконец-то здесь!!!!

Мне потребовалось время, чтобы переварить тот факт, что, просто немного подправив код Batch GD, можно было получить Mini Batch GD! После этого код для него был готов в течение 10 минут :).

Одна неделя ушла на другие дела, к счастью, сегодня результат был отличным.

Код для обоих методов будет загружен на Github завтра.

О выводе:

Для серийного GD: m=0,17701987668424726; б=0,3178956232725284; f=5,30973758237

Для Mini Batch GD значения параметров и функции стоимости, конечно, будут разными в каждом случае.

Возьмем 1: m=0,1923070083863004; б=0,18753066202974217; f=5,48722549445

Возьмем 2: m=0,19330741310897784; б=0,18244372028429637; f=5,494385617

Сытные, качественные результаты:

Если бы кто-то видел функцию стоимости и параметры после каждого шага в обоих случаях, результаты совпадали бы с предсказаниями на уровне номинала !!!

  1. Для МБГД: Известно, что значение функции стоимости будет иметь скачки, даже если оно достигнет оптимума. При изучении вывода я был приятно удивлен, увидев это. Значения не были строго уменьшающимися, что верно для этого метода.
  2. Для BGD: значение функции стоимости резко уменьшилось. Кроме того, вывод в BGD был лучше настроен и сведен к минимуму, что опять-таки соответствует теории.
  3. Время, необходимое для BGD, было значительно больше, чем для MBGD. На моей маленькой машине, даже с небольшим набором данных, я увидел, почему MBGD используется вместо BGD, и разница во времени в их компиляции была записана мной в видео. Хотя это тоже зависит от параметров, я брал условные значения и время БГД было почти на 8-10 секунд больше.

Выходные данные для Стохастика будут аналогичными, поскольку нужно изменить только длину пакета.

Итак, я почти достиг своей цели, т. е. изучения основных методов оценки функций стоимости и наблюдения за ними.

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