cs230_lec6_C4W1
Updated:
(From : deeplearningai https://www.youtube.com/watch?time_continue=386&v=AwQHqWyHRpU)
Computer vision
- 딥러닝의 발전과 같이 발전중인 분야
- 이미지 분류, 물체 인식, 사진 스타일 전환(Neural Style Transfer) 등등
- 컴퓨터 비전에서의 딥러닝의 발전이 기대가 되는 이유
- 빠른 발전이 많은 새로운 어플리케이션을 만들어지게 함
- 컴퓨터 비전 시스템을 구축하지 않아도 서로 신경망 구조와 알고리즘에 많은 영감을 줌.
- ex) 음성인식 시 컴퓨터 비전의 개념 사용
- 이미지 인식에서의 딥러닝
- 이미지 해상도에 따라서 node의 수가 기하급수적으로 많아질 수 있음
- 이를 해결한 것이 합성곱 연산
Edge Detection
- 일반적인 이미지 인식 과정- 갈수록 더 복잡한 특징을 인지
- 합성곱 신경망을 거친 후 이미지의 수직, 수평 모서리가 인식됨
- 이번강의에서는 신경망의 하위층이 모서리와 선을 어떻게 인식하는지에 대해서 배움
- 이미지에 정사각형의 필터(커널)을 합성곱해줌
- ${*}$ 의 의미 : 수학에서는 곱셈, 파이썬 에서는 성분곱
- python : Conv-forward
- tensorflow : tf.nn.conv2d
- Keras : Conv2D
- 이것이 바로 수직 모서리를 인식하는 원리
- 보다 자세한 설명은 아래 그림을 보면 알 수 있다.
- 모서리의 스케일의 차이가 있지만, 실제로 엄청 큰 이미지에 대해서 진행하면 꽤나 정교한 수직 경계선을 찾을 수 있다.
- Sobel Filter, Scharr Filter (중간부분에 더 초점을 둠)
- 딥러닝을 하면 파라미터는 자동으로 학습됨
Padding
- 합성곱 계산시 행렬이 줄어드는 것을 방지하고자 하는 것
- 이미지 가장자리의 정보를 고려하고자 하는 것
- 가장자리에 0으로 된 층을 덧대는 것
- Valid Convolution : padding 없는 것
- Same Convolution : 입력 이미지와 같게 padding하는 것
- $p=\frac{f-1}{2}$
- 컴퓨터 비전에는 필터가 보통 홀수, padding을 비대칭으로 만들지 않기 위해서임
Strided convolution
- 합성곱을 얼마나 이동하면서 계산할 지 정하는 것
- n X n image, f X f filter, padding p, stride s 일때
- $[\frac{n+2p-f}{s}+1]$ X $[ \frac{n+2p-f}{s}+1]$
- 미러링(Mirroring) : 필터를 가로 세로로 뒤집은 뒤에 계산함
- 일반적으로 딥러닝은 이를 생략함
- 수학자들은 합성곱을 교차상관으로 부름
3차원 Convolution
- 일반적으로 이미지는 RGB로 채널이 3개임
- 이미지와 필터의 채널의 수가 같아야 함
합성곱 층의 레이어 분석
- 3X3X3 필터 파라미터 수 : 27+1(bias)
- 이미지가 아무리 크던 작던 파라미터 수는 고정되어 있다(각 필터 파라미터 수 * 필터 개수)
풀링(Pooling)
- 하이퍼파라미터(filter size, stride, Max or average pooling)
- Max pooling : 거의 대부분 사용
- Average pooling : 거의 안씀
- 학습할 파라미터가 없음
합성곱의 장점
- 파라미터 수가 더 적게 필요하다
- FC 파라미터 수 :$n_{input} \times n_{output}$
- Conv 파라미터 수 : $n_{filter} \times n_{filter} \times n_{filter}$
- 변수를 공유하기 때문임 (Parameter sharing)
- 연결된 픽셀 값만 영향을 줌 (Sparcity of connection)
Leave a comment