-
Face recognition & Neural Style TransferGoogle ML Bootcamp/Convolutional Neural Networks 2023. 9. 27. 17:14728x90
※ One-shot Learning
- Learning from one example to recognize the person again.
- Learning a "similarity" function 을 이용한다.
※ Siamese network
- Parameters of NN define an encoding f(xi) -> 신경망이 f(xi)를 인코딩하여 이 128차원을 출력한다.
- same person인지 different person인지를 이렇게 판단한다.
※ Triplet Loss
- 두 개 이상의 이미지를 비교해야한다.
- Anchor image, Positive image, Negative image 이렇게 3개의 이미지를 비교하기 때문에 삼중항 Loss라고 불린다.
- f(A) - f(P) = 0, f(A) - f(N) = 0 -> f(img) = 0 이면 방정식을 만족한다. 하지만, 이렇게 신경망이 출력되는 것을 막기 위해서 alpha(margin)을 더해주는 방식을 사용한다.
- training을 위해서는 동일한 사람의 사진이 여러 개 있는 훈련 세트가 필요함
- Training set : 10k pictures(1000명이 있다면 총 10,000장의 이미지)
- 사진이 오직 하나 뿐이라면 이 시스템을 실제로 훈련 시킬 수 없음. but 훈련된 문제에 이미지가 한 장만 있다면 원샷 학습 문제에 적용하는 것은 가능
※ Face Verification and Binary Classification
- X는 Input image, yhat은 0 or 1로 이루어짐.
- 매번 신경망 f(x(j))를 계산하는 것이 아니라 미리 precompute로 f(x(j))를 계산해둔다.
- new image가 들어오게 되면 위쪽 신경망에서 인코딩 된 f(x(i))를 계산하고 아래쪽에 미리 계산되어 있는 f(x(j))와 비교한 다음 yhat을 예측하는 방식을 사용한다.
※ Neural Style Transfer
※ Deep ConvNets learning
- 1개의 hidden units를 선택하고 해당 units의 활성화를 최대화하는 9개의 input image를 찾으면 9개의 이미지 패치를 찾을 수 있음. -> 이것을 계속 해서 반복함.(이런 식으로 히든 유닛을 계속해서 발견)
- Layer들을 하나씩 살펴보면 Layer1, Layer2는 단순한 정도를 인식하지만, Layer5 정도에서는 꽤나 복잡하고 구체적인 객체들을 인식하고 있음.
※ Cost Function
※ Content Cost Function
※ Style Cost Function
- Style Matrix == Gram Matrix(대부분 대문자 G를 사용하고 Matrix를 표시한다.)
- S와 G라는 이미지를 사용
- J(G) = alpha * J_content(C, G) + beta * J_style(S, G)
- J_content(C, G) = np.linalg.norm(a[l][(C) - a[l](G))
- J_style(S, G) = np.linalg.norm(G[l](S) - G[l](G))
- content cost function과 style cost function을 합해서 최종 Cost Function을 만들어낼 수 있다.
728x90'Google ML Bootcamp > Convolutional Neural Networks' 카테고리의 다른 글
Detection Algorithms (0) 2023.09.25 Case Studies & ConvNet practical Advice (0) 2023.09.24 Convolutional Neural Networks (0) 2023.09.23