brunch

매거진 딥러닝 101

You can make anything
by writing

C.S.Lewis

by TUGU Dec 15. 2018

뉴럴 네트워크가 뭐지?

딥러닝 101_Chapter 1

아주 단순한 집값 예측 알고리즘부터 시작해 보자


여기 단순히 집의 평수(Size)만을 가지고 집값을 예측하는 알고리즘을 설계한다고 해 보자. 집값을 Y 축, 평수를 X축으로 놓고 X, Y 좌표 상에 아래와 같이 점들을 나열한 후, 이 점들의 추세를 나타낼 수 있는 어떤 함수를 구해야 한다. 대략적으로 평수와 집값은 서로 정 비례하는 관계에 있을 것이므로, 추세선은 아마 아래와 같이 선형적인 함수로 표현이 될 수 있을 것이다. 

집값 예측 알고리즘

여기서 딥러닝의 관점에서 인풋 X(평수), 아웃풋 Y(집값)에 대한 다수의 데이터가 있고 이들의 관계를 나타낼 수 있는 함수를 딥러닝으로 구한다고 하면 이 관계를 나타내 주는 가운데의 모종의 함수가 바로 ' Neuron(뉴런)'이 된다. 다른 말로는 Perceptron(퍼셉트론)이라고 도 하는데, 이 뉴런과 퍼셉트론에 대한 내용은 이미 너무나 많은 내용들이 있어서 이 글에서는 생략하고자 한다. ( 해당 내용을 짚고 넘어가고 싶다면 첨부 링크 참조  https://brunch.co.kr/@minsukshin/4). 그리고 이 뉴런으로 사용되는 대표적인 함수 중의 하나가 ReLU(Rectified Linear Unit)이라는 것인데, 지금은 그냥 이런 게 있고 그래프로는 이렇게 생겼다 라는 정도만 이해해도 무방하다.

단순한 뉴런과 ReLU 함수



인풋 X의 종류가 다양하면, 더 많은 뉴런이 필요하다


그런데 여러분도 잘 아시듯이 집값이 어디 단순히 평수에만 의존하던가. 강남 10평짜리 아파트가 지방도시 50평보다 더 비싼 시대이다. 역세권, 학군 등에 집값 프리미엄이 붙는다.  집값에 영향을 미치는 요소는 다양하다. 예시로 아래와 같이 평수에 더하여, 침실의 개수, 우편번호, 매수자의 재력(Wealth)과 같은 4가지의 요소를 인풋 X라고 해 보자. 그러면 평수와 침실의 개수는 가족의 규모라는 특징(Feature)으로 연결이 될 것이고, 우편번호는 편의 시설에 대한 접근성(Walkability) 혹은 학군(School quality)이라는 특징으로 연결이 될 것이며, 매수자의 재력은 학군이라는 특징으로 연결이 될 수 있을 것이다. 인풋 X가 각각에 연결된 뉴런을 거쳐서 이 처럼 3가지의 Feature로 나타내어졌으며, 이 3가지의 Feature가 마지막에 하나의 뉴런을 통해서 최종적인 아웃풋 Y, 다시 말해 집값을 나타낼 수 있다.

집값은 다양한 요소에 영향을 받는다. 이럴 때는 더 다양한 뉴론이 필요하다


앞서 단순히 평수와 집값의 관계를 설명하는 알고리즘보다, 평수+침실 개수+우편번호+재력 등의 추가적인 요소가 인풋 X가 된다면, 아웃풋 Y와의 관계를 나타내기 위한 뉴런의 개수가 더 많이 필요하게 된다. 위 예제에서는 총 4개의 뉴런이 사용되었다. 


위 알고리즘을 실제 사용되는 뉴럴 네트워크의 컨셉으로 모식도를 그려보면 아래와 같다. 인풋 X가 네 가지로 들어오고 각각의 인풋이 첫 번째 레이어의 각 뉴런으로 연결이 된다. 그런데 앞선 예제의 컨셉과의 차이는 각각의 인풋이 모든 노드들에 전부 연결이 되어 있다는 점이다. (이를 Fully Connected Network라고도 한다)


딥러닝은 최적의 weight와 bias를 찾아가는 학습 과정이다


실제로 딥러닝의 아키텍처에서는 이러한 Fully Connetcted Neural Network가 사용이 된다. 사람이 일일이 어떤 노드에 어떤 인풋 X가 각각 들어가야 하는 것인지 정의하지 않는다. 그리고 뒤에 설명하겠지만 각각의 인풋 X와 노드 사이에는 weight와 Bias 가 작용을 해서 각각의 노드에 어느 정도의 가중치로 연결이 될 것인지를 결정한다. 딥러닝이라는 것은 결국이 weight와 Bias가 최적의 값이 되도록 학습을 반복시키는 과정이다. 실제로 이러한 딥러닝 아키텍처는 인풋 x, 그리고 그에 상응하는 y, 즉 (x, y)의 데이터가 많다면 꽤 좋은 성능을 발휘한다. 이렇듯 (x, y)의 데이터가 주어지고 이를 학습시키는 방법론을 supervised learning이라고 하는데, 다음 글에서는 이 supervised learning과 딥러닝의 관계에 대해서 보다 더 자세히 다루어보도록 하겠다.



참조 : 강의 원본 출처 (앤드류 응 교수 딥러닝 강의)

What is a Neural Network? (C1W1L02)

https://www.youtube.com/watch?v=n1l-9lIMW7E&list=PLkDaE6sCZn6Ec-XTbcX1uRg2_u4xOEky0&index=2

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari