본문 바로가기
Computer Science/[21-22] ML & DL

[CNN] Conv1D의 causal padding이란

by gojw 2022. 4. 22.

convolution 연산은 인풋에 커널을 곱해서 feature map을 만든다. 연산을 거칠 때마다 feature map의 크기가 인풋의 크기보다 작아지는데, 이 문제를 해결하는 것이 padding이다. 

https://github.com/christianversloot/machine-learning-articles/blob/main/what-is-padding-in-a-neural-network.md

padding을 통해서 인풋의 크기 (spatial dimension)를 유지할 수 있고, 또 인풋의 모든 파트를 feature map에 반영할 수 있게된다. (padding이 없으면 2D 이미지의 중간 부분만 커널이 여러번 지나가게됨)

 

causal padding

https://stackoverflow.com/questions/52578950/causal-padding-in-keras

시계열 데이터를 다룰 때, 위의 사진처럼 4개의 인풋이 한개의 타겟에 영향을 미친다고 하자. 커널 사이즈를 4로 정해서 인풋과 아웃풋을 매핑할 수 있다. 하지만 2, 3, 4의 값은 4개의 인풋이 전부 존재하지 않는다. causal padding은 인풋의 시퀀스 앞에 zero padding을 해줌으로써, 아웃풋 시퀀스의 초기 부분이 존재할 수 있게 해준다.

causal padding은 Conv1D 레이어에서만 사용할 수 있고, 주로 시계열 데이터에 쓰인다.

 

댓글