본문 바로가기

Data Science/Deep Learning

[밑바닥부터 시작하는 딥러닝 1] Ch 3. 신경망

이번 포스팅에서는 "신경망"에 대해서 다뤄보도록 하겠다.

 

앞 장에서 공부한 퍼셉트론은 매개변수(가중치와 편향) 조정을 사람이 수동으로 해주어야 한다는 단점이 있다.

 

이러한 단점을 해결해 줄 수 있는 것이 바로 신경망이다.

 

신경망가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력이 있다!!

 

신경망을 그림으로 나타내면 다음과 같으며 크게 입력층, 은닉층, 출력층 이렇게 3개로 구분된다.

 

가장 왼쪽 줄이  입력층(Input Layer) , 중간 줄이  은닉층(Hidden Layer) , 맨 오른쪽 줄이  출력층(Output Layer)

 

여기서 "활성화 함수"라는 개념이 등장한다.

 

활성화 함수란 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할을 수행한다.

(** 앞서 2장에서 본 퍼셉트론은 활성화 함수로 "계단 함수"를 사용한다)

 

  • 신경망에서 자주 이용되는 활성화 함수 (모두 비선형)
    • 시그모이드 함수
    • ReLU 함수
  • 일반적으로 이용되는 출력층의 활성화 함수
    • 회귀 문제
      • 항등 함수
    • 이진 분류 문제
      • 시그모이드 함수
    • 다중 분류 문제
      • 소프트맥스 함수
      • 단, 오버플로 문제를 막기 위해 계산 시에 입력 신호 중 최댓값을 빼줘야 함

** 선형 함수를 활용화 함수로 사용하면 신경망의 층을 깊게 하는 의미가 없어진다.

 

<참고>

  • 기계학습은 크게 "학습""추론"의 두 단계를 거쳐서 이루어짐
    • 학습 데이터를 사용하여 가중치 매개변수를 학습
    • 추론 단계에서는 앞서 학습한 매개변수를 사용하여 입력 데이터를 분류
  • 추론 단계에서는 출력층의 소프트맥스 함수를 생략하는 것이 일반적
  • 그러나 신경망을 학습시킬 때 출력층에서 소프트맥스 함수를 사용

 

  • 배치(Batch)
    • 입력 데이터를 묶은 것을 의미함 (즉, 하나로 묶은 데이터)
      • ex) 이미지 데이터의 경우, 이미지가 지폐처럼 다발로 묶여있다고 생각하면 됨
    • 배치 처리를 수행함으로써 큰 배열로 이루어진 계산을 하게 되는데, 컴퓨터에서는 큰 배열을 한꺼번에 계산하는 것이 분할된 작은 배열을 여러 번 계산하는 것보다 빠름 (즉, 배치 처리를 하면 속도 측면에서 효율적)

 

 

★ 참고 자료

- 밑바닥부터 시작하는 딥러닝 교재