이제 우리는 머신러닝의 기본 개념과
딥러닝의 기초 그리고 모델의 효율을 높이기 위해
지금까지 발전해온 다양한 기법들을 알게 되었다.
어떤 모델이든 우리의 상상력만 더해진다면
충분히 만들 수 있다고 교수님이 강의에서 말하신다.
당연히 오랜 기간 연구를 걸쳐오면서 CNN, RNN 등 많은 분야에서
큰 역할을 한 모델들이 생겨났다.
남은 11강, 12강에서는 가장 기초과 되는 CNN과 RNN의 구조를 알아본다.
CNN은 고양이가 이미지를 인식할 때
이미지에 따라 특정 뉴런만 반응하는 것을 보고
만들어진 인공 신경망이다.
아이디어는 이미지 파일에서 특정 사이즈의 필터를 이용하여
사이즈를 축소시켜 나가는 것이다.
필터가 무엇이고 어떻게 동작하는지 살펴보자.
특정 사이즈의 필터를 정의하면,
몇 칸을 건너뛰면서 필터를 적용시킬지 정한다.
이 값을 stride 값이라고 부른다.
위의 예시에서 3x3 필터를 stride = 2로 하면
3x3의 output이 나옴을 알 수 있다.
다음은 padding이다.
계속해서 필터를 적용하여 이미지의 사이즈가 줄어든다면
특징을 추출할 수도 있지만, 손실값이 생긴다는 의미이기도 하다.
따라서 아무 값이 없는 패딩을 넣는 처리를 주로 이용한다.
결과적으로 stride와 padding을 고려해서
output의 사이즈를 구하는 식을 알아보면 아래와 같다.
이제 실제로 CNN을 적용한 예시를 살펴보자.
시작 이미지의 사이즈가 32x32x3 이었는데
첫 CNN에는 5x5x3의 필터를 이용한다.
여기서 뒤에 있는 3은 채널의 수인데, 이것은
input으로 들어오는 이미지의 채널과 항상 같아야한다.
따라서 CNN을 이용하여 모델을 설계할 때는
항상 output의 사이즈와 채널 수를 미리 생각해봐야한다.
'딥러닝 > 모두를 위한 딥러닝 시즌1' 카테고리의 다른 글
[모두를 위한 딥러닝 시즌1] Lec12. NN의 꽃 RNN 이야기 (0) | 2024.02.10 |
---|---|
[모두를 위한 딥러닝 시즌1] Lec11-02. ConvNet Max pooling 과 Full Network (0) | 2024.02.10 |
[모두를 위한 딥러닝 시즌1] Lec10-03. Dropout과 앙상블 (2) | 2024.02.10 |
[모두를 위한 딥러닝 시즌1] Lec10-02. Weight 초기화 (1) | 2024.02.10 |
[모두를 위한 딥러닝 시즌1] Lec10-01. ReLU activation function (3) | 2024.02.10 |