23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
고등학생도 이해하는 Transformer (Deep Learning) #1
고등학생도 이해하는 Transformer (Deep Learning) #2
고등학생도 이해하는 Transformer (Deep Learning) #3
자, 이번 시간에는 4차원 이상의 벡터의 내적에 대해 이해 하고 넘어가도록 합시다.
되도록 수학연산은 안하도록 하겠습니다 ^^
아래 4차원 Basis Vector를 머릿속으로 그려 봅시다.
첫번째 Basis Vector는 [ 0.5000, 0.5000, 0.5000, 0.5000 ] 이거 두번째 벡터는 [ 0.6533, 0.2706, -0.2706, -0.6533 ] 세번째.... 네번째 벡터로 구성되어 있습니다.
이러한 벡터의 모음을 행렬(Matrix) 라고 하지요
basis_vectors = [
[ 0.5000, 0.5000, 0.5000, 0.5000 ],
[ 0.6533, 0.2706, -0.2706, -0.6533 ],
[ 0.5000, -0.5000, -0.5000, 0.5000 ],
[ 0.2706, -0.6533, 0.6533, -0.2706 ]
]4차원 공간을 만들 수없고, 4차원 공간을 만들어 4개의 Vector를 배치하는 것은 상상하기 힘듭니다.
게다가 복잡한 소숫점 숫자만 나오니 어떻게 그림처럼 머릿속에 드려야 할 지 막막합니다.
자, 그럼 그냥 단순히 그림으로 변환해 보겠습니다.
4차원 공간 대신, 각 벡터를 2차원 공간에 그림으로 표시 해보겠습니다. 가로축은 각 벡터의 요소 순서이고, 세로축은 값의 크기 입니다.
이 4개의 벡터를 Basis Vector라고 하고, 아래의 벡터를 입력으로 각 Basis Vector와 내적을 계산해 봅시다
input_vector = [
[ 0.3750, 0.1250, -0.1250, -0.3750 ],
]앞으로 수학공식을 이야기 하지 않는다고 하더니 벌써 계산하라네요.
위의 입력 벡터를 내적 계산하기 전에 한번 내적의 의미를 다시 상기시켜 보시죠.
계산은 제가 하겠습니다. 내적의 의미는 얼마나 유사한지, 영향을 주는지, 닮았는지를 나타내는 값입니다.
자, 위의 입력 벡터를 그림으로 변환해볼까요?
오른쪽 아래로 향하는 직선입니다. 그럼 Basis Vector 누구와 가장 유사한가요?
제가 보기엔 Basis Vector 2가 가장 유사해 보입니다.
그럼 실제로 내적을 계산해보죠.
Basis Vector | 내적 값 |
|---|---|
Basis Vector 1 | 0 |
**Basis Vector 2 ** | 0.557625 |
Basis Vector 3 | 0 |
Basis Vector 4 | 0.039625 |
역시, 예상대로 가장 유사한 형태인 Basis Vector 2와 가장 큰 값을 가지고 있네요.
그림만 보고 정답을 맞추셨다면 내적의 의미를 정확히 이해 하신 것 입니다!!
이 내적 값을 확률로 변환해 볼까요?
우선 간단하게 아래와 같이 계산해 봅시다
아래와 같이 Input_vector와 Basis Vector는 93% 유사하다고 볼 수 있습니다.
Simple 확률 | |
|---|---|
Basis Vector 1 | 0 |
**Basis Vector 2 ** | 0.93 |
Basis Vector 3 | 0 |
Basis Vector 4 | 0.07 |
실제로 Deep Learning 에서는 아래의 수식과 같이 Softmax함수를 이용하여 확률로 변환하는데, 위의 Simple 확률 수식에 지수의 Base를 Exp를 이용한 점만 차이가 있습니다.
이러한 방법을 이용하여 어떤 부류를 분류하는 Classification 학습에서 입력 값과 각 카테고리 별 확률을 계산하여 학습하는데 이용 할 수 있습니다.
숙제 1
다양한 입력 벡터를 만들어 머릿속으로 어느 Basis Vector 와 가장 내적 값이 클지(유사할지) 예상해보고 내적 계산해 보세요
숙제 2 - 4차원을 넘어서 8차원에 도전해보세요
아래는 8차원 DCT Matrix입니다. 아무 직선이나 곡선을 아래 DCT Basis Vector와 내적 값이 가장 큰 vector를 찾아 보세요
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
|---|---|---|---|---|---|---|---|---|
Basis Vector 1 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 |
Basis Vector 2 | 0.981 | 0.831 | 0.556 | 0.195 | -0.195 | -0.556 | -0.831 | -0.981 |
Basis Vector 3 | 0.924 | 0.383 | -0.383 | -0.924 | -0.924 | -0.383 | 0.383 | 0.924 |
Basis Vector 4 | 0.831 | -0.195 | -0.981 | -0.556 | 0.556 | 0.981 | 0.195 | -0.831 |
Basis Vector 5 | 0.707 | -0.707 | -0.707 | 0.707 | 0.707 | -0.707 | -0.707 | 0.707 |
Basis Vector 6 | 0.556 | -0.981 | 0.195 | 0.831 | -0.831 | -0.195 | 0.981 | -0.556 |
Basis Vector 7 | 0.383 | -0.924 | 0.924 | -0.383 | -0.383 | 0.924 | -0.924 | 0.383 |
Basis Vector 8 | 0.195 | -0.556 | 0.831 | -0.981 | 0.981 | -0.831 | 0.556 | -0.195 |
참고
위의 Basis Vector는 영상이나 오디오를 주파수 영역으로 변환되는데 많이 사용되는 Discrete Cosine Transform의 Basis Vector 입니다.
이 Basis Vector와 내적을 통해 주파수 영역으로 변환 후 영상 처리 후 다시 시간 영역으로 돌아올 수 있습니다. 영상처리 및 오디오 처리에 많이 사용 됩니다.
위의 DCT Basis Vector는 아래 공식에 의해 만들어졌습니다.
각각의 그래프에서 아래 그림과 같이 원으로 표시된 지점의 값을 뽑아서 만들어 진것이 DCT Basis Vector입니다.
출처 : DCT - Discrete Cosine Transform
Basis Vector의 번호가 증가할 수록 주파수가 높아지는 것을 알 수 있습니다.
높은 주파수의 Basis Vector와 내적을 한값이 크면 입력 신호의 주파수가 많다는 것을 의미라고 낮은 주파수의 Basis Vector와 내적 값이 크면 입력 신호가 낮은 주파수가 많다는 것을 의미합니다.
이렇게 시간 영역에서 주파수 영역으로 변환을 합니다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.