[딥러닝] 2주차 - Neural Network Basics

Lana Chung·2021년 8월 27일
0

신경망 네트워크

  • m개의 학습 표본을 가진 학습 세트가 있으면, for문을 돌리면서 하나씩 학습 세트를 처리해 왔을것
  • 하지만 신경망을 구현할 때는 전체 학습 세트를 돌릴 때 for문을 돌리지 않고 처리

Binary Classification


  • 로지스틱 회귀는 이진 분류를 위한 알고리즘

  • 이미지를 저장할 때 컴퓨터는 각각 빨간색, 녹색, 파란색 RGB 채널에 대응하는 세 개로 분리된 행렬을 사용함

    • 이미지 (64, 64) 픽셀이라면

      • RGB 픽셀의 채도에 해당하는 값을 가진 3 X (64,64) 행렬
    • 이 픽셀들의 채도 값을 feature vector로 바꾸기 위해 ⇒ x라는 input 1차원 행렬에 길게 늘어트릴 수 있음

      • 전체 차원은 64x64x3 (3개의 행렬 안에 있는 모든 값들의 수) = (12288, )

      • the dimension of the input feature x = nx 입력 특징 벡터의 차원

        nx=n=12288n_x = n = 12288

      • nx를 축약해서 n이라고 쓰기도 함

    • 로지스틱 회귀의 목적은 이 feature vector x가 나타내는 이미지의 라벨이 0,1인지 예측하는 것

Feature Vector

  • (x, y) → 하나의 학습 표본

    • x → nx 차원을 갖는 feature vector
    • y → 0, 1 중 하나의 값을 갖는 label
    • m → 학습 세트는 m개의 학습 표본(examples)로 이루어져 있음
    • (x(1),y(1)),...,(x(m),y(m))(x^{(1)}, y^{(1)}), ... , (x^{(m)}, y^{(m)})
    • m_train, m_test (샘플 갯수)
  • 모든 학습 표본을 더욱 간결하게 표현하기 위해

    • X 행렬 - 학습 세트 입력값들 x(1), x(2)...x(m)을 가져와서 세로줄로 쌓은 행렬

    • 세로 갯수는 m개, 가로 (각 행렬의 크기) 크기는 nx개인 행렬 완성

      X = (nx, m) 차원을 가진 행렬 X.shape

  • Y 행렬 - 출력값들 y(1), y(2), ... y(m)을 가져와서 한 줄로 늘여트린 행렬

    • Y = (1,m) 차원을 가진 행렬 Y.shape

Logistic Regression


  • Given X, want y^\hat{y}

    • y^=P(y=1x)\hat{y} = P(y=1 | x) (0 ≤ y ≤ 1)

    • 매개변수 parameter 가중치 w (nx차원 벡터), 실수인 편의 b (얘도 nx차원 벡터)

    • y^=wTx+b\hat{y} = w^Tx + b

      • → 값이 1보다 클 수 있으므로 시그모이드 함수를 적용한다

      • y^=σ(wTx+b)\hat{y} = σ(w^Tx + b)

      • σ(z)라고 했을때, z 값이 매우 큰 경우 y값은 1과 매우 가까운 값

        • z 값이 매우 작은 경우, 0과 매우 가까운 값이 된다.
      • 따라서 로지스틱 회귀에서는 Y = 1이 되는 확률인 y^\hat{y}를 잘 추정한 w, b값을 구하는 것

Logistic Regression Cost Function


  • given {(x(1),y(1)),...,(x(m),y(m))},want y^y(i)\{(x^{(1)}, y^{(1)}),..., (x^{(m)}, y^{(m)})\}, want\ \hat{y} \approx y^{(i)}
    • m개의 표본이 주어지면 실제 y값과 비슷한 예측 y값을 원함
  • for each training example, 각각의 표본에 대해서는 (i)를 붙임 (index)
  • y^(i)=σ(wTx(i)+b)\hat{y}^{(i)} = σ(w^Tx^{(i)} + b), z(i)=wTx(i)+bz^{(i)} = w^Tx^{(i)} + b
    • σ(z(i))=11+ez(i)σ(z^{(i)}) = \cfrac{1}{1 + e^{-z^{(i)}}} (0 ≤ y ≤ 1)

Loss(error) function : L(y^,y)L(\hat{y} , y)

  • 추정값 y가 실제 y와 얼마나 차이가 나는지
  • 로지스틱 회귀에서는 squared error 를 사용하지 않음
  • 로지스틱 회귀에서 사용하는 loss f(x)
    • (ylogy^+(1y)log(1y^))- (y*log \hat y + (1-y)*log(1-\hat y))
  • loss f(x)는 작을수록 좋다
    • if y = 1 : L(y^,y)L(\hat{y} , y) = -log^y
        • 로그 ^y가 작을수록 좋으므로
      • = log ^y가 클수록 좋다
      • = ^y가 클수록 좋다 (^y는 시그모이드 함수의 아웃풋이므로 1이 제일 큰 값임)
    • if y = 0 : L(y^,y)L(\hat{y} , y) = - log(1-^y)
      • -log(1-^y)가 작을수록 좋으므로
      • =log(1-^y)가 클수록 좋다
      • ^y가 작을수록 좋다(0이 제일 작으므로 0)
profile
그게 쉬운 일이었다면, 아무런 즐거움도 얻을 수 없었을 것이다.

0개의 댓글