Programing

선형 회귀를 분석적으로 풀 수 있는데 왜 경사 하강 법인가

lottogame 2020. 11. 5. 07:36
반응형

선형 회귀를 분석적으로 풀 수 있는데 왜 경사 하강 법인가


선형 회귀 공간에서 Gradient Descent를 사용하면 어떤 이점이 있습니까? 분석 방법을 사용하여 문제를 해결할 수있는 것처럼 보입니다 (최소 비용 함수 인 theta0-n 찾기). 그래도 그래도 그래도 하강 법을 사용하여 동일한 작업을 수행하려는 이유는 무엇입니까? 감사


비용 함수를 분석적으로 풀기 위해 정규 방정식사용할 때 다음 을 계산해야합니다.

여기에 이미지 설명 입력

여기서 X는 입력 관측의 행렬이고 y는 출력 벡터입니다. 이 연산의 문제는 O (n ^ 3) 인 nxn 행렬의 역을 계산하는 시간 복잡도이며 n이 증가함에 따라 완료하는 데 매우 오랜 시간이 걸릴 수 있습니다.

n이 낮 으면 (n <1000 또는 n <10000) 정규 방정식을 계산 세타에 대한 더 나은 옵션으로 생각할 수 있지만 더 큰 값의 경우 Gradient Descent 가 훨씬 더 빠르기 때문에 유일한 이유는 시간입니다. :)


문제에 대한 자세한 내용을 제공해야합니다. 정확히 무엇에 대해 질문하고 있습니까? 우리는 하나 또는 여러 차원의 선형 회귀에 대해 이야기하고 있습니까? 단순하거나 일반화 된 것?

일반적으로 사람들은 왜 GD를 사용합니까?

  • 구현하기 쉽습니다.
  • 매우 일반적인 최적화 기술입니다. 모델을 더 일반적인 것으로 변경하더라도 계속 사용할 수 있습니다.

그렇다면 분석 솔루션은 어떻습니까? 글쎄요, 우리 그것들을 사용합니다, 당신의 주장은 여기에서 단순히 거짓입니다 (우리가 일반적으로 이야기하는 경우). 예를 들어 OLS 방법은 널리 사용되는 폐쇄 된 형태의 분석 솔루션입니다. 분석 솔루션을 사용할 수 있다면 계산적으로 저렴합니다 (때로는 GD가 더 저렴하거나 더 빠르기 때문에). 그러면 사용할 수 있고 사용해야합니다.

그럼에도 불구하고 이것은 항상 일부 장단점의 문제입니다. 분석 솔루션은 모델과 밀접하게 연결되어 있으므로 향후 모델을 일반화 / 변경하려는 경우이를 구현하는 것이 비효율적 일 수 있습니다. 때로는 수치 근사치보다 덜 효율적이며 때로는 구현하기가 더 어렵습니다. 위에 해당하지 않는 경우 - 당신은 해야한다 분석 솔루션을 사용, 사람들은 정말, 그것을 할.

요약하면 다음과 같은 경우 분석 솔루션보다 GD를 사용합니다.

  • 모델 변경, 일반화, 더 복잡한 용어 추가 / 정규화 / 수정을 고려하고 있습니다.
  • 코드와 모델의 미래에 대해 잘 모르기 때문에 일반적인 방법이 필요합니다 (당신은 개발자 중 한 명일뿐입니다)
  • 분석 솔루션은 계산 비용이 더 많이 들고 효율성이 필요합니다.
  • 분석 솔루션에는 더 많은 메모리가 필요합니다.
  • 분석 솔루션은 구현하기 어렵고 쉽고 간단한 코드가 필요합니다.

https://stats.stackexchange.com/questions/23128/solving-for-regression-parameters-in-closed-form-vs-gradient-descent 에서 아주 좋은 대답을 보았습니다.

기본적으로 이유는 다음과 같습니다.

1. 대부분의 비선형 회귀 문제에는 폐쇄 형 솔루션이 없습니다.

2. 선형 회귀 (폐쇄 형 솔루션을 사용할 수있는 몇 안되는 경우 중 하나)에서도 공식을 사용하는 것은 비현실적 일 수 있습니다. 다음 예제는 이것이 발생할 수있는 한 가지 방법을 보여줍니다.


다른 이유는 경사 하강 법이 선형 회귀를 일반화 할 때 즉시 유용하기 때문입니다. 특히 문제에 Lasso (가중 벡터의 절대 값의 합으로 구성된 정규화 항을 추가 함) 와 같이 폐쇄 형 솔루션이없는 경우에 유용 합니다.

참고 URL : https://stackoverflow.com/questions/18191890/why-gradient-descent-when-we-can-solve-linear-regression-analytically

반응형