컨볼 루션 신경망이 작동하는 이유는 무엇입니까?


22

나는 종종 사람들이 왜 회선 신경망이 여전히 잘 이해되지 않는다고 말하는 것을 들었습니다. Convolutional Neural Networks가 계층을 올라갈 때 점점 더 정교한 기능을 배우는 이유는 무엇입니까? 그로 인해 이러한 기능 스택이 만들어졌으며 다른 유형의 심층 신경망에도 적용됩니까?


이 동영상의 후반에 Jeremy Howard의 훌륭한 설명 : youtube.com/watch?v=ACU-T9L4_lI
Dan

2
당신이 오해하고 있다고 생각합니다. 우리는 왜 convnets가 알고리즘 클래스로서 작동하는지 상당히 잘 이해하고 있습니다. 반면에 왜 특정 모델이 특정 예측을했는지 이해하는 것은 종종 어려운 일입니다. 이것이 우리를 블랙 박스 모델이라고 부르는 이유입니다. 그들의 추론 과정은 우리에게 불투명합니다. 그것이 왜 그것이 효과적인 지에 대해 혼란스러워하는 것은 아닙니다.
David Marx

답변:


19

실제로 나는 질문이 약간 광범위하다고 생각합니다! 어쨌든.

컨볼 루션 네트 이해

학습 내용은 ConvNets분류 작업에서 입력을 올바르게 분류하기 위해 비용 함수를 최소화하려고 시도합니다. 모든 파라미터 변경 및 학습 된 필터는 언급 된 목표를 달성하기위한 것입니다.

다른 계층에서 배운 기능

그들은 첫 번째 레이어에서 수평 및 수직선과 같은 낮은 수준의, 때로는 무의미한 기능을 학습 한 다음 마지막 레이어에서 종종 의미가있는 추상 모양을 만들기 위해 쌓아서 비용을 줄입니다. 이 그림을 설명하기 위해. 여기 에서 사용 된 1을 고려할 수 있습니다. 입력은 버스이고 gird는 첫 번째 레이어의 다른 필터를 통해 입력을 통과 한 후 활성화를 보여줍니다. 알 수 있듯이, 파라미터가 학습 된 필터의 활성화 인 적색 프레임은 상대적으로 수평 인 가장자리에 대해 활성화되었습니다. 청색 프레임은 상대적으로 수직 인 모서리에 대해 활성화되었습니다. 가능하다ConvNets유용하고 알려지지 않은 필터를 배우십시오. 예를 들어 컴퓨터 비전 전문가와 같이 유용한 필터를 발견하지 못했습니다. 이 네트의 가장 좋은 점은 자체적으로 적절한 필터를 찾고 제한된 검색 필터를 사용하지 않는다는 것입니다. 비용 함수의 양을 줄이기 위해 필터를 배웁니다. 언급 한 바와 같이 이러한 필터는 반드시 알려진 것은 아닙니다.

** 그림 1. ** * 저급 활성화 *

더 깊은 레이어에서 이전 레이어에서 배운 피처는 함께 모여 종종 의미가있는 모양을 만듭니다. 에서 본 연구 는 이러한 층이 우리 인간 존재로서, 우리에게 의미가 개념에게 의미있는 활성화를 가질 수 있다는 논의 된 다른 활성화에 분산 할 수있다. 그림. 도 2는 녹색 프레임이 5 번째 층의 필터의 활성화를 나타낸다ConvNet. 이 필터는면을 관리합니다. 빨간색이 머리카락에 관심이 있다고 가정하십시오. 이것들은 의미가 있습니다. 알 수 있듯이 입력에서 일반적인면의 위치에서 바로 활성화 된 다른 활성화가 있습니다. 녹색 프레임이 그 중 하나입니다. 파란색 프레임이 이들의 또 다른 예입니다. 따라서, 형상의 추상화는 필터 또는 다수의 필터에 의해 학습 될 수있다. 다시 말해, 얼굴 및 구성 요소와 같은 각 개념을 필터에 분배 할 수 있습니다. 개념이 다른 계층에 분산 된 경우 누군가가 각 개념을 살펴보면 정교 할 수 있습니다. 정보는 그들 사이에 분산되어 있으며, 너무 복잡해 보일 수 있지만 모든 필터 및 활성화에 대한 정보를 고려해야한다는 것을 이해하기 위해.

** 그림 2. ** * 고수준 활성화 *

CNNs블랙 박스로 간주해서는 안됩니다. 이 놀라운 논문 에서 Zeiler 등 은이 네트 내부에서 수행되는 작업을 이해하지 못하면 더 나은 모델개발이 시행 착오로 줄어든 것을 논의했습니다 . 이 문서는의 기능 맵을 시각화하려고 시도합니다 .ConvNets

일반화하기 위해 다른 변환을 처리하는 기능

ConvNetspooling매개 변수의 수를 줄일뿐만 아니라 각 피처의 정확한 위치에 둔감 한 기능을 갖기 위해 레이어를 사용하십시오. 또한 레이어를 사용하면 레이어가 다른 기능을 배울 수 있습니다. 즉, 첫 번째 레이어는 가장자리 또는 호와 같은 간단한 저수준 기능을 배우고, 깊은 레이어는 눈이나 눈썹과 같은 복잡한 기능을 학습합니다. Max Pooling예를 들어, 특정 지형지 물에 특정 지형지 물이 존재하는지 여부를 조사하려고합니다. pooling레이어에 대한 아이디어 는 매우 유용하지만 다른 변형 간의 전환을 처리 할 수 ​​있습니다. 다른 레이어의 필터는 다른 패턴을 찾으려고하지만 회전 된 얼굴은 일반적인 얼굴과 다른 레이어를 사용하여 학습됩니다.CNNs자체적으로 다른 변환을 처리 할 레이어가 없습니다. 이것을 설명하기 위해 최소한의 그물로 회전없이 간단한 얼굴을 배우고 싶다고 가정하십시오. 이 경우 모델이 완벽하게 수행 할 수 있습니다. 임의의 얼굴 회전으로 모든 종류의 얼굴을 배우도록 요청 받았다고 가정하십시오. 이 경우 모델은 이전에 학습 한 그물보다 훨씬 더 커야합니다. 입력에서 이러한 회전을 학습하려면 필터가 있어야하기 때문입니다. 불행히도 이것들은 모든 변형이 아닙니다. 입력 내용도 왜곡 될 수 있습니다. 이 사건으로 Max Jaderberg 등은 모두 화를 냈습니다. 그들은 우리의 분노를 그들의 분노로 해결하기 위해이 문제들을 다루기 위해이 논문을 구성 했다.

컨볼 루션 신경망 작동

마지막으로 이러한 점을 언급 한 후에는 입력 데이터에서 패턴을 찾으려고 시도합니다. 그것들은 그것들을 컨볼 루션 레이어 (convolution layer)에 의해 추상적 인 개념을 만들기 위해 쌓습니다. 입력 데이터가 어떤 클래스에 속하는지 파악하기 위해 입력 데이터에 이러한 각 개념이 있는지 또는 밀도가 높은 계층에 없는지 알아 봅니다.

도움이되는 몇 가지 링크를 추가하십시오.


12

ConvNets는 기능 지역을 이용하기 때문에 작동합니다. 서로 다른 단위로 수행하므로 계층 적으로 높은 수준의 기능 을 모델링 할 수 있습니다. 그들은 풀링 유닛 덕분에 변하지 않는 번역입니다. 그들은 회전 불변하지 않습니다 자체 ,하지만 그들은 보통 필터로 수렴 같은 필터의 회전 버전 따라서 회전 입력을 지원한다.

나는 ConvNets와 같은 의미에서 기능 지역에서 이익을 얻는 다른 신경 구조를 알지 못합니다.


1
RNN은 CNN과 유사한 방식으로 시계열에 걸쳐 가중치를 재사용한다고합니다. CNN은 반드시 번역 불변이 아니라 "치수 불변"이라고 생각할 수 있습니다 (그러나 그것이 정확하거나 인정 된 용어인지 확실하지는 않지만)
Neil Slater

답변 주셔서 감사합니다. 다음 결론에 잘못된 점이 있으면 바로 정정하십시오-1. 풀링을 통해 계층 적으로 높은 수준의 기능을 배우도록 암시 적으로 ConvNets를 설계 한 것 같습니다. 기능이 레이어를 정교하게 만드는 것은 우연이 아닙니다. 2. 신경망 설계에 도메인 정보를 포함 시키면 학습 효율성에 큰 차이를 만들 수 있습니다. ConvNet과 RNN은 바로 그 일을 시도하고 있습니다.
주님을 찬양합니다

당신의 진술 1과 2는 나에게 맞는 것 같습니다.
ncasas

1
나는 캡슐 네트워크가 비슷한 방법으로 활용 기능 지역으로되어 있다고 생각
데이비드 막스를

3

일반적인 ConvNet의 다른 구성 요소를 잊지 않아야합니다. 컨볼 루션 필터는 가장자리 및 원과 같은 공간 불변 특징을 선택합니다. 이러한 특징들은 C 계층을 따르는 풀링 계층에서 정량화된다. 마지막으로, 이들은 (일반적으로) 여러 개의 완전히 연결된 레이어 (fc)에 공급됩니다. 일반 MLP에서 찾을 수있는 것보다 더 완벽하게 연결된 이러한 계층에 크레딧을 제공해야합니다.


3

Convolutional Neural Networks는 표준 딥 러닝 알고리즘의 확장 기능이기 때문에 작동합니다.

무제한의 자원과 돈이 주어지면 표준 알고리즘도 작동하기 때문에 회선이 필요하지 않습니다. 그러나 컨벌루션은 매개 변수의 수를 줄 이므로 더 효율적 입니다. @ncasas가 작성하는 기능 지역성을 이용하기 때문에 축소가 가능합니다.


정답입니다
Jie. Zhou

1

Convolutional Neural Networks가 계층을 올라갈 때 점점 더 정교한 기능을 배우는 이유는 무엇입니까?

이것은 순수한 수학입니다. 하루가 끝날 때 신경망은 큰 수학 함수입니다. 네트워크가 깊을수록 더 많은 기능을 나타냅니다. 그리고 더 큰 것은 분명히 높은 차원을 의미합니다. 학습 된 기능은보다 정교한 기능의 결과이므로 더 정교합니다.

그들이 그런 기능의 스택을 만들게 한 원인

흥미롭게도, 기존의 신경망은 실제로 우리 자신의 고양이 생물학에서 영감을 받았습니다. Hubel과 Wiesel 은 고양이의 시각 피질에 대한 실험을 수행했으며, 광학 필드 스택에 의해 빛이 감지된다는 것을 깨달았습니다. 이것이 컨볼 루션 레이어와 더 깊은 아키텍처에 영감을주었습니다.


0

에 구축 ncasashoraceT의 답변, ConvNets 때문에 매우 효율적이다 :

  1. 그것들은 기하학적 변환에 불필요하고 점점 복잡하고 상세 해지는 기능을 배우므로 컨볼 루션 레이어 덕분 에 강력한 계층 적 기능 추출기 입니다.
  2. 추출 된 피처를 결합하고 비선형 방식으로 집계하여 출력을 예측하므로 완전히 연결된 레이어 덕분 에 강력한 분류 기준이 됩니다.

당신은 더 많은 convnets과 다른 블록을 구축뿐만 아니라 underly, 여기 년대 직관에 대해 배우고 싶다면 세부 사항을 통과 나는 최근에 내 개인 블로그에 썼다.


3
자신의 제품 / 블로그를 홍보 하려면 답변에 소속을 공개해야합니다 . 그렇지 않으면 답변이 스팸으로 표시 될 수 있습니다. 당신이 사이트와 제휴하지 않은 경우, 나는 이것을 방지하기 위해 그렇게 권장합니다. 읽어 보시기 바랍니다 스패머하지 않을 방법
AJ
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.