딥러닝 지도학습, 자율학습, 지도/자율 학습, 강화학습의 차이점은 무엇일까?

by NVIDIA Korea

이케아 가구를 만드는 방법은 여러 가지가 있습니다. 어떤 방법으로 하든 결국에는 완성된 소파와 의자의 모습을 갖추게 되겠지만 조립을 하는 방식도, 조립을 시작하게 되는 접근 방법도 다양할 것 입니다.

설명서와 모든 부품을 갖고 있다면 설명서에 나온 대로 따라하면 되고 설명서를 보기 전에도 어떻게 조립하는지 스스로 알고 있다면 설명서는 일단 치우고 혼자 하면 되겠죠. 그러나 기본적인 방법도 모르고 설명서에서도 답을 찾지 못한다면, 목재 부품과 나사를 어떻게 조립해야 하는지는 여러분에게 달렸습니다.

딥러닝도 마찬가지입니다. 이용할 수 있는 데이터의 종류와 가지고 있는 연구 과제에 따라, 과학자는 특정 학습 모델을 사용해 알고리즘을 학습시키도록 할 것입니다. 알고리즘을 학습을 시키는 방법은 가구 조립을 시작하는 접근 방법과 마찬가지로 다양한 방법이 있답니다.

지도 학습 모델(supervised learning model)에서 알고리즘은 분류된 데이터 세트에서 학습해, 알고리즘이 학습 데이터에서 정확성을 평가하는데 사용할 수 있는 기준을 제공합니다. 반대로, 자율 학습 모델(unsupervised learning model)에서는 분류되지 않은 데이터를 제공하고, 알고리즘이 스스로 특징과 패턴을 추출함으로써 이 데이터를 이해하려고 노력합니다.

지도/자율 학습 모델(semi-supervised learning model)은 그 중간에 해당합니다. 소량의 분류된 데이터를 사용해 분류되지 않은 더 큰 데이터 세트를 보강하지요. 그리고 강화 학습(Reinforcement Learning)은 인공지능 에이전트가 특정 상황에서 최상의 조치를 취할 때 피드백을 제공하는 보상 시스템을 통해 알고리즘을 학습시킵니다.

그럼, 각 학습 방법과 관련이 있는 데이터 세트와 문제의 종류에 대해 살펴보겠습니다.

지도 학습이란 무엇인가?

만약 여러분이 누군가의 지도 하에 일을 배우고 있다면, 여러분이 올바른 답을 찾는지는 지도하는 사람이 알려줍니다. 이와 유사하게 지도 학습에서는 알고리즘을 학습시킬 때 분류된 데이터의 완전한 한 세트가 있습니다.

여기서 ‘완전히 분류’되어 있다는 건 학습 데이터 세트의 각 예시에 알고리즘이 알아서 파악해야 하는 답이 달려 있는 것을 말합니다. 꽃 이미지의 분류된 데이터 세트는 모델에게 어떤 사진이 장미, 데이지, 혹은 수선화 사진인지를 알려줍니다. 새로운 이미지를 보여주면, 모델은 기존에 학습한 예시와 비교해 올바른 분류를 예측합니다.

지도 기계 학습(supervised machine learning)에서, 알고리즘은 분류된 데이터로부터 학습합니다.

지도 학습이 유용하게 사용되는 두 가지 주요 영역이 있습니다. 바로 분류 문제와 회귀 문제입니다.

고양이인가, 코알라인가, 아니면 거북이인가? 분류 알고리즘이 그 차이를 알려줄 수 있습니다.

분류 문제는 알고리즘에 개별 값을 예측해 입력 데이터를 특정 군이나 그룹의 구성원으로 식별하기를 요청합니다. 동물 이미지 학습 데이터 세트를 예로 들자면, 각 사진이 사전에 고양이, 코알라, 거북이로 분류되어 있다는 뜻입니다. 이 알고리즘은 다른 코알라나 거북이의 새로운 이미지를 얼마나 정확하게 분류해낼 수 있는지를 통해 평가됩니다.

한편, 회귀 문제는 지속적인 데이터를 봅니다. 하나의 사용 사례인 선형 회귀는 대수학 수업시간에서 들어 익숙할 겁니다. 특정 x값이 주어졌을 때, 변수 y의 기대값은 무엇인가?

더 현실적인 기계 학습(machine learning) 예시는 평수, 위치, 대중 교통 근접성에 따라 샌프란시스코의 아파트 가격을 예측하는 알고리즘처럼, 많은 변수를 포함하고 있는 것입니다.

따라서 지도 학습은 알고리즘을 학습시킬, 이용 가능한 참조점의 한 세트나 실측 정보(ground truth)가 있는 문제일 경우에 가장 적합합니다. 하지만 그런 것들이 항상 이용 가능한 것은 아니죠.

자율 학습이란 무엇인가?

완벽하게 분류된 깔끔한 데이터 세트는 구하기 쉽지 않습니다. 그리고 때때로 연구원들은 자기들도 답을 모르는 문제를 알고리즘에 묻고는 합니다. 여기가 바로 자율 학습이 시작된 부분입니다.

자율 학습에서는 딥러닝 모델에 뭘 할지에 대한 명확한 지시 없이 데이터 세트가 주어집니다. 이 학습 데이터 세트는 구체적인 희망결과나 올바른 답이 없는 예시들의 모음입니다. 그럼 신경망은 유용한 특징을 추출하고 구조를 분석함으로써 자동적으로 데이터 안에서 구조를 찾으려고 노력합니다.

자율 학습 모델은 데이터에서 자동적으로 특징을 추출하고 패턴을 찾아냅니다.

자율 학습 모델은 주어진 문제에 따라 각기 다른 방법으로 데이터를 조직할 수 있습니다.

군집화(Clustering): 조류학 전문가가 아니더라도, 새 사진 모음을 보고 깃털 색깔이나 크기, 부리 모양 같은 단서를 통해 대강 종을 구분하는 것은 할 수 있습니다. 이것이 바로 자율 학습을 위한 가장 흔한 적용인 군집화가 이루어지는 방식입니다. 딥러닝 모델은 서로 비슷해 보이는 학습 데이터를 찾아 그룹으로 만듭니다.

이상 탐지(Anomaly detection): 은행은 고객의 구매 행동에서 특이한 패턴을 발견함으로써 사기거래를 탐지합니다. 예를 들어, 한 신용카드가 각각 미국 캘리포니아와 덴마크에서 같은 날 사용됐다면, 그건 의혹의 원인이 됩니다. 이와 유사하게, 자율 학습은 데이터 세트에 특정 값을 표시하는데 쓰일 수 있습니다.

연상(Association): 온라인 쇼핑 카트에 기저귀, 사과 소스, 빨대 컵을 넣으면 사이트가 저절로 턱받이와 베이비 모니터를 추천해줄 겁니다. 이건 연상의 예시인데요, 바로 데이터 샘플의 어떤 특성을 다른 특성과 연관 짓는 겁니다. 데이터 포인트의 핵심 속성을 두어 개 파악함으로써, 자율 학습 모델은 연관된 다른 속성들을 예측할 수 있습니다.

오토인코더(Autoencoder): 오토인코더는 입력 데이터를 가지고 하나의 코드로 압축한 뒤 요약된 코드로부터 입력 데이터를 재생성하려고 합니다. 이건 마치 모비 딕으로 시작해 스파크노트 버전을 생성한 후, 스파크노트만을 참고해 원작을 다시 쓰려고 하는 것과 같습니다. 깔끔한 딥러닝 트릭이긴 하지만, 간단한 오토코더가 실제로 유용한 사례는 별로 없습니다. 하지만 복잡성을 한 층만 더하면 가능성은 불어납니다. 오토인코더는 학습에 한 이미지의 더러운 버전, 깔끔한 버전을 둘 다 씀으로써 이미지, 비디오, 의료용 스캔 같은 시각 데이터에서 노이즈를 제거해 이미지의 품질을 개선시킵니다.

데이터에 실측 정보 요소가 없기 때문에, 자율 학습으로부터 학습된 알고리즘의 정확성을 측정하기는 어렵습니다. 그러나 많은 연구분야에서 분류된 데이터는 찾기 힘들거나 너무 비쌉니다. 이런 경우에 딥러닝 모델에 스스로 패턴을 찾을 무제한의 자유를 주는 것은 높은 품질의 결과를 가져올 수 있습니다.

지도/자율 학습이란 무엇인가?

지도/자율 학습(semi-supervised learning)은 중용이라고 생각하시면 됩니다.

지도/자율 학습은 대부분의 경우, 분류된 데이터와 분류되지 않은 데이터가 모두 포함된 학습 데이터 세트입니다. 이 방법은 데이터로부터 관련 특성을 도출해내기 어려울 때와 분류된 데이터 예시들이 전문가들에게 시간이 많이 걸리는 작업일 때에 특히 유용합니다.

지도/자율 학습은 적은 양의 분류된 데이터로 정확성을 크게 향상시킬 수 있는 의료용 이미지에 특히 유용합니다.

CT 스캔이나 MRI 같은 의료 이미지가 지도/자율 학습의 흔한 상황이라고 할 수 있습니다. 훈련 받은 방사선 전문의는 종양이나 질병을 위한 스캔의 일부를 살펴보고 분류할 수 있습니다. 모든 스캔을 일일이 분류하는 것은 너무 시간이 많이 걸릴 뿐만 아니라 비용도 많이 들 겁니다. 그러나 딥러닝 신경망은 분류된 데이터의 작은 부분만으로도 이점을 취할 수 있으며 완전한 자율 학습 모델보다 정확성을 높일 수 있습니다.

꽤 적은 양의 분류된 데이터 세트로 시작한 유명한 학습 방법은 생산적 적대 신경망(general adversarial networks, GANs)을 이용한 것입니다.

두 가지 딥러닝 신경망이 서로 앞서기 위해 경쟁하는 모습을 상상해 보세요. 그게 바로 생산적 적대 신경망(GAN)입니다. 두 신경망중 하나는 생성자(generator)로 불리며, 학습 데이터를 모방하는 새로운 데이터 포인트를 생성하려고 노력합니다. 다른 신경망은 감별자(discriminator)로 불리는데, 이렇게 생성된 새로운 데이터를 끌어와 이들이 학습 데이터의 일부인지 가짜인지를 판별합니다. 감별자는 원본으로부터 가짜를 더욱 능숙하게 구별해내고, 생성자는 확실한 가짜를 만드는 능력을 키우면서, 두 신경망은 양성 피드백 고리(positive feedback loop)에서 개선됩니다.

생산적 적대 신경망(GAN)이 작동하는 방법은 다음과 같습니다. “D”로 분류된 감별자는 G라는 생성자와 학습 데이터 세트 모두로부터 이미지를 보게 됩니다. 감별자는 생성자로부터 어떤 이미지가 진짜이고 어떤 이미지가 가짜인지 구별해내는 작업을 맡습니다.

강화 학습이란 무엇인가?

비디오 게임은 강화의 단서로 가득합니다. 레벨을 달성하고 뱃지를 받으세요. 특정 횟수의 움직임으로 악당을 물리치고 보너스를 받으세요. 함정에 빠지면, 게임 오버입니다.

이러한 단서들은 플레이어들이 어떻게 하면 다음 게임에서 더 잘할 수 있는지 학습하게 합니다. 피드백이 없다면, 플레이어들은 그저 다음 레벨로 올라가는 희망을 가진 채로 게임 환경에서 무작위의 행동을 취할 겁니다.

강화 학습은 이와 같은 원리로 작용합니다. 그리고 실제로 비디오 게임은 이런 종류의 연구를 위한 흔한 시험 환경입니다.

이러한 기계 학습에서 인공지능 에이전트는 특정한 목표를 달성하거나 특정한 작업에서의 성능을 개선시키기 위해 최선의 방법을 찾으려고 노력합니다. 에이전트가 목표를 향한 행동을 취하면 보상을 받습니다. 전반적인 목표는 가장 큰 최종 보상을 받기 위해 밟아야 하는 최고의 다음 단계를 예측하는 겁니다.

결정을 내리기 위해, 에이전트는 과거 피드백으로부터 배운 것과 더 큰 보상을 가져올 새로운 전략의 탐색에 의존합니다. 이는 장기적인 전략을 포함하는데요, 마치 체스 게임에서 당장 최선의 수가 장기전에서 이기게 해주지는 않듯이, 에이전트는 누적 보상을 극대화하기 위해 노력합니다.

이건 반복적인 과정입니다. 피드백의 횟수를 거듭할수록, 에이전트의 전략은 점점 더 나아집니다. 이 기법은 자율주행차 조종이나 창고 재고 관리 같은 업무에서 일련의 결정을 내리는 로봇을 학습시키는데 특히 유용합니다.

학교의 학생들처럼, 모든 알고리즘은 다르게 학습합니다. 하지만 이용 가능한 접근법이 다양하게 있다면, 신경망이 요령을 터득하는 걸 돕기 위해 가장 최고의 방법만 선택하면 됩니다.