앞에서는 지금까지 단일 퍼셉트론부터, 은닉층이 존재하는 다층 퍼셉트론에 대해서 보았다. 지금 볼 심층 신경망은 Deep Neural Network에 해당하며 여러개의 은닉층을 가지고 있다. 이는 MLP(Multi-layer Perceptron)의 확장된 형태라고 보면된다. 모든 DNN은 MLP 구조를 기반으로 하지만, MLP 중 은닉층이 많은 구조를 DNN이라고 생각하면 된다. 아래는 단일 퍼셉트론, 다층 퍼셉트론, 심층 신경망의 도식화된 그림이다.




→ 서로 다른 레이어 타입을 혼합해서 사용하는 것이 일반적이다 !
딥 뉴럴 네트워크(DNN, Deep Neural Network)는 뉴런의 연결 방식에 따라 여러 종류로 나뉜다.
- Fully-Connected Network : 기본적인 MLP 구조
- Convolutional Neural Network(CNN) : 이미지 처리에 강함
- Recurrent Neural Network(RNN) : 시계열, 텍스트 등 순서가 중요한 데이터에 적합
- 이외에도 다양한 변형이 존재한다. (LSTM, Transformer 등)
XOR문제는 선형 분리가 불가능하기 때문에 단일 퍼셉트론으로는 해결할 수 없다. 그러나, 은닉층을 도입하면 변환된 공간으로 매핑해서 선형 분리가 가능하다. 즉, 단순한 퍼셉트론이 해결하지 못하는 문제도 은닉층을 쌓으면 해결이 가능하다.

층을 깊게 쌓으면 추상화 수준이 높아진다.

딥러닝은 계층적으로 정보를 표현하므로 복잡한 문제도 처리할 수 있다.
- 예를 들어, 사람 얼굴을 인식할 때는 피부색 → 눈 → 얼굴 → 사람 이름 순으로 추상화됨
그냥, 뉴런 수만 많은 얕은 네트워크를 사용하면 안됨 ?
반면, 깊은 네트워크는 재사용성과 표현력이 뛰어나다.
입력 → 은닉층 → 출력층 으로 정보가 흐르며 계산되는 과정
앞서 다층 퍼셉트론에서 본 것처럼 딥러닝에서도 똑같이 작동된다.

출력층까지 전달된 오차가 은닉층의 가중치 하나 에 얼마나 영향을 주는지를 계산하는 방식이다.
➡ '출력층 오차 ∘ 그 오차가 은닉층까지 어떻게 영향을 미치는가 ∘ 해당 입력값' 을 전부 곱한게 하나의 가중치 에 미치는 영향이 된다.

출력층에서부터 오차를 구해서,
각 층마다 오차 ∘ 활성화 미분 ∘ 입력을 곱해서
기울기(gradient)를 구하고
그걸 다음 층으로 전파하는 방식

forward propagationbackpropagation사람이 직접 설정하는 학습 관련 설정값
좋은 성능을 위해서는 하이퍼파라미터 튜닝이 매우 중요하다