음악 분류 딥러닝을 만들자(13) - mobileNetV2 아키텍처

응큼한포도·2024년 8월 4일
0

특징

mobileNetv2의 아키텍처의 특징은 the
inverted residual with linear bottleneck이다. mobileNet 시리즈의 특징이 그렇듯 이전 버전의 아키텍처와 현재 버전 사이에 중요한 경량화 아키텍처를 모두 흡수해 정제하는 구조를 가지고 있는데 v2또한 v1의 depthwise의 아키텍처를 사용한다.

그래서 v2를 이해하려면 v1의 구조를 이해해야 하고 Residual block과 bottleNeck 구조를 소개한 resNet을 이해해야 한다.

중요사항

mobileNetV2를 이해하는 가장 중요한 사항이 있다.
위상수학, 미분기하학의 엠베딩과 사상을 이용해 이해 해보자.

수학적 정의는 추상화 되어 있어서 이해하기 어려우니 하나씩 해체 해보자
우선 연속 함수는 엄밀한 정의가 있긴 하지만 딥러닝을 이해하는 선에선 그냥 고등학교에서 배우는 연속 함수로 생각하자.

사실 이걸 어떻게 설명하면 좋을까 싶긴하다. 수학은 정제된 언어로 결국엔 수학을 익혀야 알 수 있어서 내가 쉽게 풀어서 쓴 순간 틀린 것이 되어버린다. 근데 어쩌라고 내가 뭔 학자도 아니고 수학공부하는 사람도 아닌데 뭐 그냥 쉽게 설명해보겠다.

우선 mobileNetV2에서 linear bottleNeck의 가장 중요한 가정은 activate tensor층이 "manifold of interest"란걸 형성하는 데 이 manifold of interest에서 중요한 부분은 일부분이라는 뜻이다.

위상 수학으로도 설명할 수 있고 미분기하학도 사용 가능하지만 논문에서 강조하는 게 선형적인 함수이기 때문에 선형대수로 쉽게 설명해보겠다.

bottleNeck transformation

논문에서 manifold of interest를 이끌어 내는 연산이 bottleNeck transformation이다.

우선 manifold는 공간을 고급지고 수학적으로 정확하게 설명하는 용어다. 그냥 공간이라고 생각하시고

이름에 왜 interest가 붙었나? 논문에서 Relu 함수를 activation으로 사용하는 데 이 activation의 역할이 일종의 거름망으로 기준치(0) 이상의 값만 모델에 중요하다고 생각하고 나머지는 다 걸러버리기 때문에 Relu 해주면 우리가 관심을 가질만한 데이터만 남는다고 해서 interest란 말이 붙었다.

우선 논문의 bottleNeck의 수식을 살펴보자.

bottleNeck은 A ReLU(Bx)를 기본구성을 가지고 있다.

프리드버그 5판 80쪽을 보면

위와 같은 표현이 있다. 간단하게 말하자면 T와 같은 함수, 연산자를 basis를 이용해 행렬로 표현할 수 있다는 말이다.

이걸 왜 끌어오냐면 bottleNeck의 ReLu는 부분적인 선형함수이기 때문에 행렬표현으로 바꿔줄려고

그럼 이렇게 이렇게 바꾸자

A ReLU(Bx) = A⋅D⋅B⋅x 로 나타낼 수 있다. 이제 행렬로 바꿨으니 행렬의 기본 지식을 이용해 공간을 살펴보고 뜻을 이해 해보자.

열공간과 행공간

열공간의 정의를 살펴보자. Ax가 이루는 열공간은 A의 열벡터의 선형결합으로 나타낸다는 말이다.
간단하게 말하자면 Ax의 모든 결과값들은 A의 열공간의 임의의 선형결합으로 만들수 있다는 뜻이다. 따라서 Ax의 특징은 A의 열공간을 안다면 어떤 Ax의 값이라도 A의 열공간안에 포함되기 때문에 간단히 예측할 수 있다.

논문에서 bottleNeck 구조를 열공간으로 생각하면 편하다.

AReLU(Bx) = A⋅D⋅B⋅x

  • x는 n-차원 벡터로, n개의 채널을 가진 픽셀을 나타낸다
  • B는 m x n 크기의 행렬
  • A는 n x m 크기의 행렬
  • D는 m x m 대각 행렬

그럼 이렇게 보자.

A⋅D⋅B⋅x = A⋅(D⋅(B⋅x))

Bx는 B의 열공간의 일부분인 subspace로 나타난다.

좀 더 크게 보면
D⋅(B⋅x)는 D의 열공간의 일부분인 subspace로 나타난다.

좀 더 쉽게 표현하면 B⋅x는 m x 1인 벡터, 즉 m차원 벡터로 나타난다. 그럼
D⋅(B⋅x)는 D 열공간의 임의의 선형결합 중 하나인 subspace로 볼 수 있다.

이 말은 무엇이냐? D는 Relu activation으로 우리 모델에서 중요한 부분의 데이터만 걸러주는 역할, 즉 관심있는 데이터(interest)로 정제하는 과정이고 이 관심있는 데이터는 D의 열공간(manifold)의 subspace로 표현된다는 소리다.

즉 논문의 manifold of interest는 Relu activation(D)의 열공간(manifold)의 subspace(interest)로 거를 수 있다는 소리다.
그렇다면 A는 무엇일까? A는 처음 데이터의 형태를 복구하는 행렬로 우리 연산의 행렬의 형태로 차원을 분석해보면
x: n x 1
B⋅x : m x 1
D⋅B⋅x : m x 1
A⋅D⋅B⋅x : n x 1
으로 처음 input의 n차원이 m차원으로 표현되니 그걸 다시 n차원으로 복구해주는 역할을 한다.

비선형 대신 선형 activation

그럼 bottleNeck 구조에선 왜 선형 activation을 사용 했을까?
D⋅B⋅x : m x 1에서 원래 데이터 형태인 A⋅D⋅B⋅x : n x 1로 복구한다고 하면 D가 비선형이면 원래 input을 보존하지 않는 함수이고 변형된 데이터를 원래 차원으로 복구하는 것이다.

반면 D가 선형인 Relu라면 기준치 이상을 그대로 보존하고 다시 원상복귀 시키는 과정이고 즉

bottleNeck의 핵심은 interest에 해당되는 값만 보존시키고(f(x) = x) 나머지는 버려서 다시 복구하는 과정인데 비선형인 D값을 사용하는 건 목표를 달성할 수 없다.

원래 자료중에 중요한 것만 가져 갈려는 데 원래 값을 변형 시키면 그건 변형된 입력 값이고 원래 입력값과 다른 새로운 값이라 우리가 세운 원래 값 중 중요한 값만 가져가는 게 퇴색된다. 그래서 선형 보존(identical)을 사용하는 것이다.

profile
미친 취준생

0개의 댓글