Google ML Bootcamp(181)
-
7. One Layer of a Convolution Network
기존 layer의 forward propagation을 생각해보면 A[l] = g(Z[l]), Z[l] = np.dot(W[l], A[l-1]) + b[l] - W[l]이 filter가 된다. 이젠 np.dot 처럼 행렬곱이 convolution 연산을 수행할 뿐. - Z[l] = W * A[l-1] + b , 이때 *는 convolution operation.
2023.09.15 -
6. Convolutions Over Volume
shape : (height, width, number of channels) - input and filter's number of channels must be same. convolution operation? - sum of 27 element-wise multiplys filter는 vertical or horizontal filter처럼 특징을 추출하는 filter이다. - 여러개를 사용할 수록 모델은 여러 특징을 검출하는 모델이 될 수 있으므로 이미지 영상처리에서 매우 강력한 효과를 보여준다.
2023.09.15 -
5. Strided Convolutions
이전 convolution 연산은 stride=1인 경우를 본 것이다. n은 input size, f는 filter size, p는 padding, s는 stride라고 할 때 output shape은 ((n+2p-f) / s) + 1이 된다. 원래 수학적 정의로 convolution filter란 flipped matrix로 합성곱을 진행해야하지만, 딥러닝에서는 filter내의 weight를 학습하므로 flipped(뒤집는) 행위가 크게 차이를 내지 않는다. 따라서 그냥 편하게 이 또한 convolution
2023.09.15 -
4. Padding
Padding을 사용하지 않을 때 기존의 Convolution 연산의 문제점 1. Shrink output - 즉 convolution 결과로 나오는 이미지의 크기는 (input size - filter size +1) 이다. 2. throw away information from edge. - 모서리에 있는 pixel 은 convolution연산 시 한번밖에 사용되지 않기 때문. - 이미지 가운데에 위치한 pixel은 convolution연산 시 여러번 사용된다. 따라서 padding기법을 사용. - 기존 이미지의 크기를 키운 후 convolution을 적용하여 output image size를 변함없도록 조정. valid convolution : no padding same convolution : ..
2023.09.15 -
3. More Edge Detection 2023.09.15
-
2. Edge Detection Example
다음과 같이 경계선이 있는부분을 탐지하는 결과를 만들 수 있으므로 vertical edge detection이다. 혹은 filter가 1 1 1 0 0 0 -1 -1 -1 이렇게 생긴 3 x 3 matrix라면 horizontal edge detection이지 않을까?
2023.09.15