오늘은 딥러닝의 기술을 큰 카테고리로 분류해 볼 것이다.
AI는 크게 데이터, 학습방식, 태스크 관점으로 구분이 가능하다.
프로그램은 특정 입력을 특정 출력이 나오도록 하는 연산의 집합 -> 입출력이 모두 숫자
Data = 정형,이미지/동영상, 텍스트, 음성
학습방식 = 지도학습, 비지도학습, 강화학습
태스크 = 인식, 생성
학습방식에 의한 구분
`지도학습(Supervised Learning)`: 라벨링 된 데이터를 통한 학습, 회귀와 분류 태스크
`비지도학습(Unsupervised Learining)`: 라벨링 되지 않은 데이터, 피드백을 진행 x, 숨은 패턴을 찾음
`강화학습(Reinforcement Learning)`: 라벨링 되지 않은 데이터, 지연 피드백, 보상 신호
지도학습
- 데이터는 입력데이터와 정답데이터로 구성되며, 정답데이터를 확보하는 작업을 `Labeling(라벨링)` 혹은 `어노테이션(Annotation)`이라고 부른다.
- 데이터는 모델학습을 위한 데이터와 평가를 위한 데이터로 구분하여 사용된다.
태스크
분류
`분류(Classification)`는 미리 정의된 클래스들 중 입력이 어느 클래스에 해당하는지 맞추는 태스크.
결괏값은 클래스 종류 중 하나이므로, 양수의 정수값으로 보통 표현한다.
회귀
`회귀(Regression)`은 입력데이터에 대한 실수 혹은 실수의 집합(벡터)을 출력(벡터)으로 맵핑해 주는 태스크
분류+회귀
Object Detection(객체 검출) 등과 같은 작업은 분류와 회귀를 동시에 진행함.
라벨링 노이즈
지도학습에서 중요한 것은 데이터의 품질이고, `라벨링 노이즈(Labeling Noise)`에 따라 성능이 좌지우지됨.
이때 라벨링 노이즈란, 라벨링 결과에 대한 노이즈나 라벨링 작업에 대한 일관되지 않음의 정도를 의미한다.
적고 품질이 좋은 데이터라고 무조건 좋은 것은 아님, 일반화되지 않은 데이터일 수 있음.
비지도학습
- 특정 입력에 대한 정답을 알리지 않고 학습시키는 방법
- 비지도 학습으로 학습된 모델은 차원 축소(Dimension Reduction) 혹은 클러스터링(Clustering) 태스크를 수행.
태스크
클러스터링
1. 임의의 두 점을 정하고 클래스를 부여
2. 나머지 점들을 가장 가까운 쪽 클래스로 부여
3. 클래스별 중심점을 다시 계산하고 2번 과정을 반
차원 축소
- 차원축소란, N차원 입력(벡터)을 N> n 차원 출력(벡터)으로 변경하는 태스크.
- 정보 압축(이미지, 오디오 등), 정보 시각화, 정보 특징 추출 등의 작업에 사용된다.
- 대표적인 차원축소 모델로, `Auto-Encoder`이 있는데, [입력->차원축소->n차원 벡터->차원확대->입력] 이런 방식으로 모델을 구성하여 학습시킨다. 이는 따로 정답을 주지는 않지만, 입력값이 정답데이터 형식이 됨.(self-supervised)
이는 입력데이터에 어떠한 정보가 담겨있는지는 정확하게 모르지만, 이를 n차원 벡터로 축소했을 때 적어도 이 n차원 벡터는 원래의 데이터로 복구할 수 있는 정보들을 담고 있다. 학습 후, 차원을 축소하는 부분만 떼어서 사용한다.
강화학습
- 강화학습은 에이전트(Agent), 보상(Reward), 행동(Action), 환경(Environment)으로 구성된다.
ex) 어린아이가 자전거를 배우는 학습을 강화학습에 빗대어 보자.
에이전트 = 어린아이, action = 브레이크 조절, 핸들 조절), 환경(학교 운동장), 보상(넘어지지 않고 이동하는 시간)
이 reward는 우리가 주어진 것이 아니라, 세팅 상 돌아오게 되는 것. 이러한 reward가 최대가 되도록 action을 반복.
에이전트 안에 여러 모델들이 들어갈 수도 있음.
라벨링 된 데이터는 사용하지 않지만, reward라는 보상개념을 사용하여 학습함.
데이터 형식에 의한 구분
다음으로 모델에 들어가는 input data의 형식에 따라서도 구분 지을 수 있다.
우선 크게 2가지로 나뉘는데, `정형데이터`와 `비정형데이터`로 나뉜다.
정형데이터는 표형식으로 나타낼 수 있는 구조화된 데이터 형식을 말하며,
비정형데이터는 이미지/동영상/문자/음성 등의 정형데이터 외의 데이터를 의미한다.
현재까지는 정형데이터는 전통적인 머신러닝을 이용하며, 비정형 데이터는 딥러닝을 이용한 학습방식을 이용한다.
정형 데이터는 일반적인 표로 나타낼 수 있는 데이터이기 때문에 비정형 데이터에 대하여 좀 더 알아보자.
컴퓨터 비전
비정형데이터 중 이미지/동영상들을 input data로 활용하여 task를 수행하는 작업을 `컴퓨터비전(Computer Vision)`이라고 부른다. 아래와 같은 task 등을 이용하여 다양한 분야에서 활용할 수 있다.(지문인식, 번호판 인식, 자율주행 등등)
자연어 처리
다음으로 최근 각광받고 있는 텍스트 데이터를 다루는 작업은 `자연어처리(Natural Language Processing)`이라고 부른다.
기존에는 각 task에 맞는 각 모델을 만들었어야 하나 최근 LLM을 이용하여 처리하고 있음.
음성인식
마지막으로 음성신호등을 다루는 작업으로 `음성인식(Speech Recognition)`이 있다. 이 음성인식 task는 보통 자연어처리 작업과 결합하여 진행된다. 내비게이션, 인공지능 스피커, 회의록 작성 등 다양한 분야에서 이용되고 있다.
태스크 종류에 의한 구분
다음으로 ai가 진행하는 태스크 종류에 의한 구분을 정리해 볼 것이다.
인식과 생성
간단하게 말해서 인식은 비정형 데이터를 입력하여 정보가 출력되는 것을 말하고, 생성은 출력이 비정형 데이터인 경우를 말한다. 이미지를 예시로 들어보면, 이미지 인식과 이미지 생성을 생각해 보면 인식이 잘 되어야 생성을 잘할 수 있게 된다.
최근에는 DALL-E 같은 텍스트를 입력하면 그에 맞게 이미지가 생성되도록 하는 서비스도 나오고 Stable diffusion 등 또한 프롬프트 엔지니어링을 통해 매우 좋은 퀄리티의 이미지를 생성할 수 있는 수준까지 올라왔다.
이러한 이미지 생성 말고도 GPT등에서 텍스트 생성도 다양하게 이뤄지고 있다.
이렇게 학습 방식, 데이터 형식, 태스크 종류에 따른 딥러닝을 구분하면서 각종 용어에 대한 전반적인 큰 틀을 익힐 수 있었다.
'ML & DL > 개념정리' 카테고리의 다른 글
퍼셉트론과 다층 퍼셉트론(MLP) (0) | 2023.12.19 |
---|---|
딥러닝 개요 (0) | 2023.12.19 |
딥러닝 발전 단계 (0) | 2023.12.19 |
Decision Tree:의사결정나무 (0) | 2023.12.13 |
분류와 회귀 (0) | 2023.12.11 |