: Floating point Operations Per Second라는 의미로 컴퓨터의 성능을 수치로 나타낼 때 주로 사용되는 단위이다. 즉, 초당 부동소수점 연산
이라는 의미로 컴퓨터가 1초동안 수행할 수 있는 보동소수점 연산의 횟수를 기준으로 삼는다.
: Neural Architecture Search의 약어로 신경망 모델 구조 탐색이라는 의미이다. 기존 딥러닝 아키텍처 설계에 있어서 대부분 수동적으로 하이퍼파라미터를 조정하였고, 이에 따라 어느 task에서 어떤 dataset을 쓰느냐에 따라 최적의 네트워크 구조가 달랐다. NAS는 이런 고민으로부터 시작되었고, data와 task를 대상으로 뉴런 연결 구조 및 가중치를 탐색
하는 것이 목표이다.
NAS는 Search Space
(탐색 범위), Search Strategy
(탐색 전략), Performance Estimation Strategy
(모델 성능 추정 전략) 등 3가지 요소로 구성된다.
- 알고리즘이 탐색을 수행하는 영역으로 Layer수, 하이퍼 파라미터, Operation의 종류 등을 의미한다.
- Search Space의 요소들을 이용하여 최적 Architecture를 찾기 위한 방법
- Exploration, exploitation을 고려해야 한다.
- Search Strategy에서 추출한 후보 Architecture의 성능을 예측한다.
- Search Strategy는 후보 Architecture의 예상 성능을 반영하여 새로운 Architecture를 만드는 과정을 반복한다.
depth
(깊이), width
(너비), resolution
(해상도) 세 가지의 균형을 이루는 network가 더 나은 성능을 가진다는 것을 증명했다. Compound Scaling Method
라고 부른다.
- 위 그림은 EfficientNet 모델이 다른 모델과 비교했을 때 더
적은 파라미터들
로 더 높은 정확도를 보인다는 것을 보여준다. (다른 모델은 파라미터수가 많을수록 정확도가 올라간다.)
'지금까지 더 나은 정확도와 효율성으로 ConvNet을 scaling하는 정형적인 방법은 없을까?'
라는 의문점을 제기하였다.
- 위 그림에서 맨 오른쪽에 있는 (e) compound scaling과 같이 width, depth, resolution 세 가지 요소를 모두 scaling을 시도할 것이다.
- ex) 만약 2^N 만큼의 컴퓨팅 자원을 사용할 수 있다면, depth를 α^N, width를 β^N, image size를 γ^N 로 증가시키면 된다.
- 즉, 이미지가 크면 receptive field를 늘리기 위해 더 많은 Layer가 필요하고, 더 미세한 pattern을 얻기 위해 더 많은 channel이 필요하다.
저자가 뭘 해내고 싶어 했는가?
- 기존에는 모델 성능을 높일 때 수동으로 조절했던 depth(깊이), width(너비), resolution(해상도) 등을
compound scaling
로 제안함으로써 짧은 시간에 좋은 성능을 내는 모델을 만들고자 하였다.
compound scaling
을 적용한EfficientNet
을 제안하여 효율성을 높인 모델 구축하고자 한다.
이 연구의 접근 방식에서 중요한 요소는 무엇인가?
- 기존에는 성능 향상을 위해 width, depth, resolution 중 하나만 선택하여 scaling하였다.
하지만 Compound Scaling Method를 통해복합계수
(compound coefficient)를 사용해 이 세 가지 요소를 균일하게 스케일하자는 Idea가 핵심이다!
어느 프로젝트에 적용할 수 있는가?
- Wconcept_Clothes 패션 의류 이미지 분류 프로젝트를 할 때 적용할 수 있다.
기존에는 ResNet을 하였지만, EfficientNet을 사용하여 경계선이 모호한 이미지 또는 뭉텅이로 있는 이미지 등에 적용함으로써 더 좋은 성능을 기대해본다.
참고하고 싶은 다른 레퍼런스에는 어떤 것이 있는가?
- 선행논문: ResNet > MobileNet > SENet
- EfficientNet에서는 MobileNet과 SENet에서 제안했던 개념이 사용되기 때문에 먼저 공부하는 것을 권장한다.
- ObjectDetection + EfficientNet을 적용한 EfficientDet를 공부하기!
느낀점은?
EfficientNet이 현업에서 왜 많이 사용되는지 알 수 있었고, scaling을 통해 정확도 및 성능을 더 올릴 수도 있구나를 알게 되었다.
한정된 resource에서 어떻게 하면 성능을 더 높일 수 있을까?라는 의문을 던지며 이와 비슷한 논문 리뷰를 얼른 해봐야겠다!!