neural architecture가 humon pose estimation에 좋은 잠재력을 가지고 있을 것이라고 가정하고, 우리는 neuroevolution을 접목시켜 생각해 보았다.
더해서 새로운 weight transfer scheme를 제안해 neuroevolution을 가속화하는 것을 가능하게 했다.
우리의 base network(EvoPose2D-S)는 SimpleBaseline보다 50% 빠르고 파일 사이즈가 12.7배 작다. 또한 가장 큰 네트워크인 EvoPose2D-L은 COCO Keypoints benchmark에서 새로운 SOTA accuracy를 달성했다.
neuroevolution이라는 단어가 계속 등장해서 찾아보았다. neuroevolution은 단어 그대로 neuron을 evolve하는 방식으로 학습하는 것을 의미한다. 여기서 neuron은 Artificial Neural Network(ANN) 을 의미한다. evolution이란 진화의 방식을 모방한 학습을 이용하였다는 뜻이다.
pretrained된 "parent" neural network가 있다고 가정할 때 이는 와 같이 표현된다. x는 네트워크의 input이고 는 학습된 parameter이다. neuroevolution framework는 알지 못하는 parameter인 를 child network C에서 비슷하게 학습하는 것이 목적이다.
즉 가 목적이라는 뜻이다.
따라서 parent network가 child network와 비슷하지만 완전히 같지는 않다.
빠른 neural architecture 탐색을 위해 parent's function이 보존되는 정도는 random하게 초기화된 state에서 training 할 때 small fraction(이게 무슨 뜻인진 잘 모르겠다..) 에서 수렴할 수 있을 정도여야 한다.
위 그래프는 training loss, 아래 그래프는 validation loss이다. 이것은 baseline network(resnet-50)을 train한 그래프이다.
이 그래프는 3개의 독립된 neuroevolution을 tracking한 그래프이다. 점선은 가장 낮은 fitness를 가진 val loss를 의미하고 는 fitness coefficient controlling trade-off between val loss and number of parameters(아직 이해 못함)를 의미한다. 는 children의 수, 는 parent의 수를 의미한다.
아래는 모든 sample된 네트워크의 parameter의 개수에 따른 Validation loss 그래프이다.