투빅스 15기 오주영
CNN 은 더 나은 정확도를 달성하기 위해 scaling up 을 널리 사용
하지만 CNN을 확장하는 프로세스는 아직 제대로 연구되지 않았음
일반적으로 depth, width, resolution 세가지 중 하나만 확장
임의로 2~3가지를 동시에 확장할 수 있지만 빡센 tuning과정이 필요하고 더불어 그것이 optimal한 solution이 아닐 수도 있음
Accuracy와 efficiency 를 높이기 위해서 CNN을 scaling up하는 원칙적인 방법이 있을까???
본 연구는 Depth, width, resolution 세가지의 균형을 맞추는 것이 매우 중요하다는 것을 보여줌.
임의로 depth, width, resolution 을 scaling 하는 일반적인 관행과 달리 고정된 scaling coefficient 를 사용하여 효과적으로 scaling 가능.
Model compression은 model size를 줄이며 accuracy와 efficiency를 바꾸는 대표적인 방법이다.
휴대전화가 보편화되면서 SqueezeNet, MobileNet, ShuffleNet 같은 효율적인 모델을 수작업으로 만드는 게 일반적이다.
최근 NAS(Nearal Architecture Search)는 Mobile크기의 효율적인 CNN 설계에 점점 더 인기를 얻고 있으며, depth, width, resolution 등을 광범위하게 조정하며 수작업보다 더 뛰어난 효율성을 달성한다.
하지만, 튜닝 비용이 비싼 대형 모델에 이러한 기술을 적용하는 방법은 불분명하다.
본 연구는 대형 CNN 모델의 효율성을 연구하는 것을 목표로 한다.
다양한 resource의 제약에 CNN을 확장할 수 있는 방법은 layer, channel, resolution 조정 등이 있다.
모델의 확장은 더 나은 accuracy를 얻을 수 있지만 더 많은 FLOPS가 필요하다.
대부분의 CNN 설계는 를 찾는 데 중점을 두지만, model scaling은 정의된 를 변경하지 않고 네트워크의 길이 , 너비 , 해상도 (, ) 를 확장하려고 한다.
F_i를 고정함으로써 model scaling은 design problem을 단순화하지만, 각 layer마다 각각 다른 에 대해 large design space를 탐색해야 한다.
Design space를 더 줄이기 위해서 모든 layer에서 constant ratio로 균등하게 scaling하는 제약을 건다.
목표는 주어진 resource 제약에서 accuracy를 최대화하는 것이고 최적화문제로 formulate 한다.
직관적으로 더 deep한 CNN이 보다 풍부하고 복잡한 feature를 추출할 수 있고 새로운 작업에 대해 일반화 할 수 있다.
그러나, 더 깊은 네트워크 또한 vanishing gradient 문제로 학습이 어렵다.
Skip connection과 batch normalization와 같은 테크닉이 훈련 문제를 완화시키지만 깊은 네트워크일수록 네트워크의 accuracy 측면 이득은 감소한다.
네트워크의 width(channel)는 넓을수록 더 세밀한 특징을 포착할 수 있는 경향이 있으며 훈련하기가 더 쉽다.
그러나 width가 매우 크지만 shallow한 네트워크는 상위 레벨 feature를 추출하는 데 어려움을 겪는다.
고해상도 이미지를 사용하여 CNN은 더 세밀한 패턴을 추출할 수 있다.
초기 CNN 224x224부터 시작하여 현대의 CNN은 accuracy 를 높이기 위해 299x299 또는 331x331, 480x480의 고해상도 이미지를 사용한다.
우리는 경험적으로 width, depth, resolution 의 scaling 이 독립적이지 않음을 알 수 있음
Resolution 이 큰 이미지의 경우, 더 큰 receptive field를 취할 수 있도록 네트워크의 depth를 늘려야함.
또한 고해상도 영상의 더 많은 픽셀이 있는 더 fine-grained 한 패턴을 추출하기 위해서 네트워크의 width또한 늘려야함
이러한 직관은 우리가 기존의 단일 차원 scaling 보다는 서로 다른 scaling 차수를 조정하고 균형을 맞출 필요가 있음을 암시
Convolution의 FLOPS는 에 비례
CNN에서 convolution 연산이 computational cost를 지배하므로 FLOOPS는 배 증가
본 연구에서는 라는 제약식이 있기 때문에 새로운 φ에 대해 네트워크의 FLOPS는 배 증가
MnasNet에서 영감을 받아 accuracy와 FLOPS를 모두 최적화하는 multi-objective NAS를 통해 baseline network를 개발
target FLOPS 400M로 설정하여 얻은 모델 : EfficientNet-B0
STEP 1 : φ=1로 고정하여 두배의 resource를 사용할 수 있다고 가정하고 라는 제약과 grid search를 통해 α, β, γ를 탐색 -> EfficientNetB0 기준 α = 1.2, β = 1.1, γ = 1.15에서 최상의 결과를 얻음
STEP 2 : α, β, γ 를 상수로 고정한 후 3번 식을 통해 EfficientNet-B1 ~ B7까지 얻을 수 있음
투빅스 14기 김상현
이번 강의는 EfiicientNet 논문 리뷰 강의로 오주영님께서 진행해주셨습니다.
EfficientNet의 구조와 논문에서 진행된 실험들에 대해 자세히 설명해주셨습니다.
유익한 강의 감사합니다.
투빅스 14기 장혜림
모델의 효율성 측면을 다룬 논문을 처음 접해보아서 새롭게 알아가는 점이 많은 강의였습니다. 유익한 강의 감사합니다!
투빅스 14기 서아라
3주차 강의는 Efficient Net 리뷰로, 오주영님께서 진행해주셨습니다.
Efficient Net
(1) Depth
CNN이 deep할수록 보다 풍부하고 복잡한 feature를 추출할 수 있으며, 새로운 작업에 대한 일반화가 가능하지만 gradient vanishing 문제로 학습이 어려움
(2) Width
Wdith가 넓을수록 더 세밀한 특징을 포함할 수 있으나, width에 비해 shallow한 네트워크의 경우 상위 레벨 feature을 추출하는 데에 어려움을 겪음
(3) Resolution
고해상도 이미지를 사용하여 CNN은 더 세밀한 패턴을 추출할 수 있음
width, depth, resolution의 scaling이 독립적이지 않기 때문에, 기존의 단일 차원 scaling보다는 서로 다은 scaling 차수를 조정하고 균형을 맞출 필요가 있음
실험 결과 단일 차원에 대한 scaling 보다 compound scaling을 하였을 때 보다 효율적이면서 높은 정확도를 달성할 수 있다는 것을 알 수 있었음
그동안은 width, depth, resolution에 대한 복합적인 scaling에 대한 필요성을 잘 느끼지 못했는데, EfficientNet 리뷰를 통해서 compound scaling의 중요성에 대하여 알게될 수 있었던 것 같습니다! 감사합니다:)
투빅스 14기 김민경
-> width, depth, resolution의 scaling을 통해 balance를 맞추기 위한 새로운 compound scaling method를 제안(compound coefficient ϕ를 사용)
-> target FLOPS를 400M로 설정하여 얻은 모델 = EfficientNet-B0
기존의 아이디어를 탈피해서 세가지 방법을 모두 사용해보자는 아이디어를 보여주는 논문을 읽으면서 배워갈 점이 많았습니다. 감사합니다:)