Эндрю Нг Машинное обучение: логистическая регрессия
существуетурок прошлой неделиЗдесь Эндрю Нг знакомит нас с тем, что такое машинное обучение и линейная регрессия в обучении с учителем. Для контролируемого обучения мы хотим определить нашифункция предсказания,функция стоимости, а затем используйте алгоритм градиентного спуска, чтобы найтифункция стоимостиминимальное время,функция предсказаниязначение параметра в . На этой неделе мы коснемся нового класса задач обучения с учителем, которые называются задачами классификации.
нажмитеВидео курсаВы сможете изучать курсы Нг без перерыва.Код Python для курсовой работы я выложил на Github, нажмитекод курсаВы можете перейти на Github для просмотра (если у вас нет доступа к Github, вы можете нажатьCodingПроверьте ), ошибки и улучшения в коде приветствуются.
Вот заметки со второй недели курса машинного обучения Нг.
проблема классификации
Для задач классификации в обучении с учителем мы обычно знаем некоторые данные и знаем, к какой категории относятся их соответствующие данные, а затем мы надеемся судить, к какой категории принадлежат новые данные, на основе этих данных. Например, известны некоторые характеристики симптомов и данные о том, есть ли у них определенное заболевание, и на основании этих данных судят о том, болен ли новый пациент или нет. Другим примером является определение того, является ли новое электронное письмо спамом, на основе прошлых данных о спаме.
функция предсказания
заЛинейная регрессиянашфункция предсказанияза:
hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxn=θTxно этофункция предсказанияВыход представляет собой непрерывное значение без диапазона и не подходит для задач классификации. Таким образом, влогистическая регрессияв мы использовали:
hθ(x)=g(θTx)g(z)=11+e−zприйти какфункция предсказания,вназываетсяSigmoidфункция, которая приятнофункция предсказанияВыходное значение регулируется между 0 и 1. (Картинка нижеSigmoidИзображение функции )
Так что это может бытьфункция предсказанияинтерпретируется как данностьи параметрыв случае,(принадлежность к этому классу) вероятность:
hθ(x)=P(y=1|x;θ)граница решения
Для задач классификации существует новая концепция, называемаяграница решения. Поскольку в конечном итоге нам нужно решить, принадлежат ли входные данные к определенной категории, мы устанавливаемкак порог,функция предсказаниявыход больше, чемотносятся к этой категории, и наоборот. и, соответствующий. мы будемСоответствующая кривая называется границей решения (обратите внимание наНе ссылаясь на обучающие данные, граница решениясвойств, на рисунке ниже показана граница решения в задании).
функция стоимости
Давай поговорим об этомлогистическая регрессияФункция стоимости в . Если вы продолжите использоватьЛинейная регрессияФункция стоимости в , мы получим кривую, подобную следующему рисунку (рисунок ниже представляет собой одну функциюСоответствующая кривая функции стоимости не такая, как нарисованная Ng):
Используя алгоритм градиентного спуска для такой функции, есть большая вероятность, что она в конечном итоге остановится на плоском склоне. Математически мы знаем, что если функция выпуклая, то градиентный спуск должен уметь находить глобальный минимум.выпуклая функцияявляется сильным ограничением, которое визуально можно понять как то, что любой участок функции является выпуклым (как показано на рисунке ниже, см. подробное определение).Википедия).
Поэтому мы используем новыйфункция стоимостисделай это удовлетворительнымвыпуклая функцияприрода.
J(θ)=−1m(yTlog(g(Xθ))+(1−y)Tlog(1−g(Xθ)))градиентный спуск
решатьфункция стоимостиСамый ценный путь по-прежнемуградиентный спускалгоритм, поэтому нам нужноВозьмем вывод (процесс расчета вывода может дать вам представление о том, как получился результат вывода. Но чтобы не утонуть в деталях расчета, в статье будет опущена матричная форма, дающая окончательный результат ).
∇J(θ)=1mXT(g(Xθ)−y)имеютфункция стоимостииградиентВы можете реализовать алгоритм градиентного спуска самостоятельно, чтобы решить проблему. Однако в курсе Нг упомянул несколькоградиентный спускалгоритм оптимизации,Conjugate descent,BFGS,L-BFGS. Этим алгоритмам не нужно указывать скорость обучения, и они могут быстрее находить решения, мы можем сделать это, вызвав встроенные функции (в домашнем задании, потому что нет Вместо этого функция fminunc Octave использует функцию минимизации из пакета scipy.Алгоритм используетBFGS).
Регуляризация
Регуляризациявводится для предотвращения обученияпереоснащение. Проще говоряпереоснащениеТо есть наш алгоритм обучения берет во внимание многие детали и даже шумы, не важные для задачи, и считает их основой для принятия решения. Как и для данных, которые необходимо классифицировать в задании ex2_reg.py, предполагается, чтофункция предсказания:
г(θ0+θ1x1+θ2x2+⋯+θ26x1x52++θ27x62)Для 28 параметровфункция предсказания, который может соответствовать многим типам данных, но некоторые функции не требуются для данных в задании. мы надеемсяПри достижении минимума коэффициент признакакак можно меньше. для этой парыфункция стоимостиВнесите некоторые изменения, чтобы получить следующую форму:
J(θ)=−1m(yTlog(g(Xθ))+(1−y)Tlog(1−g(Xθ)))+λ2mθTθконтрольная работа- коэффициент регуляризации, используемый для балансировки двух целей, одна из которых состоит в том, чтобы сделать первую половинуфункция стоимостиСтарайтесь быть как можно меньше, во-первых, чтобы избежать переобучения, вызванного слишком большими параметрами. Во второй половине срока регуляризацииВозьмите ноль, так как он обычно не ограничен.Линейная регрессияТакже можно использовать метод регуляризации, здесь мы приводим только регуляризованную функцию стоимости:
J(θ)=12m(Xθ−y)T(Xθ−y)+λ2mθTθЕсли используется метод нормального уравнения, то окончательноРешение:
θ=(XTX+λ[0⋯⋯001⋯⋯0⋮⋮1⋯0⋮⋮⋯⋱⋮00⋯⋯1])−1XTyОбычные слова - это довольно большая тема, и я не смогу объяснить все здесь некоторое время, и я не понимаю ее полностью. Я поделюсь ею с вами, когда у меня будет лучший опыт.
Итак~, вот и все на вторую неделю, спасибо за терпение.
hertzcat
2018-03-31