#9. Пример использования SGD при бинарной классификации образов | Машинное обучение

Поділитися
Вставка
  • Опубліковано 28 лис 2024

КОМЕНТАРІ • 16

  • @АлександрКаптуров-с8и
    @АлександрКаптуров-с8и 8 місяців тому +4

    Чтобы быстрее изучить плейлист приходится жертвовать кодом (только смотрю на него, не пишу вручную). Очень интересно, спасибо!

  • @NoName-qg7qc
    @NoName-qg7qc 2 роки тому +6

    О, немногие добрались.) Воистину сложная тема, но ты очень хорошо объясняешь.)

  • @YbisZX
    @YbisZX Рік тому +4

    Спасибо! Кстати, столбец с единицами проще вставлять сразу в массив numpy: np.insert(x_train, 0, 1.0, axis=1).
    К тому же на 0м индексе получается логичнее: w=[w0, w1, w2]

  • @АртемСавельев-о8е

    Сергей, у вас реализован алгоритм SDG с возвращением: то есть у вас индекс k может повторяться, так как он генерируется на каждой итерации k = np.random.randint(0, n_train - 1), что не совсем правильно. Нужно, чтобы SDG проходил эпоху (все объекты выборки) целиком (и тогда уже есть выбор делать shuffle или нет, в смысле проходить объекты в том же порядке или нет).

    • @selfedu_rus
      @selfedu_rus  Рік тому

      Да, в моей реализации именно так и это один из вариантов (тоже рабочий). Вообще вариаций SGD очень много, в том числе и когда наблюдения не повторяются.

  • @СарматПересветов
    @СарматПересветов 9 місяців тому

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

  • @PhyzmatClass
    @PhyzmatClass 7 місяців тому +1

    Как в пункте 2) вычислить функционал качества, если вычисление функции потерь еще впереди, в пункте 5)?
    Чему здесь равна эта функция потерь? Как она высчитывается математически?

  • @staspotanin
    @staspotanin 5 місяців тому +1

    Интересно, почему при градиентом спуске не упоминается бинарный поиск? Это частный случай экспоненциального, плюс вычислительно на порядок менее затратный.

    • @selfedu_rus
      @selfedu_rus  5 місяців тому

      слишком уж частный случай

  • @dmitriyvarfolomeev4857
    @dmitriyvarfolomeev4857 Рік тому +1

    Сергей, прежде все - спасибо! Возник вопрос - зачем вы ввели третий константный признак(+1)? Чтобы получить в общем виде ур-ие a(x) = kx+b?

    • @selfedu_rus
      @selfedu_rus  Рік тому

      У нас в прямой два подбираемых параметра k и b. Параметр k = -w1/w2, а b = -w0. Чтобы мы могли подбирать и параметр w0 добавляем в признаковое пространство эту 1 - третий признак [w1, w2, w0]

  • @frolomaskor
    @frolomaskor 2 роки тому +1

    Сергей, Будет ли лучше использовать в качестве функции потерь L функцию ошибок erf(-x) + 1. у неё скорость сходимости к асимптотам выше чем у сигмоиды с экспонентой в знаменателе. Как считаете? Что оптимальнее?

    • @selfedu_rus
      @selfedu_rus  2 роки тому +3

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

  • @imageprocessing9136
    @imageprocessing9136 Рік тому +1

    Сергей, в заголовке есть ошибка в слове "бинрной"

  • @redant791
    @redant791 3 місяці тому +1

    Поправить надпись Бинарный