새소식

ML | AI/내용 정리 - 2022.09.25

Affine 변환과 딥러닝

  • -

변환 → 공간을 변형

직선평형성을 그대로 유지하는 변환을 Affine 변환이라고 한다.

Affine 변환의 일반식은 `Wx + b` 이며, 이는 Linear Transformation에 Traslation 항이 추가된 형태이다.

Affine 변환의 전 - 후 과정을 시각화하면 다음과 같다.

https://towardsdatascience.com/understanding-transformations-in-computer-vision-b001f49a9e61

위 그림을 보면 변환에 의해 격자 전체가 함께 이동한다는 것을 확인할 수 있다.

이처럼 변환에 의해 모든 점이 영향을 받아 이동하는 것은, 공간(Space)이 변형되는 것처럼 생각할 수 있다.

이 경우 변환의 역할이 공간을 변형시키는 것이라고 해도 무방할 것이다.

 

멀쩡한 공간을 굳이 변형하는 이유는 당연하게도 어떤 이득이 있기 때문이다.

실제로 변환에 의해 새롭게 얻은 공간에선, 기존에 풀지 못했던 문제를 해결할 수 있는 기회를 얻을 수도 있다. 

 

아래 그림의 왼쪽처럼 $x$, $y$ 좌표계로 구성된 Original space가 있다고 가정해보자.

이 경우 초록점과 파란점을 구분할 수 있는 직선은 존재하지 않는다.

하지만 변환에 의해 `r, \theta`로 구성된 공간을 얻게 되면, 직선 하나만으로도 초록점과 파란점을 구분할 수 있게 된다. 

물론 Affine 변환만으로 아래과 같은 변형을 얻을 순 없다.

공간 변형의 이점 : 기존에 구분하지 못했던 점들을 직선으로 구분할 수 있음

Affine 변환 in 딥러닝 → 활성화 함수의 필요성

변환이 공간을 변형시킨다는 관점으로 딥러닝 과정을 살펴보자.

딥러닝의 각 노드(퍼셉트론)의 가중치는 `Wx + b`의 식으로 나타낼 수 있다.

이는 앞서 살펴본 Affine의 일반식과 동일한 형태이다.

 

노드의 가중치가 곱해져, 공간변형되는 과정을 나타내면 아래 그림과 같다.

참고로 시각화에 편리하도록 `W` 행렬의 크기는 2 x 2이고  bias는 0인 특수한 상황이다.

가중치가 곱해져 A, B, C, D를 구분할 수 있게 된다.

그림엔 변환 전, 후의 효과를 체감할 수 있도록 알파벳(A, B, C, D)가 그려져 있다.

변환 전엔 직선으로 구분할 수 없었던 알파벳들이, 변환 후엔 직선으로 쉽게 구분할 수 있게 된다.

 

이처럼 딥러닝은 노드의 가중치를 통해, 공간 내 성분들을 쉽게 분리할 수 있다.

그럼 $Wx + b$ (노드) 만으로, 공간 내 모든 것들을 구분할 수 있을까?

당연히 아닐 것이다.

 

노드만으로 충분치 않다는 것을 보여주기 위해서, 아래 그림을 확인해보자.

이번엔 노랑, 파랑점을 직선으로 구분하는 것이 목표다.

직선만으론 노랑, 파랑 점을 구분할 수 없는 상황이다.

기존의 방법대로 노드의 가중치를 통해 공간을 변형하더라도, 노랑점과 파랑점은 구분할 수가 없다.

노드 만으론 부족한 상황이다.

 

하지만 `h1, h2`에서 0 보다 작은 성분들을 0으로 변환시킬 수 있다면 어떨까?

만약 이를 수행해주는 어떤 함수가 있다면, 그 함수의 도움을 받아 직선만으로도 점을 분리할 수 있게 된다.

1 사분면으로 모든 점을 이동하면, 직선으로도 구분할 수 있다.

우리가 활용한 함수는 0 보다 작은 성분들을 0으로 변경한다고 했다.

이 함수를 수식으로 표현한다면 $max(0, x)$ 일 것인데, 이는 활성화 함수 중 ReLU의 수식과 동일하다!

 

결국 노드의 변환 만으로 부족했던 것을, 활성화 함수가 채워주게 된다.

ReLU(활성화 함수)로 인한 Space Warping 발생

활성화 함수는 기존 노드에 의한 Affine 변환에 비해서, 공간을 더 복잡하게 변형한다.

그래서 회전, 이동만 시키는 변환 만으론 표현하지 못했던 복잡한 경계도 활성화 함수가 있다면 표현할 수 있다.

복잡한 경계를 표현할 수 있다면, 결국 더 많고 복잡한 문제들을 해결할 수 있게 될 것이다.

 

이것이 바로 딥러닝 과정에 활성화 함수가 필요한 이유이다.

활성화 함수($\tanh$)에 의한 공간 변화

활성화 함수가 공간을 복잡하게 변형한다고 했는데, 사실 ReLU 만 봐서는 크게 와닿지 않을 수 있다.

좀 더 극적으로 변화를 확인할 수 있도록, 활성화 함수가 $\tanh$ 인 경우 공간이 변하는 과정을 확인해보자. 

 

아래 그림에선 우선 `W`에 의해 공간이 회전하고, `b`에 의해서 이동된다.

이후 공간이 급격하게 변하는 순간이 있는데, 이때가 바로 $\tanh$ 가 적용된 순간이다.

Layer의 노드 개수가 공간에 주는 영향

여기까지 `Wx + b`인 딥러닝 노드(Affine 변환)의 역할과 비선형 함수의 필요성에 대해서 알아봤다.

마지막으로 딥러닝 Layer에서 노드 개수가 공간에 주는 영향을 알아보자.

 

Layer의 노드 수를 늘리면 `W`를 통해 n 차원 공간으로 변형시킬 수 있다.

이 공간에서 직선으로 점들을 분리하게 되면 실제 공간에서의 결정 경계점점 더 복잡해지게 된다.

노드의 개수가 증가 함에 따라 경계가 더 복잡해진다.

좀 더 극적으로 확인하기 위해서 아래 그림을 추가로 확인해보자.

 

그림의 왼쪽, 오른쪽은 동일한 Layer 수(Depth)를 가진 네트워크이다.

하지만 Layer별 노드 개수가 각각 4개, 2개로 달라서 공간을 변형시키는 과정다르다.

변환을 통해 최종적으로 왼쪽(노드 4개)의 경우 파란 곡선과 빨간 곡선을 직선으로 분리하는데 성공했지만 오른쪽(노드 2개)의 경우엔 실패했다.

 

이는 결국 Layer의 노드 수가 많다면, 적은 노드 수에 비해 복잡한 결정 경계를 표현할 수 있다는 것을 보여준다.

결국 딥러닝은 활성화 함수와 많은 수의 노드를 통해, 복잡한 결정 경계를 잘 표현할 수 있게 된다.


참고

  • 강의에 사용된 PPT 자료들을 활용했습니다.
 

Neural Networks, Manifolds, and Topology -- colah's blog

Neural Networks, Manifolds, and Topology Posted on April 6, 2014 topology, neural networks, deep learning, manifold hypothesis <!-- by colah --> Recently, there’s been a great deal of excitement and interest in deep neural networks because they’ve achi

colah.github.io

  • 시각화 자료를 참고했습니다.
 

Visualization of neural networks parameter transformation and fundamental concepts of convolution · Deep Learning

Visualization of neural networks parameter transformation and fundamental concepts of convolution $$\gdef \sam #1 {\mathrm{softargmax}(#1)}$$ $$\gdef \vect #1 {\boldsymbol{#1}} $$ $$\gdef \matr #1 {\boldsymbol{#1}} $$ $$\gdef \E {\mathbb{E}} $$ $$\gdef \V

atcold.github.io

  • 시각화 자료를 참고했습니다.
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.