신경망이란 무엇인가? (What is Neural Network?)


'인공신경망' (Artificial Neural Network)뇌가 작동하는 방식을 본 딴 학습 알고리즘입니다.



간단한 예시를 통해서 신경망이 무엇인지 이해해보도록 하겠습니다.



위의 그림에서 x축은 집의 크기이고 y축은 집의 가격입니다.

그리고 집의 크기를 이용하여 집의 가격을 예측하는 것이 목표입니다.


주어진 data는 좌표평면 상에서 빨간색 X 모양으로 총 6개입니다.


주어진 data를 이용하여 집의 크기과 가격 사이의 관계를 나타내는 함수의 그래프를 그려본다면

하늘색 그래프로 나타낼 수 있습니다. (집값은 음수가 될 수 없기 때문에 0을 유지했다가 직선의 형태)



이때 집의 크기와 가격의 관계를 도식화해보면 아래의 그림과 같습니다.



여기서 중간에 위치하는 동그라미는 node라고도 불리며

신경망의 경우 신경세포 (neuron)에 해당합니다.


그리고 위의 예시와 연관시켜 본다면 이 하나의 neuron은 하늘색 그래프와 같습니다.





위의 예시는 x 변수가 하나로 간단한 Single Neural Network 입니다.


그럼 여러가지 x 변수가 y 변수에 영향을 주는 Multiple Neural Network의 예시를 살펴 보겠습니다.



아까와 달리 이번에는 y (집값)에 영향을 주는 x 변수의 개수가 4개입니다.

이러한 경우 하나의 뉴런으로 나타낼 수 없기 때문에 위의 그림과 같이

여러 개의 뉴런이 쌓여있는 것을 볼 수 있습니다.


이 때, 각 변수 혹은 뉴런이 나란히 쌓여있는 것을 layer라고 하며

입력값을 받는 layer를 Input layer, 출력값이 나오는 layer를 Output layer라고 합니다.

그리고 Input layer와 Output layer를 제외한 나머지 layer를 Hidden layer라고 합니다.









신경망을 위한 지도 학습 (Supervised Learning for Neural Network)



지도 학습(Supervised Learning)이란, data set의 output이 어떤 label인지 주어진 경우에서의 학습을 뜻합니다.


지도 학습은 다시 '회귀 (regression)''분류 (classification)'로 나뉩니다.

회귀 (regression)의 output은 연속형 변수이고, 분류 (classification)의 output은 이산형 변수입니다.


예를 들어 처음에 들었던 집값의 경우 연속형 변수이므로 회귀에 해당하고

제품이 불량품인지 아닌지를 판단하는 경우는 분류에 해당합니다.




위의 그림은 여러 종류의 output이 어떤 방식으로 응용(Application)되는 지를 그림입니다.


나중에 다시 자세하게 다루겠지만 간단하게 언급하고 넘어가자면

Real Estate나 Online Advertising과 같은 간단한 회귀 혹은 분류의 경우 Ordinary Neural Network를 이용합니다.


이와 달리, 이미지를 인식하는 Photo tagging과 같은 경우 Convolution Neural Network (CNN)을,

텍스트, 언어 등 1차원의 연속형 데이터를 다루는 Speech recognition와 Machine translation의 경우 

Recurrent Neural Network (RNN)을 사용합니다.


Autonomous driving의 경우 이미지를 인식하기도 하며 텍스트를 출력하고 입력받아야 하기 때문에 복합적인 신경망을 사용합니다.


CNN과 RNN은 이후에 자세하게 다룰테니 언급만 하고 간단하게 넘어가도록 하겠습니다.







정형 데이터 VS 비정형 데이터 (Structured Data VS Unstructured Data)


정형 데이터는 가격, 나이와 같이 의미가 정의된 것들을 뜻합니다.

반면에 비정형 데이터는 픽셀, 음성, 텍스트와 같이 의미가 정의되지 않은 것들을 뜻합니다.


아래는 정형 데이터와 비정형 데이터의 예시를 나타낸 그림입니다.




비정형 데이터의 경우 데이터가 어떠한 의미를 갖고 있는지 명시되어 있지 않기 때문에

이를 인식하고 의미를 파악해내는 것은 인간의 영역으로 간주되어 왔습니다.


하지만 Deep Learning의 개발이 진행되면서 CNN, RNN과 같은 기술을 통해

비정형 데이터에 대한 기계의 인식도 엄청난 성장을 보여주었고

그 결과 이미지를 보고 대상이 무엇인지 구별해내는 능력은 컴퓨터가 인간보다 앞서기 시작했습니다.








왜 딥러닝이 주목받고 있는가? (Why is Deep Learning taking off?)




아래의 그림은 데이터 크기의 증가에 따른 성능을 비교한 것입니다.



그림에서 알 수 있듯이 기존의 학습 알고리즘 (Traditional Learning Algorithm)에 비해서

신경망(NN)의 성능이 데이터의 규모가 증가함에 따라 월등히 좋아지는 것을 알 수 있습니다.

또한 신경망 중에서도 여러 가지 뉴런과 레이어를 쌓은 large NN가 가장 좋은 성능을 보입니다.



인터넷과 스마트폰의 사용량이 급격하게 증가함에 따라

자연스럽게 축적된 데이터의 양도 증가하게 되었습니다.


이러한 엄청난 규모의 데이터를 다루는 데에는 기존의 학습 알고리즘보다는

Deep Learning이 확실한 강세를 보이기 때문에 주목을 받고 있습니다.





또 다른 이유는 신경망의 학습 과정에서 살펴보겠습니다.




위의 그림은 신경망의 학습 과정을 나타낸 그림입니다.


그림에서 알 수 있듯이 Idea -> Code -> Experiment 순으로 순환(iteration)되는 것을 알 수 있습니다.


직관적으로 알 수 있듯이 동일한 Code를 가지고 실행을 시켰을 때

Experiment가 빠르게 진행된다면 동일한 시간 내에 여러가지 Idea를 시도해볼 수 있습니다.


즉, Experiment를 빠르게 진행시키는 알고리즘을 통해서 딥러닝의 학습 및 발전의 속도를 높일 수 있습니다.



(출처 : https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6)


위의 그림은 sigmoid 함수ReLU 함수를 나타낸 것입니다.


이후에 자세하게 다루므로 간략히 설명하고 넘어가도록 하겠습니다.

Sigmoid 함수의 경우 x 값이 5이상 혹은 -5 이하일 경우 기울기가 거의 0이 되어버립니다.

이와 달리 ReLU는 x 값이 양수이면 기울기가 1로 일정합니다.


Gradient Descent를 이용할 때 기울기가 작을수록 학습 속도가 느려지기 때문에

결과적으로 Experiment에 소요되는 시간이 길어집니다.


이와 같이 Sigmoid 보다 더 좋은 성능을 보이는 ReLU 함수와 같은 알고리즘이 개발되었기 때문에

Deep Learning은 빠르게 발전할 수 있었고 주목을 받게 되었습니다.



Deep Learning이 주목을 받게 된 이유를 정리하자면 아래와 같습니다.


1. 데이터 규모의 증가

2. 알고리즘의 발전















ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

이 자료는 Andrew Ng 교수님의 Coursera 강의를 통해 정리한 것입니다.

(https://www.coursera.org/learn/neural-networks-deep-learning)