[3Blue1Brown] 신경망이란 무엇인가
3Blue1Brown 이라는 유튜브 채널에 업로드된 영상입니다.
오래전에 봤지만 갑자기 추천에 뜨길래 다시 봤더니 또 다른 느낌이어서 빠르게 요약을해봤습니다. 무언가를 설명할 때 영상처럼 이렇게 쉽고 interactive하게 설명할 수 있는게 대단한 것 같습니다. 영상을 보는 것이 제일 좋지만 그냥 갑자기 저도 설명해보고 싶어서 이미지 데이터라고 가정하고 적어보았습니다(반말)
Neural Network 는 어떻게 이미지를 이해할 수 있을까 ?
recognize or classification. 다음과 같은 28x28 해상도의 숫자 9의 필기체 이미지가 있다. 물론 잘 알겠지만 Mnist 데이터이다.
black은 0, white는 1의 픽셀 값을 가지므로 숫자 9에 해당하는 영역들은 0에서 1사이의 gray scale 값을 지닌다. 이를 신경망에서 컴퓨터는 어떻게 이해하여 판별할까?
Activation
첫번째 레이어의 784개의 뉴런은 28x28의 픽셀값인 input에 해당한다. 마지막 레이어는 output으로 0~9의 숫자 중 이미지가 어떤 숫자에 해당하는지를 의미하는 것으로 보인다.
신경망 내부의 뉴런은 그럼 어떤 역할을 할까. 바로 Activation(활성화)이다.
학습이 진행되면서 레이어가 깊어질 수록 이미지의 패턴에 해당하는 feature를 추출하여 다음 레이어로 정보를 전달 한다. 각각의 뉴런은 다른 정보를 represent할 것이고, 이미지가 얼마나 그 특징을 담고 있는지 활성화하여 다음 레이어로 넘겨줄지 말 지를 결정한다.
How much the system thinks the given image corresponds with the given digits.
Hidden layer
그렇다면 내부의 Hidden layer(은닉층)은 무슨 역할을 할까?
사진에서 보는것처럼 숫자 9 는 상단의 동그라미와 짝대기가 합쳐진 모습이다.
즉 이미지에는 굴곡이나 선 등의 특징이 있고, hidden layer는 이런 세부 피쳐들에 대한 정보를 담고있다. 이를 학습하면서 해당 뉴런이 represent하는 특징들을 얼마나 activate할지 최적화 할 것이다. 해당 영상은 CNN에 대한 설명은 아니지만 CNN의 convolutional filter 개념으로 보면 이해가 더 쉬울 것 같다.
CNN은 초반 레이어에서는 edge에 해당하는 피쳐를 추출하고 레이어가 깊어지면서 이미지의 abstract한 정보를 담아내며 이는 각각의 특징을 잡아내는 수많은 convolutional filters를 통해 가능하다. 레이어가 깊어질수록 피쳐맵의 사이즈는 작아지고, convolutional filter size는 동일하다.
따라서 상대적으로 작은 feature map에 비해 이전 레이어에서 커버하는 범위보다 많은 정보를 담고 있어서 후반부 레이어가 abstract하지 않을까 싶다.
Activation function, weight matrix
레이어의 각각의 뉴런들은 weight(가중치) 값을 가지고 있으며, 신경망은 이 weight값을 학습하게 된다. 사진 예시에서 보면, weight는 각 레이어의 뉴런의 곱만큼, 그리고 bias는 뉴런만큼 존재한다.
weight는 입력신호가 결과 출력에 주는 영향을 조절하는 매개변수이고, bias(편향)은 뉴런이 얼마나 쉽게 activation이 되는지를 조정하는(adjust) 매개변수이다. bias는 threshold(임계값)을 설정하여 모델이 데이터에 과적합되는 것을 방지하며 다양한 패턴을 학습할 수 있게 한다.
결국 딥러닝의 신경망 모델의 학습이란 기존 데이터를 학습하면서 최적화된 weight와 bias를 배우는 것이다.
'machine learning' 카테고리의 다른 글
[CS224N] Introduction and Word Vectors (0) | 2019.07.19 |
---|---|
딥러닝을 이용한 자연어 처리(3) (0) | 2019.07.19 |
딥러닝을 이용한 자연어처리(2) (0) | 2019.07.11 |
딥러닝을 이용한 자연어 처리(1) (0) | 2019.06.29 |
댓글
이 글 공유하기
다른 글
-
[CS224N] Introduction and Word Vectors
[CS224N] Introduction and Word Vectors
2019.07.19 -
딥러닝을 이용한 자연어 처리(3)
딥러닝을 이용한 자연어 처리(3)
2019.07.19 -
딥러닝을 이용한 자연어처리(2)
딥러닝을 이용한 자연어처리(2)
2019.07.11 -
딥러닝을 이용한 자연어 처리(1)
딥러닝을 이용한 자연어 처리(1)
2019.06.29