티스토리 뷰

3.1 데이터형

 

1) 텍스트 데이터

다른 데이터에 비해 쉽게 구할 수 있다. 

데이터의 의미 단위가 개별 단어나 연속하는 단어로 이루어져 있으므로 다른 데이터에 비해 의미 단위를 조각내기도 쉽다. 하지만 단위 데이터를 쉽게 조각내기 힘든 이미지 데이터나 음성 데이터와 달리 의미를 파악하려면 단어 간의 관계를 유추하거나 문법을 분석해야 한다.

의미 단위인 단어의 유형이 너무 다양하다.

2) 수치 데이터

금융 생산 공정, 관측 장치 등으로부터 얻을 수 있다.

많은 양을 쉽게 얻을 수 있지만 항상 노이즈가 섞여 있다. 노이즈가 생기는 이유는 다양하지만 일반적으로는 센서 노이즈와 현상의 무작이성이 원인이다. 따라서 노이즈에 강한 머신러닝 기법을 사용한다.

대부분 숫자 피처를 가지기 때문에 텍스트에 비해 데이터 밀도가 높다.

3) 이미지 데이터

가장 큰 특징은 값(색상, 채도, 명도 등)과 위치에 따라 점의 의미가 달라진다.

각 구역을 픽셀로 쪼개어 표현하게 되는데, 주변 픽셀에 따라 한 픽셀이 갖는 값의 의미가 달라진다. 픽셀 데이터가 근접한 픽셀 데이터와 강한 연관 관계를 가진다.

4) 음성 데이터

수치 데이터와 많은 부분에서 비슷하다.

노이즈가 많으며 특히 시간에 따른 변화가 중요하기 때문에 시간에 따른 변화를 모델링할 수 있는 머신러닝 기법이 사용된다.

5) 복합 데이터

데이터의 특성에 따라 각기 다른 머신러닝 기법을 적용하여 분석을 할 수도 있지만, 연관 관계를 이용해서 여러 기법을 한 번에 학습시키는 방법도 있다.

 

3.2 데이터양과 품질

 

1) 데이터양과 머신러닝의 연관성

** 데이터의 레이블을 얻기 굉장히 어려운 경우

     학습이 잘 되지 않은 부분을 머신러닝 시스템이 사람에게 질문하는 방식으로 학습 성능을 높이는 active learning 기법을 사용하는 것도 좋다.

** 데이터양은 많지만 특정 레이블의 데이터가 부족한 경우

     사람이 레이블을 태깅하는 경우에는 특정 레이블로의 쏠림이 더 많이 발생해서 이 현상이 더 심각해지는 경우가 많다.

     균형이 맞지 않게 되면 손실함수는 데이터가 많은 레이블에 집중하고 나머지를 무시하기 때문에 균형 잡힌 성능을 보여주지 못한다. 이를 해결하려면 데이터양이 많은 레이블에서 임의로 데이터를 누락시켜(과소표집) 데이터의 균형을 맞추거나, 데이터가 적은 경우에도 잘 동작하는 one-shot learning 등의 기법을 사용할 수 있다.

** 데이터양은 많지만 특정 경우의 데이터가 아예 없는 경우

     데이터가 들어오는데 새로운 레이블이 끊임없이 생성되는 경우에는 zero-shot learning 을 사용한다. 대표적인 제로샷러닝 기법으로 다른 형식의 데이터를 이용해서 유사도를 판별하여 새로운 레이블을 학습 데이터 없이 예측하는 방법이 있다.

2) 데이터 품질과 머신러닝의 연관성

** 관측 데이터에 노이즈가 많은 경우

     무작위성이 높아 노이즈가 많은 경우는 수치 데이터에서 굉장히 빈번하게 발생한다. 데이터양이 적으면 성능에 더 큰 영향을 주는데, 이를 해결하기 위해 '간단한 모델'을 사용한다. 간단한 모델은 가정이 강하다. 이 모델은 유연하지 않고 노이즈에 강하기 때문에 이 경우에 적합한 모델이라고 볼 수 있다. 노이즈 자체를 가정에 두는 칼만 필터 같은 모델도 많이 이용된다.

** 레이블이 일정하지 않은 경우

     크라우드 소싱이나 여러 사람이 수작업으로 레이블링하는 경우에는 작업자의 데이터나 레이블에 대한 해석 차이로 레이블이 통일되지 않을 수 있다. 따라서 전처리 작업을 한 후에 머신러닝을 적용한다.

 

3.3 데이터 표준화 : 데이터 척도 및 단위를 변환하여 데이터를 비교하기 쉽게 만드는 방법

 

1) 수치 데이터 표준화

단위가 다른 두 수치 데이터를 직접 비교하는 것은 의미가 없다. 이럴 때는 각 데이터를 평균이 0, 표준편차가 1인 데이터로 바꾼 후 비교하면 효과적이다. 이런 식으로 데이터를 변환하는 방법을 z-점수 표준화라고 한다.

 

z=(x-μ) / σ

x: 수치값, μ: 평균, σ : 표준편차

 

z-점수 표준화 외에 데이터를 변환하는 방법으로 척도화와 벡터 정규화가 있다.

 

척도화(scaling)는 피처의 최댓값 및 최솟값을 이용하여 피처값의 범위를 조정하는 방법이다. x를 원래 데이터의 피처값, x'을 변환된 피처값으로 표기할 때의 척도화를 식으로 나타내면 다음과 같다.

 

x'=(x-min(x)) / (max(x)-min(x))

 

벡터 정규화는 한 데이터가 가지는 피처 백터의 노름이 1이 되게 하는 방법이다. 노름은 벡터의 크기라고 볼 수 있으며, 벡터 x의 노름은 |x|로 표시하고 다음 식으로 계산한다.

 

|x| = (x₁^2 + x₂^2 +··· + xn^2)^1/2

x' = x / |x|

2) 카테고리 데이터 표준화

상품명, 상품 카테고리, 성별과 같은 비수치 데이터 사이의 유사도 계산에는 원-핫 인코딩(혹은 더미코딩) 방식을 이용한다. 원-핫 인코딩이란 카테고리 데이터값을 피처로 만든 후 1 또는 0으로 지정하는 방법이다.

3) 서수 데이터 표준화

카테고리 데이터이면서 카테고리에 순서가 있는 데이터형을 서수ordinary 데이터라고 한다.

 

(t-1/2) / M, i=1,2,···,M

t: 카테고리, M: 가능한 카테고리

위의 식을 이용하여 0과 1 사이의 값으로 표준화한다. 

 

3.4 문제 유형

 

1) 회귀 문제

회귀는 간단히 말해 입력을 받아서 가장 적합한 숫자값을 예측하는 문제이다. 

회귀를 가장 기본적인 문제로 보는 이유는 출력된 결과를 해석하는 방식에 따라 여러 가지 문제를 풀 수 있기 때문이다.

2) 분류 문제

분류는 회귀만큼이나 기본적인 머신러닝 문제이다. 회귀 기법으로 분류 문제를 풀 수도 있지만, 보통은 분류에 해당하는 손실함수를 직접 최적화해서 푸는 방법을 많이 사용한다.

여러 가지 항목에서 하나를 고르는 문제를 멀티 클래스 분류라고 부르고, 복수를 고르는 문제를 멀티 레이블 분류라고 부른다.

3) 군집화 문제

군집화는 비슷한 성격의 데이터를 묶는 머신러닝 문제이다. 물론 각각의 입력을 받아 출력으로 항목(레이블)을 예측하는 분류 문제로 볼 수도 있지만, 가장 큰 차이는 항목이 주어지는 것이 아니라 데이터에 내재된 분류를 찾아내야 한다는 점이다. 즉, 받은 입력을 비슷한 성격별로 묶어야 한다.

현재 주어진 데이터를 분석하는 데 사용한다.

가장 중요하게 여기는 것은 데이터 유사도이다. 이 유사도를 어떻게 정의하느냐에 따라 군집화의 결과가 크게 달라진다.

종종 입력을 간추리는 용도로도 사용된다.

4) 표현형 학습(임베딩학습)

풀고자 하는 문제에 적합한 표현형을 데이터로부터 추출하는 것이다.

** 표현형과 데이터로부터 직접적으로 추출하는 피처의 차이

     1. 표현형은 피처보다 훨씬 간략합니다(표현형의 차원이 훨씬 더 낮습니다).

     2. 피처는 높은 차원을 가지는 경우가 많기 때문에 많은 부분이 0으로 차있습니다(희박하다고 표현한다). 표현형은 훨씬 낮은 차원으로서 데이터를 잘 설명해야 하기 때문에 밀집도가 높다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함