벡터
벡터를 통해 N차원 공간에서 한 점을 나타 낼 수 있다.
다시 말해 벡터를 이용해 데이터를 표현 한다.
행렬
1. 행렬은 벡터를 원소로 가지는 2차원 배열
즉 데이터들의 배열
2. 행렬곱을 통해 다른 차원으로 데이터를 보낼 수 있다.
(아래 그림은 m차원 데이터 x를 A행렬곱을 통해 m차원 데이터 z가 된다)
행렬을 이용한 방정식 표현
행렬을 이용해서 연립 방정식을 표현 할 수 있다.
위 그림의 z를 b로 수정하면 아래와 같은 방정식과 같다.
즉 아래의 연립 방정식들을 행렬을 이용하면 AX = B 라고 간단하게 표현이 가능하다
선형회귀 분석
행렬의 성질을 이용해 데이터를 선형모델로 해석하는 선형 회귀식을 찾아본다.
행렬을 이용해서 아래의 연립 방정식을 Xβ = Y로 표현을 할 수 있다.
여기서 X의 역행렬을 구할 수 있다면 β를 구하는건 간단하다.
X*(X역행*Y) = Y 이므로 β = X역행*Y이다. 이를 통해 y=βx인 초록색 선형식을 구할 수 있다
하지만 X역행렬이 없는 경우(방정식을 풀 수 없는경우) 역행렬에 근사한 Moore-Penrose 유사 역행렬을 이용해야한다. X*(X무펜역행 * Y) = Y로 말이다. 하지만 이는 유사 역행렬이므로 X*(X무펜역행 * Y) 는 Y의 근사값이다.
즉 우리가 선형회귀 분석하는건 Xβ와 y들의 L2노름이 최소인 선형방정식을 찾은것이다
선형 회귀 분석 코드화
이를 코드로 구현 할 수 있다.
Sckit learn과 Moore-Penrose를 이용해서 구할 수 있다.
하지만 무어-펜로즈를 이용 할 경우 y절편이 추가되어 있지 않으므로 추가해줘야된다.
(Y=Xβ+a << 무펜을 이용하면 y절편인 a가 없다. 코드 작성시엔 직접 추가해야된다.)
'기타 > 리뷰 및 경험담 - p stage' 카테고리의 다른 글
[AI Math] 딥러닝 학습 방법 (0) | 2021.09.23 |
---|---|
[AI Math] 경사하강법 (0) | 2021.09.22 |
[부스트캠프] (1주차) 필수 과제 1~5 관련 정리 (0) | 2021.08.06 |