inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

55

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

7

2

유튜브는 4일전에도 영상 올라왔던데, 이 강의는 언제쯤 ㅜㅜ

1

8

1

챌린지 시작일 문의

0

6

0

2. 어떤 도구를 사용하는 것이 가장 유리할까? 강의 중

0

10

1

안녕하세요 ppt 자료 메일로 부탁드립니다

0

6

0

화면 깜박임 현상

0

12

1

앱키와 씨크릿 복사 붙여넣기

0

9

1

쉬운 내용 스킵

0

7

0

줄바꿈 시 \ 필수인가요?

0

10

2

11차시 Antigravity IDE 설치 후

0

14

1

2605 이후 최신 클로드코드 강의 추가 부탁드립니다.

0

8

2

링크드 리스트 중간 삽입삭제 시간복잡도 질문

0

9

1

Kaggle 노트북(predict.ipynb) 관련

0

9

0

처음 에이전트 설정을 잘못 했을 경우 수정 하는 방법

0

9

1

5,6,7,8 내용이 없어요

0

12

1

커리큘럼 문서 제공받을 수 있을까요?

0

14

1

systemd 셋팅

0

10

1

강의 연장 문의

0

10

1

에이전트 에러

0

16

1

커스텀 에이전트 생성하기

0

9

1

수강 신청 연장 문의드립니다.

0

23

1

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

0

37

1

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

0

44

1

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

0

46

1