https://www.youtube.com/watch?v=XuD4C8vJzEQ&list=PLkDaE6sCZn6Gl29AoE31iwdVwSG-KnDzF&index=2

C4W1L02 Edge Detection Examples

image
image
image

* 는 convulution 연산을 의미한다. convulution 연산을 수행하는 함수는 중앙하단에 나와있다. 

image


https://www.youtube.com/watch?v=am36dePheDc&list=PLkDaE6sCZn6Gl29AoE31iwdVwSG-KnDzF&index=3

C4W1L03 More Edge Detection

image
image

숫자가 크면 밝은 영역을 나타낸다.

image

좌상단의 filter외에도 다양한 filter가 있으며 실제 machine learing의 과정을 통해 다른 filter를 구할수도 있다. 45, 70, 73도 기울어진 선분을 찾아낼수 있는 filter를 만들수도 있다.


https://www.youtube.com/watch?v=smHa2442Ah4&list=PLkDaE6sCZn6Gl29AoE31iwdVwSG-KnDzF&index=4

C4W1L04 Padding

image

padding 없이 그냥 작업을 하면 점점 결과 matrix가 작아진다. 또한 모서리 부분에서 충분한 정보를 얻을수 없다. n – f +1 은 결과 matrix size를 계산하는 방법이다.

image

filter의 크기는 보통 홀수로 한다. 짝수도 가능하지만 때로는 정중앙 cell이 요긴할때가 있다. 


https://www.youtube.com/watch?v=tQYZaDn_kSg&index=5&list=PLkDaE6sCZn6Gl29AoE31iwdVwSG-KnDzF

C4W1L05 Strided Convolutions

image
image

strided convolution은 이동을 한칸씩하지 않는다. 점프한다.

image
image
image

실제 다른 분야에서는 cross-correlation이라고 하는 알고리즘을 machine learining에서는 관습상 convolution알고 한다.

참고) https://datascience.stackexchange.com/a/40545

https://dsp.stackexchange.com/q/27451


https://www.youtube.com/watch?v=KTB_OFoAQcc&index=6&list=PLkDaE6sCZn6Gl29AoE31iwdVwSG-KnDzF

C4W1L06 Convolutions Over Volumes

image

위 그림에서 처럼 channel의 수와 filter의 층수가 맞아야 한다. 

image
image

하나의 channel때 처럼 한칸씩이동하거나 strided된 경우 점프하면서 이동한다. 

image

우측 하단에 윗 filter는 r matrix만 값이 있으므로 red 색의 세로선을 탐색한다. 그 아래 filter는 모든 색에 대해서 세로선을 탐색한다. 

image

색깔별 탐색할수 도 있지만 추가 filter를 통해 세로, 가로선을 같이 동시에 탐색할수도 있다. 물론 다른 특성을 찾는 filter를 사용해도 된다. 


https://www.youtube.com/watch?v=jPOAS7uCODQ&index=7&list=PLkDaE6sCZn6Gl29AoE31iwdVwSG-KnDzF

C4W1L07 One Layer of a Convolutional Net

image

1개의 convolution neural network layer를 보여주고 있다. filter를 weight이라고 생각할수 있다. filter와 convolution 연산으로 하고 나서 b vector를 더해준다. 그리고 나서 ReLU연산을 한다. 

image
image

https://www.youtube.com/watch?v=3PyJA9AfwSk&index=8&list=PLkDaE6sCZn6Gl29AoE31iwdVwSG-KnDzF

C4W1L08 Simple Convolutional Network Example

image

점점 filter를 거친 결과 matrix는 그 크기가 작아진다. 그렇지만 depth는 깊어진다.

최종적으로 logistic regression이나 softmax의 과정을 거친다.

image

convolutional network는 보통 위의 세가지 layer로 구성된다.


https://www.youtube.com/watch?v=8oOgPUO-TBY&list=PLkDaE6sCZn6Gl29AoE31iwdVwSG-KnDzF&index=9

C4W1L09 Pooling Layers

image

해당 필터내에서 최대값을 찾아서 모아 새로 matrix를 만든다.

image
image
image
image
image

자주 사용하는 filter 크기는 2또는 3, 자주 사용하는 stride크기는 2

트레이닝할 weight 이 없다. 러닝 과정이 없다.


https://www.youtube.com/watch?v=bXJx7y51cl0&list=PLkDaE6sCZn6Gl29AoE31iwdVwSG-KnDzF&index=10

C4W1L10 CNN Example

image

conv과 pooling을 각각 구분해서 각각의 layer로 생각하는 경우도 있지만 pooling의 경우 parameters가 없기 때문에 그냥 conv와 pooling을 묶어서 하나의 layer라고 생각하기도 한다. 

image


https://www.youtube.com/watch?v=ay3zYUeuyhU&list=PLkDaE6sCZn6Gl29AoE31iwdVwSG-KnDzF&index=11

C4W1L11 Why Convolutions

cnn이 아닌 다른 방법으로 하는 경우 엄청난 수의 weights, biased constant등 계산이 복잡하게 된다. 위의 그림에서 32 * 32 *3 의 이미지의 경우 cnn을 사용하지 않는 경우 14mil parameters를 생각해야 한다. 그렇지만 cnn의 경우 filter size 5 * 5에 biased constant하나를 더해주고 filter갯수를 곱하면 156의 parameters만 생각하면 된다. 이렇게 줄어들수 있는 이유는 parameter sharing 덕분이다 아래 그림 참조. 같은 모양의 parameter matrix를 이동해 가면서 계속 반복 적용하기 때문이다. 

convolution layer, fully connected layer 둘다 weights, biased constant를 이용 계산한다. 


Comments are closed.

Post Navigation