'딥러닝'에 해당되는 글 1건

  1. 2017.11.22 딥러닝 개요
posted by 심재형 2017. 11. 22. 12:25

딥러닝을 본격적으로 설명하기 앞서 머신러닝 > 신경망 > 딥러닝 순으로 설명하겠다.


1.머신러닝


머신러닝 모델은 3단계로 구성된다.


1)주어진 데이터를 기반으로 미지의 데이터를 예측하는 식을 생각한다. (사람)

  

2)식에 포함된 파라미터의 좋고 나쁨을 판단하는 오차함수를 준비한다. (사람)


3)오차함수를 최소화할 수 있도록 파라미터값을 결정한다. (컴퓨터) 



이렇게 머신러닝을 위해 데이터, 예측식, 오차함수를 사람이 준비하고,

컴퓨터는 오차함수를 작게 만드는 파라미터를 도출한다.


그러나 감춰진 데이터 특성을 자동으로 발견해 내는것을 기대하지만 기대와는 다르다.

1,2단계를 사람이 생각해 내야하기 때문이다.


2.신경망

이를 극복하기 위해,

복수의 수식을 조합한 함수를 만들어 신경망(neural network)를 만든다.


신경망을 구성하는 최소의 유닛은 뉴런(neuron) 또는 노드(node)라고 부른다.



단일 노드 신경망

<사진>




2계층 노드 신경망

<사진>



노드를 증가시키는 방법에 몇가지 패턴

1)계층의 수를 늘려 신경망을 다층화하는 방법


2)하나의 계층에 포함된 노드의 수를 늘리는 것


<사진>



노드의 수를 많이 늘리면 파라미터 수가 방대해져서 파라미터를 최적화 하는 3단계 계산이 힘들다. 현실적인 시간 내에 계산이 끝나지 않을 가능성도 있고, 최족화 값을 계산하는 알고리즘 자체를 만들 수 없는 경우도 발생한다. 



3.딥러닝

딥 러닝의 특징(심층학습)

크게 머신러닝과 다르지 않고, 머신러닝의 한 방법이라고 생각하면 된다. 단순히 계층을 증가시켜 복잡화하는 것이 아니라 해결해야 할 문제에 맞게 각각의 노드에 특별한 역할을 부여하거나 노드간의 연결방식을 다양하게 연구한다. 각 노드에는 특정 의도를 부여해 구성한 신경망이라고 할 수 있다.


단순한 1차함수와 시고모이드함수 조합이 아니라 이미지 데이터라면 어떻게 풀어야하는가?


합성곱 신경망(CNN)에서는 첫 번째 계층 노드에 1차함수가 아닌 

합성곱필터(convolution filter)라는 함수를 적용하고 있다. 


합성곱 필터란, 이미지 처리 소프트웨어에서 많이 사용되는 이미지 필터의 종류이다.

사진에서 물체의 윤곽을 추출해서 선으로만 그린 그림처럼 변환하는 필터처럼 물체의 특징을 보다 정확하게 포착할 수 있게 한다.



풀링계층(pooling layer)란, 이미지의 해상도를 낮추는 처리를 한다. 물체의 본질적인 특징만을 추추라고자 하는 발상으로 너무 세밀한 것을 지운다. 


노드간 연결방식을 특수한 예로 순환신경망(RNN, Recurrent Neural Network)라는 것이 있다.

일반적으로 시계열 데이터를 다루는데, 단어가 나열된 문장을 입력 데이터로 하는 자연어 처리에 응용하는 경우가 좋은 예라 할 수 있다. 특정 단어를 입력하면 그 다음에 나타날 단어를 확률과함께 예측하는 형태의 신경망이다.



This is a 3개 단어를 입력하는 신경망을 준비하면 되지 않나? 라는 생각할 수 있는데, 이 경우에는 세단어 까지만 입력할 수 있게 된다.

과거의 입력값 정보가 중간 계층에 축적되어 감에 따라 보다 긴 단어열을 바탕으로 판정할 수 있게 된다. 



이렇게 이전 중간 계층의 값을 다음 입력에 재이용하는 신경망이 RNN이다. 이전에 입력한 단어 정보는 중간계층에서 서서히 사라지게 되므로 노드 간 연결 방식을 좀 더 연구해서 과거의 정보를 가능한 한 오래 축적하는 등의 테크닉이 이용된다.