Goorm : AI 기술 자연어 처리 전문가 양성 과정 3기 강의
인공지능을 위한 선형대수
를 바탕으로 공부한 내용을 요약한 포스팅입니다.
선형 변환이 실제 딥 러닝(Deep Learning)이 기반을 두는 신경망(Neural Networks)에서는 어떻게 작용하는지 알아보기
선형 변환은 Neural Networks에서 fully connected layers(linear layer)의 기본적인 형태
- 왼쪽 그림은 Neural Networks의 한 레이어가 있을 때 시각화한 것
- (2차원에서 2차원으로 선형 변환되는 레이어가 있고 bias는 없을 때)
- 이 레이어를 통과하면 T [1,0] = [2,3]과 T [0, 1] = [1,4]라는 변환
- = Ax 선형 변환 (A는 계수 집합 행렬)
standard basis [1,0] [0,1]를 그려보면
A로 인한 선형 변환 후
입력 벡터가 평행 사변형으로 기울어진 모눈종이 위로 선형 변환
출쳐 :Neural Networks, Manifolds, and Topology -- colah's blog
머신러닝, 딥러닝에서 쓰이는 개념들을 알기 쉽게 설명해놓은 블로그
Affine layer
- y=3a+b는 선형 변환이 아님
- 선형 변환에 bias가 추가된 변환이 Affine transform
Affine transform을 Linear transform으로 바꾸기 위해서는 입력으로 사용되는 벡터에 1을 추가하면 됨
과정
Neural Networks에 픽셀 4개로 이루어진 이미지가 입력되었을 때
[[56, 231], [ 24, 2]] 벡터화가 됨
Neural Networks의 레이어는 입력과 bias term(1)로 이루어짐
Neural Networks의 출력은 3개의 노드
입력 벡터를 3차원 결과로 만들어주는 선형 변환의 메트릭스가 주어지고 학습을 통해 최적화가 됨
bias term 넘어오는 상수 벡터가 있게 됨
-> 직선의 방정식에서 상수가 있는 경우의 변환은 Affine transform
이를 선형 변환으로 만들기 위해 bias term 1을 입력으로 추가
행렬을 columns으로 나누고 입력을 상수값으로 사용해서 선형 결합
마지막에 bias term에 해당하는 벡터가 들어옴
이를 다시 행렬과 벡터의 곱으로 나타낼 수 있음
columns을 다시 모아서 행렬로 만들고 bias term까지 같이 가져옴 -> Ax형태로 선형 변환 성립
이런 과정으로 Affine transform을 linear transform으로 바꿀 수 있음 Ax