딥러닝

밑바닥부터 시작하는 딥러닝(활성화함수, 인공신경망, MNIST)

ROSEV 2021. 10. 21. 17:42

활성화함수

말그대로, 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할을 합니다. 즉, 입력된 데이터의 가중 합을 출력 신호로 변환하는 함수를 뜻합니다.

출처 : 밑바닥부터 시작하는 딥러닝

위는 활성화 함수의 처리과정을 나타내며, 가중치 신호를 조합한 결과가 a라는 노드가 되고, 활성화함수 h()를 통과하여 y라는 노드로 변환되는 과정입니다.

 

활성화함수의 종류

  • 계단함수
    • 계단함수는 입력신호가 0이하인 경우 전부 0으로 출력하며, 0을 초과할 때 1로 출력하는 함수를 말합니다.

계단함수

 

 

  • 시그모이드 함수
    • h(x)식에 값을 대입했을 때, 아래와 같은 그래프가 나타납니다.
    • 계단함수를 사용하지않고, 시그모이드를 사용하는 이유는 기계가 학습할 때 미분을 통해 학습을 하는데 계단함수의 경우 0을 제외하고 미분계수가 0이므로 신경망에서는 계단함수를 사용하지 않습니다.

  • 렐루 함수
    • 최근 많이 이용되는 활성화 함수로, 입력이 0을 넘으면 그 입력을 그대로 출력하고, 0이하면 0을 출력하는 함수입니다

 

인공 신경망의 계산과정

출처 : 유튜브 한경훈교수(https://sites.google.com/site/kyunghoonhan/deep-learning-i)

  • 위의 사진들을 통해 인공신경망의 계산 과정을 볼 수 있습니다.
  • 또한, 마지막 출력층에 소프트맥스함수를 통해 확률 벡터의 값을 얻을 수 있습니다.

 

출처 : 유튜브 한경훈교수(https://sites.google.com/site/kyunghoonhan/deep-learning-i)

  • 벡터를, 지수함수를 적용하고 normalize하여 확률벡터로 변환합니다.
  • 전체 벡터의 같은 수를 합치거나 뻬는 경우에도 동일한 확률 값이 나오므로, 이를 이용하여 너무 큰 수의 벡터에 대해 가장 큰 값을 동일하게 빼서, overflow를 방지할 수 있습니다.

소프트맥스 증명

MNIST를 통한 가볍게 해보는 인공신경망 실습

 

 

출처 : 유튜브 한경훈교수(https://sites.google.com/site/kyunghoonhan/deep-learning-i)

  • MNIST는 손글씨로 된 이미지로 구성되어 있습니다.
  • 각 이미지 별로 정답(라벨)이 있으며, 이미지는 28X28 해상도의 흑백 사진입니다.

 

출처 : 유튜브 한경훈교수(https://sites.google.com/site/kyunghoonhan/deep-learning-i)

  • 컴퓨터는, 이미지를 이렇게 인식하고 있으며, 0~255로 픽셀의 밝기로 판단합니다
  • 이를 신경망에 넣을 때는 한줄의 벡터의 형태로 만들어야합니다. 이를 Flatten이라고 합니다.

출처 : 유튜브 한경훈교수(https://sites.google.com/site/kyunghoonhan/deep-learning-i)

그래서 위와 같이 신경망이 학습을 합니다.