올해에는 단연코 ChatGPT 열풍이라 할 수 있겠지만, 올해 비록 영상 조작 논란으로 말이 많지만 멀티모달의 가능성을 열어주고, 앞으로 무궁무진한 서비스가 열릴 것으로 예상되는 구글의 제미나이(Gemini) 서비스로 인해서 자연어처리(NLP)라는 항목을 벗어나 멀티모달의 영역으로 갈 것이라 예상이 된다. 블로그에서 유튜브로 넘어가듯, ChatGPT에서 영상처리로 가는 것은 필연적일 것이며 집에 있는 카메라등과 스피커 등을 통해서 앞으로 수많은 의사소통이 이루어지지 않을까 예상된다. 우선 OCR을 Tesseract를 사용하여 만든적(정확히는 사용한적)이 있긴 하지만, 블로그에 정리를 한적이 없는 것 같아서 이렇게 포스팅 하도록 한다. OCR(Optical Character Recognition)이란? O..
머신러닝 그중에 신경망은 딥러닝(Deep Learning) 시대로 넘어오고나서 빅데이터의 등장, GPU, 딥러닝 프레임워크(ex: tensorflow, torch 등), 옵티마이저 등등으로 인해 엄청난 발전을 이루게 되었다. 하지만, 양이 있으면 음도 있는 법 모든 시스템이 딥러닝에 적합한 것은 아니었다. 특히, 데이터가 풍부하지 못하거나 너무 많은 특징(Feature)를 가지고 있는 시스템의 경우 과적합(Overfitting) 이라는 문제가 발생하였는데 이 문제는 학습 데이터에 지나치게 학습되어 실제 운영 데이터에 제대로 된 결과를 보여주지 못하는 문제였다. 과적합을 해결하는 방법은 여러가지가 있으며, 한가지만 써서 문제가 해결되지 않는다. 예를 들어 데이터가 적은데 특징이 많을 경우 궁극적으로 과적합..
이진화(binarization) 이진화는 숫자의 값을 0 혹은 1의 값으로 변환하는 것을 말한다. 대표적으로 활용되는 것으로 0~255의 값을 0-1의 흑백 값으로 변환하는 이미지 이진화가 대표적이며, 그외에도 데이터를 압축하기 위해서도 활용이 된다. 이진화를 만들기 위해서는 기준값(threshold)가 필요한데 이 기준값보다 높으면 1, 낮으면 0의 값을 세팅하는 어찌보면 매우 간단한 기능이라 할 수 있다. 충분히 개인이 펑션등을 만들어서 이진화를 구현할 수 있지만 여기서는 사이킷런(Sci-kit)에서 제공하는 전처리(preprocessing) 라이브러리로 이진화 기능을 사용해보도록 한다. 이진화 예제 from sklearn import preprocessing X = [[-1,2,3],[-0.2,0...
데이터의 레이블(Label)들을 보면 숫자로 되어 있어서 그대로 사용할 수 있는 데이터가 있는 반면 대다수는 문자열 형태로 되어 있어서 한번 변환을 거쳐야 되는 경우가 많다. 레이블의 경우 의미가 없는 숫자보다는 문자형태로 되어 있어야 의미를 파악하기 쉽고 나중에 데이터를 검증하기도 용이하면 더 나아가 가시화(Visualization)등을 할 때에도 유리하다. 이 레이블을 숫자로 변경하는 방법은 우리가 직접 코드를 짜도 되고 크게 어려운 기술이 아니지만 이미 라이브러리(Library)가 존재하고 있는 상태이기 때문에 굳이 힘들게 짤 필요는 없을 것 같다. 이렇게 문자열 데이터를 숫자 형태로 레이블을 변환해주는 것을 레이블 인코딩이라고 하는데 사이킷런(scikit learn, sklearn)에서는 레이블 ..
희소 표현(Sparse Representation) 희소 표현(Sparse Representation)이란 데이터가 희소(부족)한 형태를 띄는 것을 말한다. 즉 대부분의 값이 0인 경우를 뜻하며, 원핫 인코딩(One Hot Encoding)이 대표적인 예이다. 원핫 인코딩(One-Hot Encoding) 개념과 구현해보기 원핫 인코딩(One-Hot Encoding) 개념과 구현해보기 사람과 컴퓨터는 데이터를 바라보는 형태가 다르다 인간과 컴퓨터는 데이터를 바라보는 형태가 다르다 사람은 어떤 물체를 보더라도 숫자로 인식하지는 않지만 컴퓨터에게 인공지능을 구현시 needjarvis.tistory.com 희소표현이 구현하기에는 매우 편리하지만, 몇몇가지 약점들이 있다. 우선 Feature가 많아질수록 데이터 ..
생성적 적대 신경망(Generative Adversarial network)은 GAN 혹은 GANs(networks)이라고 표기하며, 한국에서는 간이라고 많이 말하지만 영어 발음으로는 겐, 갠이라 발음한다. 보통 한가지에 치중된 신경망 모델들과 다르게 GAN은 2가지(생성자, 판별자) 종류의 신경망을 가지고 있으며, 이를 통해서 진짜 같은 가짜를 만들어내는 것을 목표로 두고 있는 딥러닝(Deep Learning) 알고리즘이다. GAN 단어의 의미 생성적(Generative) 일단 메인이 되는 것은 바로 생성이라고 할 수 있으며 GAN의 첫번째 단어인 Generative(생성적)는 바로 데이터를 스스로 생성하는 생성자(Generator)를 뜻한다. 데이터를 생성하는 것은 훈련 세트에 따라 결정되기에 예를 ..
랜드마크(Landmark)라는 것은 탐험가 혹은 여행가들이 원래의 장소를 돌아오기 위해서 표식을 해두는 것을 말하였지만 현대에 들어서는 유명한 장소를 랜드마크라고 한다. 예를 들어 서울의 랜드마크 중 하나로 63 빌딩, 롯데 타워, 남산 타워 등 다양한 랜드마크들이 있다. Face Landmark는 얼굴의 특징점을 말한다. 예를 들어 동공의 위치, 입술의 좌표, 눈썹의 좌표 등 이런 값들을 추출하여 x,y 값으로 리턴을 하는데 대표적으로 Python의 라이브러리 중 dlib, opencv로 랜드마크를 추출하는 방법이 있으며 본 포스팅에서는 opencv로 얼굴의 특징점들을 추출하는 것을 보여드리고자 한다. 라이브러리 설치 pip install dlib pip install imutils pip instal..
사람과 컴퓨터는 데이터를 바라보는 형태가 다르다 인간과 컴퓨터는 데이터를 바라보는 형태가 다르다 사람은 어떤 물체를 보더라도 숫자로 인식하지는 않지만 컴퓨터에게 인공지능을 구현시키기 위해서는 컴퓨터가 알아먹기 쉽게 숫자값으로 변환을 해줘야 된다. 예를 들어 내가 지금 여기서 열심히 포스팅을 하고 있는 내용을 컴퓨터에게 이해 시키려면 단어들을 숫자 형태로 정리해서 컴퓨터에게 입력시켜줘야 한다는 것이다. 원핫 인코딩(One-Hot Encoding)은 사람이 매우 쉽게 이해할 수 있는 데이터를 컴퓨터에게 주입시키기 위한 가장 기본적인 방법이다. 원핫인코딩 개념 원핫(One-Hot) 인코딩이라는 말처럼 이 기술은 데이터를 수많은 0과 한개의 1의 값으로 데이터를 구별하는 인코딩이다. 예를 들어, 글자가 적힌 종..
한창 딥러닝 기술인 GAN(생성 적대 신경망, Generative Adversarial Networks)에 빠져 살 때가 있었다. 인공지능의 진정한 미래는 간이라는 생각에 회사에 접목할 부분이 없는지 고민을 했던 기억이 있다. 결과적으로는 간(GAN)을 써먹을 서비스(내가 다니는 회사에서)가 없다는 것에서 결론을 내고, 이 후 블록체인(Blockchain) 쪽으로 다시 연구를 턴(Turn)하였었다. 그러나 블록체인과 인공지능의 인력 Pool의 차이가 컸는지 인공지능의 발전을 블록체인이 따라가지 못하는 것 같다. 이제 인공지능은 딥페이크라는 기술로 영상과 다른 사람의 이미지를 매우 쉽고 자연스럽게 합성 시켜버리는 상황까지 와버렸다. Deepfakes (a portmanteau of "deep learnin..
총성없는 MLaaS 전쟁터 그야말로 세계적인 기업들(MS, IBM, Amazon, Google)의 AI 전쟁의 시대이다. fair 한 것처럼 보이는 인공지능 알고리즘은 사실 unfair(학습 데이터) 하기 때문에 MLaaS(Machine Learning as a Service) 시장의 강자는 현재 일류 기업들이 점령하고 있다. 국내로까지 확장하면 카카오와 네이버도 참전할 수 있겠지만, 이 둘은 별도로 다뤄보도록 하겠다. AWS(Amazone Web Service) AI 클라우드의 개념이 확립되던 시기, 물건만 팔던 아마존은 AWS라는 획기적인 서비스를 기업에게 내놓게 되었다. 많은 기업들은 우리의 민감한 데이터를 클라우드에 녹일 수 없다라는 입장을 표명했지만, 현재의 시장은 AWS가 점령하고 있는 상태이..
흑인 = 고릴라? 아직 딥마인드(Deep Mind)가 이세돌을 정복하지 않았던 2015년 AI(Artificial Intelligence) 진영에 많은 고민을 안긴 사건이 터져버렸다. 바로 전세계적 기업인 구글(Google)에서 제공하는 구글 포토 서비스에서 흑인을 고릴라(Gorillas)로 분류를 해버린 것이다. 이 서비스는 딥러닝(Deep Learning)으로 사진을 분석하여, 자동으로 분류해주는 서비스로 인공지능이 잘못 쓰이면 이러한 차별이 일어날 수 있구나라는 경각심을 이끌어준 사건이었다. 2015년 6월, 흑인을 고릴라로 분류한 구글 포토 서비스 알고리즘의 인종차별 문제로 구글은 해당 문제점을 인지하고 사과를 했으나, 문제점은 즉각 고쳐지지 않았다. 미국의 정보기술 전문지 '와이어드'가 2018..
퍼셉트론(Perceptron)을 만든 로센블래트와 고등학교 동창이던 마빈 민스키 박사의 설전을 통해서 퍼셉트론이 대부분 해결할 수 없다는 것이 알려진 직 후, 인공지능의 1차 겨울이 오고 말았다. 퍼셉트론은 AND, OR, NAND와 같은 선형 문제는 풀 수 있었지만, XOR같은 비선형 문제를 풀 수 없었기 때문이다. 이로 인해 발생한 인공지능의 불신과 함께 인공지능에 투자하는 것이 급격히 줄어들게 되며, 조용히 사라지는 듯 보였지만 최초의 신경망이라고 불리는 퍼셉트론 방식과 다른 방식인 전문가 시스템(Expert System)을 통해서 인공지능은 다시 부활하게 된다. 전문가 시스템은 사실 룰(Rule) 기반 방식을 채택하고 있으며, 수많은 IF ~ ELSE(조건문)으로 만들어진 외관상으로 보이는건 인공..