안녕하세요 딥러닝 논문읽기 모임 입니다.
오늘 소개드릴 영상은 펀디멘탈팀 송헌님의 Loss Function Discovery for Object Detection Via Convergence- Simulation Driven Search 라는 논문 입니다.
문의 : tfkeras@kakao.com
2. 공헌
00
• 유전 알고리즘을 통해 Object Detection을 위한 손실 함수의 탐색방법을 제안
• 다른 방법들에 비해 빠르게 탐색할 수 있다고 주장
• 탐색된 손실 함수를 이용하여 다양한 모델에서 실험적으로 성능을 향상시킴
3. 유전 알고리즘
01
• 유전 알고리즘은 유전자들을 이용해서 함수에서 최적의 해를 구하는 알고리즘
• 한 세대에 여러 유전자들을 준비해두고 세대를 거치며 유전자들을 변형
• 대체로 (1) 선택 (2) 교차 (3) 변이 의 반복으로 이루어진다
1. 선택: 높은 적합도 (점수)를 가진 유전자들을 중점적으로 선택
2. 교차: 선택된 유전자들을 교배를 통해 다음 세대를 생성
3. 변이: 생성된 유전자들의 정보를 일부 바꿈
http://www.abrandao.com/2015/01/simple-php-genetic-algorithm/
4. 유전 프로그래밍
01
• 유전자를 트리 구조로 사용하면 수식 혹은 프로그램 코드를 유전자로 표현 가능
https://en.wikipedia.org/wiki/Symbolic_regression
5. 유전 프로그래밍
01
• 교차: 두개의 트리중 일부분을 서로 바꿈
Fitzgerald et al. “Balancing exploration and exploitation in genetic programming using in
version with individualized self-adaptation”
6. 유전 프로그래밍
01
• 변이: 노드를 다른 하나의 노드 혹은 하나의 서브-트리로 바꿈
Fitzgerald et al. “Balancing exploration and exploitation in genetic programming using in
version with individualized self-adaptation”
8. 문제점
02
• 기존의 Object detection 모델들은 사람이 만든 몇개의 손실 함수만 사용해옴
• 이를 해결하기 위하여 여러가지 손실함수를 자동으로 탐색하는 알고리즘들이 제시
• 하지만 몇몇 방법론*들은 굉장히 작은 함수공간에서만 탐색을 하던가,
• 큰 함수공간을 사용하는 방법론**들은 너무 많은 함수들을 시도해봐야 했음
*Wang et al., “Iou-aware single-stage object detector for accurate localization”, CVPR, 2020
**Gonzalez et al., “improved training speed, accuracy, and data utilization through loss function optimization”, CEC, 2020
9. 문제점
02
• 기존의 Object detection 모델들은 사람이 만든 몇개의 손실 함수만 사용해옴
• 이를 해결하기 위하여 여러가지 손실함수를 자동으로 탐색하는 알고리즘들이 제시
• 하지만 몇몇 방법론*들은 굉장히 작은 함수공간에서만 탐색을 하던가,
• 큰 함수공간을 사용하는 방법론**들은 너무 많은 함수들을 시도해봐야 했음
*Wang et al., “Iou-aware single-stage object detector for accurate localization”, CVPR, 2020
**Gonzalez et al., “improved training speed, accuracy, and data utilization through loss function optimization”, CEC, 2020
• 저자들은 이것이 object detection이라는 task의 특성이라고 주장
• 10만개의 탐색된 함수들중 오직 한개만이 학습에 사용할 수 있었음
10. 제안방법
03
• 저자들은,
• 유전 알고리즘을 통해 다양한 수식을 만들 수 있는 방법을 채택하였으며
• 수학적이며 실험적인 검증방법을 통해 적은 시도만 함수를 찾는 방법을 제안
AP: 37.6%
(a) Cross-entropy loss
AP: 37.7%
(b) Candidate1
1
AP: 37.8%
(c) Candidate2
AP: 38.2%
(d) CSE-Autoloss-Acls
Constant Variable Operation
11. 제안방법
03
• N개의 손실함수를 사용
• convergence property verification를 통해 1차 필터링
• model optimization simulation를 통해 2차 필터링
• 살아남은 K개의 손실함수를 테스트
• 그중 가장 점수가 높은 P개의 손실함수를 이용해 새로운 세대를 생성
Evolution (offspring generation)
Loss function population
1
…
Loss function
evaluation
#
Loss
mAP
×
✓
Parent1 Offspring1
ParentP Offspring2 OffspringN
Convergence property
verification
Model optimization
simulation
Positive class score
Loss
value
…
Poor-performed
Divergent ×
Training-unfriendly
evolution
… …
2
Search space
1
2
3
Constant
Variable
Operation
…
threshold
… …
×
×
12. 트리 생성
03
• Variable: (예측 x, 정답 y, IOU 점수 w), (교집합 i, 합집합 u, 모든 범위 e)
• Constant: 1,2,3
• Operation:
AP: 37.6%
(a) Cross-entropy loss
AP: 37.7%
(b) Candidate1
1
AP: 37.8%
(c) Candidate2
AP: 38.2%
(d) CSE-Autoloss-Acls
Constant Variable Operation
13. 수렴성 증명
03
• 저자들이 잘 만들어진 손실함수들을 관측한 결과 다음과 같은 성질을 발견
• Monotonicity: 정답에 가까울수록 단조적으로 감소 혹은 멀수록 단조적으로 증가
• Convergence: 거의 완벽하게 정답에 가까우면 기울기가 0에 수렴
• 따라서 유전 알고리즘으로 생성된 손실함수가 위의 성질들을 만족하는지 먼저 검사
14. 최적화 증명
03
• 수학적 성질이 반드시 학습에 좋다고는 장담할 수 없음
• 따라서 모든 손실함수를 테스트해보는 것은 여전히 쓸모없는 시간을 소모
• 저자들은 아주 적은 데이터를 이용하여 모델을 학습시킨후 그중 K개의 함수만 선택
• 적은 데이터를 만들 때에는 각 클래스별 한개의 이미지만 랜덤하게 사용
• 제안된 두개의 증명방법으로 약 99%의 손실함수를 제거하였음
20. 실험
04
• 각 검증방법으로 인한 평가해야하는 손실함수 수의 비교
• 일반 유전 알고리즘(파란색)과 제안방법(주황색)의 탐색된 손실함수의 성능 비교
CSE-Autoloss
Focal loss
Vanilla evolution search
21. 한계
04
• Classification과 Regression을 아예 독립적으로 손실함수를 탐색
• 실험셋팅에 대한 설명이 너무나도 부족
e.g., 어떠한 변이 알고리즘을 사용하였는지, 어떻게 교차를 시켰는지,
함수의 단조성은 어떻게 검사하였는지 등등
• 검증 단계에서 걸러진 함수들에 대한 분석이 이루어지지 않았음
• model optimization simulation이 정말 유용하게 작동되고 있는지 확인이 필요