딥 러닝 에 관한 Yoshua Bengio의 책을 읽고 있었고 224 페이지에 나와 있습니다.
컨볼 루션 네트워크는 레이어 중 하나 이상에서 일반 행렬 곱셈 대신 컨볼 루션을 사용하는 신경망입니다.
그러나 수학적으로 정확한 의미에서 "콘볼 루션으로 행렬 곱셈을 대체하는"방법을 100 % 확신하지 못했습니다.
내가 정말로 관심있는 것은 1D의 입력 벡터 ( 와 같이)에 대해 이것을 정의하는 것이므로 이미지로 입력하지 않고 2D의 회선을 피하려고합니다.
예를 들어 "정상적인"신경망에서 Andrew Ng의 노트와 같이 연산 및 피드 와드 패턴을 간결하게 표현할 수 있습니다.
f ( z ( l + 1 ) ) = a ( l + 1 )
여기서 은 비선형 성 를 통과하기 전에 계산 된 벡터 입니다. 비선형 성은 벡터 에서 pero 항목을 작동 시키고 은 해당 레이어에 대한 숨겨진 단위의 출력 / 활성화입니다. f z ( l ) a ( l + 1 )
행렬 곱셈이 나에게 명확하게 정의되어 있기 때문에이 계산은 나에게 분명하지만, 컨볼 루션으로 행렬 곱셈을 바꾸는 것만으로는 분명하지 않습니다. 즉
f ( z ( l + 1 ) ) = a ( l + 1 )
위의 방정식을 수학적으로 정확하게 이해하고 싶습니다.
행렬 곱셈을 컨벌루션으로 대체하는 첫 번째 문제는 일반적으로 내적 으로 의 한 행을 식별한다는 것입니다. 따라서 전체 가 가중치와 어떤 관련이 있으며 로 표시된 치수 의 벡터 에 매핑되는 것을 알 수 있습니다 . 그러나 컨볼 루션으로 대체 할 때 어느 항목에 해당하는 행 또는 가중치가 있는지 명확하지 않습니다 . 실제로 더 이상 가중치를 행렬로 나타내는 것이 의미가 있다는 것은 분명하지 않습니다 (나중에 그 점을 설명하는 예를 제공 할 것입니다) a ( l ) z ( l + 1 ) W ( l ) a ( l )
입력과 출력이 모두 1D 인 경우 정의에 따라 컨벌루션을 계산 한 다음 특이점을 통과합니까?
예를 들어 입력으로 다음 벡터가있는 경우 :
그리고 우리는 다음과 같은 가중치를 가졌습니다.
컨볼 루션은 다음과 같습니다.
비선형 성을 통과하고 결과를 숨겨진 레이어 / 표현으로 취급하는 것이 옳 습니까 (현재 풀링 이 없다고 가정 )? 즉 다음과 같이 :
(스탠포드 UDLF 튜토리얼 은 컨볼 루션이 0으로 컨볼 루션이 발생하는 가장자리를 잘라냅니다. 트림해야합니까?)
이것이 어떻게 작동합니까? 적어도 1D의 입력 벡터에 대해? 는 더 이상 벡터 가 아닌가 ?
나는 이것이 어떻게 생각되는지 신경망을 그렸다.