본문 바로가기
관심 분야 소식/인공지능이야기

딥러닝(Deep Learning) 이란?

by AndrewL 2020. 7. 9.

인공지능을 공부하며 딥러닝의 개념에 대해서 정확한 이해를 위해 다시 한 번 정리해보는 시간을 가져보려 한다.

 

최근 들어 인공지능이라는 말과 머신러닝, 딥러닝이라는 말은 거의 같은 의미로 쓰이고 있다.

하지만 이들은 개념은 엄연히 다른 개념이다. 

정리하면, 인공지능을 구현하는 방법 중 하나가 머신러닝이고 머신러닝을 구현하는 방법 중 하나가 딥러닝이다.

->이 말만으로는 정확히 이해가 확실히 되지 않아서, 성능과 특징을 찾아보려고한다.

 

 

다음은 머신러닝에 비해서 딥러닝이 진화된 면이 무엇이 있고, 어떤 성능을 가졌을까를 다루겠다.


딥러닝의 성능은 무엇일까?

  • 음성인식 정확도 향상
  • 이미지넷 정확도 향상
  • 비지도 학습을 통한 이미지 인식 성공

-MS사의 음성인식분야를 살펴보면 1990년대 음성인식 오류율이 꾸준히 줄었으나 2000년~2010년까지 10년간 전혀 발전이 없었다. 그러다가 딥러닝을 도입하고 오류율이 급격히 줄어들게 되었다. 

-이미지 인식 분야의 이미지넷이라는 경진대회에서 2011년까지 인식 오류율이 26%에 가까운 상황이었으며, 사람들은 1년 내내 노력해서 1%올리기가 어려운 상황이었다. 2012년 캐나다 토론토 대학교의 수퍼비전팀이 딥러닝 방식인 deep convolutional neyral network을 적용하여 16.4%로의 오류율을 기록했다. 1년만에 10%가까이 오류율을 끌어올린 이사건을 보고 이미지 인식분야의 많은 사람들이 거의 경악 수준으로 놀랐다고 한다. 그 후 이미지넷의 많은 참가자들이 딥러닝 방식을 적용했고 2015년에 3.57%의 오류율을 달성했다.

-비지도 학습-> 이미지인식 가능, 2012년 구글에서 유부트 동영상을 캡쳐한 화면 1000만개를 학습시켜 고양이, 인간 등을 인식시키는 데 성공했다. 지금까지는 Supervised Learning(지도 학습)을 이용하여 이미지를 인식시켰으나 이번 사전은 비지도학습(unsupervised Learning)을 통한 학습의 가능성을 확인한 중요한 사건이다

(16000개의 CPU코어를 가지고 9개층 10억개 파라미터를 가진 인공신경망을 3일간 학습시켰다-> 논문 결과, 인간의 얼굴에 대한 인식 정확도가 81.7%, 인간의 몸은 76.7%, 고양이 인식 정확도는 74.8%였다)

 

-이 3대 사건을 계기로 딥러닝이 사회 여러 분야에서 활발히 이용되는 계기가 되었다.


딥러닝의 개념

딥러닝은 유행하고 있는 인공신경망(Artificial Neural Network)을 일컫는 말이다. 

인공신경망은 두뇌의 신경세포, 즉 뉴런이 연결된 형태를 모방한 모델이다. 하나의 뉴런을 모델링한 퍼셉트론(perceptron)과 이를 여러 층으로 연결한 다층 퍼셉트론(MLP)이 있으며, 이를 학습시키기 위해 역전파 알고리즘(Backpropagtion Algorithm)이 나왔다. 

 

인공신경망에서 이용했던 다층 퍼셉트론(MLP)은 근복적인 한계를 가지고 있었다. 복잡한 문제를 해결하기 위해서는 신경망의 층수를 여러층 쌓은 모델을 이용해야 하는데, 깊은 층수를 쌓을 경우 역전파 학습과정에서 데이터가 사라져 학습이 잘 되지 않는 현상인 '사라지는 경사도'문제가 있었다. 또한 학습한 내용은 잘 처리하나 새로운 사실을 추론하는 것, 새로운 데이터를 처리하는 것을 잘하지 못하는 한계도 있었다. 이로 인해 오랜 기간 동안 인공신경망은 이용하기 어려워 거의 몰락에 가까운 상황에 이르렀으며 '인공신경망'이라는 단어는 사용하면 안되는 단어가 되었다고 한다.

 

인공신경망의 이미지가 세계적으로 너무 안좋아 지었고, 모두 포기하는 상황이었지만, 2006년 토론토대학의 제프리 힐튼교수는 깊은 층수의 신경망 학습시 사전 학습(Pretraining)을 통해서 학습함으로써 사라지는 경사도문제를 해결할 수 있음을 밝혔다. 또한 새로운 데이터를 잘 처리하지 못하는 문제는 학습 도중에 고의로 데이터를 누락시키는 방법(dropout)을 사용하여 해결할 수 있음이 밝혀졌고, 인공신경망의 안좋은 이미지를 탈피하고자, 리브랜딩하여 '딥러닝'이라는 개념이 생기게 되었다. 

 

딥러닝이 유행하게 된 요인에는 3가지 정도가 있다.

1. 기존 신경망 한계 극복한 알고리즘

2. 빅데이터(풍부한 학습데이터)

3. H/W발전(GPU능력향상-> 신경망 계산량 증가)

 


대표적인 딥러닝 모델, CNN, RNN

 

대표적인 딥러닝 모델은 CNN과 RNN이다. 

CNN(Convolutional Neural Network)은 이미지를 인식하는 데 주로 사용된다. 같은 이미지라 하더라도 위치가 변하거나 방향이 바뀌거나 이미지가 왜곡되는 등 다양한 경우가 있을 수 있고, 이러한 변화에 관계없이 인식하기 위해 Convolutional 과 Pooling과정을 반복 적용하여 이미지에서 추상화된 정보를 추출한다. 

->Convolutional은 여러가지 필터를 사용하여 이미지의 특징을 도출한다.

->Pooling은 이미지의 특징은 유지하면서 차원(dimension)을 줄이는 역할을 한다

 

RNN(Recurrent Neural Network)은 음성과 글자 등 순차적인(Sequential)정보를 인식하는 데 주로 사용된다. 아래 그림의 RNN은 이전 상태의 상태값(S)이 다음 계산의 입력으로 들어가서 결과에 영향을 미치는 구조로 되어있다. 이는 단어, 문장 등을 인식할 때 앞의 단어와 글자를 참고하여 인식할 필요가 있기 떄문이다. 쉽게 설명하자면 cmd를 이용하다보면 tab기능을 사용하는데 그런 원리와 비슷하다. ("hell"다음 "o"을 위치시켜서 단어를 완성시키는데 RNN모델을 이용)

 

RNN은 음성인식, 기계번역, 이미지 설명 등 여러 곳에 활용되는데,

간단한 방법은 단어를 숫자로 인코딩시킨후 그 숫자를 다시 원하는 형태의 언어로 변환시킬 수 있는 원리이다.

 

조금 더 확장하여 CNN과 RNN을 동시에 활용하면 사진 속의 상황을 문자으로 설명하는 모델을 만들 수 있다.

그림 이미지를 CNN모

델에 입력하여 숫자로 인코딩한 뒤, 인코딩 된 숫자를 RNN모델에 입력하여 사진 속 상황을 설명하는 문장을 출력하도록 학습시킬 수 있다.

 

아래 그림은 사진 속에 있는 다양한 사물들을 인식하는 방식으로도 응용가능->

이미지 속 사물 인식

사람이 눈으로 본 장면을 인공지능이 그대로 그려 주는 모델을 딥러닝을 이용해서 구현한 것이다. 이를 위해 사진이나 그림 등을 볼 때 나타나는 뇌의 활동 패턴을 fMRI로 측정하고, fMRI 이미지 픽셀 값들을 디지털로 전환한 뒤 심층신경망(DNN)에 입력한다. 그리고 직접 본 장면 사진을 출력 데이터로 학습시키면 인공지능은 입력값(뇌 활동 패턴을 나타느ㅐ는 fMRI이미지)과 출력값(정답 사진)사이의 상관관계를 스스로 학습하여 사람이 봤던 것과 유사한 이미지를 생성해 내게 된다.

 

*딥러닝은 심층신경망이라고도 한다.

사람이 본 장면을 그래로 그려주는 딥러닝 모델

 


딥러닝의 강점과 약점은 무엇일까?

딥러닝은 데이터가 많아지면 많아질수록 성능이 더 좋아진다고 한다. 머신러닝 알고리즘은 데이터가 많아지더라도 일정 시점이후에는 성능이 그다지 올라가지 않는데, 반면 딥러닝 알고리즘은 데이터가 증가함에 따라 성능도 지속적으로 향상된다고 한다.

Data and machine learning(Andrew Ng)

딥러닝은 머신러닝이 기본적으로 가지고 있는 약점도 가지고 있다. 머신러닝과 딥러닝 알고리즘은 환경변화에 따라 지속적으로 재학습이 필요하다.

아직까지 딥러닝이 가장 못하는 것 중 하나가 실시간 학습이다. 현재 딥러닝 기계는 1000가지 물체를 알아본다. 그런데 이 때 새로운 물체 하나를 추가로 학습하려면 이미 알고 있는 1000가지는 잊어버려야 한다. 이것은 아래의 예시를 통해 설명하려고 한다.

 

통상은 전체를 한꺼번에 학습시켜야 하지만 특수한 경우에는 새로 생긴 데이터만 학습시키는 방법이 이용되기도 한다. 여기서 전체를 한꺼번에 학습시키는 것을 Batch Learning이라고 하고, 새로 생긴 데이터만 따로 학습시키는 방법을 Incremental Learning이라고 한다.

 

예를 들어, 딥러닝 모델을 사용하여 보행자, 차, 오토바이, 트럭 사진을 구분하는 작업을 수행한다. 이 때 입력층, 두개의 은닉층, 출력층으로 구성된 인공신경망을 이용하여 사진 데이터를 입력하고 출력 노드는 각각 보행자, 차, 오토바이, 트럭으로 하는 모델을 학습시킨다. 학습을 완료하고 4가지 물체를 잘 인식하는 모델을 만든 뒤, 이 모델에 고양이도 추가로 인식하도록 해보자. 출력노드에 고양이 노드가 추가되면 신경망 속의 모든 노드들과 파라미터의들에 영향을 주기 때문에 전체를 다시 학습시킬 수 밖에 없다. 고양이 입력값은 고양이가 있는 사진만이 아니고 다른 사진들에도 영향을 미친다. 즉 보행자, 차, 오토바이, 트럭 사진이 입력이 왔을 때 이것은 고양이 출력 노드와 관계가 없는 것이 아니고, 이러한 사진들이 고양이 출력노드에 "관련없다는 것도 학습"되어야 하기 떄문이다. 따라서 기존 학습데이터와 고양이 학습데이터 전체를 다시 학습시킬 수 밖에 없다. 

 

*딥러닝과 머신러닝의 차이점 정리

->딥러닝은 스스로 특징을 찾아내고 특징 학습을 한다는 점에서 특징을 별도로 입력해 주어야 하는 머신러닝과 차이점이 있다. 

 

이렇게 딥러닝의 개념, 원리, 역사, 장단점등을 정리해보았는데,

확실히 딥러닝의 원리와 인공지능의 작동원리 및 역사를 다시 알게 되는 계기가 되었네요..

만약, 현재 딥러닝의 한계점인 실시간 학습을 가능하게 하는 알고리즘이 나온다면 폭발적인 인공지능의 발전이 예상됩니다..

 

 

 

 

 

 

참고 블로그

https://brunch.co.kr/@gdhan/7

댓글