inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Làm chủ thuật toán cơ bản từ A đến Z về Deep Learning sử dụng PyTorch Phần 1

Bài 14: Hồi quy tuyến tính đa biến sử dụng phương pháp bình phương tối thiểu

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

39

Andrew Shin

4 câu hỏi đã được viết

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)

Câu trả lời 2

1

communityai8509

안녕하세요, 인프런 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

softcampus

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


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

20

3

섹션 2 - 9강 강의자료 다운로드 문제

0

11

2

디자인 패턴 관련하여

0

8

0

첨부파일이 열리지 않습니다.. .pdf.json 파일로 받아지네요ㅠ

0

7

0

진행이안되네요

0

9

1

runpod 사용방법이 궁금합니다..

0

13

1

다른 LLM에서의 에이전트 라이브러리 지원여부

0

6

1

29강 3:09

0

13

2

접근 가능한 카트 목록을 조회하는 API는 없는걸까요?

1

11

2

회사 PC에 도커등 설치해도 될까요?

0

11

1

28강 6:42

0

11

2

15, 78 강의가 나오지 않습니다.

0

10

1

/init을 하기 전인데, 강의화면처럼 settings.local.json이 없어요.

0

27

2

강의 UI가 달라 고생인 분들께!

0

24

1

섹션 5 영상 안나옴

0

20

1

22강 17:33

0

18

2

강의 문의입니다

0

20

1

claude code 설치가 안돼요

0

22

2

픽셀아트

0

21

0

75강 26년 1회 코드 문제 해석 강의 질문 드립니다.

0

18

2

강의 화면이랑 실제 UI 화면들이랑 너무 다릅니다.

0

29

2

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

0

30

1

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

0

31

1

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

0

31

1