inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Pytorch 를 활용한 딥러닝 Part 1 기본 알고리즘 A to Z 마스터

14강 최소 제곱법을 이용한 다중 선형 회귀

14강의 예시 데이터를 통한 답을 구하는 과정에서의 문의

59

Andrew Shin

작성한 질문수 4

0

14강 최소제곱법을 이용한 다중선형회귀에서 강사님께서 언급하신 예시 데이터의 특징이, X^TX 가 Singular Matrix 이기 때문에 유사역행렬을 이용하여 해를 찾는다고 하셨는데요.

최소제곱법에 의한 풀이법을 좀 더 검색하고 알아보니, 강사님께서 설명하신 방법인 X, y 값을 평균값으로 중심이동해서 구하는 방법 말고, X 데이터 행렬의 맨 앞에 1로 채워진 열벡터 데이터를 삽입하고 W 벡터를 w1, w2, w3 이 아닌 w0=b, w1, w2, w3 으로 하여 중심이동 없이 바로 W와 b를 구하는 방법이 소개되어있었습니다. 그런데 14강의 예제를 통해 그렇게 풀어보니 W와 b의 결과가 전혀 다르게 나왔는데 (몇번을 검산해도 똑같습니다.) 이 이유가 궁금합니다.

다시 말해 X^TX 가 Singular Matrix 가 아니라면 역행렬이 명백히 존재하므로 어떻게 계산해도 같은 결과가 나오는것이고, X^TX 가 Singular Matrix 이기 때문에 행렬의 rank 가 적어 어떤 방법으로 유사 역행렬을 구하여 계산했느냐에 따라 다른 답이 나올 수도 있는것인지 궁금합니다.

이에 대한 답변을 부탁드립니다.

 

python 딥러닝 pytorch 인공지능(ai)

답변 2

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Andrew Shin님.

최소제곱법을 이용한 다중선형회귀에서 Singular Matrix와 유사 역행렬(pseudo-inverse)의 사용에 관한 문의를 주셨네요. 학습 시에 사용하는 행렬이 Singular Matrix일 경우 역행렬이 존재하지 않아서 직접적인 해를 구하기 어려운데요, 이때 유사 역행렬을 사용하여 해를 유도하게 됩니다.

핵심 개념 요약:

  1. Singular Matrix: 행렬의 열(또는 행)이 서로 선형 독립이 아닐 때 singular가 됩니다. 이는 행렬의 rank이 full이 아니라는 것을 의미합니다.

  2. 유사 역행렬(Pseudo-inverse): 역행렬이 존재하지 않을 때 대안으로 사용하는 방법입니다. 일반적으로 무어-펜로즈 유사 역행렬을 많이 사용합니다.

  3. 중심이동과 바이어스 추가:

    • 중심이동(중심화)은 데이터의 평균을 중심으로 이동시켜 계산의 수렴성을 향상시킬 수 있습니다.
    • 바이어스를 포함하지 않을 경우, 중심이동된 데이터에 대해서도 결과가 바뀔 수 있습니다.

질문에 대한 해답:

말씀하신 것처럼, X^TX가 singular일 경우 특정한 방법으로 해를 구해야 하며, 방법에 따라 유사 역행렬로 얻는 해가 다르게 나올 수 있습니다. 사용법의 차이와 데이터 중심의 차이가 계산 결과에 영향을 미칠 수 있습니다.

따라서, 중심이동없이 바이어스 벡터를 포함하는 방법과 중심이동된 방법의 계산 결과가 다를 수 있는 것은 자연스러운 차이입니다. 이는 사용된 수치적 방법의 차이에 기인할 수 있습니다.

참고 자료:

유사 역행렬 및 Singular Matrix에 대한 이해를 돕는 다음 자료들을 추천드립니다.
- Singular Matrix 개념
- 가의 역행렬 이론

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

소프트캠퍼스 윤재성

안녕하세요 소프트 캠퍼스 입니다. 질문에 답을 드리겠습니다.


X^T가 Singular일 때 발생하는 현상: 무수히 많은 해

선형회귀에서 X^TX의 역행렬이 존재하지 않는다는 것은 독립변수들 사이에 완벽한 다중공선성(Perfect Multicollinearity)이 존재하거나, 변수의 개수가 데이터 개수보다 많다는 뜻입니다.

이 경우 데이터를 만족하는 회귀계수(W)의 조합은 단 하나가 아니라 무수히 많이 존재하게 됩니다. 즉, 어떤 방법을 쓰든 '오차 제곱합을 최소화한다'는 목적은 달성할 수 있지만, 그 목적을 달성하는 W와 b의 값 자체는 고정되지 않고 여러 형태가 될 수 있습니다.


2두 방식의 수학적 차이와 의사역행렬

의사역행렬은 무수히 많은 해 중에서 "계수 벡터의 L2 Norm(길이)이 가장 작은 해"를 찾는 특성을 가지고 있습니다. 질문하신 두 방법은 의사역행렬을 적용하는 '대상'의 구조가 다르기 때문에 최적화 기원(Origin)이 달라져 다른 숫자를 뱉어냅니다.


평균 중심이동 (Centering) 후 의사역행렬

데이터를 평균만큼 이동시켜 b(절편)의 영향을 먼저 제거한 뒤, 독립변수들 간의 관계만 가지고 의사역행렬을 구합니다. 이 방식은 "절편을 제외한 가중치들(w1, w2, ... )의 제곱합을 최소화"하는 방향으로 해를 찾습니다.


1로 채워진 열벡터 추가 (Augmentation) 후 의사역행렬

X 행렬 맨 앞에 1을 추가하여 Wnew = [b, w_1, w_2, ...]^T 구조를 만듭니다. 이 상태에서 의사역행렬을 구하면, 컴퓨터는 "절편 b를 포함한 모든 가중치의 제곱합을 최소화"하는 해를 찾습니다.


두 방법 모두 오차(Residual)를 최소화한다는 목적은 동일하게 달성하지만, 의사역행렬이 최소화하려는 대상(가중치 벡터의 크기)에 편향(b)이 포함되느냐 마느냐의 차이가 생깁니다.

X^TX가 Singular이기 때문에 이 작은 기준 차이가 완전히 다른 Wb 값이라는 결과로 나타나는 것입니다.


만약 X^TX가 Singular가 아니라면? (Full Rank)

정확히 짚어주신 대로, 만약 X^TX의 역행렬이 명백히 존재하는 상황(Full Rank)이라면 어떤 방식을 사용하든 수학적으로 완벽히 동일한 Wb가 도출됩니다. 유일한 하나의 해(Unique Solution)가 존재하기 때문에, 중심이동을 해서 구한 뒤 b를 따로 계산하든, 1을 추가해서 한 번에 구하든 최종 회귀 방정식은 일치하게 됩니다.


본 과정은 선형 대수학을 자세히 다루는 과정이 아니기 때문에 강의에서 언급하는 기본적인 내용만 알고 가시면 됩니다. 따로 선형 대수학을 자세히 공부하시면 더 헷갈리고 어려우실 겁니다. 딥러닝의 수학적인 내용은 가볍고 보고 넘어가시길 권장드립니다. 감사합니다.

스킬생성 후 업데이트.

0

4

1

강의 화면이랑 조금 달라 문의드립니다.

1

8

1

강의 업데이트

0

4

1

앱개시 비활성화 22:36 구간 인증불가

0

7

0

앱개시 비활성화 엑세스요청 불가

0

6

0

블로그 내용 정리

0

4

0

윈도우 네이티브 Hermes에도 사용 가능한가요?

0

7

0

서브에이전트 활용 질문입니다.

0

12

2

3.1.강화학습 기본 알고리즘-마르코프 결정과정

0

10

2

강의 내용이 미완성인가요?

0

6

0

매수 실행 시점 관련

0

9

0

안티그래비티 설치 화면

0

21

1

헤르메스 활용을 위한 PC최소 사양

0

14

0

섹션2, 대화&세션관리 수업 자료 누락

0

12

1

plan mode를 진행하는것에 있어서

0

12

1

ngrok 설치 및 실행 관련 현 상황 정리 (260902)

0

10

2

영상 다운로드는 안되나요?

0

14

1

슬랙에 멀티프로필 추가시 명령어 중복

0

16

1

클로드 코드 설치 오류

0

15

1

수강자료 다운로드 관련 문의

0

23

2

클로드 코드 설치 관련

0

16

1

[긴급요청2] 28강 동영상 오류(27강 음성 재생) 수정 예정일자를 알려주세요

0

40

1

[긴급요청] 28강 동영상 전체에 오디오가 잘못들어가있습니다.

0

45

1

17강 강의 마지막 부분에서 헷갈리는 부분이 있습니다.

0

48

1