샴 네트워크를 이용한 원샷 학습 [안면 인식용]
게시 됨: 2021-02-08다음 기사에서는 One-shot learning의 변형 및 단점과 함께 사용의 필요성에 대해 설명합니다.
우선, 딥 러닝 모델을 훈련하려면 모델이 원하는 예측 또는 분류 작업을 효율적으로 수행할 수 있도록 많은 양의 데이터가 필요합니다. 예를 들어, 이미지에서 개를 감지하려면 수백 수천 개의 개 및 비개가 아닌 이미지에 대해 신경망 모델을 훈련하여 서로를 정확하게 구별해야 합니다. 그러나 이 신경망 모델은 하나 또는 매우 적은 훈련 데이터에 대해 훈련된 경우 작동하지 않습니다.
데이터가 부족하면 다른 레이어에서 관련 기능을 추출하는 것이 어려워집니다. 모델은 다른 클래스 간에 잘 일반화할 수 없으므로 전체 성능에 영향을 미칩니다.
예를 들어 공항에서 얼굴 인식의 예를 고려하십시오. 여기서 우리는 다양한 표정, 배경 조명 등을 포함하는 각 사람의 수백 수천 개의 이미지 모델을 훈련할 자유가 없습니다. 매일 수천 명이 넘는 승객이 도착하는 것은 불가능한 일입니다! 게다가 이렇게 방대한 양의 데이터를 저장하면 비용이 추가됩니다.
위의 문제를 해결하기 위해 하나 또는 몇 개의 예제로 분류 또는 분류 작업을 수행하여 많은 새로운 예제를 분류할 수 있는 기술을 사용합니다. 이 기술을 원샷 학습이라고 합니다.
최근 몇 년 동안 One-shot learning 기술은 얼굴 인식 및 여권 검사에 광범위하게 사용됩니다. 사용되는 개념은 - 모델이 2개의 이미지를 입력받는 것입니다. 하나는 여권의 이미지이고 다른 하나는 카메라를 보고 있는 사람의 이미지입니다. 그런 다음 모델은 2개의 이미지 사이의 유사도인 값을 출력합니다. 출력 값이 낮으면 두 이미지가 비슷하거나 다른 것입니다.
목차
샴 네트워크
One-shot learning에 사용되는 아키텍처를 Siamese Network라고 합니다. 이 아키텍처는 각각 다른 입력을 받는 두 개의 병렬 신경망으로 구성됩니다. 모델의 출력은 두 입력 이미지가 유사한지 여부를 나타내는 값 또는 유사성 인덱스입니다. 미리 정의된 임계값 미만의 값은 두 이미지 사이의 높은 유사성에 해당하며 그 반대의 경우도 마찬가지입니다.
이미지가 일련의 Convolutional 레이어, 최대 풀링 레이어 및 완전히 연결된 레이어를 전달할 때 우리가 달성하는 것은 이미지의 특징을 인코딩하는 벡터입니다. 여기서는 두 개의 이미지를 입력하기 때문에 입력된 이미지의 특징을 포함하는 두 개의 벡터가 생성됩니다. 우리가 이야기한 값은 두 벡터 사이의 차이의 노름을 찾아 계산할 수 있는 두 특징 벡터 사이의 거리입니다.
삼중항 손실 함수
이름에서 알 수 있듯이 모델을 학습시키려면 앵커(A) 이미지, 양수(P) 및 음수(N) 이미지의 세 가지 이미지가 필요합니다. 두 개의 입력이 모델에 제공될 수 있으므로 양수 또는 음수 이미지가 있는 앵커 이미지가 제공됩니다. 모델은 앵커 이미지와 포지티브 이미지 사이의 거리가 낮고 앵커 이미지와 네거티브 이미지 사이의 거리가 멀어지는 방식으로 매개변수를 학습합니다.
건설적 손실 함수는 A와 N 사이의 거리가 낮거나 A와 P가 높으면 모델에 페널티를 주고, A와 N 사이의 거리가 높고 A와 P가 낮을 때 모델을 장려하거나 특징을 학습합니다.
앵커, 긍정적 및 부정적 이미지에 대해 더 많이 이해하기 위해 공항에서의 이전 예를 살펴보겠습니다. 이 경우 앵커 이미지는 카메라를 볼 때의 이미지가 되고 포지티브 이미지는 여권 사진에 있는 이미지가 되며 네거티브 이미지는 공항에 있는 승객의 임의 이미지가 됩니다.
Siaseme 네트워크를 훈련할 때마다 APN 트리오(앵커, 포지티브 및 네거티브) 이미지를 제공합니다. 이 데이터 세트를 만드는 것이 훨씬 쉽고 학습하는 데 필요한 이미지가 더 적습니다.
원샷 학습의 한계
원샷 학습은 아직 성숙한 기계 학습 알고리즘이며 몇 가지 제한 사항이 있습니다. 예를 들어, 입력 이미지에 모자, 선글라스 등을 착용한 사람과 같이 약간의 수정이 있는 경우 모델이 제대로 작동하지 않습니다. 또한 한 응용 프로그램에 대해 학습된 모델을 다른 응용 프로그램에 일반화할 수 없습니다.
계속해서 Zero-shot 학습 및 Few-shot 학습을 수반하는 One-shot 학습의 몇 가지 변형을 살펴보겠습니다.
제로샷 학습
제로샷 학습은 본 데이터에 대해 훈련을 받고 새 데이터 또는 보이지 않는 데이터의 의미론적 특징을 아는 동안 새롭거나 보이지 않는 레이블이 지정된 데이터를 식별하는 모델의 기능입니다. 예를 들어 고양이를 본 아이는 고양이의 독특한 특징으로 고양이를 식별할 수 있습니다. 또한 아이가 개가 짖는다는 것을 알고 고양이보다 더 단단한 특성을 가지고 있다면 아이는 개를 알아보는 데 문제가 없을 것입니다.
결론적으로, ZSL 인식은 각 보이지 않는 클래스가 어떻게 의미론적으로 본 클래스와 관련되는지에 대한 지식과 결합된 본 클래스의 레이블이 지정된 훈련 세트를 고려하는 방식으로 기능한다고 말할 수 있습니다.
N-샷 학습
이름에서 알 수 있듯이 N 샷 학습에서는 교육에 사용할 수 있는 각 클래스의 n 레이블이 지정된 데이터가 있습니다. 모델은 각각 n개의 레이블이 지정된 데이터를 포함하는 K개의 클래스에 대해 학습됩니다. 관련 기능과 패턴을 추출한 후 모델은 레이블이 지정되지 않은 새 이미지를 K 클래스 중 하나로 분류해야 합니다. 그들은 완전히 훈련된 가장 가까운 이웃 기반 접근 방식에서 작동하는 매칭 네트워크를 사용합니다.
결론
결론적으로, One-shot learning 분야와 이에 상응하는 분야는 일부 도전적인 문제를 해결할 수 있는 엄청난 잠재력을 가지고 있습니다. 비교적 새로운 연구 영역이지만 빠르게 발전하고 있으며, 연구자들은 기계와 인간 사이의 격차를 좁히기 위해 노력하고 있습니다.
이상으로 이 포스트를 마치겠습니다. 재미있게 읽으셨기를 바랍니다.
기계 학습에 대해 자세히 알아보려면 IIIT-B 및 upGrad의 기계 학습 및 AI PG 디플로마를 확인하세요. 이 PG 디플로마는 일하는 전문가를 위해 설계되었으며 450시간 이상의 엄격한 교육, 30개 이상의 사례 연구 및 과제, IIIT- B 동문 자격, 5개 이상의 실용적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
세계 최고의 대학에서 ML 과정 을 배우십시오 . 석사, 이그 제 큐 티브 PGP 또는 고급 인증 프로그램을 획득하여 경력을 빠르게 추적하십시오.