본문 바로가기
딥러닝

최근 인공지능 (딥러닝) 적용 사례 (분야)

by 미스터탁 2020. 6. 24.

 

 

 

 

딥러닝이 부흥하기 시작하면서 다양한 분야에 다양한 형태로 발전이 되어오고 있습니다. 이번 포스팅에서는 딥러닝이 쓰이는 분야에 대해 간단히 소개 해 보도록 하겠습니다. 이 외에도 다양한 분야가 있으니, 참고 하시길 바랍니다.

 

컴퓨터 비젼 (Computer Vision)

이미지 분류 (Image classification)

이미지 분류 : 인간이 이미지를 분류하는 성능은 약 95%정도 입니다. 인공지능 모델을 구축해서 이미지를 분류하는 대회가 2010년부터 열려왔습니다. 2010년에 우승했던 모델의 분류 성능은 약 72%입니다. 어떻게 하면 인간처럼 또는 그 이상 이미지 분류의 성능을 낼 수 있을까 많은 연구자들이 고민을 해왔습니다. 2015년 ResNet이라는 모델이 약96%의 성능을 기록하면서 나오면서 인간의 성능을 뛰어넘기 시작했습니다. 그 이후로도, 딥러닝 모델들은 계속 발전해 오고 있습니다. 이제는 단순히 이미지를 분류하는 것을 넘어서 다양한 분야, 다양한 방식으로 발전해 오고 있습니다. 이미지 분류를 하더라도 수많은 데이터 없이 적은 데이터만을 가지고 어떻게 하면 높은 성능을 기록을 할 수 있을 지, 어떻게 하면 더욱 더 강건한 (Robust) 모델을 만들 수 있을지, 어떻게 하면 학습 데이터에 내에 있는 노이즈 데이터를 걸러 낼 수 있을지 등 다양한 형태와 분야로 발전해 오고 있습니다.

 

 

년도 별 ImageNet데이터 분류 모델 성능

 

객체 탐지 (Object Detection)

객체 탐지 (Object Detection) : 객체 탐지란 어떠한 이미지 및 비디오 속에 포함 되어있는 물체들에 대해서 어떤 물체인지 분류해내는 이미지 분류를 하는 것과 동시에 해당 물체가 이미지 및 비디오 속에 어디에 위치하였는지 찾아내는 일입니다. 다량의 이미지 및 비디오 데이터를 활용하며, 이미지 및 비디오 내 특정 물체의 위치 정보를 X, Y 좌표 값과 해당 물체의 크기인 Width, Height 값을 레이블 정보로 이용하여 딥러닝 모델이 학습합니다. 연구자들 사이에서는 (X, Y, W, H) 정보를 보통 Bounding Box라고 많이 표현하고 있습니다. 객체 탐지 기술은 자율주행자동차, CCTV 등 카메라 기술을 바탕으로 이루어지고 있는 제품 및 서비스에 최근 도입되고 있으며, 현재 다양한 연구가 진행되고 있습니다

 

 

 

Object Detection 을 적용한 이미지

 

Segmentation

Segmentation : Segmentation은 앞서 Object Detection보다 정교한 탐지를 요구하는 연구분야입니다. 앞서 제시한 Object Detection 연구 분야는 특정 물체를 사전에 정의된 특정 클래스로 분류하며 입력값으로 이용된 이미지 혹은 비디오 화면 내 어느 위치에 존재하는지 파악하는 연구 분야입니다. 여기서, 어느 위치에 존재하는지 파악할 때, (x, y, w, h) 정보를 이용하여 Boundary Box를 그리게 되는데, 이 Boundary Box 내 물체가 꽉 차 있을 순 있지만, 해당 물체가 아닌 영역이 존재할 수 있습니다. Segmentation은 특정 위치에 Boundary Box로 물체 존재 유무로 표현하는 것의 한계를 극복하기 위해, 이미지 및 비디오 내 존재하는 모든 픽셀에 대해 특정 클래스로 예측하는 방식으로 진행합니다. 이미지 및 비디오를 표현하는 최소 단위인 픽셀 수준으로 접근하여, 각 픽셀별로 특정 클래스를 예측한다면, 예측된 정보를 바탕으로 픽셀에 색을 다르게 표현하여 이미지로 표현한다면, 이미지 및 비디오 내 모든 영역이 특정 클래스로 표현됩니다. 이해를 돕기 위해 그림을 하나 첨부하겠습니다.

 

Object Detection, Semantic Segmentation, Instance Segmentation 비교  출처 : https://arclab.tistory.com/220

 

 

특정 클래스로 분류된 물체에 대해 (x, y, w, h) 로 위치 정보를 표현하여 Boundary Box를 그린 Object Detection 분야는 그림 를 통해 확인할 수 있듯이 사람이 아닌 다른 영역도 Boundary Box가 포함하고 있습니다. 하지만, 이미지 내 존재하는 모든 픽셀에 대해 클래스로 분류한 후 클래스 별로 색을 다르게 표현하여 이미지로 형상화 한 Semantic Segmentation을 보면, 사람의 위치에 해당하는 픽셀들은 분홍색, 사람이 아닌 위치의 픽셀들은 검정색으로 표현하여 이미지에 대해 물체의 클래스 및 위치 정보를 Object Detection 에 비해 정확히 추출할 수 있는 장점을 갖고 있습니다.

 

하지만, 동일한 클래스로 분류된 복수의 물체들의 픽셀값들이 바로 옆에 존재하여 연결 되어 있는 경우, 여러 물체가 하나의 물체로 인식될 수 있는 문제가 존재합니다. 위의 그림에서 Semantic Segmentation 이미지를 살펴보면, Person이 5명의 사람이라고 우리는 바로 알아차릴 수 있지만, 컴퓨터 입장에서는 머리가 5개이고 다리가 7개인 사람 1명이라고 판단하게 됩니다. 따라서, 각 물체 별로 해당되는 픽셀값들을 구분하고, 구분된 픽셀값들에 대해서 클래스를 예측하는 Instance Segmentation 방식의 연구분야도 존재합니다.

 

 

 

자연어처리 (Text)

- 텍스트 (Text) : 텍스트 분야에서의 딥러닝 적용 또한 꾸준히 연구 되었습니다. 텍스트 분야는 세부 Task로 나뉘어 연구가 되었는데 대표적으로 다음과 같은 것 들이 있습니다.

- 언어 번역 (Machine Translation)

- 문장(혹은 문서) 분류 (Sentence Classification)

- 질의 응답 시스템 (Question & Answer System : Q/A)

- 개체명 인식 (Named Entity Recognition : NER)

 

이미지 영역에서는 딥러닝 모델이 인간보다 더 좋은 성능을 보이는 모습을 보인 반면, 텍스트 분야에서는 인간의 성능을 따라잡기 어려웠습니다. 이미지에 비해 텍스트 Task는 배경지식이 요구된다는 점도 어려운 점이었고, 주로 사용한 Recurrent Neural Network (RNN) 계열의 모델의 한계 역시 해결해야 할 문제 중 하나였습니다. 하지만 2017년 구글이 발표한 Attention Is All You Need 라는 논문의 Transformer 모듈 연구를 시작으로 이와 관련된 모델들이 활발히 연구되기 시작했고, 인간의 성능을 넘어서는 Language Model이 개발되기 시작했습니다. 그리고 최근에는 이를 이용하여 학계에서는 다양한 분야의 추가 연구가, 산업계에서는 이와 관련된 서비스나 제품 연구가 활발히 이루어지고 있습니다.

 

 

 

강화학습 (Reinforcement Learning)

 

알파고 (Alphago) : 딥러닝 또는 강화학습 (Reinforcement Learning)이라는 말은 들어보지 못 했어도 알파고라는 말은 들어봤을 겁니다. 알파고는 구글 (Google)의 딥마인드 (DeepMind)가 개발한 인공지능 바둑기사로 2016년 한국의 이세돌 기사와 대국해 4승 1패로 승리하며 세상을 놀라게 하였습니다. 이 알파고의 기본 원리는 강화학습으로 현재 상태 (바둑판)에서 어떠한 행동 (수)을 취해야 먼 미래에 보상이 최대 (승리)가 될 것인지에 대해서 학습하는 알고리즘입니다. 이는 수많은 시뮬레이션을 해야 하지만 가능합니다. 하지만 바둑의 경우의 수는 무한대에 가깝기 때문에, 인공지능이 바둑을 두기는 어렵다라는게 많은 전문가들의 의견이었습니다. 그러나 딥마인드는 이 강화학습 알고리즘과 딥러닝을 통해 문제를 해결하기에 이르렀습니다. 처음에는 학습 해야 할 경우의 수를 줄이기 위해 바둑의 기보를 학습하였으나, 2018년에는 알파고 제로 버젼을 발표하면서 기보 없이 스스로 학습 해 나가는 인공지능 바둑기사를 개발 하였습니다. 알파고의 등장을 계기로 강화학습과 딥러닝을 결합한 심층 강화학습 (Deep Reinforcement Learning)의 연구가 활발히 진행되기 시작하였습니다.

 

 

 

반응형

 

 

Generative Adversarial Networks (GAN)

Generative Adversarial Networks (GAN)

Generative Adversarial Networks (GAN) : 딥러닝은 기본적으로 이미지와 텍스트 분류 쪽에 초점을 맞추어 발전해왔습니다. 그러면서 점점 더 다양한 분야, 다양한 방식으로 발전을 해왔습니다. 그러던 와중에 인공지능 분야에서 획기적인 일이 발생합니다. 바로 생성 모델 GAN의 등장인데요. 대중들에게 알파고가 엄청난 각인을 끼쳤다면 GAN은 연구자들에게 엄청난 각인을 끼쳤습니다. GAN은 2014년 Ian Goodfellow의 박사논문으로 처음 제안되었고, 우리나라에서 본격적으로 알려 진 건 2016년 즈음 입니다. 무언가 '예측'하는 걸 넘어서 '생성' 해내는 모델을 제안을 한 것입니다. 이미지 분류 모델을 예로 들면 Input데이터가 이미지이고 딥러닝 모델의 Output은 Label입니다. 이 이미지가 고양이인지 강아지 인지 분류하는 모델인 것이죠. 그러나 이 GAN은 input이 Random Noise이고 Output이 임의의 이미지 입니다. 학습하는 대상에 따라서 숫자 이미지가 될 수도 있고, 사람 이미지가 될 수도 있습니다. 즉, 내가 숫자 이미지를 만들어내는 딥러닝 모델을 만들고자 한다면, Input Noise, Output을 숫자 이미지로 하여 GAN을 학습하면 되는 것입니다. 


딥러닝 모델로 분류 외에 생성을 한다는 것은 많은 이들에게 충격으로 다가왔습니다. GAN의 등장은 알파고의 등장과 비슷하게 인공지능 연구의 새로운 패러다임을 제시하였습니다. 처음에는 일부사람들은 생성되는 데이터의 질이 그렇게 좋지 않으므로 사용할 분야가 마땅치 않다라고 지적하였으나, 최근에 연구되고있는 GAN의 성능은 이미 인간의 눈으로 구분하지못할 정도의 고품질의 이미지 (또는 텍스트)를 생성해냅니다. 아래 그림은 2018년 발표 BIgGAN (Large Scale GAN Training for High Fidelity Natural Image Synthesis, Brock et al., 2018)이 생성한 이미지 입니다. 즉, 이 세상에 실제로 존재하지 않는 객체에 대한 이미지라는 것이죠. 단순히 데이터를 생성해내는 것 뿐만 아니라, GAN이 가지는 학습 알고리즘의 특성을 이용하여 다양한 분야로 발전되어 오고 있습니다.

 

GAN이 생성한 가짜 이미지

 

Style Transfer

Style Transfer : 딥러닝이 발전하면서, 나의 사진을 고흐풍으로 바꿔 준다거나, 아래 그림 처럼 낮 풍경의 사진을 밤 풍경의 사진으로 바꿔 준다거나, 여름 풍경을 겨울 풍경으로 바꿔주는게 가능해졌습니다. 이러한 연구 분야를 Style Transfer라고 부릅니다. Style Transfer를 이용하면 굳이 포토샵을 이용할 필요가 없어지게 됩니다. GAN이 발전하게 되면서 Style Transfer에 GAN을 적용하기 시작하게 되었습니다 (CycleGAN : Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks , Zhu et al., 2017). 여름 사진을 겨울 사진으로 바꾸고 싶을 때 CycleGAN의 Input은 여름사진, Output은 겨울사진이 됩니다. 물론, 반대로 겨울사진을 여름사진으로 바꿀 수도 있습니다. 이렇게 GAN의 등장은 기존의 학습 구조 (Input을 이미지로 Label을 Output으로 설정)를 넘어 다양한 학습구조를 가능하게 하였습니다.

 

CycleGAN의 결과물

Deep Photo Style Transfer

Deep Photo Style Transfer : CycleGAN은 Style Transfer 분야에서 가장 기본적으로 많이 쓰이는 모델인데 CycleGAN을 기반으로 하여 다양한 모델이 나오기 시작했습니다. Deep Photo Style Transfer (Luan et al., 2017)는 아래 그림처럼 고해상도의 사진에 대하여 Transfer시키는 모델입니다. 맨 외쪽 그림의 Contents에 중간 그림의 Style을 입히는 GAN모형입니다.

Deep photo style transfer의 결과물

Style Transfer for Anime Sketches 

Style Transfer for Anime Sketches : Style Transfer의 특징을 이용하여 아래 그림처럼 연필이나 펜으로 그린 그림에 대해 자동으로 채색해주는 GAN모형이 개발 되었습니다

 

 

StarGAN

StarGAN : StarGAN (Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation, Choi et al., 2018)은 아래 그림처럼 Input 이미지에 대하여 참조 이미지의 피부 표정 등을 Transfer시키는 GAN 모형입니다

 

Creative Adversarial Networks

CAN : CAN (Creative Adversarial Networks, Elgammal et al., 2017)은 예술픔을 생성해내는 GAN 모형입니다. Generator는 가짜 예술품을 생성하고 Discriminator는 생성해낸 가짜 예술품이 진짜인지 가짜인지 판단하게 됩니다. 아래 그림이 CAN이 만들어낸 그림인데 많은 사람들에게 설문조사를 하였을 때 실제 예술품과 비슷한 점수를 받았다고 합니다.

 

CAN이 만들어낸 이미지

SRGAN 

SRGAN : SRGAN (Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network, Ledig et al, 2017) 은 저해상도 이미지에서 고해상도 이미지로 복원하는 GAN모형입니다. Generator는 이미지를 가짜 고해상도 이미지를 만들고 discriminator는 진짜 고해상도 이미지인지 가짜 고해상도 이미지인지 판단하게 됩니다.

SRGAN의 결과물

Image Completion

Globally and Locally Consistent Image Completion : 사진속을 Random하게 지워버렸을 때 채워주는 GAN 모델입니다. Generator는 빈 부분을 채워 넣으려고 하고 Discriminator는 가짜로 채워진 이미지인지 원본 이미지인지 구분하려고 노력합니다. 아래와 같은 성능을 내기 위해서는 엄청나게 많은 GAN학습 시간을 필요로 합니다.

Image Completion 의 결과물

 

Deepfake

Deepfake : 딥러닝, 그 중에서도 GAN의 발전은 이미지의 다양한 Task에 대하여 엄청난 발전을 이끌었습니다. 위에서 언급한 CycleGAN을 비롯하여, 합성관련 Task에 대해서도 엄청난 발전이 있었습니다. 아래 영상에서 오바마 전 미국 대통령이 '트럼프는 쓰레기'라고 말하는 영상을 볼 수 있는데, 이는 가짜 영상입니다. Deepfake (딥러닝 + fake)라는 기술을 이용하여 만든 합성 영상입니다. 어색한 부분이 없진 않지만, 얼핏 보기에 진짜라고 느낄 수 있을 정도입니다. 매우 신기한 기술이기도 하고 유용하게 쓰일 수도 있다라고 생각이 들 수도 있지만, 사실 악용될 여지가 많은 기술입니다.

한 포르노 사이트에서는 유명 연예인 여성의 얼굴을 합성해 포르노 동영상을 유포하기도 하였습니다. 이 뿐만 아니라, 사기 등 다양한 범죄에 활용될 여지가 많습니다. 이처럼 인공지능의 발전은 인간의 삶을 조금 더 편리하게 바꾸는 것 뿐만 아니라, 오히려 악영향을 끼치기도 합니다.

https://www.youtube.com/watch?v=cQ54GDm1eL0&feature=youtu.be

 

 

 

Domain Adaptation

 

Domain Adaptation은 특정 도메인 내 데이터가 부족할 때, 특정 도메인과 매우 유사한 도메인 정보를 이용하여 문제를 해결하는 방법을 의미합니다. 보통, 특정 도메인의 데이터가 부족할 때, 대량의 데이터로 학습이 된 모델의 구조와 파라미터를 이용하여 특정 도메인의 소량의 데이터를 학습시키는 전이 학습 (Transfer Learning) 방법이 일반적이지만, Transfer Learning을 진행할 때 최소한의 레이블 정보가 있는 데이터가 필요합니다. 사람이 데이터를 직접 보며 레이블을 작성하기엔 비용이 너무나도 크기 때문에, 특정 도메인과 유사한 도메인에 접근하여 데이터를 활용하는 방식이 생겨나게 되었습니다.

우리가 풀어야 할 도메인이 Target Domain, 이용할 수 있는 유사한 도메인이 Source Domain 이라고 명명하였을 때, 레이블 정보가 포함되어있는 대규모의 Source Domain의 데이터를 이용하여 Classifier 를 학습하였다고 가정해봅시다. 이 Classifier를 이용하여 Target Domain 의 데이터를 입력해보면, Target Domain 데이터에 대한 분류 결과를 알 수 있겠죠? 분류 결과에 대해서는 우리가 당연히 위험성이 존재합니다. Target Domain의 Data를 이용하여 학습한 것이 아니라, Source Domain 의 Data를 이용하여 학습한 것이기 때문이죠. 그렇다면  Source Data를 이용하여 학습한 Classifier를 Target Domain의 Data에 대한 Risk를 최소화되는 방향을 고려하여 학습하는 것이 어떨까? 라는 생각을 바탕으로 Domain Adaptation 개념이 생겨나게 되었습니다.

우리가 풀어야 할 도메인이 Target Domain, 이용할 수 있는 유사한 도메인이 Source Domain 이라고 명명하였을 때, 레이블 정보가 포함되어있는 대규모의 Source Domain의 데이터를 이용하여 Classifier 를 학습하였다고 가정해봅시다. 이 Classifier를 이용하여 Target Domain 의 데이터를 입력해보면, Target Domain 데이터에 대한 분류 결과를 알 수 있겠죠? 분류 결과에 대해서는 우리가 당연히 위험성이 존재합니다. Target Domain의 Data를 이용하여 학습한 것이 아니라, Source Domain 의 Data를 이용하여 학습한 것이기 때문이죠. 그렇다면  Source Data를 이용하여 학습한 Classifier를 Target Domain의 Data에 대한 Risk를 최소화되는 방향을 고려하여 학습하는 것이 어떨까? 라는 생각을 바탕으로 Domain Adaptation 개념이 생겨나게 되었습니다.

 

- 초록색 레이어는 입력값에 대해 특징을 추출할 수 있는 구조라고 보시면 됩니다.
- 파란색 레이어는 우리가 이용할 수 있는 레이블 정보가 포함되어있는 대규모의 Source Domain의 데이터를 통해 학습하는 과정을 의미합니다.
- 빨간색 레이어는 우리가 풀고싶은 Target Domain의 Data에 대한 데이터를 통해 학습하는 과정을 의미합니다.
- 여기서, 파란색 레이어에서 발생되는 Loss값에 대한 Gradient값은 올바르게 전달되며, 빨간색 레이어에서 발생되는 Loss값에 대한 Gradient값은 음수값으로 전달되어 Source Domain Data와 Target Domain Data를 구분할 수 없도록 초록색 레이어가 학습되는 방법을 제안합니다.
- 이를 통해 Domain Adaptation에 대한 핵심은 Source Domain Data와 Target Domain Data를 구분할 수 없게 만드는 방향으로 학습하는 것이라고 할 수 있습니다. 이에 대해서 추가적으로 내용이 궁금하시다면 자세한 내용은 H-Divergence, VC-Dimension 과 같은 개념을 바탕으로 검색해서  공부하시는 것을 추천합니다.

 

 

 

Continual Learning

Continual Learning은 말 그대로 지속적으로 학습하는 방법론을 의미합니다. 예를 들어, Benchmark Dataset A에 대해서 클래스를 분류할 수 있는 모델을 학습하여 보유하고 있다고 가정합시다. 여기서 우리는 Benchmark Dataset A에 속해 있지 않은, 새로운 클래스를 분류할 수 있는 모델이 필요하다고 할 때, 새로운 클래스에 대한 데이터와 레이블을 기존에 학습된 모델에 추가적으로 학습을 진행한다면, 기존에 Benchmark Dataset A에 대해서 분류를 할 수 있는 능력이 사라지게 됩니다. 이를 Catastrophic Forgetting 이라고 합니다. 특정 데이터로 이미 학습이 된 모델이 새로운 데이터를 바탕으로 추가적으로 학습을 진행하였을 때, 과거에 학습이 된 데이터에 대한 능력이 사라지게 되는 것이죠.

이 Catastrophic Forgetting을 방지하고자, 최소화하고자 하는 학습 방식이 Continual Learning입니다. 새로운 클래스가 생겼을 때, 모델을 처음부터 다시 학습하면 되지 않느냐고 반문할 수 있지만, 모델을 처음부터 학습하기 어려운 상황이 생길 수 있습니다. 예를 들어서, 거대한 컴퓨팅 자원을 활용하여 대규모 데이터를 바탕으로 1년동안 학습하여 얻어낸 모델이 있다고 가정하였을 때, 새로운 클래스 1개가 추가되었다고 해서 1년동안 새로 학습하는 것은 굉장히 비효율적입니다. 사람들은 기존에 학습이 된 모델에 새로운 클래스를 추가적으로 학습하되, 기존에 학습이 된 능력을 잊지 않게 하고 싶은 것 입니다. Continual Learning은 현재에도 활발히 연구되고 있으며, 다양한 방법론들이 제시되고 있습니다.

이에 대한 대표적인 예시로, Lifelong Learning with Dynamically Expandable Networks (Jaehong Yoon et al., 2017) 논문에서 제시한 방법론을 설명한 그림을 첨부하겠습니다.

 

 

Lifelong Learning with Dynamically Expandable Networks 논문에서 제안된 알고리즘

  • 첫 번째 그림은 Selective Retraining 단계로, 동일한 모델 구조에 대해서 (t-1) 시점까지 Task1에 대해서 학습한 모델의 파라미터와, t 시점에서 Task2에 대해서 학습한 모델의 파라미터 간 관계가 높은 파라미터들을 따로 추출해서 다시 학습을 진행하는 단계를 의미합니다. 이는 Task1 과 Task2 를 공통으로 잘 할 수 있는 파라미터들을 따로 추출해서 해당 파라미터값들을 새로 학습하는 방식입니다.
  • 두 번째 그림은 Dynamic Network Expansion 단계로, 첫 번째 단계에서 학습이 원활하게 진행되지 않아 Loss 값이 Threshold 값보다 낮아지지 않았을 때, 파라미터 값이 비교적 작은 값들로 연결된 노드들을 제거하고, 모델의 크기를 늘리는 방향을 도입하여 Selective Retraining 단계를 원할하게 진행할 수 있는 방식을 의미합니다.
  • 세 번째 그림은, Network Split/Duplication 단계로, Selective Retraining 과 Dynamic Network Expansion 단계를 진행하면서 기존 노드의 값이 크게 변하였을 때, Catastrophic Forgetting 현상이 발생하여 노드의 원래 역할을 수행하지 못할 수 있기 때문에, 기존 노드 값을 복사하여 모델 구조에 변화를 주는 방식을 의미합니다.

Continual Learning 방식은 현재에도 활발히 연구되고 있는 분야이며, Continual Learning이 완벽하게 수행될 수 있다면, 다양한 Task를 수행하며 이와 동시에 새로운 환경에 대해서도 학습을 이어가며 궁극적인 인공지능 모델이 구현되는데 있어 큰 도움이 될 것이라 기대됩니다.

 

 

 

AutoML

 

흔히 저희가 딥러닝 모델을 설계할 때, 각 레이어의 구성은 MLP 계열을 이용할지, CNN 계열을 이용할지, RNN 계열을 이용할지, Transformer 계열을 이용할지 등을 고민하며, 노드 개수, 레이어 개수 등 다양한 하이퍼파라미터를 사용자가 설정하여 모델을 설계하게 됩니다. 이런 방식으로 사람이 딥러닝 모델을 직접 설계하는 것이 비효율적인 것이며, 사람이 설계하는 것이 아니라 컴퓨터가 스스로 모델을 설계하는 것은 어떨까라는 생각으로 생기게 된 연구가 바로 AutoML 입니다. Auto Machine Learning 이라 하며, 자동으로 Machine Learning Model 을 설계하는 것이지요. AutoML에는 다양한 영역이 존재합니다. 그 중 대표적으로 Class 5) 컴퓨터 비전 장표에서 배운 Data Augmentation 기법을 자동으로 설계하여 학습 효율을 최대로 끌어올리는 Auto Augmentation, 특정 Task를 풀기 위해 딥러닝 모델 구조를 자동으로 설계하는 Neural Architecture Search 2가지가 있습니다.

Auto Augmentation은 말 그대로 자동으로 Augmentation을 진행한다는 의미입니다. 대표적인 논문은 구글 브레인에서 작성한 AutoAugment: Learning Augmentation Strategies from Data (Ekin D. Cubuk et al., 2018) 논문입니다.

 

Auto Augmentation 논문 내 자료 출처 : https://arxiv.org/pdf/1805.09501.pdf

 

Auto Augmentaation 논문에서는 최적의 Augmentation 방법을 찾기 위해 Recurrent Neural Network 기반의 RNN Controlloer를 이용하여 최적의 Augmentation Policy를 찾는 강화학습을 도입하여 문제를 해결하였습니다. 강화학습에서 학습의 지표로 사용되는 보상 (Reward) 값은 분류 모델에서의 성능 지표인 Accuracy 값으로 지정하여 위의 루프를 통해 최적의 Augmentation Policy를 찾는 방법론을 제안하였습니다.

AutoAugment 논문의 방법론과 비슷한 방식의 Neural Architecture Search 방법론을 제안한 Neural Architecture Search with Reinforcement Learning (Barret Zoph et al., 2016) 논문도 살펴보겠습니다.

 

Neural Architecture Search with Reinforcement Learning 논문 내 자료 출처 : https://arxiv.org/pdf/1611.01578.pdf

 

Auto Augmentation과 비슷한 방식으로 RNN Controller을 이용하여 각 시점마다 출력값으로 계산되는 필터 개수, 필터 크기, stride 크기 등등을 이용하여 모델을 설계하고, 설계된 모델을 통해 학습을 진행하였을 때 계산되는 Accuracy 값을 Reward 로 지정하여 딥러닝 모델의 구조를 설계하는 연구 방법론을 제안한 논문입니다.

AutoML 연구 분야는 컴퓨터가 직접 딥러닝 모델을 설계하기 때문에 사람의 개입 없이 좋은 성능을 보여주는 모델을 얻을 수 있는 아주 큰 장점을 그만큼 컴퓨팅 자원이 어마어마하게 이용되며, 찾는 시간 역시 어마어마하게 오래 소요되는 치명적인 단점이 존재합니다.

 

딥러닝에 대한 기본적인 내용과 PyTorch 실습 내용을 결합하여 책으로 출판하였습니다.

 

m.yes24.com/Goods/Detail/93376077?ozsrank=10

 

파이썬 딥러닝 파이토치 (Python Deep Learning PyTorch)

파이썬은 선택이 아닌 필수! 파이토치로 딥러닝 입문하기!딥러닝 기술에 초점을 두고 딥러닝을 구현하기 위해 파이썬을 이용하는데, 머신러닝 라이브러리인 파이토치를 활용하여

m.yes24.com

mbook.interpark.com/shop/product/detail?prdNo=339742291&is1=book&is2=product

 

싸니까 믿으니까 인터파크도서

 

book.interpark.com

 

 

 

 

반응형

댓글