목록전체 글 (266)
Douglas' Space
지난 글에서 자연어처리를 위해 문장을 이루는 단어를 표현하는 워드임베딩에 대해 설명하였습니다. 워드임베딩을 포함하여 지금까지 다양한 형태의 데이터를 처리하는 DNN(Deep Neural Net)을 설명하였습니다. 이번 글에서는 좀 다른 형태의 데이터를 표현하고 처리하는 DNN의 하나인 GNN(Graph Neural Network)에 대해 살펴보고자 합니다. 이름에서 쉽게 알수 있듯이 그래프로 표현될 수 있는 데이터를 다루는 DNN입니다. 그래프는 컴퓨터과학에서 네트워크 또는 트리 형태를 표현하는 매우 자주 사용되는 자료구조를 의미합니다. 네트워크 형태의 예로서 도로망, 관계망, 분자의 구조 등이 이 네트워크 형태로 구성된다고 이해될 수 있습니다. 이 네트워크를 나타내는 그래프는 아래와 같이 노드(node..
RNN과 트랜스포머를 통해 일반 자연어처리를 위한 딥러닝을 소개했습니다. 현재 DNN은 많은 분야에 적용되어 영상, 음향, 문자 등 다양한 형태의 데이터를 입력으로 처리하고 있습니다. 영상데이터는 각 픽셀 값을 레벨로 표현하고, 음성을 포함한 음향데이타는 시간도메인 또는 주파수도메인에서의 레벨로 표현하여 DNN에 입력값으로 표현하고 있습니다. 워드임베딩(Word Embedding)은 단어에서 알 수 있듯이 text형태로 존재하는 문장을 처리하기 위한 DNN의 입력방법입니다. 이번 글에서는 문장을 입력으로 처리하기 위한 워드임베딩 방법에 대해 소개하고자 합니다. 워드임베딩은 결론적으로 말하면 단어를 특정한 벡터로 표현하는 방법입니다. 컴퓨터로 언어를 처리하기 위해서 문장의 최소단위인 문자 하나하나는 다양한..
트랜스포머라면 당연히 영화가 생각나시죠! 아직도 트랜스포머하면 2007년에 소개된 영화에서 옵티머스프라임의 중후한 목소리가 지금도 생생히 들리는 것 같습니다. 그런데 오늘 이야기는 영화 트랜스포머가 아니라 인공지능의 또 하나의 획을 그었다고 생각되는 transformer이야기를 하려고 합니다. 결론적으로 말하면 transformer는 구글의 논문 “transformer : attention is all you need” 에서 소개한 attention mechaism이라는 개념을 사용한 자연어처리 모델입니다. 이를 기반으로 다양한 언어처리모델(예로 BERT, GPT 등)이 만들어지기도 하였으며, 언어처리모델 뿐만 아니라 vision transformer의 등장으로 컴퓨터 비전 분야에도 핫한 주제가 되고 있..
labeled data를 만드는 것은 많은 비용이 투자되는 작업이라는 것은 계속 설명드리고 있기 때문에 모든 분이 충분히 이해하실 것이라 생각합니다. 그래서 지난 시간에 전이학습이나 자기주도학습에 대한 이야기를 했습니다. 오늘 이러한 관점에서 적은 데이타로 성능을 올릴 수 있는 또 다른 방법인 semi supervised learning(SmSL), 준지도학습에 대해 살펴보도록 하겠습니다. 우리가 labeled data를 많이 확보하려는 이유는 무엇인가요? 근본적인 것은 모델의 성능을 높이기 위한 것입니다. 따라서 labeled data를 만드는 비용이 많이 들거나 불가능한 경우에 우리가 할 수 있는 방법은 모델의 성능을 높이기 위해 labeled data를 만들지 않고 성능을 높일 수 있는 방법입니다...
지난 시간에는 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을 적용해서 많은 발전을 이루었다고 할 수 있습니다. 구글에서는 카메라에 이 기능을 이용하여 심도가 얕은 사진인 아웃포커스..
1. Development Processes SSDM은 코딩이 수행되는 구현단계를 제외하고 MIL-STD-498에서 정의된 단계 중 분석설계와 관련된 4단계로 개발단계를 정의합니다. 시스템차원에서의 분석 및 설계 단계와, 시스템 설계가 완료된 후 식별된 소프트웨어 형상관리단위인 CSCI별로 분석 및 설계를 진행합니다. 각 단계를 SSRA, SSD, SRA, SD 단계로 약어를 사용하여 지칭합니다. 그리고 전체 개발 단계에 수행되는 데이터 분석 및 설계에 해당하는 data modeling 프로세스가 존재합니다. 따라서 데이터의 경우 개발 전 단계에 걸쳐 모델링을 수행합니다. 이와 유사하게 품질보증 활동으로서 검증 및 확인 활동인 verification과 validation 활동이 수행됩니다. SSD단계에서..
1. 들어가면서 여러분 이 그림이 의미하는 바가 무엇인지 살펴보세요. 이 그림은 요구사항을 파악하여 최종 고객이 원하는 것을 만든다는 것이 매우 어렵다는 것을 설명하는 그림입니다. 밑에 가장 오른쪽에 있는 그림이 정말 사용자가 원했던 것인데, 위의 가장 왼쪽 그림을 보면 사용자 마저도 본인이 원하는 것을 잘 설명 못할 수 있다는 것을 의미하기도 합니다. 또한 요구사항이 잘못 분석이 되거나 요구사항이 잘못 표현되어 있으면 이를 고친다는 것은 엄청 많은 노력이 요구된다는 것을 반증하기도 합니다. 이에 대한 사실은 많은 통계 데이터을 통해서도 알 수 있습니다. 개발에 있어서 요구분석이 40%정도를 차지한다거나, 요구사항으로 인한 에러로 수정을 하는 비용이 단순 코드의 에러으로 수정하는 것보다 엄청난 대가를 지..