본문 바로가기

데이터/딥러닝

1.1 인공 신경망이란?

해당 글은 코드잇 강의를 참고하여 작성되었습니다.

- MNIST 데이터

  • Modified National Institute of Standards and Technology database
  • 흑백 손글씨 이미지 데이터를 모아 놓은 데이터 셋으로, 28x28 픽셀
  • 0~255사이의 숫자롤 이루어진 색들을 min-max normalization을 사용해 정규화시킨다.
  • 머신 러닝 분야에서는 MNIST 데이터베이스의 픽셀 데이터를 입력 변수로, 픽셀 데이터가 어떤 숫자를 나타내는지를 목표 변수로 사용해서 처음 보는 픽셀 데이터가 나타내는 숫자를 맞추는 연구를 한다

- MNIST 데이터와 로지스틱 회귀

  • 데이터에 가장 잘 맞는 시그모이드 곡선을 찾고, 이를 사용해서 예측 데이터가 0인지 1인지를 예측한다.
  • 픽셀 값 x에 입력 변수의 값을 대입해서, 결괏값이 0.5가 넘으면 해당 숫자로, 0.5가 넘지 않으면 해당 숫자가 아닌 걸로 예측한다.
    왼쪽에 있는 동그라미는 입력 변수 (픽셀 하나하나 + x_0=1x0​=1)
  • 해당 숫자에서 값이 큰 픽셀들은 값을 증폭시키고, 다른 이미지에서 값이 큰 픽셀은 값을 감소시킨다.
  • 모든 숫자를 시그모이드 함수로 값을 구한뒤 이미지가 주어졌을 때 가장 큰 값을 리턴하는 숫자와 같다고 예측한다. 

- 사람의 신경계

  • 뉴런 : 정보가 들어오면 이를 처리하고 이런 상태를 활성화 되었다고 표현하며 신경계로 전달한다.

- 인공 뉴런

  • 뉴런 : 여러 숫자들을 받아서 하나의 숫자를 리턴하는 함수
  • θ값은 가중치를 의미하므로 w(weight)로 표시, θ0은 b(bia)로 표시, 활성함수로 시그모이드 함수 등을 사용하여 예측한다.

- 인공 신경망

  • 먼저 입력층에서 인풋을 받아서, 다음 층 모든 뉴런들의 출력을 구한다.
  • 구한 뉴런들의 출력을 사용해서 다음 층 모든 뉴런들의 출력을 계산한다.
  • 또 뉴런들의 출력을 사용해서 마지막 층 모든 뉴런들의 출력을 계산한다.
  • 입력층과 출력층 사이에 있는 층들은 데이터가 들어가는 층과 나오는 층 사이에 숨어있다고 해서 은닉층이라고 부른다.
  • 9를 나타내는 이미지의 픽셀 데이터를 인풋으로 넣었을 때는, 9에 해당하는 뉴런의 출력이 최대한 1에 가깝게 활성화되고, 나머지 뉴런들은 최대한 0에 가깝게 활성화되게 하는 가중치와 편향을 찾는 걸 '신경망을 학습한다'라고 표현한다.

- 신경망 안에서 일어나는 일

  • 픽셀 데이터에서 시작해서 층을 넘어갈 때마다 더 고차원적인 패턴을 찾아낸다.
  • 신경계의 뉴런들은 작은 패턴을 찾아내는 데 특화
  • 작은 단위의 패턴을 다음 층의 인풋으로 사용해서 더 섬세하게 예측