목록Computing Tech. Diary (73)
Douglas' Space

혹시 이분을 아시나요? 제가 강의 때 자주 인용하는 사람입니다. 정말 이렇게 예쁜 분인지는 모르겠습니다. 매년 10월 두번째 화요일은 이 분을 기리면서 과학분야에 공로가 있는 여자과학자들을 기념하는 하는 날입니다. (약자로 ALD라고 부름) 이 분은 여자로서 천재라는 소리를 들은 분입니다. 36살의 젊은 나이에 암으로 죽었습니다. Ada라는 미국방성의 표준 프로그래밍언어도 이 분의 이름을 기린 것입니다. Ada는 영국의 시인인, Byron이라는 사람의 딸로서 1815년에 태어났습니다. 어려서 부터 수학을 잘했다고 합니다. 그래서 컴퓨터의 아버지라고 하는 Charles Babbage를 만나게 됩니다. Babbage가 컴퓨터의 아버지라고 불리우게 된 것은 어쩌면 Ada의 덕이 아닌가 개인적으로 생각이 들 정..

초기에 machine learning의 방법중 unsupervised learning을 설명하면서 차원축소(dimensionality reduction)에 대한 이야기를 한 적이 있습니다. 그리고 얼마전 metric learning, word embedding, transformer 등을 이야기하면서 latent vector, embedding vector 등을 언급한 적이 있습니다. 사실 이 모두가 차원축소의 개념에 포함된다고 이야기할 수 있습니다. 차원축소는 인공지능 분야에서 사용하는 중요한 방법 또는 도구의 하나라고 할 수 있습니다. 차원축소를 단어적으로 쉽게 이해할 수 있는 것은 고차원을 저차원으로 축소한다는 것입니다. 우리가 인지할 수 있는 공간의 개념에서 설명하면, 3차원의 데이타를 2차원의 ..

AI나 컴퓨터와 관련해서 새로운 용어들이 계속 등장합니다. 그리고 요즘 세계적인 리서치회사에서 새로운 기술들의 개념을 쉽게 이해하도록 신조어들을 만들어 냅니다. 그래서 많은 사람들이 왜 이렇게 모르는 용어가 많으냐고 불평하기도 하는데, 아이가 태어나면 이름이 붙여주듯이 어떤 기술 및 개념에 이름을 붙인다고 이해하시면 좋겠습니다. 이렇게 이름을 붙이는 것도 추상화(abstaction)의 한 기법이 아닐까 생각합니다. Federated learning이란 새로운 모델을 의미하는 것이 아니라 학습을 하는 형태를 구분하는 용어라고 이해하시면 될 것 같습니다. federared learning은 다수의 분산된 edge device 또는 서버들이 각각에 저장된 데이타를 활용하여 스스로 local model을 학습을..

객체를 분류하거나 단어를 분류하거나, 또는 객체를 인식하거나 얼굴을 인식하거나 하는 많은 딥러닝 모델은 입력되는 객체들의 유사성과 차이점을 구분하는 능력이 필요합니다. 인공지능 분야에서 이러한 객체들 간의 유사성과 차이점을 거리(distance)라는 개념으로 추상화합니다. 즉 객체간의 유사성이 있다면 거리가 가깝고, 차이가 많다면 거리가 멀다고 할 수 있습니다. 이 거리를 "거리를 계산하는 함수(distance function)"의 개념으로 metric이라고 정의합니다. 즉 거리 함수는 두점을 입력으로 받아 두 점간의 거리를 계산해 주는 함수입니다. 우리가 일반적으로 알고 있는 거리함수는 유클리디안거리나 벡터의 내적거리입니다. 이외에도 맨하탄거리, 코사인거리 등이 존재합니다. 그리고 거리의 가까운 정도의..

지난 글에서 자연어처리를 위해 문장을 이루는 단어를 표현하는 워드임베딩에 대해 설명하였습니다. 워드임베딩을 포함하여 지금까지 다양한 형태의 데이터를 처리하는 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은 지난번 이야기한 것처럼 아래와 같이 크게 ..