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

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) 학습이란 손실함수(정답과 예측한..
딥러닝 기반의 모델을 함수의 집합이라고 생각할 수 있습니다. 따라서 독립적인 시스템으로 동작할 수 도 있고 더 큰 software system의 컴포넌트로 동작할 수도 있습니다. 어떠한 형태로 존재하던 ANN 기반의 인공지능시스템은 내부가 블랙박스와 같기 때문에 그 신뢰성을 검증하기가 어렸습니다. 이로 인해 일반 시스템보다 개발 및 시험평가에 있어서 각별한 관심이 요구되고 있습니다. 따라서 dependable software system 개발방법론에 따라 엄격히 개발하는 것이 오히려 AI시스템의 신뢰성을 높일 수 있다고 생각됩니다. 현재 AI시스템의 품질을 인증하는 별도의 인증제도를 준비하고 있을 정도로 주요 이슈가 되고 있습니다. 보통은 딥러닝 모델(DNN)을 하나의 컴포넌트로 취급할 수 있기 때문에 ..
네. 인공신경망(ANN)중에 GAN이라는 모델을 사용하면 다양한 창작물을 만들 수 있습니다. ANN은 응용분야, 뉴런의 형태 등에 따라서 매우 다양한 종류가 존재합니다. 이러한 ANN은 대표적으로 CNN(Convolutional Neural Network), RNN(Recurrent Neural Network), GAN(Generative Adversarial Network)으로 크게 나누고 있습니다. 이러한 모델의 특징과 이들이 어디에 주로 사용되는지 알아 보도록 하겠습니다. CNN(합성곱신경망) 일반적으로 딥러닝 모델하면 가장 일반적으로 생각하는 대표적인 ANN모델입니다. 주로 영상을 입력받아 이 영상의 특징을 추출하고 이 영상에 존재하는 객체가 무엇인지를 분류하는 ANN입니다. 특징을 추출하기 위해..

인공뉴런(이제부터는 이를 AN이라고 부르겠습니다.) 하나를 보면 함수와 같다고 하였습니다. 정확하게는 AN 하나는 2개의 합성함수로 되어 있습니다. 다음과 같이 생겼습니다. y = z(f(x1,x2,...,xn)) = z(x1*w1+x2*w2+....+xn*xn+b) ANN은 이런 AN들이 층을 구성하여 연결된 것이므로 합성함수들의 집합과 같다고 할 수 있습니다. 여기서 xi는 입력값입니다. 입력계층에 존재하는 AN의 xi는 최초의 학습데이타가 될 것입니다. 그러나 은닉계층과 출력계층의 AN의 xi는 그 전 AN들의 출력값인 y들이 됩니다. wi는 가중치로서 AN의 학습의 목적인 학습 파라미터라고 할 수 있습니다. b는 bias로서 각 AN마다의 특성이 반영되는 조정 값입니다. wi와 b 모두 입력 데이..