선형 회귀 모델의 계수를 찾으려면 경사 하강이 필요합니까?


31

Coursera 자료를 사용하여 기계 학습을 배우려고했습니다 . 이 강의에서 Andrew Ng는 기울기 하강 알고리즘을 사용하여 오차 함수 (비용 함수)를 최소화 할 선형 회귀 모델의 계수를 찾습니다.

선형 회귀의 경우 그라디언트 디센트가 필요합니까? 오차 함수를 분석적으로 차별화하고 계수를 풀기 위해 0으로 설정할 수 있습니다. 맞습니까?


3
1700 년대부터 선형 모델은 상당히 잘 처리되었습니다. 그라디언트 디센트 (GD)가 필요없는 처리 방법에는 여러 가지가 있습니다. 이러한 방법의 대부분이 얼굴에 평평하게 떨어지는 비선형 모델이 있습니다. Andrew는 매우 간단한 문제에 대해 익숙하지 않지만 매우 유용한 방법을 사용하여 접근 방식을 디버깅 할 수 있도록합니다. 이 방법에 익숙하면 GD가 결과를 얻는 유일한 방법 인 놀랍도록 비선형 문제에 적용 할 수 있습니다.
EngrStudent-복직 모니카

10
아니요, 그래디언트 디센트와 같은 접근 방식을 사용할 필요는 없습니다 (어쨌든 유일한 최적화 방법은 아닙니다). 제안한대로 실제로 분석적으로 해결할 수 있습니다. 각 매개 변수에 대해 구별하므로 매개 변수 당 하나의 방정식을 얻습니다. 그러나 다른 방법으로 수행 할 수있는 간단한 문제를 해결하는 것이 유용합니다. 이미 답을 알고 있다면 그라데이션 하강으로 정답을 얻을 수 있습니다.
Glen_b-복지 주 모니카

비용 함수가 일반적인 2 차 ( '거리') 페널티 인 경우 폐쇄 형 솔루션이 있습니다. 그러나 그래디언트 디센트는 일반적으로 훨씬 빠르기 때문에 일반적으로 사용됩니다.
aginensky

또한, 구배 하강은 분석적으로 다루기 어려운 문제에 대한 수치 해를 찾는 데 사용될 수 있습니다. 나는 그가 초기에 경사 하강을 사용하여 익숙해 졌다고 생각합니다. 나는 그가 신경망과 함께 경사 하강을 사용한다고 믿는다. 신경망 상황이 더 복잡하다는 것은 말할 필요도 없습니다. 나는 교육적 상황에서 선형 모델을 사용하여 신경망과 함께 사용하기위한 구배 하강이 더 합리적이라고 생각합니다.
aginensky

3
내가 본 Andre Ng 동영상에 thet 링크를 게시 해 주셔서 감사합니다. 나는이 극단적 인 것은 아니지만 이미 알고 있었지만, 대다수의 사람들이 "학습"최적화가 무엇을 배우고 있는지, 적어도 그들 중 일부는 통계 컴퓨팅에 대해 배우고있는 것은 말할 것도 없다. 그가 스탠포드 대학 컴퓨터 과학학과 지금 가르쳐되고 있는지 알고 있다면 유전자 Golub, 컴퓨팅 및 SVD를 사용의 선구자, 그의 무덤에서 굴러 것 "재미있는 '비디오는 youtube.com/watch?v=B3vseKmgi8E , 어떤 최소 제곱에 대해 2 개의 WORST 알고리즘을 권장하고 비교합니다
Mark L. Stone

답변:


43

선형 최소 제곱은 다음과 같이 해결할 수 있습니다.

0) 제한되지 않은 선형 최소 제곱에 대해 아래 설명 된대로 SVD 또는 QR을 기반으로하는 고품질 선형 최소 제곱 솔버를 사용하거나 아래 설명 된대로 제한 또는 선형 제한 최소 제곱에 대한 2 차 프로그래밍 또는 원뿔 최적화 버전을 기반으로합니다. 이러한 솔버는 미리 준비되어 있으며 많은 테스트를 거쳐 바로 사용할 수 있습니다.

1) SVD는 가장 신뢰할 수 있고 수치 적으로 정확한 방법이지만 대안보다 더 많은 컴퓨팅을 필요로합니다. MATLAB에서 구속되지 않은 선형 최소 제곱 문제 A * X = b의 SVD 솔루션은 pinv (A) * b이며, 매우 정확하고 신뢰할 수 있습니다.

2) QR은 상당히 신뢰할 수 있고 수치 적으로 정확하지만 SVD만큼 크지 않으며 SVD보다 빠릅니다. MATLAB에서 구속되지 않은 선형 최소 제곱 문제 A * X = b의 QR 솔루션은 A \ b입니다. 이는 A가 잘못 조정 된 경우 (즉, 조건 번호가 큰 경우)를 제외하고는 상당히 정확하고 신뢰할 수 있습니다. A \ b는 pinv (A) * b보다 계산 속도가 빠르지 만 신뢰성이 높거나 정확하지는 않습니다.

3) 정규 방정식의 형성

3a) Cholesky Factorization으로 해결하기 (좋지 않음)

3b) 명시 적으로 반전 행렬 (HORRIBLE)

4) 2 차 프로그래밍 문제 또는 2 차 콘 문제로 해결

4a) 고품질 2 차 프로그래밍 소프트웨어를 사용하여 해결합니다. 이는 신뢰성 있고 수치 적으로 정확하지만 SVD 또는 QR보다 시간이 오래 걸립니다. 그러나 목적 함수에 바운드 또는 일반 선형 구속 조건 또는 선형 또는 2 차 (2 표준) 페널티 또는 정규화 용어를 쉽게 추가 할 수 있으며 2 차 프로그래밍 소프트웨어를 사용하여 문제를 여전히 해결할 수 있습니다.

4b) 고품질 Conic Optimization 소프트웨어를 사용하여 2 차 콘 문제를 해결하십시오. 설명은 2 차 프로그래밍 소프트웨어의 경우와 동일하지만 경계 또는 일반 선형 구속 조건 및 기타 원뿔 제약 조건 또는 다양한 표준의 페널티 또는 정규화 조건과 같은 목적 함수 조건을 추가 할 수도 있습니다.

5) 고품질 범용 비선형 최적화 소프트웨어를 사용하여 해결하십시오. 이것은 여전히 ​​잘 작동 할 수 있지만 일반적으로 2 차 프로그래밍 또는 Conic Optimization 소프트웨어보다 느리고 신뢰성이 떨어질 수 있습니다. 그러나 바운드 및 일반 선형 구속 조건뿐만 아니라 비선형 구속 조건을 최소 제곱 최적화에 포함시킬 수도 있습니다. 또한 비선형 최소 제곱에 사용할 수 있으며 다른 비선형 항이 목적 함수에 추가 된 경우에도 사용할 수 있습니다.

6) 까다로운 범용 비선형 최적화 알고리즘을 사용하여 해결하십시오-> 절대로 이것을하지 마십시오.

7) WORST POSSIBLE 범용 비선형 최적화 알고리즘을 사용하여, 즉 기울기 하강을 해결합니다. 누군가가 당신에게 선형 하강 제곱 문제를 해결하기 위해 그라데이션 하강을 사용하도록 지시하는 경우 솔루션 방법이 얼마나 나쁘고 신뢰할 수 없는지 보려면 이것을 사용하십시오

7 i) 그것에 대해 알고있는 사람으로부터 통계 계산에 대해 배웁니다.

7 ii) 그것에 대해 아는 사람으로부터 최적화를 배우십시오.


좋은 게시물, 왜 Cholesky가 좋지 않다고 생각합니까? (그리고 우스운 조건 번호가 아닌) BTW, 나는 당신이 "SVD"또는 "명시 적으로 거꾸로 한"지점에서 일반화 된 역의 개념 (주로 교육 목적으로 분명히 사용됨)을 말하거나 추가하고 싶다고 생각합니다.
usεr11852는 Reinstate Monic

2
BTW, 특히 씻지 않은 질량 (즉, 접근이 민주화 된 경우에 선형 최소 제곱을하는 사람들의 대다수)에 의해 매우 높은 조건 수를 가진 행렬이 얼마나 자주 생성되는지는 우스운 일입니다.
Mark L. Stone

1
mldivide, 즉. 백 슬래시, 즉 \는 위의 단락 (2)의 두 번째 문장에서 언급 한 것처럼 m ~ = n (최소 제곱) 일 때 QR을 사용합니다. MATLAB에 얼마나 많은 쓰레기가 있는지 놀랄 것입니다. 도구 상자뿐만 아니라 일부는 절대적으로 무섭지 만 일부 핵심 기능은 그 정도가 적습니다.
Mark L. Stone

1
@ MarkL.Stone, 좋은 답변입니다! 최소 제곱을 풀기 위해 그라데이션 하강을 사용하지 않는 이유에 대해 좀 더 설명해 주시겠습니까? (내 이해에서 그것은 위에서 언급 한 다른 방법 (방향 솔루션 접근법)과 비교하여 반복적 인 접근법 일뿐입니다). 또한 문제에 대해 언급 할 수 있습니까? "문제에 대해 n> = 30,000 개의 특징이있는 경우, n * n 행렬을 뒤집는 것이 끔찍하기 때문에 정규 방정식 방법이 매우 느리게됩니다! SVD와 QR이 어떻게 작동하는지에 대한 모든 생각 " 어떤 제안이라도 도움이 될 것입니다.
anu

1
@ anu 최후의 수단으로 그라데이션 하강 만 사용하십시오. SVD 나 QR로 해결할 수없는 문제 일 경우에만 가능합니다. 절대 방정식을 형성하기 위해 행렬을 명시 적으로 뒤집는 것은 물론 절대 방정식도 절대로 형성하지 마십시오. 현재 30,000 개의 기능은 그리 많지 않습니다.
Mark L. Stone

0

선형 모델의 계수를 찾는 것은 기술적 으로 일련의 선형 방정식에 대한 해를 찾는 프로세스입니다 .

이러한 솔루션을 계산하기 위해 많은 optimization techniques것이 개발되었으며 Gradient Descent그 중 하나입니다.
따라서 Gradient Descent가 유일한 방법아닙니다 .

이 때문에 과정은 앤드류 잉이 그것을 사용하는 간단한 고급 선형 대수 및 수치 계산을 처리하지 않고, 이해하기.


틀린 것은 아니지만 귀하의 답변은 비표준 사례에 초점을 두어 더 큰 그림을 그리워한다고 생각합니다. 대부분 선형 회귀 모델은 폐쇄 형태의 용액을 이용 QR 분해를 이용하여 장착된다. GD-gradient decent-는 고급 방법 (예 : SGDstochastic GD) 을 도입하기위한 예로 사용됩니다 .
usεr11852는 Reinstate Monic

QR 분해 란 무엇입니까?
Victor

3
를 풀고 싶습니다 . 감안 여기서 상 삼각이고, 직교, 후방 교체함으로써 해결할 수있다 (예. 단식)로 삼각형이고, . 들어 매우 큰 행렬 (수백만 개의 항목)이 반복 솔버 예보다 더 비쌀 수있다. . 대부분의 사람들이 매우 큰 행렬을 가지고 있지 않기 때문에 QR 분해가 더 좋습니다. 일반적으로 QR 분해는 수치 세계를 형성했습니다. SIAM 은이를 20 세기의 10 대 알고리즘 중 하나로 선택했습니다. Ax=bA=QRRQAx=bQRx=bRx=QTbRQTQ=ISGD
usεr11852는 Reinstate Monic

@ usεr11852 예 물론입니다. 나는 QR 해체와 같은 개념을 피하기 위해 대답을 간단하게 유지하고 싶기 때문에 Ng의 코스 수준 도메인과 관련이 있습니다.
Vikas Raturi

3
QR은 20 세기의 10 대 알고리즘 중 하나였습니다. 그러나 시간이 흐르고 SVD를 계산하기위한 효과적인 알고리즘이 1960 년대로 거슬러 올라가더라도 응용 분야의 중요성을 고려해야합니다. 따라서 SVD는 21 세기의 TOP 알고리즘이라고 생각합니다. 솔직히 영화를 추천하기 위해 QR을 사용한다고 들었습니까? 아닙니다. SVD는 그 중요한 적용에 사용됩니다. SVD는 트위터가 보수적 인 오래된 간헐천에게 어떤 십대 유명인이 따라야하는지에 대한 자발적인 권장 사항을 보낼 때 선택하는 알고리즘입니다. QR이 그렇게하는 것을 보자 !!!
Mark L. Stone
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.