본문 바로가기
기계학습(Machine Learning)

딥러닝 (Deep Learning)

by Yeah_D 2023. 7. 7.

 딥러닝 (Deep Learning)

딥러닝이란, 다층 퍼셉트론에 은닉층을 여러개 추가한 깊은 신경망을 의미한다.

즉, 딥러닝은 깊은 신경망을 학습시키는 알고리즘이다.

이러한 딥러닝은 새로운 응용을 창출하고 인공지능 제품의 성능을 획기적으로 향상시켜준다. 

때문에 딥러닝은 현대 기계학습을 주도하고 있다.

 

 딥러닝 등장 배경

1980년대에 이미 깊은 신경망 아이디어가 등장하였으나, 실현 불가능하였다. (깊은 신경망은 학습이 안되기 때문)

하지만 '컨볼루션 신경망(CNN)' 이 딥러닝의 가능성을 열어주었다.

 

이외에도 딥러닝의 등장 배경으로는 다음과 같은 요인들이 있다.

- 값싼 GPU의 등장

- 인터넷 덕분으로 학습 데이터가 크게 늘어남

- 계산은 단순한데 성능은 더욱 좋은 활성함수 등장

- 층별 예비학습 기법 개발

 

 컨볼루션 신경망 (Convolutional Neural Network; CNN)

컨볼루션 신경망이란, 2개의 신호. 즉 x, y가 있으면 두개를 겹쳐서 그 크기를 알아내는 것이다.

예를 들어, 두개의 행렬이 있으면 이 행렬을 겹쳐서 즉, 곱해서 그 면적을 보라는 것이다.

-> 행렬을 곱함으로써, 특징추출을 할 수 있다

-> 곱해야되는 컨볼루션 값이 어떠한 특징을 가질 수 있게 해주는지 등 이러한 컨볼루션 값을 잘 만들어야 하는 것이 중요!

 

 깊은 다층 퍼셉트론 (Deep Multi Layer Perceptron; DMLP)

다층 퍼셉트론보다 더 복잡한 구조인 '깊은 다층 퍼셉트론'이 바로 '딥러닝'인 것이다.

깊은 다층 퍼셉트론도 마찬가지로 '입력층-은닉층-출력층' 구조로 이루어져 있다.

차이점으로는, 은닉층 개수가 3개 이상이라는 것이며 노드와 노드를 연결하는 가중치가 존재한다는 것이다.

이 가중치를 잘 구하는 것이 목적이다.

 

 CNN과 DMLP의 차이점

CNN

- 컨볼루션 연산을 이용한 부분연결구조로, 복잡도를 크게 낮춘다.

- 컨볼루션 연산은 좋은 특징 추출이다.

(컨볼루션 연산이란, 해당하는 요소끼리 곱하고 결과를 모두 더하는 선형 연산이다. 즉, 커널만 잘 곱해주면 끝인 것! 커널을 잘 찾는게 핵심이다. -> 커널은 홀수여야만 한다. 따라서, 이는 연산을 반복하므로 실질적인 데이터 양이 줄어들게 된다. 연산을 하면서 특징추출이 이루어지기에, 커널을 잘 만들면 좋은 특징추출이 된다! 이 '커널'은 다양하게 적용하여 사용할 수 있다.)

- 격자구조(영상, 음성 등)을 갖는 데이터에 적합하다.

- 수용장은 인간시각과 유사하다.(수용장은 홀수여야만 한다. 짝수가 되면 절대 안됨='규칙')

- 가변크기의 입력처리가 가능하다

 

DMLP

- 완전연결구조로 높은 복잡도를 가진다.

- 학습이 매우 느리고, 과잉적합이 우려된다.

 

 DMLP가 강력한 이유

1. 전체 과정을 동시에 최적화하기 때문

 고전적인 방법에서는, 분할, 특징추출 및 분류를 각기 따로 구현한 다음 이어붙인다.

때문에 사람의 직관에 따르므로, 성능에 한계가 존재한다. 인식 대상이 달라지면 새로 설계해야 한다.

그러나 딥러닝은, 전체과정(분할, 특징추출 및 분류)을 동시에 최적화하기에, 현존하는 방법 중에 가장 뛰어난 방법이라고 할 수 있다.

 

2. 더욱 정교한 분할이 가능하다.

 딥러닝은 은닉층이 여러개 이기에, 은닉층 개수가 이전보다 늘어남에 따라 더욱 정교한 분할이 가능하다.

댓글