4th course: Foundations of Convolutional Neural Networks (C4W1L01 ~ C4W1L11)
C4W1L01 Computer Vision
딥러닝 시대를 이끄는 컴퓨터 비전
이 강의는 딥러닝 시대에 빠르게 발전하고 있는 컴퓨터 비전 분야의 핵심 기술인 합성곱 신경망에 대한 소개로 시작한다. 컴퓨터 비전은 자율주행 자동차, 얼굴 인식, 이미지 검색 등 우리 삶의 다양한 영역에서 활용되고 있으며, 딥러닝 기술의 발전으로 더욱 정교하고 다양한 기능을 구현할 수 있게 되었다.
컴퓨터 비전의 중요성과 합성곱 신경망의 등장
강의에서는 컴퓨터 비전이 중요한 이유로 다음 두 가지를 제시한다.
- 새로운 애플리케이션의 탄생: 컴퓨터 비전의 발전은 자율주행, 얼굴 인식, 스타일 변환 등 몇 년 전에는 상상하기 어려웠던 새로운 애플리케이션을 가능하게 만들었다.
- 다른 분야에 대한 영향: 컴퓨터 비전에서 개발된 기술들은 음성 인식 등 다른 분야에도 영감을 주고 있으며, 다양한 분야의 발전에 기여하고 있다.
컴퓨터 비전의 주요 문제점과 해결 방안
컴퓨터 비전에서 가장 큰 문제점 중 하나는 입력 이미지의 크기가 매우 크다는 것이다. 큰 이미지를 처리하기 위해서는 방대한 양의 계산과 메모리가 필요하며, 이는 과적합 문제를 야기할 수 있다.
이러한 문제를 해결하기 위해 합성곱 신경망이 등장했습니다. 합성곱 신경망은 이미지의 특징을 효과적으로 추출하고, 계산량을 줄여 학습을 효율적으로 수행할 수 있도록 설계되었다.
합성곱 신경망의 핵심 개념
강의에서는 합성곱 신경망의 핵심 개념을 간략하게 소개하며, 다음 영상에서 합성곱 연산을 자세히 설명하고 윤곽선 검출 예시를 통해 이해를 돕겠다고 예고한다.
C4W1L02 Edge Detection Examples
컴퓨터 비전의 기본: 모서리 감지
컴퓨터 비전에서 이미지를 이해하는 첫걸음은 이미지의 모서리를 찾는 것이다. 모서리는 이미지에서 밝기가 급격하게 변하는 부분으로, 물체의 윤곽이나 형태를 파악하는 데 중요한 정보를 제공한다. 이번 강의에서는 합성곱 신경망(CNN)에서 모서리를 감지하는 핵심적인 연산인 합성곱에 대해 자세히 알아보겠습니다.
합성곱이란?
합성곱은 이미지 처리에서 특정 패턴을 찾기 위해 사용되는 연산이다. 이미지에 필터를 적용하여 새로운 이미지를 생성하는 과정으로, 필터는 이미지의 특징을 추출하는 역할을 헌다.
- 필터: 합성곱 연산에 사용되는 작은 행렬이다. 필터의 값에 따라 이미지의 특정 부분을 강조하거나 억제할 수 있다.
- 합성곱 연산: 이미지와 필터를 곱하고 합하는 과정을 반복하여 새로운 이미지를 생성하는 것이다.
수직 모서리 감지 예시
강의에서는 수직 모서리를 감지하는 예시를 통해 합성곱 연산이 어떻게 작동하는지 설명한다.
- 이미지 준비: 6x6 크기의 그레이스케일 이미지를 준비한다.
- 필터 생성: 수직 모서리를 감지하기 위한 3x3 크기의 필터를 생성한다. 필터의 값은 왼쪽은 양수, 오른쪽은 음수로 구성되어 수직 경계선을 강조하도록 설계된다.
- 합성곱 연산: 이미지 위에 필터를 겹쳐놓고, 겹쳐지는 부분의 값을 곱한 후 모두 더한다. 이 과정을 이미지 전체에 반복하여 새로운 이미지를 생성한다.
- 결과 해석: 생성된 이미지에서 밝은 부분은 수직 모서리가 존재하는 위치를 나타낸다.
왜 합성곱이 모서리를 감지할 수 있을까?
- 필터의 설계: 수직 모서리를 감지하기 위해 설계된 필터는 밝은 부분과 어두운 부분의 변화를 강조하도록 구성되어 있다.
- 합성곱 연산: 합성곱 연산은 필터가 이미지를 스캔하면서 밝기 변화가 큰 부분을 찾아내고 이를 강조한다.
합성곱 신경망에서의 합성곱
합성곱 신경망은 여러 개의 합성곱 층으로 구성되어 있다. 각 층은 다양한 종류의 필터를 사용하여 이미지의 특징을 추출한다. 첫 번째 층에서는 간단한 특징(예: 모서리, 선)을 추출하고, 이후 층에서는 더 복잡한 특징(예: 눈, 코, 입)을 추출한다.
C4W1L03 More Edge Detection
다양한 모서리 검출 필터와 그 의미
지난 강의에서 우리는 합성곱 연산을 통해 이미지의 수직 모서리를 어떻게 검출하는지 알아보았습니다. 이번 강의에서는 모서리 검출에 대한 이해를 더욱 깊이하고, 다양한 필터를 활용하여 더욱 정교한 모서리 검출을 수행하는 방법에 대해 알아보겠습니다.
양과 음의 윤곽선
- 수직 모서리: 밝은 영역에서 어두운 영역으로 변화하는 부분을 수직 모서리라고 한다.
- 음의 수직 모서리: 어두운 영역에서 밝은 영역으로 변화하는 부분을 음의 수직 모서리라고 한다.
- 필터의 역할: 필터의 값 배치에 따라 양의 모서리 또는 음의 모서리를 강조할 수 있다.
다양한 모서리 검출 필터
- 수평 모서리 검출 필터: 수직 모서리 검출 필터를 90도 회전시키면 수평 모서리를 검출할 수 있다.
- Sobel 필터: 중심 픽셀에 가중치를 더 부여하여 모서리 검출의 정확도를 높인 필터이다.
- Scharr 필터: Sobel 필터와 유사하지만 더 큰 가중치를 부여하여 더욱 선명한 모서리를 검출한다.
C4W1L04 Padding
왜 패딩이 필요한가?
합성곱 신경망에서 합성곱 연산을 수행할 때, 이미지의 크기가 점차 줄어드는 문제가 발생한다. 이는 이미지의 가장자리 정보 손실로 이어져 성능 저하를 야기할 수 있다. 또한, 여러 층을 거치면서 이미지가 너무 작아져 원하는 정보를 추출하기 어려워지는 문제도 발생할 수 있다. 이러한 문제를 해결하기 위해 패딩(padding)이라는 기법을 사용한다.
패딩이란?
패딩은 이미지의 가장자리에 픽셀 값을 추가하여 이미지의 크기를 늘리는 것을 의미한다. 일반적으로 0 값을 채워 넣지만, 다른 값을 사용할 수도 있다. 패딩을 통해 다음과 같은 이점을 얻을 수 있다.
- 이미지 크기 유지: 합성곱 연산을 거쳐도 이미지의 크기를 유지할 수 있다.
- 가장자리 정보 보존: 이미지의 가장자리 정보를 보존하여 더욱 정확한 특징 추출이 가능하다.
- 수용장 크기 조절: 수용장(receptive field)의 크기를 조절하여 더 넓은 영역의 정보를 활용할 수 있다.
패딩 방법
- 유효 합성곱 (valid convolution): 패딩을 하지 않고, 합성곱 연산을 수행한다. 이미지 크기가 줄어든다.
- 동일 합성곱 (same convolution): 출력 이미지의 크기가 입력 이미지의 크기와 동일하도록 패딩을 적용한다.
패딩의 수학적 표현
- 입력 이미지 크기: n x n
- 필터 크기: f x f
- 패딩 크기: p
- 출력 이미지 크기: n + 2p - f + 1 x n + 2p - f + 1
패딩의 중요성
- 깊은 신경망: 여러 층을 거치면서 이미지가 점차 작아지는 것을 방지하여 더 깊은 신경망을 구성할 수 있다.
- 정확도 향상: 이미지의 가장자리 정보를 활용하여 더 정확한 특징을 추출할 수 있다.
- 수용장 조절: 수용장의 크기를 조절하여 다양한 크기의 특징을 추출할 수 있다.
마무리
패딩은 합성곱 신경망에서 매우 중요한 개념이다. 패딩을 적절히 활용하면 이미지 정보 손실을 줄이고, 더욱 정확하고 효과적인 모델을 구축할 수 있다. 다음 강의에서는 스트라이드에 대해 알아보고, 패딩과 함께 합성곱 신경망의 핵심 구성 요소를 이해하는 시간을 갖겠습니다.
C4W1L05 Strided Convolutions
스트라이드란 무엇일까?
스트라이드(Stride)는 합성곱 연산에서 필터를 이동하는 간격을 의미한다. 지금까지는 필터를 한 칸씩 이동하면서 합성곱 연산을 수행했지만, 스트라이드를 사용하면 한 번에 여러 칸씩 이동할 수 있다. 스트라이드를 크게 설정하면 출력 이미지의 크기가 작아지고, 작게 설정하면 출력 이미지의 크기가 커진다.
스트라이드의 장단점
장점
- 계산량 감소: 스트라이드를 크게 설정하면 연산량을 줄일 수 있다.
- 특징 맵 크기 조절: 출력 이미지의 크기를 조절하여 원하는 크기의 특징 맵을 얻을 수 있다.
단점
- 정보 손실: 스트라이드를 크게 설정하면 일부 정보가 손실될 수 있다.
- 특징 추출 능력 저하: 너무 큰 스트라이드는 특징 추출 능력을 저하시킬 수 있다.
스트라이드를 사용한 합성곱 연산 예시
- 스트라이드 2: 필터를 두 칸씩 이동하면서 합성곱 연산을 수행한다. 이 경우 출력 이미지의 크기는 입력 이미지의 크기보다 작아진다.
- 스트라이드 1: 기본적인 합성곱 연산으로, 필터를 한 칸씩 이동한다.
스트라이드의 수학적 표현
- 입력 이미지 크기: n x n
- 필터 크기: f x f
- 패딩 크기: p
- 스트라이드 크기: s
- 출력 이미지 크기: \( \lfloor \frac{n + 2p - f}{s} + 1 \rfloor \times \lfloor \frac{n + 2p - f}{s} + 1 \rfloor \)
스트라이드와 패딩의 조합
스트라이드와 패딩을 함께 사용하면 출력 이미지의 크기를 조절하고, 정보 손실을 최소화할 수 있다.
합성곱과 교차상관의 차이
수학적인 정의에 따르면 합성곱 연산은 필터를 뒤집고 연산하는 과정을 포함하지만, 딥러닝에서는 일반적으로 필터를 뒤집지 않고 합성곱 연산을 수행한다. 이러한 연산을 교차상관이라고 부르기도 하지만, 딥러닝 분야에서는 관습적으로 합성곱이라고 부른다. 딥러닝에서는 필터를 학습하는 과정에서 뒤집는 효과가 포함되기 때문에 별도로 필터를 뒤집을 필요가 없다.
C4W1L06 Convolutions Over Volumes
2D에서 3D 합성곱으로의 확장
지금까지 2차원 이미지에 대한 합성곱 연산을 살펴봤다. 이번 강의에서는 컬러 이미지처럼 3차원 데이터에 대한 합성곱 연산을 확장하여 살펴보겠습니다.
3D 합성곱의 개념
2차원 이미지는 높이와 너비라는 두 가지 차원으로 구성된다. 하지만 컬러 이미지는 여기에 색상 채널이 추가되어 3차원 데이터로 표현된다. 3D 합성곱은 이러한 3차원 데이터에 적용되는 합성곱 연산으로, 필터 역시 3차원 형태를 갖는다.
- 3D 필터: 3차원 필터는 높이, 너비, 채널을 모두 가지며, 이미지의 특정 부분과의 상관관계를 계산한다.
- 채널 일치: 필터의 채널 수는 입력 이미지의 채널 수와 동일해야 한다. 즉, RGB 이미지라면 필터도 RGB 채널을 가져야 한다.
- 연산 과정: 3D 필터를 이미지 위에 놓고, 각 요소를 곱한 후 더하는 과정을 반복하여 출력 값을 계산한다.
3D 합성곱의 활용
- 컬러 이미지 처리: RGB 채널을 고려하여 컬러 정보를 활용한 특징 추출이 가능하다.
- 다양한 특징 추출: 여러 개의 필터를 사용하여 다양한 특징을 동시에 추출할 수 있다. 예를 들어, 세로 윤곽선, 가로 윤곽선, 색상 정보 등을 동시에 추출할 수 있다.
- 3차원 데이터 처리: 의료 영상, 비디오 등 3차원 데이터에 대한 분석에도 활용될 수 있다.
Multiple filters
멀티 필터는 여러 개의 필터를 사용하여 이미지의 다양한 특징을 추출하는 방법이다. 예를 들어, 세로 윤곽선, 가로 윤곽선, 색상 등 다양한 특징을 동시에 추출할 수 있다.
- 다양한 특징 추출: 다양한 필터를 사용하여 다양한 특징을 추출할 수 있다.
- 모델 성능 향상: 다양한 특징을 추출하면 모델의 성능을 향상시킬 수 있다.
- 모델 복잡도 감소: 하나의 필터로 다양한 특징을 추출하기보다는, 여러 개의 필터를 사용하여 각각의 특징을 추출하면 모델의 복잡도를 낮출 수 있다.
멀티필터을 활용한 합성곱의 수학적 표현
- 사용한 필터의 개수: \( n_c' \)
$$ \lfloor \frac{n + 2p - f}{s} + 1 \rfloor \times \lfloor \frac{n + 2p - f}{s} + 1 \rfloor \times n_c' $$
3D 합성곱의 장점
- 채널 정보 활용: 컬러 정보를 활용하여 더욱 정확한 특징을 추출할 수 있다.
- 다양한 특징 추출: 하나의 층에서 다양한 특징을 동시에 추출할 수 있어 모델의 표현력을 높일 수 있다.
3D 합성곱의 구현
딥러닝 프레임워크(TensorFlow, PyTorch 등)에서는 3D 합성곱을 위한 함수를 제공한다. 이를 활용하여 쉽게 3D 합성곱 층을 구현할 수 있다.
C4W1L07 One Layer of a Convolutional Net
이번 강의에서는 합성곱 신경망의 한 층이 어떻게 구성되는지 자세히 살펴보았습니다. 특히, 3차원 데이터에 대한 합성곱 연산과 다중 필터를 사용하여 다양한 특징을 추출하는 방법에 대해 학습했습니다. 또한, 각 층의 입력과 출력 크기를 계산하는 수학적 표현과 함께, 합성곱 신경망의 전체적인 구조를 이해하는 데 필요한 개념들을 다루었습니다.
핵심 개념
- 합성곱: 이미지와 필터를 곱하고 더하는 연산
- 필터: 이미지의 특징을 추출하는 역할을 하는 작은 행렬
- 채널: 이미지의 깊이를 나타내는 개념 (예: RGB 채널)
- 특징 맵: 합성곱 연산을 통해 얻어진 출력
- 편향: 뉴런의 출력 값에 더해지는 상수
- 비선형 함수: 선형 모델의 표현력을 높이기 위한 함수 (예: ReLU)
수학적 표현
- 입력: \( n_H^{[l-1]} x n_W^{[l-1]} x n_C^{[l-1]} \) (이전 층의 높이, 너비, 채널 수)
- 필터: \( f^{[l]} x f^{[l]} x n_C^{[l-1]} \) (필터의 크기, 이전 층의 채널 수와 동일)
- 출력: \( n_H^{[l]} x n_W^{[l]} x n_C^{[l]} \) (현재 층의 높이, 너비, 채널 수)
- 출력 크기 계산:
$$ n_H^{[l]} = floor((n_H^{[l-1]} + 2p^{[l]} - f^{[l]}) / s^{[l]} + 1) $$
$$ n_W^{[l]} = floor((n_W^{[l-1]} + 2p^{[l]} - f^{[l]}) / s^{[l]} + 1) $$ - 파라미터 개수:
- 필터: \( f^{[l]} * f^{[l]} * n_C^{[l-1]} * n_C^{[l]} \)
- 편향: \( n_C^{[l]} \)
- 총합: \( f^{[l]} * f^{[l]} * n_C^{[l-1]} * n_C^{[l]} + n_C^{[l]} \)
C4W1L08 Simple Convolutional Network Example
이전에는 단일 합성곱 층의 구성 요소를 살펴보았습니다. 이번에는 심층 합성곱 신경망(Deep Convolutional Neural Network, CNN)의 예시를 알아보고, 표기법에 익숙해지는 연습을 해보겠습니다.
입력 이미지와 기본 설정
우리가 분류하려는 이미지 x가 있다고 가정해보자. 이 이미지는 고양이인지 아닌지를 판별하는 이진 분류(Binary Classification) 문제에 사용된다. 예제에서는 39 × 39 × 3 크기의 이미지를 입력으로 설정한다. 이 크기를 선택한 이유는 계산의 편리함 때문이다.
- 입력 크기: 39 × 39 × 3
- 0번째 층 (입력층): \( n_H^{[0]} = n_W^{[0]} = 39, n_C^{[0]} = 3 \)
첫 번째 합성곱 층
첫 번째 층에서는 3 × 3 필터를 사용하여 이미지의 특징을 추출한다. 다음과 같은 조건을 설정한다.
- 필터 크기 (\( f^{[1]} \)): 3 × 3
- 스트라이드 (\( s^{[1]} \)): 1
- 패딩 (\( p^{[1]} \)): 없음 (0)
- 필터 개수 (\( n_C^{[1]} \)): 10
출력 크기는 다음 공식을 통해 계산된다.
$$ n_H^{[l]} = \frac{n_H^{[l-1]} + 2p - f}{s} + 1 $$
이를 적용하면
$$ 37 = \frac{39 + 0 - 3}{1} + 1 $$
따라서 첫 번째 층의 출력 크기는 `37 × 37 × 10`이 된다.
두 번째 합성곱 층
이번에는 5 × 5 필터를 사용하고, 스트라이드 2를 적용한다.
- 필터 크기 (\( f^{[2]} \)): 5 × 5
- 스트라이드 (\( s^{[2]} \)): 2
- 패딩 (\( p^{[2]} \)): 없음 (0)
- 필터 개수 (\( n_C^{[2]} \)): 20
출력 크기를 계산하면
$$ 17 = \frac{37 + 0 - 5}{2} + 1 $$
따라서 두 번째 층의 출력 크기는 `17 × 17 × 20`이 된다.
세 번째 합성곱 층
마지막 합성곱 층에서도 5 × 5 필터를 사용하고 스트라이드 2를 적용한다.
- 필터 크기 (\( f^{[3]} \)): 5 × 5
- 스트라이드 (\( s^{[3]} \)): 2
- 패딩 (\( p^{[3]} \)): 없음 (0)
- 필터 개수 (\( n_C^{[3]} \)): 40
출력 크기를 계산하면
$$ 7 = \frac{17 + 0 - 5}{2} + 1 $$
따라서 세 번째 층의 출력 크기는 `7 × 7 × 40`이 된다.
벡터 변환 및 최종 예측
마지막 층의 출력을 1D 벡터로 변환한다.
$$ 7 \times 7 \times 40 = 1960 $$
이제 1960개의 요소로 이루어진 벡터를 로지스틱 회귀(Logistic Regression) 또는 소프트맥스(Softmax) 함수에 입력하여 최종 예측값을 얻는다. 이를 통해 이미지가 고양이인지 아닌지를 판별할 수 있다.
합성곱 신경망의 일반적인 경향
- 입력 이미지의 크기(높이 × 너비)는 줄어든다.
- 39 × 39 → 37 × 37 → 17 × 17 → 7 × 7
- 채널의 수는 증가한다.
- 3 → 10 → 20 → 40
이는 많은 합성곱 신경망에서 공통적으로 나타나는 특징이다.
C4W1L09 Pooling Layers
합성곱 신경망은 합성곱 층 외에도 풀링 층을 사용하여 표현 크기를 줄임으로써 계산 속도를 높이고 특성을 훨씬 더 잘 검출해낼 수 있다.
최대 풀링
풀링에는 여러 종류가 있지만, 그 중에서 가장 많이 사용되는 것은 최대 풀링이다. 최대 풀링은 특정 영역에서 가장 큰 값을 선택하는 방식으로 동작한다. 예를 들어, 4 x 4 크기의 입력에 2 x 2 크기의 필터를 사용하여 최대 풀링을 하면, 2 x 2 크기의 출력이 나온다.
최대 풀링의 효과
최대 풀링은 다음과 같은 효과가 있다.
- 특성 추출: 최대 풀링을 통해 특정 영역에서 가장 중요한 특성을 추출할 수 있다.
- 계산 속도 향상: 최대 풀링을 통해 입력 데이터의 크기를 줄일 수 있어서 계산 속도를 향상시킬 수 있다.
- 과적합 방지: 최대 풀링을 통해 과적합을 방지할 수 있다.
평균 풀링
최대 풀링 외에도 평균 풀링이라는 방법도 있다. 평균 풀링은 특정 영역의 평균값을 선택하는 방식으로 동작한다. 최대 풀링에 비해 특성 추출 능력은 떨어지지만, 과적합 방지 효과는 더 좋다.
하이퍼파라미터
풀링에는 필터 크기(f), 스트라이드(s) 등의 하이퍼파라미터가 있다. 이러한 하이퍼파라미터는 모델의 성능에 영향을 미치므로, 적절한 값을 찾는 것이 중요하다.
C4W1L10 CNN Example
이 강의은 합성곱 신경망(CNN)에 대한 소개입니다. CNN은 이미지 인식 등 다양한 머신 러닝 문제에 사용되는 강력한 모델입니다. 이 강의에서는 CNN의 기본 구조와 동작 원리를 설명합니다.
CNN 구성 Layer
- 합성곱 층: 입력 데이터에 필터를 적용하여 특징을 추출한다.
- 풀링 층: 특징 맵의 크기를 줄여 계산량을 줄이고, 과적합을 방지한다.
- 완전 연결 층: 풀링 층의 출력을 평탄화하여, 일반적인 신경망과 유사한 구조로 분류기를 구성한다.
합성곱 신경망(CNN) 예시
입력: 32x32x3 크기의 RGB 이미지 (예: 손글씨 숫자 이미지)
목표: 이미지 내의 숫자를 0~9 사이의 숫자로 인식
신경망 구조
- CONV1: 5x5 필터, 스트라이드 1, 패딩 없음, 필터 개수 6
- 출력: 28x28x6
- POOL1: 최대 풀링, 필터 크기 2x2, 스트라이드 2, 패딩 없음
- 출력: 14x14x6
- CONV2: 5x5 필터, 스트라이드 1, 패딩 없음, 필터 개수 16
- 출력: 10x10x16
- POOL2: 최대 풀링, 필터 크기 2x2, 스트라이드 2, 패딩 없음
- 출력: 5x5x16
- FC3: 완전 연결 층, 400개의 뉴런에서 120개의 뉴런으로 연결
- FC4: 완전 연결 층, 120개의 뉴런에서 84개의 뉴런으로 연결
- Softmax: 10개의 출력 노드를 가지는 소프트맥스 층 (0~9 숫자 분류)
C4W1L11 Why Convolutions
이번 영상에서는 합성곱 신경망(CNN)에서 합성곱 연산이 왜 중요한지 알아보겠습니다. 그리고 CNN을 훈련하는 방법에 대해 간략하게 살펴보겠습니다.
합성곱의 장점
파라미터 공유 (Parameter Sharing)
- 동일한 필터를 이미지의 여러 위치에 적용한다.
- 예를 들어, 수직 방향의 가장자리를 검출하는 필터는 이미지의 왼쪽 상단, 오른쪽 하단 등 다양한 위치에서 동일하게 사용된다.
- 이를 통해 필요한 파라미터의 수를 크게 줄일 수 있다.
연결의 희소성 (Sparsity of Connections)
- 각 출력 뉴런은 입력 이미지의 일부분만 연결된다.
- 예를 들어, 3x3 필터를 사용하는 경우, 각 출력 뉴런은 입력 이미지의 3x3 영역의 픽셀 값들만 고려한다.
- 이를 통해 계산량을 줄이고, 학습 과정을 효율적으로 만들 수 있다.
번역 불변성 (Translation Invariance)
- 이미지가 약간 이동하더라도 동일한 특징을 검출할 수 있다.
- 이는 동일한 필터를 이미지 전체에 적용하기 때문에 가능하다.
CNN 훈련
목표
주어진 이미지 데이터셋을 사용하여 CNN의 파라미터(가중치와 편향)를 학습한다.
방법
- 손실 함수 정의: 예를 들어, 교차 엔트로피 손실 함수를 사용하여 예측 결과와 실제 레이블 간의 차이를 계산한다.
- 경사 하강법: 경사 하강법 또는 그 변형 알고리즘(예: 모멘텀, Adam)을 사용하여 손실 함수를 최소화하도록 파라미터를 업데이트한다.
CNN 구조
일반적인 CNN 구조는 다음과 같다.
- 입력 층
- 합성곱 층 - 풀링 층 - 합성곱 층 - 풀링 층 ...
- 완전 연결 층
- 출력 층 (예: 소프트맥스 층)