밑바닥부터 시작하는 딥러닝 2 - 1장

Jajuna_99·2022년 9월 17일
0

신경망 복습

수학과 파이썬 복습 (p.24)

  • 벡터 : 크기와 방향을 가진 양이다. 1차원 배열로 표현이 가능, 행벡터, 열벡터로 나열하는 방법이 구분된다.

  • 행렬 : 숫자가 2차원 형태(사각형 형상)로 늘어선 것, 행과 열로 구분한다.

  • 이후 행렬 원소별 연산, 브로드캐스트 등 1권에서 설명한 numpy 기능들을 알려준다.

  • 벡터의 내적(곱셈), 행렬의 곱의 예시도 보여주고 구현도 한다.

  • 행렬을 곱할 때는 대응하는 차원의 원소 수가 같아야 한다. 이를 행렬의 '형상 확인'이라 한다.

신경망의 추론 (p.30)

신경망(완전연결계층)의 전체 구조를 설명으로 시작한다. -> 입력, 출력층, 은닉층, 가중치, 편향 등

  • 층을 지날 때에 계산식을 알려주고 구현해본다. (p.31)

  • 완전연결계층의 의한 변환은 선형 변환이라는 것을 일러주고, 여기에 비선형 효과를 부여하는 것이 활성화 함수라고 말한다. ex) 'the' sigmoid function
    시그모이드 함수 -> σ(x)=σ(x)= 11+exp(x)1\over 1+exp(-x) -> 그래프는 늘어진 's' 모양이다.

  • 시그모이드 함수를 거쳐 출력층에 값이 도달해 클래스별로 '분류' 되는 과정을 확인해볼 수 있다. (확률로 얻으려면 소프트맥스 함수 사용!)

  • 위에 과정을 순전파(forward propagation)로, 한 클래스에 묶어 구현한다. (p.36)
    (sigmoid, affine 클래스 구현 후, TwoLayerNet 클래스로 신경망 구현)

신경망의 학습 (p.39)

  • 손실(loss) : 학습 데이터(학습 시 주어진 정답 데이터)와 신경망이 예측한 결과를 비교, 이 예측이 얼마나 나쁜가를 산출한 단일 값(스칼라)이다. -> 이것의 함수가 손실 함수다.
    (책에서는 다중 클래스 분류 신경망에서 자주 사용하는 교차 엔트로피 오차(이하 CEE)를 사용한다.)
    (앞 절에 구현한 내용에 소프트맥스, CEE 계층을 추가해 구현한다.)
    소프트맥스 함수 -> yky_k = exp(sk)i=1nexp(si)exp(s_k) \over \displaystyle\sum^n_{i=1}exp(s_i) , 총 출력 = nn, k번째 출력 = yky_k, 점수 = sks_k
    Cross Entrophy Error -> LL = ktk-\displaystyle\sum_kt_klogyky_k , k번째 클래스에 행당하는 정답 레이블 = tkt_k, ee를 밑으로 하는 로그 = log
    미니배치용 = LL = -1N1 \over N nktnk\displaystyle\sum_n\displaystyle\sum_kt_{nk}logynky_{nk}

정답 레이블은 원핫 벡터로 표기된다.

  • 책에서는 CEE와 소프트맥스 함수를 묶어서 클래스를 구현한다. (Softmax with Loss)

  • 미분과 벡터, 행렬의 기울기에 대한 간략한 설명을 해준다. (p.43)

  • 연쇄 법칙에 대해 설명한다. (p.44)

  • 계산 그래프로 여러 노드(계층)들의 순전파와 역전파(덧셈 노드, 곱셈 노드, 분기 노드, Repeat 노드, Sum 노드, MatMul 노드)의 구조와 과정을 설명한다. (노드 역전파에 대한 수식을 이해하고 넘어갈 필요가 있다!)

  • 여러 노드들을 구현한 후 Sigmoid, Affine, Softmax with Loss 계층을 구현한다.

신경망으로 문제를 풀다

스파이럴 데이터셋으로 2차원으로 데이터를 시각화하는 방법을 알아보고 구현한다. -> 결과로 결정 경계로 나눠진 그래프를 시각화 할 수 있다.

계산 고속화

  • 비트 정밀도를 알아보고 조작하는 방법을 구현한다.

  • 쿠파이 라이브러리를 통해 GPU 병렬 연산을 해주는 방법을 알려준다. (아주 간단하게만)

요약

1권의 내용 대부분을 2권의 1장에 요약해서 간략하게 보여준다. CNN을 잘 숙지하고 있고, 딥러닝의 기초 이론들에 숙달 돼 있다면 2권으로 시작하는 것도 나쁘지 않아 보인다.

profile
Learning bunch, mostly computer and language

0개의 댓글