들어가며
첫 글에서 우리는 로보틱스나 컴퓨터 비전에서 변환(회전, 이동)이나 대칭성을 체계적으로 다루기 위해 기하학적이고 수학적인 언어가 필요하다는 사실을 살펴보았습니다. 이제 그 기본기가 되는 **그룹(Group)**이라는 개념을 깊이 있게 이해해봅시다. 그룹 이론은 대칭성(symmetry), 변환(Transformation), 그리고 이러한 변환들의 구조를 파악하는 강력한 도구로, 앞으로 우리가 만날 Lie Group의 토대가 됩니다.
이 글에서는 그룹이 무엇인지, 왜 유용한지, 그리고 로보틱스와 컴퓨터 비전 분야에서 그룹 개념이 어떤 식으로 쓰이는지를 살펴보겠습니다.
1. 왜 ‘그룹’을 배우는가?
변환(Transformation)과 대칭성(Symmetry)
우리 주변에는 수많은 변환이 존재합니다. 예를 들어,
- 로봇 팔 끝단의 자세를 표현할 때: 특정한 회전과 이동 변환을 연달아 적용해 원하는 위치로 팔을 움직입니다.
- 카메라로 찍은 이미지: 다른 각도에서 본 장면을 회전·이동 변환을 통해 일관성 있게 비교하거나, 여러 장면을 하나의 3D 구조로 재구성할 때, 변환에 대한 깊은 이해가 필수적입니다.
이때 필요한 것은 바로 ‘변환들을 조직적으로 다루는 언어’입니다. 변환을 단순히 “적용한다”는 행위에서 멈추지 않고, 변환들끼리 조합하거나, 역으로 되돌리는 과정, 그리고 변환들의 집합이 가진 대칭적 성질을 수학적으로 정돈하기 위해 그룹 이론이 등장합니다.
변환을 바라보는 수학적 관점
단순히 “90도 회전하고, 1미터 이동했다”는 이야기만으로는 부족합니다. 이를 “모든 회전·이동 변환을 하나의 집합으로 모으고, 이들 사이에 연산(합성)을 정의하며, 이 연산이 만족하는 성질을 연구하는” 과정이 필요합니다. 그렇게 하면 복잡한 변환 문제를 정교하고 공통된 언어로 표현할 수 있게 됩니다.
2. 그룹(Group)의 수학적 정의
그룹은 집합과 그 위에 정의된 이항연산(두 원소를 합성하는 연산)의 쌍으로 정의됩니다. 다음 네 가지 조건을 만족할 때, 우리는 이 구조를 그룹이라고 합니다.
- 폐쇄성(Closure):
집합 \(G\)의 임의의 원소 \(a,b\)에 대해, 연산 \(\cdot\)을 적용한 결과 \(a \cdot b\)가 여전히 \(G\) 안에 있어야 합니다.
의미: 변환들을 연달아 적용해도 그룹 밖으로 튀어나가지 않고, 해당 변환 집합 안에서 완결적으로 유지된다는 의미입니다. - 결합법칙(Associativity):
모든 \(a,b,c \in G\)에 대해 \((a \cdot b)\cdot c = a\cdot (b \cdot c)\)가 성립합니다.
의미: 변환을 합성할 때 괄호를 치는 방식이 결과에 영향 주지 않으므로, 연산 순서를 다루기 편해집니다. - 항등원(Identity element)의 존재:∗의미:∗“아무변화도일으키지않는변환”이존재한다는뜻입니다.변환세계에서이원소는“기준점”역할을합니다.예컨대“0도회전”이항등원일수있습니다.*의미:* “아무 변화도 일으키지 않는 변환”이 존재한다는 뜻입니다. 변환 세계에서 이 원소는 “기준점” 역할을 합니다. 예컨대 “0도 회전”이 항등원일 수 있습니다.
- 역원(Inverse element)의 존재:
각 \(a \in G\)마다 \(a^{-1}\)라는 역원이 있어서 \(a \cdot a^{-1} = a^{-1}\cdot a = e\)를 만족합니다.
의미: 변환을 거꾸로 되돌릴 수 있는 변환이 항상 존재한다는 뜻입니다. 한 번 변환했으면 반드시 원래 상태로 복귀할 수 있습니다.
이 네 가지 조건은 추상적으로 보이지만, 실은 다양한 상황에서 대칭성과 변환을 다루는 데 핵심적입니다.
3. 직관적인 예시로 보는 그룹
(1) 정수 덧셈 그룹 \((\mathbb{Z}, +)\)
- 원소: 모든 정수
- 연산: 덧셈
- 항등원: 0 (아무것도 더하지 않으면 원래 정수 유지)
- 역원: 각 정수 a에 대해 -a가 역원 (a + (-a) = 0)
- 결합법칙: (1+2)+3 = 1+(2+3)
- 이 구조는 ‘변환’이라고 부르기엔 느낌이 덜하지만, 기초적 예로 그룹 정의를 이해하는 데 유용합니다.
(2) 도형 회전 변환의 그룹
정사각형을 0°, 90°, 180°, 270° 회전하는 변환만 모아봅시다.
- 원소: {0°회전, 90°회전, 180°회전, 270°회전}
- 항등원: 0°회전(아무것도 안 하는 변환)
- 역원: 90°회전의 역원은 270°회전(연달아 적용하면 360°, 즉 원래 상태)
- 결합법칙: 회전 변환을 어떤 순서로 합성해도 결과는 동일.
- 이 예시는 “변환” 그 자체를 원소로 하는 그룹의 대표적 사례입니다. 대칭 변환들의 집합이 군 구조를 이룬다는 점을 보여줍니다.
여기서 우리는 “대칭”이라는 개념을 더 넓게 이해할 수 있습니다. 변환군(Transformation Group)은 대상을 특정 방식으로 움직여도 본질이 변하지 않음을 나타내며, 이는 기하학적·공학적 문제에서 매우 중요한 역할을 합니다.
4. 로보틱스와 컴퓨터 비전에서 그룹 개념의 실제 의미
로보틱스 응용
- 로봇 팔 끝단 효과기(End-Effector)의 포즈(위치+방향)를 연달아 변환해 최종 목표 위치로 이동시키는 과정은 변환들을 합성하는 문제입니다. 이 변환들의 집합은 실제로 군을 이룹니다.
- 로보틱스에서 흔히 쓰는 SE(3) 변환(3D 회전+이동)은 Lie Group의 한 예인데, SE(3)를 제대로 이해하려면 먼저 추상적 그룹 개념을 소화해야 합니다.
컴퓨터 비전 응용
- 카메라가 본 장면을 다른 각도에서 본 장면과 맞추기(Image Registration) 위해 회전·이동 변환을 적용합니다. 이런 변환 집합은 곧 하나의 군이 되며, 이를 효율적으로 다루면 이미지 정합, 카메라 캘리브레이션, SLAM 등 다양한 문제를 구조적으로 풀 수 있습니다.
- 예를 들어, 두 카메라 사이의 상대적 위치를 변화시키는 변환들의 모임은 군 구조를 갖고, 이를 최적화 알고리즘에서 안정적으로 다루기 위해 군 이론이 바탕이 됩니다.
결국 그룹은 단순히 ‘추상적 수학 개념’이 아닌, 변환 문제를 이해하고 다루는 ‘언어’입니다. 이 언어를 익혀두면, 앞으로 Lie Group(군+매니폴드)이라는 더 큰 틀에서 회전·이동, 나아가 복잡한 기하변환을 심도 있게 분석할 수 있습니다.
5. 그룹 이론에서 Lie Group으로 나아가기 위한 관문
이 글은 그룹이 왜 중요한지, 그리고 그룹이라는 개념이 어떤 역할을 하는지에 초점을 맞추었습니다. 다음 단계로는 매니폴드(Manifold) 개념을 도입하는데, 이는 “연속적이고 미분 가능한 표면”을 의미합니다.
- 그룹: 대칭적 변환들의 구조를 다루는 추상적 틀
- 매니폴드: 부드러운 곡면이나 고차원 표면에 대한 미분 가능한 구조
- Lie Group: 그룹과 매니폴드가 결합된 존재로, 연속적 변환군을 미분 기하학적으로 다루는 핵심 개념
한 마디로 정리하면, 그룹을 알면 변환의 대칭성과 합성에 대한 추상적 이해를 갖추게 되고, 여기에 매니폴드 개념을 더하면 연속적이고 매끄러운 변환을 다룰 수 있게 되며, 이 둘이 합쳐진 것이 바로 우리가 궁극적으로 다룰 Lie Group입니다.
6. 파이썬 코드로 간단히 확인해보기: 모듈러 연산의 그룹성
아래는 예제로, \(\mathbb{Z}_5 = {0,1,2,3,4}\)에서 덧셈을 5로 나눈 나머지 연산으로 정의할 때 이것이 그룹임을 확인하는 코드입니다. 이 예시는 실제 로보틱스나 비전 문제와는 직접적 관련이 없지만, 그룹의 형식적 조건을 만족하는지 점검하는 간단한 모델로 볼 수 있습니다.
modulus = 5
elements = list(range(modulus))
def add_mod(a, b, m=modulus):
return (a + b) % m
# 폐쇄성
closure = all(add_mod(a,b) in elements for a in elements for b in elements)
# 항등원: 0 가정
identity = 0
identity_check = all(add_mod(a, identity)==a and add_mod(identity, a)==a for a in elements)
# 역원 존재 여부
inverses_exist = True
for a in elements:
if not any(add_mod(a,x)==identity for x in elements):
inverses_exist = False
break
# 결합법칙
associativity = True
for a in elements:
for b in elements:
for c in elements:
if add_mod(add_mod(a,b), c) != add_mod(a, add_mod(b,c)):
associativity = False
break
print("폐쇄성:", closure)
print("항등원 존재:", identity_check)
print("역원 존재:", inverses_exist)
print("결합법칙:", associativity)
결과는 모두 True로, 모듈러 5 덧셈이 그룹임을 확인할 수 있습니다. 비록 단순한 예시이지만, 그룹 조건을 코드로 검증함으로써 추상 정의를 조금 더 현실감 있게 느낄 수 있습니다.
7. 함께 보면 좋은 자료
- 추상대수학 기초: Khan Academy, MIT OCW Algebra 강좌
- 시각적 학습: 3Blue1Brown의 Group Theory 소개 영상은 직관적 이미지로 이해를 돕습니다.
- 실용적 응용: “Modern Robotics”(Kevin M. Lynch & Frank C. Park) - 초기 챕터에서 변환군의 개념을 소개하고, 로봇 제어와 계획 문제로 확장하는 과정을 확인할 수 있습니다.
- Computer Vision 측면: Szeliski의 “Computer Vision: Algorithms and Applications”에서 기하학적 변환 부분을 보면, 카메라 모델과 변환군 개념이 어떤 식으로 실제 문제에 활용되는지 알 수 있습니다.
마무리
이제 우리는 “그룹”이라는 개념을 바탕으로, 대칭적 변환 구조를 이해하는 기초를 쌓았습니다. 다음 단계에서는 매니폴드(Manifold) 개념을 도입해 변환을 연속적이고 미분 가능한 기하학적 구조로 바라보게 됩니다. 이를 통해 단순한 ‘유한한 변환 집합’이 아닌, 부드럽게 변화하는 변환군 즉, Lie Group으로 나아갈 준비를 하게 될 것입니다.
지금까지의 내용은 추상적으로 보일 수 있지만, 이를 튼튼히 이해해두면 이후 SO(3), SE(3) 같은 구체적인 Lie Group을 다룰 때 훨씬 수월합니다. 변환과 대칭을 수학적으로 논리정연하게 파악하는 그룹 개념은, 앞으로의 여정에서 단단한 초석이 될 것입니다.
'수학' 카테고리의 다른 글
[Lie Group 입문] 4편: 군(Group)과 매니폴드(Manifold)의 만남, Lie Group의 정의 (2) | 2024.12.11 |
---|---|
[Lie Group 입문] 3편: 미분가능다양체(Manifold)와의 만남 (0) | 2024.12.11 |
[Lie Group 입문] 1편: 대체 Lie Group(리 그룹)이 뭘까? (0) | 2024.12.11 |