-

#5 DNN(Deep Neural Network) 본문

ETC/Data Science

#5 DNN(Deep Neural Network)

r99bbit 2020. 6. 9. 21:27

* 6주차 수업 내용입니다.

 

0) 딥러닝은 왜 강력한가?

Representation Learning

 위 그림이 무엇으로 보이는가? 바로, 사다리이다. 우리는 당연하게도 그림을 보고 사다리라는 것을 바로 인지하였다. 그렇다면 어떻게 사다리라는 것을 인지한 것일까?

 

 경험에 의해서 알 수 있다고 생각할 수도 있지만 여기서 말하고자 하는 핵심은 그것이 아니다. 가령 사다리를 처음보는 아이들에게 철로 된 사다리, 나무로 된 사다리와 같이 여러 종류의 사다리를 보여주더라도 전부 사다리라고 답할 수 있다.

 

 즉, 이 세상에 있는 모든 사다리를 인지하기 위해 그것들의 모습을 전부 경험할 필요는 없다는 것이다. 결론적으로, 인간에게는 사다리를 사다리라고 규정지을 수 있는 그 무언가가 있다는 것이다. 

 

 사다리를 규정지을 수 있는 어떤 규칙을 기계에게 정의했을 때 기계또한 사다리를 인지하게 될 수 있을 것이다.

 

--

 

 그렇다면 무엇이 사다리를 규정짓는가?

 

 그건 아마 우리가 생각하는 것 보다 훨씬 더 간단할 것이다. 사다리로 예를 들자면 사다리의 형태, 사다리의 색상으로 규정지을 수 있을 것이다. 이렇게 사물을 몇가지 핵심 정보로 나눈 뒤 이를 수치화 하여 Machine에 입력하는 것을 Representation Learning이라고 한다.

 

 

--

 

1) DNN은 어떻게 사물의 특징을 스스로 판단할 수 있는가?

Latent Variable

 Latent Variable은 우리말로 하면 잠재 변수라고도 한다. 사실 잠재 변수라는 번역은 완전하지는 않고, 다른 용어로 Hidden Variable이라고도 하는데 이 변수는 count는 불가능하며 수학적으로 모델링 될 수 밖에 없다 라는 것이다.

 

 여기 관측 가능한 변수 x가 있다고 하자. 이것은 실 세계에 존재하는 것이므로 Count가 가능하다. 셀 수 있다는 것은 사후 확률인 P(x)를 구할 수 있다.

 

 반면 Hidden Variable인 h는 이 세상에 존재하지 않는 가상의 값으로 설정된다. 이 값은 간접적으로 추측만 가능하며 무엇이든 될 수 있는 값이다. 여기서 무엇이든 될 수 있다는 것이 핵심이다.

 

 h가 존재할 수 있는 의미 영역을 생각해보면 무한대와 같을 것이다 '무엇이든 될 수 있기 때문'이다. 하지만 무한대의 영역을 가질 수 있다는 것은 별 의미가 없다. 우리는 h가 어떤 값이 되느냐에 관심이 있기 때문이다.

 

 이제 관측 가능한 변수 x와 Hidden Variable인 h를 묶어보자. 이 때 x와 h를 변화시키면서 두 값이 함께 변화하는 구간을 찾아 h를 추론해 간다. 이렇게 하여 무한대였던 의미 영역을 줄여간다.

 

 이 때 x는 h의 원인일 수 도 있고 결과일 수도 있지만 아무것도 아닐 수 있다는 문제가 있다. 이를 해결하는 방법중 하나는 x의 갯수를 늘리는 것이다.

 

 까마귀 날자 배 떨어진다는 속담을 생각해보자. 이는 우연을 뜻하는 속담인데, 만약 까마귀 10000마리가 날아올랐을 때 배가 10000개가 떨어졌다면 둘 사이에 연관 관계가 있다고 생각할 수 있다.

 

 두 번째 해결 방법은 또다른 관측 가능한 y를 묶어준다는 것이다. x와 y와 h가 동시에 변화하는 시점을 찾아가며 모델링을 진행해간다는 것이다.

 

 이를 변수 하나만 연관 시키는 것이 아니라 여러개를 묶어서 모델링 하면 매우 쉽게 h를 찾아갈 수 있다.

 

이거를 위 그림과 같이 구성하면 single layer가 된다.

 

2) Data Transformation View

Classfication Formulation

 classfication은 입력받은 데이터를 모종의 네트워크를 통해 몇개의 class로 변환하는 것을 말한다. Image Fixel이 주어지면 이 이미지를 class 할 수 있는 class distribution으로 나누어 판단하게 된다.

 

V to 1

 Dimesion을 Reduction하는 방법이다.

 

3) ML 기본 Block

1. 가지고 있는 데이터를 이용하여

2. 풀고자 하는 문제의 통계적 모델링을 통해

3. 실제 정답과의 오차를

4. 파라미터 학습을 통해

5. 줄이는 과정을 반복

 

딥러닝은 Tensor다

 vector가 나오기 전에는 scalar가 있고 matrix가 나오기 전에는 vector가 있었다. 이와 같이 데이터(배열)는 n차원으로 나타낼 수 있다. 이러한 n차원의 array를 tensor라고 한다. scalar, vector등도 tensor라고 할 수 있다. 예를 들어서 이미지라면 RGB 정도 혹은 명암 레벨의 matrix가 tensor가 될 것이다.

 

Train과 Optimization

Train

- batch gradient descent : 한번에 파라메터를 찾겠다.

- stochastic gradient descent : 한번의 iteration에 오직 하나의 예제만 사용하고 update한다(극단적인 케이스)

- Mini-batch Gradient Descent : 적당히(size) 잘라서 학습하겠다.

 

'ETC > Data Science' 카테고리의 다른 글

#7 Basic of Deep Learning  (0) 2020.06.09
#6 Viterbi-Search  (0) 2020.06.09
#4 Principal Components Analysis  (0) 2020.06.09
#3 Clustering  (0) 2020.06.09
#2 Distance Metric  (0) 2020.06.09
Comments