Глава 4: Модели обучения

1. Какой обучающий алгоритм линейной регрессии вы можете использовать, если у вас есть обучающий набор с миллионами функций?

Как нормальное уравнение, так и подход с разложением по сингулярным значениям (SVD) становятся очень медленными, когда количество признаков становится большим (например, 100 000). Тем не менее, Gradient Descent хорошо масштабируется с количеством функций; обучение модели линейной регрессии, когда есть сотни тысяч функций, намного быстрее с использованием градиентного спуска, чем с использованием нормального уравнения или разложения SVD.

2. Предположим, что функции в вашем обучающем наборе имеют очень разные масштабы. Какие алгоритмы могут от этого пострадать и как? Что вы можете с этим поделать?

Если алгоритм не использует метод масштабирования признаков, то он может считать, что значение 3000 метров больше, чем 5 км, но на самом деле это неверно, и в этом случае алгоритм будет давать неверные прогнозы. Итак, мы используем Feature Scaling, чтобы привести все значения к одинаковым величинам и, таким образом, решить эту проблему.

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

При использовании Gradient Descent вы должны убедиться, что все функции имеют одинаковый масштаб (например, используя класс StandardScaler Scikit-Learn), иначе конвергенция займет гораздо больше времени.

3. Может ли градиентный спуск застрять в локальном минимуме при обучении модели логистической регрессии?

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

Две основные проблемы с градиентным спуском: если случайная инициализация запускает алгоритм слева, то он сойдется к локальному минимуму, который не так хорош, как глобальный минимум .

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

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

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

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

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

Когда модель обучается на очень небольшом количестве обучающих экземпляров, она не способна правильно обобщать, поэтому ошибка проверки изначально довольно велика. Таким образом, это означает, что модель переоснащена.

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

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

6. Стоит ли сразу же останавливать мини-пакетный градиентный спуск, когда возникает ошибка проверки?

Один из способов улучшить модель переобучения — снабжать ее дополнительными обучающими данными до тех пор, пока ошибка проверки не достигнет ошибки обучения. Таким образом, немедленная остановка мини-пакетного градиентного спуска является хорошей идеей, и лучше использовать пакетный GD, так как он использует весь тренировочный набор, а не рандомизированный тренировочный набор.

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

При использовании Stochastic и Mini-batch Gradient Descent кривые не такие гладкие, и может быть трудно понять, достигли ли вы минимума или нет. Таким образом, Stochastic и Mini-batch Gradient Descent достигают окрестности оптимального решения, но самым быстрым является Stochastic GD.

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

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

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

Три способа решения: регрессия гребня, регрессия лассо и эластичная сеть, которые реализуют три разных способа ограничения весов.

9. Предположим, вы используете гребенчатую регрессию и заметили, что ошибка обучения и ошибка проверки почти равны и довольно высоки. Можно ли сказать, что модель страдает от высокого смещения или высокой дисперсии? Следует ли увеличить гиперпараметр регуляризации α или уменьшить его?

Обе кривые достигли плато; они близки и достаточно высоки. Модель страдает высоким смещением.

Увеличение сложности модели обычно увеличивает ее дисперсию и уменьшает смещение. И наоборот, уменьшение сложности модели увеличивает ее предвзятость и уменьшает ее дисперсию.

Гиперпараметр α определяет, насколько вы хотите упорядочить модель. Если α= 0, то гребенчатая регрессия — это просто линейная регрессия.

Увеличение α приводит к более плоским (то есть менее экстремальным, более разумным) прогнозам; это уменьшает дисперсию модели, но увеличивает ее смещение. Таким образом, уменьшение гиперпараметра αуменьшит смещение.

10. Почему вы хотите использовать:

• Ридж-регрессия вместо простой линейной регрессии (т. е. без какой-либо регуляризации)?

• Лассо вместо хребтовой регрессии?

• Эластичная сетка вместо лассо?

  • Это заставляет алгоритм обучения не только подгонять данные, но и сохранять веса ​​модели как можно меньшими.
  • Важной характеристикой регрессии Лассо является то, что она стремится полностью устранить веса наименее важных признаков (т. е. установить их равными нулю).
  • Elastic Net предпочтительнее, чем Lasso, поскольку Lasso может вести себя хаотично, когда количество функций превышает количество обучающих экземпляров или когда несколько функций сильно коррелируют.

11. Предположим, вы хотите классифицировать изображения как наружные/внутренние и дневные/ночные. Должны ли вы внедрить два классификатора логистической регрессии или один классификатор регрессии Softmax?

Логистическая регрессия (также называемая Логит-регрессия) обычно используется для оценки вероятности принадлежности экземпляра к определенному классу (например, какова вероятность того, что это электронное письмо является спамом? ).

Если оценочная вероятность больше 50 %, то модель предсказывает, что экземпляр принадлежит к этому классу (называемому положительным классом, помеченному «1»), или же она предсказывает, что он не принадлежит (т. е. он принадлежит к отрицательному классу). с пометкой «0»). Это делает его бинарным классификатором.

Логистика, обозначенная σ(・), представляет собой сигмоидальную функцию (т. е. S-образную), которая выводит число от 0 до 1. После того как модель логистической регрессии оценила вероятность p= hθ(x), что экземпляр xпринадлежит к положительному классу, он может ŷлегко делать предсказания

Прогноз модели логистической регрессии

y =

0 if p < 0 . 5

1 if p ≥ 0 . 5

Регрессия SoftMax: классификатор регрессии Softmax прогнозирует только один класс за раз (т. е. это мультикласс, а не мультивыход), поэтому его следует использовать только с взаимоисключающими классами, такими как разные типы растений. Вы не можете использовать его для распознавания нескольких людей на одном изображении. Давайте используем регрессию Softmax, чтобы классифицировать цветы ириса по всем трем классам.

Обратите внимание, что модель может предсказать класс, оценочная вероятность которого ниже 50%. Например, в точке, где встречаются все границы решений, все классы имеют одинаковую оценочную вероятность 33%.

Итак, поскольку я хочу классифицировать изображения как наружные / внутренние и дневные / ночные, это означает, что достаточно классификатора 1 или 0, что означает, что я могу использовать двоичный классификатор, также известный как логистическая регрессия.

Ссылка:

https://www.knowledgeisle.com/wp-content/uploads/2019/12/2-Aur%C3%A9lien-G%C3%A9ron-Hands-On-Machine-Learning-with-Scikit-Learn-Keras -and-Tensorflow_-Concepts-Tools-and-Methniques-to-Build-Intelligent-Systems-O%E2%80%99Reilly-Media-2019.pdf