CV/ NLP
본인은 레이싱을 좋아한다(운전을 좋아한다 하지 않는 건 운전면허가 없어서 해본 적이 없기 떄문). 정확히는 스피드를 즐긴다. 그래서 제주도에 갈 떄마다 카트를 타고 바닷가에 가면 4륜 자동운전을 해보면서 재미를 느끼곤 했다. 그러다 올해 9.81 파크라는 곳을 갔는데 새로운 경험을 했다. 바닥 레일에 깔린 대로 차가 자동으로 가기도 하고, 최고 속도, 평균 속도, 최고 횡가속도, 신호 반응시간등 하나하나 체크가 되고 기록이 된다! 그런 기록들이 쌓여서 아마 회사 내에선 분석이 이뤄지고 있겠지? 그 데이터로 무엇을 하는지도 궁금하다. 스트림으로 쌓인 데이터의 가치를 어디에 쓸 건지 새로운 비지니스 모델을 만들 수도 있을텐데, 하여튼 여기서 내가 경험한 것들이 바로 4차 산업혁명이다. 홍보글은 아니지만 액티비티를 좋아하는 사람들은 가서 후회는 없을 거다.
자 그럼 AI가 할 수 있는 일 중에서 비정형 데이터로 하는 일을 봐보자.
" 비정형 데이터는 식별 가능한 구조나 아키텍처가 없는 데이터입니다. 이는 사전 정의된 데이터 모델을 따르지 않으므로 주류 관계형 데이터베이스에 적합하지 않습니다. 쉽게 식별할 수 있는 구조가 없기 때문에 컴퓨터 프로그램에서 읽기가 어렵습니다."
라고 한다. 하지만 비정형 데이터의 대표인 이미지와 텍스트를 데이터 화 해서 데이터로 만든다. 그 데이터를 이용해서 머신러닝 모델을 만드는 것.
Computer Vision (image -> tensor)
- Classification ; 이미지가 어떤 클래스인지 분류하는 태스크
- Object Detection ; 이미지의 모든 사물의 위치를 찾고 사물이 어떤 클래스인지 분류하는 태스크
- Segmentation ; 이미지의 모든 픽셀별로 클래스 분류하는 태스크
- Super Resolution ; 고화질 이미지 생성
- Image Generation ; 이미지 생성
<특징>
- RGB; 255,255,255
- type : png, jpg, mp4, etc.
- preprocessing library: cv2, scikit-image, pillow
Natural Language Processing (sentence → token → one-hot vector → tensor (embedded vector)
- Text Classification ; 스팸 메일 분류, 감성 분석 (긍정, 부정), 의도 분석 (질문, 명령, etc.)
- Machine Translation ; 기계 번역
- Text Summarization ; 문서 요약
- Open-Domain Question Answering ; 대량의 문서에서 주어진 질문에 대한 답변
- Visual Question Answering ; 이미지를 보고 질문에 대한 답변
- image captioning ; 이미지를 보고 캡션 생성
- Natural Language Generation ; 상대가 한 말에 대한 대답 생성 (챗봇)
- Natural Language Understanding ; 상대가 한 말에 대한 의도 분류 (챗봇)
<특징>
- type : string
- preprocessing library (not necessary) : nltk, spacy, gensim etc.
Audio & Speech(audio → spectogram → tensor)
- Voice Conversion ; 음성 합성
- Speech Recognition ; 음성 인식
- language identification ; 언어 식별
- music generation ; 음악 생성
- audio classifcation ; 음성 분류
오디오를 컴퓨터가 이해할 수 있는 spectogram으로 변환 (ex. FFT)
spectogram을 이미지나 sequence data로 처리하여 텐서로 변환
- type : wav, mp3 etc.
- preprocessing library : librosa
Others
- recommend system : 유튜브나 넷플릭스 같은 개인화 추천
- time-series prediction : 시계열 데이터에서의 수요예측
- GNN : Graph에서의 Node Classification, Link Prediction etc.
- Games : 강화학습으로 게임봇 학습 (알파고)
- Knowledge tracing : 문제 푸는 기록을 통해 사람의 수준 파악 (산타토익)
- Text2Image 등이 요즘 핫하다.
본인은 아직 능력이 많이 없다. 정확히는 그냥 없다. 가장 재밌었던 모델인 Object Detection, 나의 첫 프로젝트인 Generation모델, 작사모델을 만들고 싶어 공부해본 NLP, 음악이 좋아 오디오와 스피치 모델, 나아가 꼭 한번은 공부해보리라 다짐한 추천시스템, 요즘 핫한 모델인 T2I 등 공부해보고 싶은건 많으나 모델공부, 수학공부, 나아가 구현까지 가려면 얼마나 걸릴지 감도 안잡히고 벌써부터 어렵다. 하지만 개발자로서의 능력을 갈고 닦아 언젠가는 ml모델까지 구현할 수 있는 수준이 되길 바라며 하루하루 열심히 살거다. 갑자기 포부지만 여튼 그러함.