목록전체 글 (270)
Douglas' Space
AI모델의 정확도를 결정하는 것 중에 가장 중요한 요소가 학습데이터라는 것은 모두가 잘 알고 계실 겁니다. 학습데이터로 학습된 모델이 실제에서도 같은 정확도를 갖고 있어야 의미가 있기 때문입니다. 이러한 학습데이터의 유효성을 이야기할 때 사용하는 용어 중에 불균형 데이터(imbalanced data)가 있습니다. 단어에서부터 벌써 불균형데이타는 문제가 있는 데이터라는 것을 직감하실 겁니다. 네. 맞습니다. 불균형 데이터는 학습 데이터의 전체 집합에서 특정한 데이터세트들이 상대적으로 적은 데이터세트이 포함된 데이터를 의미합니다. 예를 들어 제조 불량데이터의 경우는 정상과 불량으로 구분하는데 불량 데이터는 상대적으로 불량이 적기 때문에 데이터의 획득이 어려울 것입니다. 연령분포 데이터의 경우도 연령의 분포가..
semantic segmentation(의미적 분할)은 컴퓨터비전의 핵심적인 분야에 하나입니다. 결론적으로 말하면 사진에 있는 객체들의 경계를 구분하는 것을 의미합니다. 아래 그림은 구글의 DeepLab V3+라는 논문에 나온 semantic segmentation의 예입니다. 위의 그림은 왼쪽의 사진으로 부터 구분 가능한 객체(배경을 포함하여) 들의 경계를 구분하는 4장의 예시를 보여주고 있습니다. 언듯 봐도 자율주행에서 많이 활용되는 기술로 느껴지실 것 같습니다. Kaggle에서도 바다에서 선박을 찾는 문제가 나오 등 적용분야가 무궁무진하다고 할 수 있습니다. 지난번 소개한 CNN을 적용해서 많은 발전을 이루었다고 할 수 있습니다. 구글에서는 카메라에 이 기능을 이용하여 심도가 얕은 사진인 아웃포커스..
1. Development Processes SSDM은 코딩이 수행되는 구현단계를 제외하고 MIL-STD-498에서 정의된 단계 중 분석설계와 관련된 4단계로 개발단계를 정의합니다. 시스템차원에서의 분석 및 설계 단계와, 시스템 설계가 완료된 후 식별된 소프트웨어 형상관리단위인 CSCI별로 분석 및 설계를 진행합니다. 각 단계를 SSRA, SSD, SRA, SD 단계로 약어를 사용하여 지칭합니다. 그리고 전체 개발 단계에 수행되는 데이터 분석 및 설계에 해당하는 data modeling 프로세스가 존재합니다. 따라서 데이터의 경우 개발 전 단계에 걸쳐 모델링을 수행합니다. 이와 유사하게 품질보증 활동으로서 검증 및 확인 활동인 verification과 validation 활동이 수행됩니다. SSD단계에서..
1. 들어가면서 여러분 이 그림이 의미하는 바가 무엇인지 살펴보세요. 이 그림은 요구사항을 파악하여 최종 고객이 원하는 것을 만든다는 것이 매우 어렵다는 것을 설명하는 그림입니다. 밑에 가장 오른쪽에 있는 그림이 정말 사용자가 원했던 것인데, 위의 가장 왼쪽 그림을 보면 사용자 마저도 본인이 원하는 것을 잘 설명 못할 수 있다는 것을 의미하기도 합니다. 또한 요구사항이 잘못 분석이 되거나 요구사항이 잘못 표현되어 있으면 이를 고친다는 것은 엄청 많은 노력이 요구된다는 것을 반증하기도 합니다. 이에 대한 사실은 많은 통계 데이터을 통해서도 알 수 있습니다. 개발에 있어서 요구분석이 40%정도를 차지한다거나, 요구사항으로 인한 에러로 수정을 하는 비용이 단순 코드의 에러으로 수정하는 것보다 엄청난 대가를 지..
1. 들어가면서 아래 2개의 그림이 있는데, 공통점이 뭘까요? 둘다 개집입니다. 이렇게 이야기하면 틀린 답이겠죠. 하나는 진짜 개집이고 하나는 개모양의 집입니다. 두 집을 짓는다고 생각할 때 어느 집을 짓는 것이 어려울 까요? 당연히 오른쪽의 집을 짓는 것이 복잡하겠죠. 왼쪽의 개집은 설계도면도 없이 지을 수 있지만, 오른쪽의 집은 그럴 수가 없겠죠? 오른쪽의 집을 짓기 위해서는 설계도면이 반드시 필요하리라 생각합니다. 그리고 아마 설계하기 전에 집주인이 요구하는 요구사항까지도 잘 듣고 이해해야 할 것입니다. 소프트웨어시스템을 개발할 때도 마찬가지라고 생각합니다. 2. Model의 정의 아파트 개발 전에 우리는 모델하우스를 보고 지워질 아파트를 미리 알 수 있습니다. 시스템을 개발할 때도 이와 마찬가지로..
1. Software System이란 우리가 보통 시스템의 구성요소를 크게 하드웨어, 소프트웨어, 사람이라고 할 수 있습니다. 그러면 소프트웨어면 소프트웨어이지 소프트웨어 시스템이라는 것은 무엇을 의미할까요? 시스템을 개발한다는 것은 어떠한 기능을 자동화하기 위해 개발합니다. 이 기능을 잘 수행할 수 있도록 시스템의 컴포넌트를 설계합니다. 그리고 이 컴포넌트에 적합한 기능들을 할당합니다. 다시 말해 어떠한 기능은 하드웨어가 담당하고, 어떠한 기능은 소프트웨어가, 또 어떠한 기능은 사람이 직접 수행하기도 합니다. 그런데 소프트웨어에 기능을 할당한다는 것은 소프트웨어가 구동되는 일반목적의 컴퓨터에 기능을 할당한다는 것과 같은 의미입니다. 이렇게 일반 목적의 컴퓨터에서 작동하는 다수의 소프트웨어의 집합과 일반..
혹시 딥러닝을 몰라도 강화학습을 아는 분이 더 많지 않나 생각합니다. 강화학습을 사용한 알파고라는 놈때문이죠. 강화학습은 비지도학습과 같이 자기스스로 학습하는 기계학습의 한 방법입니다. 그럼 비지도학습에 포함하지 않고 왜 별도로 강화학습이라고 분류할 까요? 지도학습과 비지도학습을 구분하는 것은 정답이 있는 데이터(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 모델이 구성될 수 있습니다. 위의..