나는 종종 사람들이 왜 회선 신경망이 여전히 잘 이해되지 않는다고 말하는 것을 들었습니다. Convolutional Neural Networks가 계층을 올라갈 때 점점 더 정교한 기능을 배우는 이유는 무엇입니까? 그로 인해 이러한 기능 스택이 만들어졌으며 다른 유형의 심층 신경망에도 적용됩니까?
나는 종종 사람들이 왜 회선 신경망이 여전히 잘 이해되지 않는다고 말하는 것을 들었습니다. Convolutional Neural Networks가 계층을 올라갈 때 점점 더 정교한 기능을 배우는 이유는 무엇입니까? 그로 인해 이러한 기능 스택이 만들어졌으며 다른 유형의 심층 신경망에도 적용됩니까?
답변:
실제로 나는 질문이 약간 광범위하다고 생각합니다! 어쨌든.
학습 내용은 ConvNets
분류 작업에서 입력을 올바르게 분류하기 위해 비용 함수를 최소화하려고 시도합니다. 모든 파라미터 변경 및 학습 된 필터는 언급 된 목표를 달성하기위한 것입니다.
그들은 첫 번째 레이어에서 수평 및 수직선과 같은 낮은 수준의, 때로는 무의미한 기능을 학습 한 다음 마지막 레이어에서 종종 의미가있는 추상 모양을 만들기 위해 쌓아서 비용을 줄입니다. 이 그림을 설명하기 위해. 여기 에서 사용 된 1을 고려할 수 있습니다. 입력은 버스이고 gird는 첫 번째 레이어의 다른 필터를 통해 입력을 통과 한 후 활성화를 보여줍니다. 알 수 있듯이, 파라미터가 학습 된 필터의 활성화 인 적색 프레임은 상대적으로 수평 인 가장자리에 대해 활성화되었습니다. 청색 프레임은 상대적으로 수직 인 모서리에 대해 활성화되었습니다. 가능하다ConvNets
유용하고 알려지지 않은 필터를 배우십시오. 예를 들어 컴퓨터 비전 전문가와 같이 유용한 필터를 발견하지 못했습니다. 이 네트의 가장 좋은 점은 자체적으로 적절한 필터를 찾고 제한된 검색 필터를 사용하지 않는다는 것입니다. 비용 함수의 양을 줄이기 위해 필터를 배웁니다. 언급 한 바와 같이 이러한 필터는 반드시 알려진 것은 아닙니다.
더 깊은 레이어에서 이전 레이어에서 배운 피처는 함께 모여 종종 의미가있는 모양을 만듭니다. 에서 본 연구 는 이러한 층이 우리 인간 존재로서, 우리에게 의미가 개념에게 의미있는 활성화를 가질 수 있다는 논의 된 다른 활성화에 분산 할 수있다. 그림. 도 2는 녹색 프레임이 5 번째 층의 필터의 활성화를 나타낸다ConvNet
. 이 필터는면을 관리합니다. 빨간색이 머리카락에 관심이 있다고 가정하십시오. 이것들은 의미가 있습니다. 알 수 있듯이 입력에서 일반적인면의 위치에서 바로 활성화 된 다른 활성화가 있습니다. 녹색 프레임이 그 중 하나입니다. 파란색 프레임이 이들의 또 다른 예입니다. 따라서, 형상의 추상화는 필터 또는 다수의 필터에 의해 학습 될 수있다. 다시 말해, 얼굴 및 구성 요소와 같은 각 개념을 필터에 분배 할 수 있습니다. 개념이 다른 계층에 분산 된 경우 누군가가 각 개념을 살펴보면 정교 할 수 있습니다. 정보는 그들 사이에 분산되어 있으며, 너무 복잡해 보일 수 있지만 모든 필터 및 활성화에 대한 정보를 고려해야한다는 것을 이해하기 위해.
CNNs
블랙 박스로 간주해서는 안됩니다. 이 놀라운 논문 에서 Zeiler 등 은이 네트 내부에서 수행되는 작업을 이해하지 못하면 더 나은 모델 의 개발이 시행 착오로 줄어든 것을 논의했습니다 . 이 문서는의 기능 맵을 시각화하려고 시도합니다 .ConvNets
ConvNets
pooling
매개 변수의 수를 줄일뿐만 아니라 각 피처의 정확한 위치에 둔감 한 기능을 갖기 위해 레이어를 사용하십시오. 또한 레이어를 사용하면 레이어가 다른 기능을 배울 수 있습니다. 즉, 첫 번째 레이어는 가장자리 또는 호와 같은 간단한 저수준 기능을 배우고, 깊은 레이어는 눈이나 눈썹과 같은 복잡한 기능을 학습합니다. Max Pooling
예를 들어, 특정 지형지 물에 특정 지형지 물이 존재하는지 여부를 조사하려고합니다. pooling
레이어에 대한 아이디어 는 매우 유용하지만 다른 변형 간의 전환을 처리 할 수 있습니다. 다른 레이어의 필터는 다른 패턴을 찾으려고하지만 회전 된 얼굴은 일반적인 얼굴과 다른 레이어를 사용하여 학습됩니다.CNNs
자체적으로 다른 변환을 처리 할 레이어가 없습니다. 이것을 설명하기 위해 최소한의 그물로 회전없이 간단한 얼굴을 배우고 싶다고 가정하십시오. 이 경우 모델이 완벽하게 수행 할 수 있습니다. 임의의 얼굴 회전으로 모든 종류의 얼굴을 배우도록 요청 받았다고 가정하십시오. 이 경우 모델은 이전에 학습 한 그물보다 훨씬 더 커야합니다. 입력에서 이러한 회전을 학습하려면 필터가 있어야하기 때문입니다. 불행히도 이것들은 모든 변형이 아닙니다. 입력 내용도 왜곡 될 수 있습니다. 이 사건으로 Max Jaderberg 등은 모두 화를 냈습니다. 그들은 우리의 분노를 그들의 분노로 해결하기 위해이 문제들을 다루기 위해이 논문을 구성 했다.
마지막으로 이러한 점을 언급 한 후에는 입력 데이터에서 패턴을 찾으려고 시도합니다. 그것들은 그것들을 컨볼 루션 레이어 (convolution layer)에 의해 추상적 인 개념을 만들기 위해 쌓습니다. 입력 데이터가 어떤 클래스에 속하는지 파악하기 위해 입력 데이터에 이러한 각 개념이 있는지 또는 밀도가 높은 계층에 없는지 알아 봅니다.
도움이되는 몇 가지 링크를 추가하십시오.
ConvNets는 기능 지역을 이용하기 때문에 작동합니다. 서로 다른 단위로 수행하므로 계층 적으로 높은 수준의 기능 을 모델링 할 수 있습니다. 그들은 풀링 유닛 덕분에 변하지 않는 번역입니다. 그들은 회전 불변하지 않습니다 자체 ,하지만 그들은 보통 필터로 수렴 같은 필터의 회전 버전 따라서 회전 입력을 지원한다.
나는 ConvNets와 같은 의미에서 기능 지역에서 이익을 얻는 다른 신경 구조를 알지 못합니다.
이것은 순수한 수학입니다. 하루가 끝날 때 신경망은 큰 수학 함수입니다. 네트워크가 깊을수록 더 많은 기능을 나타냅니다. 그리고 더 큰 것은 분명히 높은 차원을 의미합니다. 학습 된 기능은보다 정교한 기능의 결과이므로 더 정교합니다.
흥미롭게도, 기존의 신경망은 실제로 우리 자신의 고양이 생물학에서 영감을 받았습니다. Hubel과 Wiesel 은 고양이의 시각 피질에 대한 실험을 수행했으며, 광학 필드 스택에 의해 빛이 감지된다는 것을 깨달았습니다. 이것이 컨볼 루션 레이어와 더 깊은 아키텍처에 영감을주었습니다.
에 구축 ncasas 및 horaceT의 답변, ConvNets 때문에 매우 효율적이다 :
당신은 더 많은 convnets과 다른 블록을 구축뿐만 아니라 underly, 여기 년대 직관에 대해 배우고 싶다면 후 세부 사항을 통과 나는 최근에 내 개인 블로그에 썼다.