사전지식)
DNN(Deep Neural Network)
모델 내 은닉층을 많이 늘려서 학습의 결과를 향상시키는 방법으로 은닉층을 2개이상 지닌 학습 방법을 뜻한다. 컴퓨터가 스스로 분류레이블을 만들어 내고 공간을 왜곡하고 데이터를 구분짓는 과정을 반복하여 최적의 구번선을 도출해낸다. 만은 데이터와 반복학습, 사전학습과 오류역전파 기법을 통해 현재 널리 사용되고 있다.
참고 :
https://ebbnflow.tistory.com/119
cross entropy loss
손실 함수(loss funtion)은 학습을 통해 최적의 가중치 매개변수를 결정하기 위한 지표로 손실 함수를 사용한다. 손실 함수의 결과값(오차)을 가장 작게 만드는 것이 신경망 학습의 목표이다. 크로스 엔트로피는 두 활률 분포의 차이를 구하기 위해서 사용된다. 딥러닝에서는 실제 데이터의 확률 분포와 우리가 계산한 확률 분포의 차이를 구하는데 사용된다. 실제 확률 분포는 원핫 인코딩으로 표현되며 크로스 엔트로피를 쓰는 계산식은 아래와 같다.
참고 :
https://wordbe.tistory.com/entry/ML-Cross-entropyCategorical-Binary%EC%9D%98-%EC%9D%B4%ED%95%B4
https://gnoej671.tistory.com/26
abstract
현대 얼굴인식에서, 전통적인 pipeline 은 4단계(detect->align->represent->classify)를 구성하고 있다.
우리는 단편적으로 유사한 변형에 적용하기위해서 분명한 3D 얼굴 모델링 기술을 사용함으로써 alignment step과 representation step 둘다 다시 논의하다. 그리고 face representation은 9 layer deep neural network에서 비롯되다.
이 deep network는 공유하는 가중치없이 locally connected layer를 사용하면서 12억보다 많은 파라미터를 구성한다.
그러므로 우리는 가장큰 facial dataset에 그것을 훈련시키고 라벨링된 dataset을 찾는다. 가장 큰 facila database를 가진 alignment에 기반한 정확한 모델은 제한되지않는 환경에서,심지어 단순한 분류기 없이 뛰어나게 일반화시킨다.
우리의 방법은 Labeled Faces in the sild(LFW) dataset에서 27%보다 더 손실을 감소하면서 97.35%의 정확성에 도달했다.
2.Face Alignment
최근 방법은 정교한 정렬 기술을 사용함으로써 어려움을 보상하는 성공적인 방식을 보여줬다.
이 방법은 다음에 1개 또는 더 많은 방법을 사용한다. (1)분석적인 얼굴의 3D 모델을 사용 (2) 비슷한 기준의 점배열을 외부 데이터셋으로부터 찾음 (3) 픽셀에대한 유사성 변형을 발견한 감독되지않은 방법
3.Representation
DNN arcitecture and Training
우리는 우리의 DNN을 multi-class face recognition 임무에 훈련시킨다. 즉 얼굴이미지의 신원확인을 분류하는 임무이다.
전반적인 architectrue는 3D정렬된 3채널(RGB)얼굴 이미지사이즈 152x152픽셀은 convolutional layer(C1)가 주어진다. convolutional layer는 11x11x3사이즈의 32개 필터를 가지고 있다. (이 논문에서는 32x11x11x3@152x152라고 명시한다.) 그 결과로 생성된 32개의 feature maps은 max-pooling layer(M2)로 공급되며 이는 각 채널마다 개별적으로 보폭이 2 인 3x3 이상의 공간을 차지합니다. 다음으로 9x9x16사이즈 16개의 필터를 가지고 있는 또다른 convolutional layer(C3)가 뒤따른다. Max-pooling layer는 convolution network의 출력을 로컬변환에보다 강력하게 만든다. 정렬된 얼굴이미지를 적용할 때 그들은 네트워크를 작은 제약 에러에대해 더 강력하게 만든다.
하지만 몇몇 풀링의 level은 네트워크가 상세한 얼굴 구조와 작은 단위의 질감의 정확한 위치에 관한 정보를 잃게 만든다. 따라서 우리는 max-pooling을 첫번째 convolutional layer에 적용시킨다. 우리는 첫번째 layer를 front-end 적응되는 전처리과정으로 해석된다. 첫번째 층이 대부분의 계산에 책임이 있지만 그들은 매우 작은 파라미터를 가진다. 이들 layer는 단지 input을 단순한 local feature의 집합으로 확장시킨다.
후속 레이어 (L4, L5 및 L6)는 컨볼 루션 레이어처럼 필터 뱅크를 적용하는 대신 로컬로 연결되지만 피쳐 맵의 모든 위치는 다른 필터 세트를 학습한다. 정렬 된 이미지의 다른 영역은 다른 로컬 통계를 가지므로 컨벌루션의 공간적 역학성 가정은 유지할 수 없다. 다시말해 입력 이미지가 정렬된다는 사실을 활용하여 DNN의 아키텍처를 사용자 정의한다. 로컬 레이어의 사용은 피쳐 추출의 계산 부담에 영향을 미치지 않지만 훈련 대상인 파라미터의 수에는 영향을 미칩니다. 레이블이 지정된 큰 데이터 집합이 있기 때문에 로컬로 연결된 3 개의 큰 레이어를 사용할 수 있습니다.
L6의 출력은 74x74x3패치의 영향을 받는다. 그리고 정렬된 얼굴에서 큰 patche들 사이의 통계적 공유는 거의 없다.
마지막으로 최상의 2개 layer(F7과 F8)은 완전히 연결(각각 출력 unit은 모든 입력에 연결)되어있다. 이들 층은 얼굴 이미지의 먼 부분에서 캡처 된 특징 부, 예를 들어 눈의 위치 및 모양, 및 위치 및 입 모양 사이의 상관 관계를 캡처 할 수있다.
네트워크에서 첫 번째 fully connected layer(F7)의 출력은 논문 전체에서 원시 얼굴 표현 기능 벡터로 사용됩니다. 표현의 관점에서, 이것은 문헌에서 제안 된 기존의 LBP 기반 표현과 대조적으로, 일반적으로 (히스토그램을 계산함으로써) 매우 로컬 서술자를 풀링하고 이것을 분류기에 대한 입력으로 사용한다. 마지막으로 완전히 연결된 레이어의 출력은 K-way softmax (여기서 K는 클래스 수)로 공급되어 클래스 레이블에 분포를 만듭니다.
훈련의 목적은 올바른 class(face id)의 확률을 최대화시키는 것이다. 우리는 이것을 각각 훈련 샘플을 위한 cross-entropy loss에 의해 성취한다.
conclusion
이상적인 얼굴 분류기는 정확하게 얼굴을 인식한다. 기본적은 얼굴 descriptor는 자세,반사,표정과 이미지 퀄리티에 변함이 없어야한다.
우리는 더 많은 feature을 사용하는 최신 트랜드와 더 많은 powerful metric 학습기술에서부터 시작되는 이 일은 어려움와 큰 성능 차이를 가져온다.
우리의 일은 결합한 3D 모델은 단점과 한계를 극복하는 많은 예시로부터 효율적으로 학습할 수 있다는 것을 보여주다. 얼굴인식에 뛰어난 향상을 보여주는 능력은 이러한 결합이 다른분야에도 상당하다는 잠재력을 입증한다.
'Programmer > Deep Learning' 카테고리의 다른 글
[논문리뷰] Deep Residual Learning for Image Recognition (0) | 2020.05.03 |
---|---|
YOLO ,object detection network의 이해 (0) | 2020.04.28 |
[논문리뷰] Histograms of Oriented Gradients for Human Detection (0) | 2020.04.28 |
YOLO 튜토리얼 3. Implementing the forward pass of the network (0) | 2020.04.26 |
YOLO 튜토리얼 2. Creating the layers of the network architecture (0) | 2020.04.26 |