캡슐 신경망 – 중첩 된 신경 계층 집합



Capsule Networks-이 블로그는 Convolutional Neural Networks의 한계와 Capsule Neural Networks가 이러한 한계를 해결하는 방법에 대해 설명합니다.

캡슐 네트워크 :

Capsule Networks는 무엇입니까? 기본적으로 중첩 된 신경 계층 집합의 네트워크입니다.

아래 블로그도 살펴 보시기 바랍니다.





여러분이 Convolutional Neural Networks (CNN)를 알고 있다고 가정합니다. 여기서는 CNN의 한계에 대해 논의 할 수 있도록 동일한 내용에 대해 간략하게 소개하겠습니다.

Convolutional Neural Network에 대한 아래 비디오를 참조 할 수도 있습니다.



컨볼 루션 신경망 (CNN)

Convolutional Neural Networks는 기본적으로 컴퓨터 비전에 사용되는 인공 뉴런의 다양한 계층의 스택입니다. 아래에서 해당 레이어에 대해 언급했습니다.

C ++ 소스 코드 정렬 병합

Convolutional Neural Network-캡슐 신경망-Edureka

컨벌루션 레이어 : 이미지 분류를 위해 Feedforward Neural Networks (Multi Layer Perceptron)를 사용할 때 많은 문제가 있습니다. 가장 실망스러운 문제는 많은 매개 변수를 도입하고 CNN의 비디오 튜토리얼을 고려한다는 것입니다.



이 도전을 극복하기 위해 컨볼 루션 레이어 소개되었습니다. 공간적으로 서로 더 가까운 픽셀은 이미지의 반대쪽 모서리에있는 픽셀보다 훨씬 더 많은 특정 관심 피쳐를 형성하는 데 '협력'할 것이라고 가정합니다. 또한 특정 (작은) 기능이 이미지의 레이블을 정의 할 때 매우 중요하다고 판단되는 경우 위치에 관계없이 이미지 내에서이 기능이 발견되면 똑같이 중요합니다.

ReLU 계층 : ReLU (Rectified Linear Unit) 변환 기능은 입력이 특정 수량 이상이고 입력이 0 미만이고 출력이 0 인 경우에만 노드를 활성화하지만 입력이 특정 임계 값을 초과하면 노드와 선형 관계를 갖습니다. 종속 변수.

  • 이 레이어에서는 필터링 된 이미지에서 모든 음수 값을 제거하고 0으로 대체합니다.
  • 이는 값의 합이 0이되는 것을 방지하기 위해 수행됩니다.

풀링 레이어 : 이것은 이미지의 작고 (일반적으로) 분리 된 청크를 소비하고 단일 값으로 집계하는 다운 샘플링을 수행하는 데 사용됩니다. 집계를위한 몇 가지 가능한 체계가 있습니다. 최대 풀링 , 여기서 각 청크 내의 최대 픽셀 값이 사용됩니다. 이는 입력 이미지의 작은 변형, 왜곡 및 변환에 네트워크를 불변하게 만듭니다 (입력 이미지의 작은 왜곡은 풀링의 출력을 변경하지 않습니다 – 로컬 이웃의 최대 / 평균 값을 취하기 때문입니다).

완전 연결 계층 : 이 계층은 각 숫자가 클래스 점수에 해당하는 클래스 점수를 계산합니다. 일반 신경망과 마찬가지로 이름에서 알 수 있듯이이 계층의 각 뉴런은 이전 볼륨의 모든 뉴런에 연결됩니다. 간단히 말해서 최종 분류를 수행합니다.

이러한 방식으로 ConvNets는 원본 이미지를 원본 픽셀 값에서 최종 등급 점수로 레이어별로 변환합니다.

이것은 Convolutional Neural Networks에 대한 매우 짧은 소개였습니다.이 게시물에 포함 된 CNN 비디오를 살펴 보는 것이 좋습니다.

이 Capsule Networks 블로그에서 이제 Convolutional Neural Networks의 몇 가지 제한 사항에 대해 논의하겠습니다.

컨볼 루션 신경망의 한계 :

글쎄요, 이것을 비유로 설명하겠습니다.

다양한 이미지의 특징을 눈으로 감지 할 수있는 사람이 있다고 가정 해 보겠습니다. 인간의 얼굴을 예로 들어 보겠습니다. 그래서이 불행한 사람은 눈, 코 등 다양한 특징을 식별 할 수 있지만, 특징 간의 공간적 관계 (관점, 크기, 방향)를 식별 할 수 없습니다. 예를 들어, 다음 그림은 사람 얼굴의 좋은 스케치로 분류 할 때 그 사람을 속일 수 있습니다.

이것은 Convolutional Neural Networks의 문제이기도합니다. CNN은 특징을 감지하는 데 능숙하지만 얼굴 감지를 위해 뉴런을 잘못 활성화합니다. 이는 피처 간의 공간적 관계를 탐색하는 데 덜 효과적이기 때문입니다.

간단한 CNN 모델은 코, 눈 및 입의 특징을 정확하게 추출 할 수 있지만 얼굴 감지를 위해 뉴런을 잘못 활성화합니다. 공간 방향과 크기의 불일치를 인식하지 못하면 얼굴 감지 활성화가 너무 높아집니다.

음,이 제한은 Max Pooling 계층 때문입니다.

CNN의 최대 풀링은 변환 분산을 처리합니다. 기능이 약간 이동 되어도 여전히 풀링 창 내에 있으면 여전히 감지 할 수 있습니다. 그럼에도 불구하고이 접근 방식은 최대 기능 (가장 지배적) 만 유지하고 다른 기능은 버립니다.

따라서 위의 얼굴 사진은 일반 얼굴로 분류됩니다. 풀링 계층은 또한 이러한 유형의 불변성을 추가합니다.

이것은 풀링 레이어의 의도가 아닙니다. 풀링이해야 할 일은 위치, 방향, 비례 불변을 도입하는 것입니다.

실제로이 풀링 계층은 모든 종류의 위치 불변성을 추가합니다. 위의 다이어그램에서도 볼 수 있듯이 얼굴을 올바르게 인식하는 딜레마로 이어집니다.

에서 제안한 솔루션이 무엇인지 살펴 보겠습니다. 제프리 힌튼 .

이 문제를 해결하는 방법?

이제 우리는 각 뉴런이 기능의 속성과 가능성을 포함한다고 상상합니다. 예를 들어 [우도, 방향, 크기]를 포함하는 벡터를 출력합니다. 이 공간 정보를 통해 우리는 코, 눈, 귀 특징 사이의 방향과 크기의 불일치를 감지 할 수 있으므로 얼굴 감지를위한 훨씬 낮은 활성화를 출력 할 수 있습니다.

에 의해 발표 된 논문에서 제프리 힌튼 , 이러한 유형의 뉴런을 캡슐이라고합니다. 이러한 캡슐은 단일 스케일러 값 대신 벡터를 출력합니다.

Capsule Networks에 대해 조명을 좀 해보겠습니다.

Capsule Networks는 무엇입니까?

Capsule은 기본적으로 중첩 된 신경 층의 집합입니다. 캡슐 내부의 뉴런 상태는 이미지 내부의 한 개체의 포즈 (위치, 크기, 방향), 변형, 속도, 텍스처 등과 같은 다양한 속성을 캡처합니다.

특정 변형이있는 특징을 캡처하는 대신 캡슐은 특징과 변형의 유사성을 캡처하도록 훈련됩니다. 따라서 캡슐의 목적은 특징을 감지하는 것뿐만 아니라 모델이 변형을 학습하도록 훈련시키는 것입니다.

동일한 캡슐이 방향이 다른 동일한 객체 클래스를 감지 할 수 있도록 (예 : 시계 방향으로 회전) :

불변이 아닌 등분 산에서 작동한다고 말할 수 있습니다.

불변 : 변형에 관계없이 기능을 감지하는 것입니다. 예를 들어 코 감지 뉴런은 방향에 관계없이 코를 감지합니다.

등분 산 : 서로 변형 할 수있는 객체 감지입니다 (예 : 방향이 다른 얼굴 감지). 직관적으로 캡슐 네트워크는 얼굴이 31 ° 회전 된 변형과 일치하는 얼굴을 인식하는 대신 얼굴이 오른쪽으로 31 ° 회전 (등분 산)되는 것을 감지합니다. 모델이 캡슐에서 특징 변형을 학습하도록함으로써 더 적은 학습 데이터로 가능한 변형을 더 효과적으로 외삽 할 수 있습니다. 또한 우리는 적을보다 효과적으로 거부 할 수 있습니다.

캡슐은 엔티티의 존재를 나타내는 벡터를 출력합니다. 벡터의 방향은 엔티티의 속성을 나타냅니다.

벡터는 신경망의 가능한 모든 부모에게 전송됩니다. 가능한 각 부모에 대해 캡슐은 예측 벡터를 찾을 수 있습니다. 예측 벡터는 자체 가중치와 가중치 행렬을 곱하여 계산됩니다. 스칼라 예측 벡터 곱이 가장 큰 부모가 캡슐 결합을 증가시킵니다. 나머지 부모는 유대감을 감소시킵니다. 이것은 계약에 의한 라우팅 .

이는 라우팅이 하위 계층에서 감지 된 가장 강력한 기능을 기반으로하는 최대 풀링보다 확실히 더 나은 접근 방식입니다.

그 후에 추가되는 스 쿼싱 기능이 있습니다. 이것은 비선형 성을 도입하기 위해 수행됩니다. 이 스 쿼싱 기능은 각 캡슐의 벡터 출력에 적용됩니다.

이제 Capsule Networks의 작동 방식을 말씀 드리겠습니다.

Capsule Networks는 어떻게 작동합니까?

한 발 물러서 자. 완전히 연결된 네트워크에서 각 뉴런의 출력은 입력의 가중 합계입니다.

이제 Capsule Networks에서 어떤 일이 발생하는지 살펴 보겠습니다.

캡슐 신경망 :

캡슐 신경망을 생각해 보겠습니다.나는‘는 캡슐‘의 활동 벡터입니다.나는'아래 레이어에서.

단계 – 1 : 변환 행렬 적용ij캡슐 출력 u나는 이전 레이어의. 예를 들어, m × k 행렬을 사용하여 k-D를 변환합니다.나는 m-D로u ^j | i. ((m × k) × (k × 1) = m × 1).

예측입니다 ( 투표 ) 위의 캡슐 'j'출력에있는 캡슐 'i'에서 'V제이‘는 캡슐‘의 활동 벡터입니다.제이'위의 레이어에서

2 단계 : 가중 합계 계산제이무게로ij.ij결합 계수입니다. 이 계수의 합은 1과 같습니다. 앞서 언급 한 캡슐 그룹의 관계에서 작동하는 실제 매개 변수입니다.

3 단계 : Convolutional Neural Networks에서는 ReLU 기능을 사용했습니다. 여기서는 스 쿼싱 함수를 적용하여 벡터를 0과 단위 길이 사이에서 스케일링합니다. 작은 벡터를 0으로 축소하고 긴 벡터를 단위 벡터로 축소합니다. 따라서 각 캡슐의 가능성은 0과 1 사이로 제한됩니다.

예측입니다 ( 투표 ) 위의 캡슐 'j'출력에있는 캡슐 'i'에서. 활동 벡터가 예측 벡터와 매우 유사하면 캡슐 '나는'캡슐‘제이'. (예를 들어, 코 캡슐은 안면 캡슐과 매우 관련이 있습니다.) 이러한 유사성은 예측 및 활동 벡터의 스칼라 곱을 사용하여 측정됩니다. 따라서 유사성은 가능성과 기능 속성 모두를 고려합니다. (뉴런의 유사성 대신).

단계 – 4 : 관련성 점수 'b 계산ij‘. 활동 벡터와 예측 벡터의 내적이됩니다. 결합 계수나는제이소프트 맥스로 계산됩니다.나는제이:

결합 계수 cijb의 소프트 맥스로 계산됩니다.ij.

이 bij여러 반복에서 반복적으로 업데이트됩니다..

이것은 계약에 의한 라우팅 .

아래 다이어그램은 한 가지 예입니다.

Capsule Networks에 대한이 블로그 이후 TensorFlow를 사용한 Capsule Neural Network 구현에 대한 블로그를 만들 것입니다.

캡슐 네트워크에서이 블로그를 즐겁게 읽으 셨기를 바랍니다. 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 TensorFlow를 사용한 Edureka Deep Learning 교육 과정은 학습자가 SoftMax 기능, 자동 인코더 신경망, RBM (Restricted Boltzmann Machine)과 같은 개념과 함께 실시간 프로젝트 및 할당을 사용하여 기본 및 컨볼 루션 신경망을 교육하고 최적화하는 전문가가 될 수 있도록 도와줍니다.

질문이 있으십니까? 의견란에 언급 해 주시면 연락 드리겠습니다.