카테고리 없음

[2024-2] 문지영 - deeplearning: Deep Feedforward Networks (1)

dollos114256 2025. 1. 4. 04:12

 

https://www.deeplearningbook.org/contents/mlp.html

 

https://www.deeplearningbook.org/contents/mlp.html

 

www.deeplearningbook.org

 

I. Deep Feedforward Networks

0. 심층신경망이란?

deep feedforward networks는 deeplearning의 핵심으로, 목표는 어떤 함수 $f^*$를 근사approximate하는 것이다. 이 순방향 신경망은 하나의 사상map $y= f(x;\theta)$를 정의하고, 함수를 가장 잘 근사하는 파라미터 $\theta$의 값들을 학습한다. 

 

(1) feedforward

  • 정보가 앞쪽으로만 흘러감: $x$를 입력으로 하여 평가되는 함수를 통과한 후 출력 $y$에 도달하는데 이 과정에서 feedback은 없다
  • 순환신경망recurrent neural networks: 모형의 출력output이 다시 투입input되는 feedback을 포함되는 모형으로 확장된 것

(2) networks

  • 서로 다른 여러 개의 함수들이 엮여서 표현됨: 유향 비순환 그래프directed acyclic graph
  • $f^{(1)}$, $f^{(2)}$, $f^{(3)}$을 하나로 엮어서 $f(x)=f^{(3)}(f^{(2)}(f^{(1)}(x)))$로 표현할 수 있음
  • $f^{(1)}$, $f^{(2)}$ 등은 신경망의 제1층first layer, 제2층second layer 등으로 불리고 전체 길이는 모형의 깊이depth에 해당
  • 신경망의 마지막 층은 출력층output layer

 

  • 신경망 훈련 과정은 $f(x)$를 $f^*(x)$로 적합시키는 과정
  • 각자 다른 training point에서 평가된 노이즈와 근사값인 $f^*(x)$들이 같이 주어지는데, 지도 학습의 경우에는 각 $x$에 대한 목표에 해당하는 $y \approx f^*(x)$가 부여되어 있음
  • 산출해내야 할 결과가 직접적으로 지정되어 있어서 출력층은 반드시 $y$에 가까운 결과값을 내야 함. 다른 층들은 어떤 결과를 내야 하는지 직접적으로 명시가 되어있지 않고, 학습 알고리즘은 이 층들을 사용해서 원하는 결과가 나오도록 해야 함. 
  • 즉 $f^*$의 가장 좋은 근사값이 나올 수 있도록 학습 알고리즘이 이 층을 어떻게 사용할 것인지 결정해야 하며, 이러한 층들은 은닉층이라고 불림.

(3) neural

  • 신경과학에서 일정 부분 영향을 받았기 때문
  • 각 은닉층은 벡터를 입력하고 벡터를 출력하는 일종의 벡터값 함수로 볼 수 있음
  • 이러한 벡터의 차원이 신경망의 폭width을 결정함
  • 하나의 은닉층을 '벡터 대 벡터 함수'가 아닌 병렬로 작동하는 벡터 대 스칼라 함수들의 여러 단위로 구성되었다고 볼 수도 있음 

(4) 선형 모형의 한계를 극복하는 방법에 대해 고민해보기

순방향 신경망을 이해하는 방법으로, 로지스틱이나 선형회귀와 같은 선형 모형의 한계를 어떻게 극복할지에 대해 고민하는 것을 제시한다. 모형의 설명력이 선형 함수에만 한정되어 있다는 점이 한계여서, 선형 모형은 임의의 두 입력 변수 사이의 상호작용을 이해할 수 없다.

선형 모형을 $x$ 자체가 아니라 그것을 변환한 입력인 $\phi(x)$에 적용함으로써 선형 모형을 $x$의 비선형 함수들로 확장할 수 있다. 

  • $\phi$에 사용할 수 있는 함수들 
    • Radial Basis Function Kernel에서 암묵적으로 사용하는 무한차원 $\phi$과 같은 generic $\phi$ : training set에는 적합한데 test set에서의 일반화 성능은 좋지 않음
    • 특화된 $\phi$를 사람이 직접 manual: 개별 과제마다 특화된 실무자의 오랜 기간의 노력 필요
    • $\phi$를 직접 배우는 것: 여기서 모형은 $y=f(x;\theta,w)=\phi(x;\theta)^Tw$. 파라미터 $\theta$는 여러 함수로부터 $\phi$를 배우기 위한 것이고, 파라미터 $w$는 $\phi(x)$를 원하는 결과값으로 map하기 위한 것.

 

1. 예제: XOR의 학습

배타적 논리합 함수는 두 이진수 $x_1$, $x_2$에 대한 연산인데 둘 중 하나만 1일 때에 XOR 함수는 1을 반환하고, 그렇지 않으면 0을 반환한다. 

자료 형태는 [0, 0]$^T$, [0, 1]$^T$, [1, 0]$^T$, [1, 1]$^T$

그림 6.1 (왼쪽) 선형 모형을 원래 입력에 직접 적용한 경우 (오른쪽) 변환된 공간

  • $f(x;w,b) = x^Tw+b$
  • 은닉층이 은닉 단위를 담은 벡터 h로 구성됨: 제1층인 $f^{(1)}(x;W,c)$이 제2층인 출력층에 전달됨
  • $h = f^{(1)}(x;W,c)$과 $y=f^{(2)}(h;w,b)$가 연결된 신경망 : $f(x; W,c,w,b) = f^{(2)}(f^{(1)}(x))$