[책] 밑바닥부터 시작하는 딥러닝 1권

kestrelkestrel
3 min read

도서 구매 링크: 교보문고, 예스24
저자: 사이토 고키
출판사: 한빛미디어


후기

  • 낮은 단계부터 차근차근 구현하며 이해해 나가기 때문에 개념을 잡는 데 도움이 됨

  • 설명이 친절하고 세세함

  • (읽으면서 계속 추가 예정)


정리

2. 퍼셉트론

  • 퍼셉트론은 입출력을 갖춘 알고리즘이다. 입력을 주면 정해진 규칙에 따른 값을 출력한다.

  • 퍼셉트론에서는 ‘가중치’와 ‘편향’을 매개변수로 설정한다.

  • 퍼셉트론으로 AND, NAND, OR 게이트 등의 논리 회로를 표현할 수 있다.

  • XOR 게이트는 단층 퍼셉트론으로는 표현할 수 없다.

  • 2층 퍼셉트론을 이용하면 XOR 게이트를 표현할 수 있다.

  • 단층 퍼셉트론은 직선형 영역만 표현할 수 있고, 다층 퍼셉트론은 비선형 영역도 표현할 수 있다.

  • 다층 퍼셉트론은 (이론상) 컴퓨터를 표현할 수 있다.

3. 신경망

  • 신경망에서는 활성화 함수로 시그모이드 함수와 ReLU 함수 같은 매끄럽게 변화하는 함수를 이용한다(퍼셉트론에서는 갑자기 변화하는 계단 함수를 활성화 함수로 사용).

  • 넘파이의 다차원 배열을 잘 사용하면 신경망을 효율적으로 구현할 수 있다.

  • 기계학습 문제는 크게 회귀와 분류로 나눌 수 있다.

  • 출력층의 활성화 함수로는 회귀에서는 주로 항등 함수를, 분류에서는 주로 소프트맥스 함수를 이용한다.

    • 소프트맥스 함수 구현 시 계산식에서 최댓값을 빼주어 오버플로를 방지할 수 있다.

    • $$y_k = \frac{e^{a_k}}{\sum_{i=1}^{n}e^{a_i}} = \frac{Ce^{a_k}}{C\sum_{i=1}^{n}e^{a_i}} = \frac{e^{a_k+logC}}{\sum_{i=1}^{n}e^{a_i+logC}} = \frac{e^{a_k+C'}}{\sum_{i=1}^{n}e^{a_i+C'}}$$

    • 소프트맥스 함수는 단조 증가 함수이므로 적용해도 원소의 대소 관계는 변하지 않는다.

    • 따라서 지수 계산에 드는 자원 낭비를 줄이고자 예측 단계에서는 소프트맥스 함수 적용을 보통 생략한다(학습 단계에서는 소프트맥스 함수 사용).

  • 분류에서는 출력층의 뉴런 수를 분류하려는 클래스 수와 같게 설정한다.

  • 입력 데이터를 묶은 것을 배치라 하며, 예측 처리를 배치 단위로 진행하면 결과를 훨씬 빠르게 얻을 수 있다.

    • 수치 계산 라이브러리 대부분이 큰 배열을 효율적으로 처리할 수 있도록 최적화되어 있기 때문

    • 느린 I/O를 통해 데이터를 읽는 횟수가 줄어, 버스에 부하가 줄고, 빠른 CPU나 GPU로 순수 계산을 수행하는 비율이 높아지기 때문

4. 신경망 학습

  • 기계학습에서 사용하는 데이터셋은 훈련 데이터와 시험 데이터로 나눠 사용한다.

  • 훈련 데이터로 학습한 모델의 범용 능력을 시험 데이터로 평가한다.

  • 신경망 학습은 손실 함수를 지표로, 손실 함수의 값이 작아지는 방향으로 가중치 매개변수를 갱신한다.

    • 정확도를 지표로 삼는 경우, 정확도는 이진값(맞음/틀림)을 반환하는 불연속 함수이므로 가중치 매개변수의 미미한 변화에는 거의 반응을 보이지 않고, 변할 때는 불연속적으로 갑자기 변한다.

    • 반면, 손실 함수는 가중치 매개변수의 값이 조금 변하면 그에 따라 손실 함수 값도 연속적으로 변화하여 가중치 매개변수를 점진적으로 조정할 수 있다.

  • 가중치 매개변수를 갱신할 때는 가중치 매개변수의 기울기를 이용하고, 기울어진 방향으로 가중치의 값을 갱신하는 작업을 반복한다.

  • 미분은 한순간의 변화량을 나타낸다.

    • 예를 들어, df(x)/dx 의 경우 x의 작은 변화가 함수 f(x)을 얼마나 변화시키느냐를 의미한다.
  • 아주 작은 값을 주었을 때의 차분으로 미분하는 것을 수치 미분이라고 한다.

    • 학교 수학 시간에 배운 수식을 전개해 계산하는 해석적 미분과 달리, 수치 미분은 차이(h)를 무한히 0으로 줄이는 것이 불가능해 어쩔 수 없이 오차가 존재하는 한계가 있다.

    • 오차를 줄이기 위해 중앙 차분을 활용하기도 한다.

  • 수치 미분을 이용해 가중치 매개변수의 기울기를 구할 수 있다.

  • 수치 미분을 이용한 계산하는 시간이 걸리지만, 그 구현은 간단하다. 한편, 다음 장에서 구현하는 (다소 복잡한) 오차역전파법은 기울기를 고속으로 구할 수 있다.

0
Subscribe to my newsletter

Read articles from kestrel directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

kestrel
kestrel