맨위로가기

샴 신경망

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

샴 신경망은 두 개의 동일한 신경망을 사용하여 입력 간의 유사성을 비교하는 딥러닝 모델이다. 이 모델은 삼중항 손실 또는 대비 손실을 사용하여 학습하며, 유클리드 거리 또는 마할라노비스 거리와 같은 거리 메트릭을 활용하여 객체 간의 거리를 측정한다. 샴 신경망은 객체 추적에 널리 사용되며, 특히 완전 컨볼루션 샴 네트워크는 실시간 객체 추적 분야에서 높은 성능을 보이는 다양한 알고리즘의 기반이 된다.

더 읽어볼만한 페이지

  • 인공신경망 - 인공 뉴런
    인공 뉴런은 인공신경망의 기본 요소로서, 입력 신호에 가중치를 곱하고 합산하여 활성화 함수를 거쳐 출력을 생성하며, 생물학적 뉴런을 모방하여 설계되었다.
  • 인공신경망 - 퍼셉트론
    퍼셉트론은 프랭크 로젠블랫이 고안한 인공신경망 모델로, 입력 벡터에 가중치를 곱하고 편향을 더한 값을 활성화 함수에 통과시켜 이진 분류를 수행하는 선형 분류기 학습 알고리즘이며, 초기 신경망 연구의 중요한 모델로서 역사적 의미를 가진다.
  • 토막글 틀에 과도한 변수를 사용한 문서 - 전향
    전향은 종교적 개종이나 노선 변경을 의미하며, 근대 이후 정치적 이념 변화를 지칭하는 용어로 확장되어 개인의 신념 변화, 정치적 압력 등 다양한 요인으로 발생하며, 사회주의·공산주의로부터의 전향, 전향 문학, 냉전 시대 이후의 전향 현상 등을 폭넓게 논의한다.
  • 토막글 틀에 과도한 변수를 사용한 문서 - 포토마스크
    포토마스크는 반도체, 디스플레이, 인쇄 회로 기판 제조 시 웨이퍼에 회로 패턴을 전사하는 마스크로, 기술 발전을 거듭하며 융용 실리카 기판과 금속 흡수막을 사용하고 위상 천이 마스크, EUV 마스크 등의 고급 기술이 개발되어 반도체 미세화에 기여하고 있지만, 높은 제작 비용과 기술적 어려움은 해결해야 할 과제이다.
  • 토론 이름공간 토막글 - 전향
    전향은 종교적 개종이나 노선 변경을 의미하며, 근대 이후 정치적 이념 변화를 지칭하는 용어로 확장되어 개인의 신념 변화, 정치적 압력 등 다양한 요인으로 발생하며, 사회주의·공산주의로부터의 전향, 전향 문학, 냉전 시대 이후의 전향 현상 등을 폭넓게 논의한다.
  • 토론 이름공간 토막글 - 포토마스크
    포토마스크는 반도체, 디스플레이, 인쇄 회로 기판 제조 시 웨이퍼에 회로 패턴을 전사하는 마스크로, 기술 발전을 거듭하며 융용 실리카 기판과 금속 흡수막을 사용하고 위상 천이 마스크, EUV 마스크 등의 고급 기술이 개발되어 반도체 미세화에 기여하고 있지만, 높은 제작 비용과 기술적 어려움은 해결해야 할 과제이다.
샴 신경망
개요
Siamese 네트워크 아키텍처의 예
Siamese 네트워크 아키텍처의 예
유형신경망 구조
설계 목적두 입력 벡터 간의 유사성 측정
상세 내용
핵심 아이디어동일한 가중치를 공유하는 두 개의 동일한 신경망을 사용하여 두 입력을 처리하고, 최종 표현을 비교하여 유사성을 판단함.
학습 방법훈련 데이터셋을 사용하여 네트워크의 가중치를 조정하여 유사한 입력은 가까운 표현을, 다른 입력은 먼 표현을 갖도록 함.
다양한 손실 함수 (예: 대조 손실, 삼중 손실)를 사용하여 학습을 최적화함.
장점새로운 클래스에 대한 일반화 능력이 뛰어남 (소량의 데이터로 학습 가능).
입력 간의 복잡한 관계를 모델링하는 데 효과적임.
단점학습 데이터셋 구성에 민감하게 반응할 수 있음.
최적의 네트워크 구조 및 손실 함수 선택이 어려울 수 있음.
활용 분야
이미지 인식얼굴 인식
필기체 인식
이미지 검색
자연어 처리문장 유사도 측정
텍스트 분류
질의 응답
기타추천 시스템
이상 감지
의료 진단

2. 학습

샴 신경망에서의 학습은 삼중항 손실 또는 대비 손실을 사용하여 수행할 수 있다. 삼중항 손실에 의한 학습의 경우 기준 벡터(앵커 이미지)를 양성 벡터(진실 이미지) 및 음성 벡터(거짓 이미지)와 비교한다. 음성 벡터는 네트워크에서 학습을 강제하고, 양성 벡터는 정규화기 역할을 한다. 대비 손실에 의한 학습의 경우 가중치를 정규화하기 위한 가중치 감쇠 또는 정규화와 같은 유사한 연산이 있어야 한다.[5]

손실 함수에 대한 거리 메트릭은 다음과 같은 속성을 가질 수 있다.[5]


  • 비음수성: \delta ( x, y ) \ge 0
  • 비식별자의 동일성: \delta ( x, y ) = 0 \iff x=y
  • 교환성: \delta ( x, y ) = \delta ( y, x )
  • 삼각 부등식: \delta ( x, z ) \le \delta ( x, y ) + \delta ( y, z )


특히 삼중항 손실 알고리즘은 종종 제곱 유클리드 거리(유클리드 거리와 달리 삼각 부등식을 갖지 않음)를 핵심으로 정의된다.

2. 1. 삼중항 손실 (Triplet Loss)

샴 신경망에서의 학습은 삼중항 손실 또는 대비 손실을 사용하여 수행할 수 있다. 삼중항 손실에 의한 학습의 경우 기준 벡터(앵커 이미지)를 양성 벡터(진실 이미지) 및 음성 벡터(거짓 이미지)와 비교한다. 음성 벡터는 네트워크에서 학습을 강제하고, 양성 벡터는 정규화기 역할을 한다. 대비 손실에 의한 학습의 경우 가중치를 정규화하기 위한 가중치 감쇠 또는 정규화와 같은 유사한 연산이 있어야 한다.

손실 함수에 대한 거리 메트릭은 다음과 같은 속성을 가질 수 있다.[5]

  • 비음수성
  • 비식별자의 동일성
  • 교환성
  • 삼각 부등식


특히 삼중항 손실 알고리즘은 종종 제곱 유클리드 거리(유클리드 거리와 달리 삼각 부등식을 갖지 않음)를 핵심으로 정의된다.

2. 2. 대비 손실 (Contrastive Loss)

샴 신경망에서의 학습은 삼중항 손실 또는 대비 손실을 사용하여 수행할 수 있다. 삼중항 손실에 의한 학습의 경우 기준 벡터(앵커 이미지)를 양성 벡터(진실 이미지) 및 음성 벡터(거짓 이미지)와 비교한다. 음성 벡터는 네트워크에서 학습을 강제하고, 양성 벡터는 정규화기 역할을 한다. 대비 손실에 의한 학습의 경우 가중치를 정규화하기 위한 가중치 감쇠 또는 정규화와 같은 유사한 연산이 있어야 한다.[5]

손실 함수에 대한 거리 메트릭은 다음과 같은 속성을 가질 수 있다.[5]

  • 비음수성: \delta ( x, y ) \ge 0
  • 비식별자의 동일성: \delta ( x, y ) = 0 \iff x=y
  • 교환성: \delta ( x, y ) = \delta ( y, x )
  • 삼각 부등식: \delta ( x, z ) \le \delta ( x, y ) + \delta ( y, z )


특히 삼중항 손실 알고리즘은 종종 제곱 유클리드 거리(유클리드 거리와 달리 삼각 부등식을 갖지 않음)를 핵심으로 정의된다.

2. 3. 거리 메트릭 (Distance Metric)

샴 신경망에서 사용되는 거리 메트릭은 다음과 같은 속성을 갖는다.[5]

  • 비음수성: \(\delta ( x, y ) \ge 0\)
  • 비식별자의 동일성: \(\delta ( x, y ) = 0 \iff x=y\)
  • 교환성: \(\delta ( x, y ) = \delta ( y, x )\)
  • 삼각 부등식: \(\delta ( x, z ) \le \delta ( x, y ) + \delta ( y, z )\)


특히 삼중항 손실 알고리즘은 종종 제곱 유클리드 거리(유클리드 거리와 달리 삼각 부등식을 갖지 않음)를 핵심으로 정의한다. 일반적인 학습 목표는 유사한 객체에 대한 거리 메트릭을 최소화하고 다른 객체에 대해서는 최대화하는 것이다. 이는 다음과 같은 손실 함수를 제공한다.

:\(\begin{align}

\delta(x^{(i)}, x^{(j)})=

\begin {cases}

\min \ \| \operatorname{f} \left ( x^{(i)} \right ) - \operatorname{f} \left ( x^{(j)} \right ) \| \, , i = j \\

\max \ \| \operatorname{f} \left ( x^{(i)} \right ) - \operatorname{f} \left ( x^{(j)} \right ) \| \, , i \neq j

\end{cases}

\end{align}\)

: \(i,j\)는 벡터 집합의 인덱스이다.

: \(\operatorname{f}(\cdot)\)는 쌍둥이 네트워크로 구현된 함수이다.

가장 일반적으로 사용되는 거리 메트릭은 유클리드 거리이며, 이 경우 손실 함수는 행렬 형태로 다음과 같이 다시 쓸 수 있다.

:\(\operatorname{\delta} ( \mathbf{x}^{(i)}, \mathbf{x}^{(j)} ) \approx (\mathbf{x}^{(i)} - \mathbf{x}^{(j)})^{T}(\mathbf{x}^{(i)} - \mathbf{x}^{(j)})\)

보다 일반적인 경우 쌍둥이 네트워크의 출력 벡터가 비선형 거리 메트릭을 구현하는 추가 네트워크 레이어를 통과한다.

:\(\begin{align}

\text{if} \, i = j \, \text{then} & \, \operatorname{\delta} \left [ \operatorname{f} \left ( x^{(i)} \right ), \, \operatorname{f} \left ( x^{(j)} \right ) \right ] \, \text{is small} \\

\text{otherwise} & \, \operatorname{\delta} \left [ \operatorname{f} \left ( x^{(i)} \right ), \, \operatorname{f} \left ( x^{(j)} \right ) \right ] \, \text{is large}

\end{align}\)

: \(i,j\)는 일련의 벡터에 대한 인덱스이다.

: \(\operatorname{f}(\cdot)\)는 쌍둥이 네트워크에 의해 구현된 함수이다.

: \(\operatorname{\delta}(\cdot)\)는 쌍둥이 네트워크의 출력을 결합하는 네트워크에 의해 구현된 함수이다.

행렬 형태로 앞의 내용은 종종 선형 공간에 대해 마할라노비스 거리로 근사된다.[6]

:\(\operatorname{\delta} ( \mathbf{x}^{(i)}, \mathbf{x}^{(j)} ) \approx (\mathbf{x}^{(i)} - \mathbf{x}^{(j)})^{T}\mathbf{M}(\mathbf{x}^{(i)} - \mathbf{x}^{(j)})\)

이는 더 나아가 최소한 비지도 학습지도 학습으로 세분될 수 있다. 이 형태는 또한 트윈 네트워크가 약간 다른 기능을 구현하여 더 반-트윈(half-twin)에 가깝게 할 수 있다.

:\(\begin{align}

\text{if} \, i = j \, \text{then} & \, \operatorname{\delta} \left [ \operatorname{f} \left ( x^{(i)} \right ), \, \operatorname{g} \left ( x^{(j)} \right ) \right ] \, \text{is small} \\

\text{otherwise} & \, \operatorname{\delta} \left [ \operatorname{f} \left ( x^{(i)} \right ), \, \operatorname{g} \left ( x^{(j)} \right ) \right ] \, \text{is large}

\end{align}\)

: \(i,j\)는 벡터 집합의 인덱스이다.

: \(\operatorname{f}(\cdot), \operatorname{g}(\cdot)\)는 반-트윈 네트워크에 의해 구현된 함수이다.

: \(\operatorname{\delta}(\cdot)\)는 트윈 네트워크의 출력을 결합하는 네트워크에 의해 구현된 함수이다.

2. 4. 학습 목표

샴 신경망의 일반적인 학습 목표는 유사한 객체 간의 거리 메트릭은 최소화하고, 서로 다른 객체 간의 거리는 최대화하는 것이다. 이를 수식으로 표현하면 다음과 같다.

:\begin{align}

\delta(x^{(i)}, x^{(j)})=

\begin {cases}

\min \ \| \operatorname{f} \left ( x^{(i)} \right ) - \operatorname{f} \left ( x^{(j)} \right ) \| \, , i = j \\

\max \ \| \operatorname{f} \left ( x^{(i)} \right ) - \operatorname{f} \left ( x^{(j)} \right ) \| \, , i \neq j

\end{cases}

\end{align}

여기서 i,j는 벡터 집합의 인덱스이고, \operatorname{f}(\cdot)는 쌍둥이 네트워크로 구현된 함수이다.

2. 4. 1. 사전 정의된 메트릭 (Predefined Metrics) - 유클리드 거리 (Euclidean Distance)

가장 일반적으로 사용되는 거리 메트릭은 유클리드 거리이며, 이 경우 손실 함수는 행렬 형태로 다음과 같이 다시 쓸 수 있다.

:\operatorname{\delta} ( \mathbf{x}^{(i)}, \mathbf{x}^{(j)} ) \approx (\mathbf{x}^{(i)} - \mathbf{x}^{(j)})^{T}(\mathbf{x}^{(i)} - \mathbf{x}^{(j)})

2. 4. 2. 학습된 메트릭 (Learned Metrics) - 비선형 거리 메트릭 (Nonlinear Distance Metric)

보다 일반적인 경우 샴 네트워크의 출력 벡터는 비선형 거리 메트릭을 구현하는 추가 네트워크 레이어를 통과한다.

:\begin{align}

\text{if} \, i = j \, \text{then} & \, \operatorname{\delta} \left [ \operatorname{f} \left ( x^{(i)} \right ), \, \operatorname{f} \left ( x^{(j)} \right ) \right ] \, \text{is small} \\

\text{otherwise} & \, \operatorname{\delta} \left [ \operatorname{f} \left ( x^{(i)} \right ), \, \operatorname{f} \left ( x^{(j)} \right ) \right ] \, \text{is large}

\end{align}

:i,j는 일련의 벡터에 대한 인덱스이다.

:\operatorname{f}(\cdot)는 샴 네트워크에 의해 구현된 함수이다.

:\operatorname{\delta}(\cdot)는 샴 네트워크의 출력을 결합하는 네트워크에 의해 구현된 함수이다.

행렬 형태로 앞의 내용은 종종 선형 공간에 대해 마할라노비스 거리로 근사된다.[6]

:\operatorname{\delta} ( \mathbf{x}^{(i)}, \mathbf{x}^{(j)} ) \approx (\mathbf{x}^{(i)} - \mathbf{x}^{(j)})^{T}\mathbf{M}(\mathbf{x}^{(i)} - \mathbf{x}^{(j)})

이는 더 나아가 최소한 비지도 학습지도 학습으로 세분될 수 있다.

2. 4. 3. 반-샴 네트워크 (Half-Siamese Networks)

이 형태는 트윈 네트워크가 약간 다른 기능을 구현하여 더 반-트윈(half-twin)에 가깝게 할 수 있다.

:\begin{align}

\text{if} \, i = j \, \text{then} & \, \operatorname{\delta} \left [ \operatorname{f} \left ( x^{(i)} \right ), \, \operatorname{g} \left ( x^{(j)} \right ) \right ] \, \text{is small} \\

\text{otherwise} & \, \operatorname{\delta} \left [ \operatorname{f} \left ( x^{(i)} \right ), \, \operatorname{g} \left ( x^{(j)} \right ) \right ] \, \text{is large}

\end{align}

  • i,j는 벡터 집합의 인덱스이다.
  • \operatorname{f}(\cdot), \operatorname{g}(\cdot)는 반-트윈 네트워크에 의해 구현된 함수이다.
  • \operatorname{\delta}(\cdot)는 트윈 네트워크의 출력을 결합하는 네트워크에 의해 구현된 함수이다.

3. 객체 추적 (Object Tracking)

샴 신경망은 고유한 두 개의 탠덤 입력과 유사성 측정을 통해 객체 추적에 사용된다. 객체 추적에서 샴 신경망의 한쪽 입력은 사용자가 미리 선택한 예시 이미지이고, 다른 입력은 더 큰 검색 이미지이며, 샴 신경망은 검색 이미지 내에서 예시를 찾는 역할을 한다. 샴 신경망은 예시와 검색 이미지의 각 부분 사이의 유사성을 측정하여 유사성 점수 맵을 제공할 수 있다. 또한 완전 컨볼루션 네트워크를 사용하여 각 부분의 유사성 점수를 계산하는 과정을 단 하나의 교차 상관 계층으로 대체할 수 있다.[7]

2016년에 처음 소개된 이후, 샴 완전 컨볼루션 네트워크는 많은 고성능 실시간 객체 추적 신경망에 사용되었다.

3. 1. 완전 컨볼루션 샴 네트워크 (Fully-Convolutional Siamese Networks)

샴 신경망은 고유한 두 개의 탠덤 입력과 유사성 측정을 통해 객체 추적에 사용되어 왔다. 객체 추적에서 샴 신경망의 한쪽 입력은 사용자가 미리 선택한 예시 이미지이고, 다른 입력은 더 큰 검색 이미지이며, 샴 신경망의 역할은 검색 이미지 내에서 예시를 찾는 것이다. 샴 신경망은 예시와 검색 이미지의 각 부분 사이의 유사성을 측정하여 유사성 점수 맵을 제공할 수 있다. 또한 완전 컨볼루션 네트워크를 사용하여 각 부문의 유사성 점수를 계산하는 프로세스를 단 하나의 교차 상관 계층으로 대체할 수 있다.[7]

2016년에 처음 소개된 이후, 샴 완전 컨볼루션 네트워크는 많은 고성능 실시간 객체 추적 신경망에 사용되었다. CFnet,[8] StructSiam,[9] SiamFC-tri,[10] DSiam,[11] SA-Siam,[12] SiamRPN,[13] DaSiamRPN,[14] Cascaded SiamRPN,[15] SiamMask,[16] SiamRPN++,[17] Deeper and Wider SiamRPN[18]과 같다.

3. 2. 주요 샴 네트워크 기반 객체 추적 알고리즘

샴 신경망은 고유한 두 개의 탠덤 입력과 유사성 측정을 통해 객체 추적에 사용되어 왔다. 객체 추적에서 샴 신경망의 한쪽 입력은 사용자가 미리 선택한 예시 이미지이고, 다른 입력은 더 큰 검색 이미지이며, 샴 신경망의 역할은 검색 이미지 내에서 예시를 찾는 것이다. 예시와 검색 이미지의 각 부분 사이의 유사성을 측정하여 샴 신경망에서 유사성 점수 맵을 제공할 수 있다. 또한 완전 컨볼루션 네트워크를 사용하여 각 부문의 유사성 점수를 계산하는 프로세스를 단 하나의 교차 상관 계층으로 대체할 수 있다.[7]

2016년에 처음 소개된 이후, 샴 완전 컨볼루션 네트워크는 많은 고성능 실시간 객체 추적 신경망에 사용되었다. 예를 들면 다음과 같다.

참조

[1] 서적 Artificial Neural Networks Springer Protocols, Humana Press
[2] 논문 Signature verification using a "Siamese" time delay neural network https://papers.neuri[...] 1994
[3] 서적 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05) 2005-06
[4] 서적 2014 IEEE Conference on Computer Vision and Pattern Recognition 2014-06
[5] 웹사이트 Similarity Learning with (or without) Convolutional Neural Network http://slazebni.cs.i[...] 2018-12-07
[6] 논문 On the generalized distance in statistics http://library.isica[...] 1936
[7] ArXiv Fully-Convolutional Siamese Networks for Object Tracking
[8] 웹사이트 End-to-end representation learning for Correlation Filter based tracking https://www.robots.o[...]
[9] 웹사이트 Structured Siamese Network for Real-Time Visual Tracking http://openaccess.th[...]
[10] 웹사이트 Triplet Loss in Siamese Network for Object Tracking http://openaccess.th[...]
[11] 웹사이트 Learning Dynamic Siamese Network for Visual Object Tracking http://openaccess.th[...]
[12] 웹사이트 A Twofold Siamese Network for Real-Time Object Tracking http://openaccess.th[...]
[13] 웹사이트 High Performance Visual Tracking with Siamese Region Proposal Network http://openaccess.th[...]
[14] 간행물 Distractor-aware Siamese Networks for Visual Object Tracking
[15] 간행물 Siamese Cascaded Region Proposal Networks for Real-Time Visual Tracking
[16] 간행물 Fast Online Object Tracking and Segmentation: A Unifying Approach
[17] 간행물 SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks
[18] 간행물 Deeper and Wider Siamese Networks for Real-Time Visual Tracking



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com