Home DL 인공신경망
Post
Cancel

DL 인공신경망

오늘은 처음으로 딥러닝에 인공 신경망에 대해 배운 것을 정리해보려한다.

로지스틱 회귀 복습

로지스틱 회귀는 주어진 학습 데이터에 대해서 가장 잘 맞는 시그모이드 곡선을 찾아내는 알고리즘이다. 시그모이드 함수는 항상 0~1 사이의 값을 리턴한다.

시그모이드 함수식 :$S(x)=\frac{1}{1+e^-x}$

적절한 시그모이드 함수를 찾은 이후, 이걸 사용해 예측 데이터가 0인지 1인지를 예측한다.

일반화

시그모이드 함수를 $σ$로 표현하면 가설 함수를 더 간단하게 표현할 수 있다. $h_\theta(x)=\frac{1}{1+e^-\theta^Tx}=\sigma(\theta^Tx)$

인공 뉴런

생물학적 뉴런의 역할은 앞 뉴런들에서 받은 정보를 처리해서, 종합해서 처리한 후, 활성화를 통해 뒤에 있는 뉴런들에게 정보를 전달 한다.

생물학적 뉴런과 비슷하게 행동하는 머신 러닝 모델인 로지스틱 회귀 모델을 이용하여 인공 뉴런으로 사용할 것이다.

로지스틱 회귀 모델도 생물학적 뉴런과 같이 입력 데이터를 받아서, 종합해서 처리한 후, 시그모이드 함수를 통해서 처리한 내용을 0~1 사이 값으로 리턴한다.

위의 사진을 설명하자면, 입력 변수와 곱해지는 세타 값들을 가중치(weight)라고 부른다. 변수로는 weight의 가장 앞 알파벳 w를 사용해서 나타낸다. 그리고 항상 1과 곱해지는 상수 $\theta_0$은 편향(bias)이라고 부르고, 변수로는 bias의 가장 앞 알파벳 b를 사용해서 나타낸다.

가설 함수로는 이렇게 작성할 수 있다. $hw(x)=\sigma(w_1x_1+w_2x_2+…+w_nx_n+b)=\sigma(w^T+b)$

인공 신경망

인공 신경망은 수많은 인공 뉴런을 엮어서 예측을 하는 머신 러닝 알고리즘이다.

위 그림을 보면 동그라미 하나는 인공 뉴런 하나를 나타내고, 선 하나는 각 가중치(weight)를 의미한다. 편향(bias)은 뉴런 안에 있다고 생각하면 된다.

신경망 층과 계산

신경망에서 각 뉴런의 인풋은 바로 전 층 모든 뉴런들의 출력이다. 전 층 뉴런들의 출력을 벡터 $x$, 뉴런 하나의 가중치들을 $w$, 편향을 상수 $b$로 표현한다면, 뉴런의 출력을 대략적으로 밑의 수식으로 계산할 수 있다.

$\sigma(w_1x_1+w_2x_2+…+w_nx_n+b)$

뉴런의 출력을 계산하기 위해서 전 층의 출력을 미리 다 계산해놔야 한다. 따라서 뉴런의 출력은 항상 층 단위로 계산한다.

정리해서 순서로 살펴보면

  • 입력층에서 인풋을 받아서, 다음 층 모든 뉴런들의 출력을 구한다.
  • 구한 뉴런들의 출력을 사용해서 다음 층 모든 뉴런들의 출력을 계산한다.
  • 또 뉴런들의 출력을 사용해서 마지막 층 모든 뉴런들의 출력을 계산한다.

이런 형태로 인공 신경망의 학습과 예측을 통해 원하는 결과 값을 예측해낼 수 있다.

느낀점

딥러닝을 처음 공부해보면서 머신러닝의 개념이 생각보다 많이 나와서 신기했고, 사람의 뇌의 구조와 똑같은 구조로 모델들이 학습한다는 것이 신기했다. 수식에 대한 개념이 살짝 부족한거 같아, 수학적인 부분에 대해 더 공부해봐야겠다.

사진 및 내용 출처 : 코드잇

This post is licensed under CC BY 4.0 by the author.