뒤로
권예영
권예영 ·

지능적 훈련 데이터

출처: 라온피플 아카데미 블로그

image.png

위 그림은 왼쪽의 기 확보된 데이터를 반시계 방향으로 15도 회전하여 얻은 데이터이다.
이렇게 affine transform(기하학적 변환)을 거치고 나면,
다양한 데이터를 얻을 수 있다.
Affine transform은 아래 그림과 같은 4가지 연산이 있으며,
이것들을 조합하면 많은 훈련 데이터를 확보할 수가 있다.

image.png

  • 이동(Translation): 이미지를 특정 방향으로 평행 이동.

  • 스케일링(Scaling): 이미지를 축소하거나 확대.

  • 회전(Rotation): 이미지를 특정 각도로 회전.

  • 기울이기(Shearing): 이미지를 비대칭으로 변형.

② Elastic Distortion을 이용한 지능적 훈련 데이터 생성.

마이크로소프트 社에서는 효과적인 훈련 데이터 생성을 위해 "elastic distortion"이라는 방법을 개발하였고 특히 출원을 하였다.

Elastic distortion이란 위 그림의 affine transform과 같은 단순한 변형이 아니라, 아래 그림처럼 다양한 방향으로의 displacement vector를 만들어내고 그것을 통해 좀 더 복잡한 형태의 훈련 데이터를 만들어 낼 수 있게 되었으며, 필기체 인식에 유용한 훈련 데이터 집합이 될 것이라는 것을 자명하다.

image.png

"Displacement vector"를 쉽게 설명하자면, 어떤 물체나 점이 원래 위치에서 다른 위치로 '얼마나' 그리고 '어느 방향으로' 이동했는지를 나타내는 벡터입니다. 예시를 통해 구체적으로 설명드리겠습니다.

예시 1: 간단한 이동

  1. 원래 점의 좌표가 (2, 3)이라고 가정합니다.

  2. 이 점에 displacement vector (3, 4)를 적용하면, 이 점은 새로운 좌표 (5, 7)로 이동합니다.

    • 여기서 (3, 4)는 변화량을 의미합니다.

    • 즉, x축으로 3만큼, y축으로 4만큼 이동했다는 뜻입니다.

이것이 displacement vector의 기본적인 개념입니다. 벡터는 두 가지 중요한 정보를 제공합니다:

  1. 방향: x축과 y축으로 각각 어떻게 이동했는지.

  2. 크기: 얼마나 이동했는지.

예시 2: Elastic Distortion에서의 displacement vector

Elastic Distortion에서는 이미지를 더 복잡하게 변형하기 위해 이런 displacement vector를 다양한 방향과 크기로 사용합니다. 단순히 이미지를 전체적으로 회전하거나 크기를 조절하는 것이 아니라, 이미지의 여러 부분을 각기 다른 방식으로 이동시키는 것입니다.

예를 들어:

  1. 이미지에 있는 글자의 한 부분은 오른쪽 위로 약간 이동시키고,

  2. 글자의 다른 부분은 왼쪽 아래로 이동시키는 식입니다.

이러한 변형은 displacement vector가 각 부분에 어떻게 적용되느냐에 따라 결정됩니다. 결과적으로 이미지를 복잡하게 비틀거나 늘리면서, 원래 형태와 유사한 변형을 만들어냅니다. 이를 통해 더 많은 훈련 데이터를 만들어 인공지능이 다양한 패턴을 인식할 수 있도록 도와줍니다.

이 방식은 특히 손글씨 인식 같은 데서 유용한데, 사람이 쓴 글씨는 같은 글자라도 모양이 조금씩 다르기 때문입니다. Elastic Distortion은 이를 흉내 내서 다양한 변형된 데이터를 생성하고, 인공지능이 그 변형을 더 잘 이해할 수 있도록 훈련시킵니다.

요약:

  • Displacement vector는 물체나 점을 이동시키는 방향과 크기를 나타내는 벡터입니다.

  • Elastic Distortion은 이미지의 각 부분을 각각 다른 방향과 크기로 이동시키기 위해 displacement vector를 사용하여, 이미지의 복잡한 변형을 만들어냅니다.

√ 기타 분야에서의 지능적 훈련 데이터 만들기

음성 인식의 경우에도 비슷하게 다양한 훈련 데이터를 만들어 낼 수 있다.
가령, 잡음이 없는 상태에서 녹음을 한 뒤에,
다양한 배경 잡음과의 합성을 통해,
다양한 훈련 데이터 집합을 만들어 낼 수 있다.

또한 속도를 빠르게 혹은 느리게 조절하는 방법과 위 방법과의 조합으로
역시 많은 훈련 데이터 집합을 얻어낼 수가 있다.

학습에서 좋은 결과를 얻으려면 대표성을 갖는,
전문적인 용어로 orthogonal한 벡터 집합을 얻는 것이 중요하며,
환경을 잘 이해하고 있다면, 적응 환경에 맞게 지능적인 방법으로
훈련 데이터를 획득하는 것 역시 효율적임을 알 수 있다.

  • Orthogonal한 벡터 집합을 얻는 것이 중요하다: 다양한, 중복되지 않는 데이터가 있어야 학습이 잘 된다.

  • 환경을 잘 이해하고 맞춤형 데이터를 수집하는 것이 효율적이다: 모델이 사용될 실제 환경을 잘 파악하고, 그 환경에 맞는 데이터를 준비하면 모델의 성능을 높일 수 있다.

결론적으로, 이 문장은 다양한 데이터를 수집하고, 모델이 작동할 환경을 잘 고려한 훈련 데이터를 준비하는 것이 성공적인 학습에 중요하다는 의미입니다.

3

댓글

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.