[Doit! 딥러닝 교과서] Ch2. 순방향 신경망
Ch2.1 순방향 신경망의 구조와 설계 항목
2.1.1 순방향 신경망의 구조
순방향 신경망
데이터가 한 방향으로 전달되는 순방향 연결만을 갖는 구조
- 뉴런들이 모여 계층을 이루고 계층이 쌓여 전체 신경망을 이룸
- 입력 계층: 외부에서 데이터를 전달받음
- 은닉 계층: 데이터의 특징 추출 -> 문제의 복잡도에 따라 가변적으로 구성
- 출력 계층: 출력된 특징을 기반으로 추론한 결과를 외부에 출력
- 모든 계층이 완전 연결 계층
- 이전 계층에서 출력한 데이터를 동일하게 전달받음 -> 각 뉴런마다 서로 다른 측징 추출
[가중 합산]
추출할 특징에 중요한 영향을 미치는 데이터를 선택하는 과정
z = w1x1 + w2x2 + … +wnxn + b
= w^Tx + b
- 입력 데이터(x)가 들어오면 가중치(w)와 곱해서 가중 합산을 함
- 가중치: 특징을 추출할 때 영향이 큰 데이터를 선택하는 역할
- b로 오프셋 지정
[활성 함수]
원하는 형태로 특징을 추출하기 위해 데이터를 비선형 적으로 변환하는 과정
- ReLU(Rectified Liner Unit)
- 기본 활성 함수
- 경첩 형태의 비선형 함수
2.1.2 범용 함수 근사기로서의 신경망
뉴런
가중합산과 활성함수를 순차 실행하는 합성함수 => 실함수로 정의
- 가중 합산한 결과를 비선형 활성 함수로 매핑해서 실수 출력
계층
뉴런의 그룹으로 정의 -> 합성함수 => 벡터 함수로 정의
- 입력 벡터의 크기: 이전 계층의 뉴런 수, 출력 벡터의 크기: 현재 계층의 뉴런 수
- 계층의 가중치는 크기가 n * m인 행렬 W로 정의
- 가중 합산 결과에 활성 함수 실행
신경망
계층을 순차적으로 쌓은 형태 -> 합성함수 => 벡터 함수로 정의
- 각 계층이 정의하는 벡터 함수를 순차적으로 실행
- 입력 x를 출력 y로 매핑하는 y = f(x; 파이) 형태의 함수
- 파이: 뉴런의 가중치와 편향을 포함한 함수의 파라미터
- 신경망은 학습할 때 미분 사용 -> 신경망이 표현하는 함수는 미분가능한 함수이어야 함
- 범용 함수 근사기, 확장성이 뛰어난 모델 구조
실함수와 벡터 함수
- 실함수: Rn -> R
- 입력: 크기가 n인 벡터, 출력: 실수
- 벡터함수: Rn -> Rm
- 입력: 크기가 n인 벡터, 출력: 크기가 m인 벡터
범용 근사 정리
범용 근사기: 신경망은 n차원 공간의 임의의 연속함수를 근사하는 능력이 있음
- 범용 근사 정리로 증명
- 범용 근사 정리: 2계층의 순방향 신경망에서 은닉 뉴런을 충분히 사용하고 검증된 활성 함수를 사용하면 n차원 공간의 임의의 연속 함수를 원하는 정도의 정확도로 근사할 수 있음
- 문제: 족잡한 문제를 정확히 근사하려면 은닉 뉴런 수 증가 -> 모델이 커짐 -> 과적합 발생, 모델 성능 저하
- 문제 해결: 깊은 신경망으로 확장
2.1.3 순방향 신경망의 설계 항목
순방향 신경망 고려 항목
- 모델의 입력
- 출력 형태
- 활성 함수의 종류
- 네크워크 크기
출력/입력 형태는 모델이 정해지면 어느정도 결정되므로 중요한 것은 모델의 크기와 활성 함수의 종류를 결정하는 것
2.2 분류와 회귀 문제
2.2.1 분류 문제
분류 문제
데이터의 클래스 또는 카테고리를 예측
- 몇 개의 클래스로 분류하는가에 따라 두가지로 나뉨
- 이진 분류: 두개의 클래스로 분류(ex. 스팸 메일 이다, ~아니다)
- 다중 분류: 여러 클래스로 분류(ex. 강아지의 품종 분류)
- 분류 모델의 정의법
- 판별 함수: 입력 데이터가 속한 클래스 예측
- 확률 모델: 입력 데이터가 각 클래스에 속할 확률 예측
2.2.2 회귀 문제
회귀 문제
여러 독립 변수와 종속 변수의 관계를 연속 함수 형태로 분석하는 문제
- 입력 데이터에 대한 함숫값 예측
- 예측값이 숫자형 데이터면 회귀문제임(ex. 방 수 + 면적 등 -> 집값 예측)
2.3 이진 분류 모델
베르누이 분포
두 종류의 사건이 발생할 확률을 나타냄
p(x; m)=m^x(1-m)^1-x
- x: 확률 변수. x=1은 사건 1, x=0은 사건 2를 나타냄
- m: 사건 1이 발생할 확률(1-m: 사건 2가 발생할 확률)
확률 모델 정의
출력 계층의 활성 함수
진행 과정
- 신경망 모델: 점수/로짓으로 예측
- 활성함수가 이를 베르누이 확률분포의 파라미터 m으로 변환
- 이떄 활성함수로 시그모이드 함수가 사용됨
시그모이드 함수
값을 [0, 1] 사이의 범위로 만들어줌
- 값을 고정해주므로 스쿼싱 함수로 사용
- 출력계층에서 실숫값을 확률로 변환할 때 사용
2.4 다중 분류 모델
카테고리 분포
여러 종류의 사건이 발생할 확률을 나타냄
확률 모델 정의
출력 계층의 활성 함수
진행 과정
- 신경망 모델: 점수/로짓을 실수 벡터로 출력
- 활성함수가 이를 카테고리 분포의 확률 벡터 m으로 변환
- 이떄 활성함수로 소프트맥스 함수가 사용됨
소프트맥스 함수
실수벡터를 확률 벡터로 만들어줌
- 실수 벡터의 각 요소는 [0, 1] 사이의 범위로 변환
- 각 요소의 합은 1
- 시그모이드 함수를 여러 클래스에 대해 일반화한 함수