목록Computing Tech. Diary/Artificial Intelligence (45)
Douglas' Space

지난 시간에는 labeled data를 제작해야하는 문제점을 극복하기 위한 방법으로 전이학습에 대한 이야기를 했습니다. 사실 지도학습의 이러한 문제는 labeled data를 충분히 만들면 가능한 일이지만 사실 이 충분한 데이터라는 것이 특정 문제에 한해서만 적용이 가능한 문제이며, 많은 문제 영역에서는 충분한 labeled data를 만드는 것이 사실 어려운 현실입니다. 또한 충분하다는 것도 그 만큼 정의하기 어려우며 문제의 범위에 따라 다양한 새로운 입력데이터에 대해 대응하지 못하는 결함이 존재할 수 밖에 없습니다. 이러한 한계점을 근본적으로 극복하고자 하는 방법으로 제시되는 연구분야가 자기지도학습(Self-Supervised Learning-SSL)입니다. 사실 현재는 거의 AI연구에 대부분이 SS..

딥러닝기반의 인공지능 시스템 개발에서의 가장 어렵거나 많은 비용이 드는 것은 지도학습을 위한 학습데이타를 생성하는 것입니다. 예를 들어 표적인식 등에 가장 많이 사용하는 CNN기반의 딥러닝 모델의 경우 학습을 위한 labeled data를 만드는 데 많은 비용이 들거나 데이터를 만들기가 어려운 경우가 대부분입니다. 이러한 경우에 사용하는 방법이 전이학습(Transfer Learning)입니다. 전이학습은 많은 데이타셋으로 이미 학습된 모델(이를 pre-trained model이라고 함)을 데이터셋이 적은 분야에 재활용하여 사용하는 방법을 말합니다. 이렇게 재사용하는 것을 fine-tuning한다고 부릅니다. CNN을 예로 들어 설명해 보도록 하겠습니다. CNN은 지난번 이야기한 것처럼 아래와 같이 크게 ..

AI모델의 정확도를 결정하는 것 중에 가장 중요한 요소가 학습데이터라는 것은 모두가 잘 알고 계실 겁니다. 학습데이터로 학습된 모델이 실제에서도 같은 정확도를 갖고 있어야 의미가 있기 때문입니다. 이러한 학습데이터의 유효성을 이야기할 때 사용하는 용어 중에 불균형 데이터(imbalanced data)가 있습니다. 단어에서부터 벌써 불균형데이타는 문제가 있는 데이터라는 것을 직감하실 겁니다. 네. 맞습니다. 불균형 데이터는 학습 데이터의 전체 집합에서 특정한 데이터세트들이 상대적으로 적은 데이터세트이 포함된 데이터를 의미합니다. 예를 들어 제조 불량데이터의 경우는 정상과 불량으로 구분하는데 불량 데이터는 상대적으로 불량이 적기 때문에 데이터의 획득이 어려울 것입니다. 연령분포 데이터의 경우도 연령의 분포가..

semantic segmentation(의미적 분할)은 컴퓨터비전의 핵심적인 분야에 하나입니다. 결론적으로 말하면 사진에 있는 객체들의 경계를 구분하는 것을 의미합니다. 아래 그림은 구글의 DeepLab V3+라는 논문에 나온 semantic segmentation의 예입니다. 위의 그림은 왼쪽의 사진으로 부터 구분 가능한 객체(배경을 포함하여) 들의 경계를 구분하는 4장의 예시를 보여주고 있습니다. 언듯 봐도 자율주행에서 많이 활용되는 기술로 느껴지실 것 같습니다. Kaggle에서도 바다에서 선박을 찾는 문제가 나오 등 적용분야가 무궁무진하다고 할 수 있습니다. 지난번 소개한 CNN을 적용해서 많은 발전을 이루었다고 할 수 있습니다. 구글에서는 카메라에 이 기능을 이용하여 심도가 얕은 사진인 아웃포커스..

혹시 딥러닝을 몰라도 강화학습을 아는 분이 더 많지 않나 생각합니다. 강화학습을 사용한 알파고라는 놈때문이죠. 강화학습은 비지도학습과 같이 자기스스로 학습하는 기계학습의 한 방법입니다. 그럼 비지도학습에 포함하지 않고 왜 별도로 강화학습이라고 분류할 까요? 지도학습과 비지도학습을 구분하는 것은 정답이 있는 데이터(labelled data)를 사용하느냐 정답이 없는 데이터(unlabelled data)만 사용하느냐로 결정됩니다. 그런데 강화학습은 특별히 데이타를 이용하여 학습을 하는 경우가 아니라 최적의 의사결정을 위해 시행착오를 통해 학습하기 때문에 스스로 학습하지만 비지도학습과 구분하여 별도로 분류한 것 같습니다. 위 그림은 강화학습의 기본개념 및 용어에 대해 설명한 그림입니다. 에이전트는 학습을 수행..

“인공지능이 당신의 일자리를 노리고 있습니다.” 라는 신문기사를 많이 보셨을 것 같습니다. 5년전 알파고의 쇼크로 사회에 이슈가 되던 해, 2016년, 한국고용정보원에서는 400여개의 주요 직업 가운데 인공지능과 로봇으로 인해 대체될 직업의 확률을 분석한 결과를 발표한 적이 있습니다. 이 중에 대체될 확률이 가장 낮았던 직업이 화가 및 조각가, 작가 및 사진작가 등 이었습니다. 그런데 2018년 미국 뉴욕 크리스티경매에서 최초의 인공지능이 창작한 그림이 경매에 나와 고가에 낙찰되었다는 기사가 많은 사람에게 회자되었습니다. “인공지능 창작활동, 예술의 위기인가 …”라는 식의 신문기사를 또 한번 접하게 됩니다. 어떻게 이런 일이 가능한 걸까요? 정말 인공지능이 사람처럼 지능을 가진 걸까요? 제가 지금까지 연..

RNN(Recurrent Neural Net)은 순환신경망이라고 불리웁니다. 순환이라는 특징을 갖고 있어 붙여진 이름입니다. 순차적인 데이터(또는 시계열 데이터)를 학습하기 위해 고안되었습니다. 특정 t라는 시점의 데이터를 학습할 때 그 전 t-1이라는 시점의 출력 값을 합하여 출력을 계산한다고 하여 순환이라는 이름이 붙여 졌습니다. 아래 그림에서 처럼 X2를 입력 받는 노드가 그 전의 노드의 출력 값 h1을 입력받아 출력을 계산합니다. 다른 노드들도 모두 이와 같이 순환적으로 구성되어 있습니다. 순차적 데이터라는 의미는 t라는 시점 또는 순서에 입력되는 데이터와 그 전 또는 그 후에 입력되는 데이터가 상호 시간적 또는 순서적 관계를 갖고 있다는 의미입니다. 예를 들어 시간적인 데이터의 분포를 나타내는 ..

지금까지는 ANN의 기본적인 개념 및 용어에 대해서 소개했습니다. 앞으로는 실제 ANN을 이용한 다양한 응용분야를 중심으로 소개하고자 합니다. CNN(Convolutional Neural Net)은 딥러닝 분야의 전성기를 촉발시킨 ANN로서 가장 대표적인 ANN모델입니다. 이 CNN에 대해 I/O를 중심으로 소개하고 기본적으로 학습이 어떻게 수행되는 가를 소개하고자 합니다. CNN은 컴퓨터비전에서 객체인식에 대한 문제를 해결하기 위해 제안되었습니다. 객체인식을 위해서 CNN은 객체가 존재하는 사진이미지를 입력받고, 학습한 사진에 존재하는 객체의 종류를 구분합니다. 예를 들어 손으로 쓴 숫자를 인식하여 0부터 9까지를 구별하는 CNN을 개발한다고 한다면 다음과 같이 CNN 모델이 구성될 수 있습니다. 위의..
데이타가 없다면 AI를 개발할 수 없다고 이야기하는 사람이 많습니다. 이는 맞는 말일 수도 있고 틀릴 말 일수도 있다고 생각합니다. 보통 지도학습기반의 DNN의 경우는 정답을 요구하는 데이터(이것을 labeled data라고 함)가 반드시 필요하며 이를 구축하는 것이 매우 어려운 일이기 때문에 맞는 말일 수 있습니다. 그러나 정답없는 데이터(unlabeled data)를 사용하는 다른 학습방법은 데이터의 획득이 용이하거나 필요치 않는 경우도 많습니다. 또한 데이터의 품질과 구성을 어떻게 하느냐에 따라 DNN의 품질이 많이 좌우되기 때문에 데이터가 많다고 좋은 모델을 만든다고 보장할 수도 없습니다. DNN의 오버피팅(Overfitting)은 DNN이 갖는 문제들 중에 대표적인 것입니다. 오버피팅은 DNN이..

딥러닝에서 파라미터(parameters)라 하면 일반적으로 학습에 의해 조정되는 모델 내부의 파라미터만을 의미합니다. 보통 인공뉴런이 연결되는 링크에 부여된 가중치와 바이어스 값을 말합니다. 이 파라미터와 구분하여 상대적으로 지칭하는 것이 하이퍼 파라미터(hyper parameters)입니다. 하이퍼 파라미터는 파라미터와 구분하여 사용자가 딥러닝을 위해 설정하는 값들을 모두 지칭합니다. 따라서 하이퍼 파라미터는 모델의 종류에 따라 다양한 파라미터가 존재합니다. ANN의 구조를 결정하는 계층의 수, 각 계층의 뉴런의 개수 등이 모두 하이퍼 파라미터입니다. 추가로 향후 이해를 위해 기억해야 할 중요 하이퍼 파라미터를 소개하면 다음과 같습니다. 학습률(learning rate) 학습이란 손실함수(정답과 예측한..