본문 바로가기
  • 학습 길잡이 기타

    행렬과 벡터, 단어의 관계를 푸는 데도 '역할'

    컴퓨터가 인간의 언어를 이해하려면 단어와 문장을 수치로 표현하는 과정이 필요합니다. 이를 ‘임베딩’이라고 합니다. 단어를 벡터라는 수학적 구조로 변환해 컴퓨터가 처리할 수 있도록 만드는 핵심 기술이죠. 임베딩은 단어를 숫자로 바꾸는 것을 넘어 단어 간 의미적 관계와 맥락을 수학적으로 반영하는 것이 특징입니다. 예를 들어 강아지와 고양이는 서로 의미가 비슷하므로 임베딩 벡터 공간에서도 가까운 위치에 놓이며, 반대로 강아지와 자동차는 멀리 떨어져 있게 됩니다.쉽게 사용할 수 있는 임베딩은 어떤 말뭉치에 존재하는 단어들에 각각의 인덱스를 부여해 각 문장에 사용된 단어들의 횟수를 기재하고, 사용되지 않은 단어에는 0을 부여하는 벡터를 생성하는 방식이었습니다. 이러한 접근법이 바로 ‘Bag of Words’입니다. 단어의 빈도를 벡터로 표현함으로써 문서를 단순한 수치적 배열로 전환하는 방식입니다. 말뭉치에서 특정 단어가 몇 번 등장했는지를 나타내는 행렬을 생성하고, 이를 통해 단어 간 상관성을 계산할 수 있습니다. 하지만 이 과정에서 가장 자주 등장하는 단어가 the, is, a 같은 기능어라는 문제가 발견되었습니다. 이러한 단어들은 문장의 구조를 형성하는 데 중요하지만, 말뭉치의 실제 의미를 파악하는 데는 큰 도움이 되지 않았습니다. 이를 해결하기 위해 불용어 처리라는 단계를 도입해 특정 단어를 제외함으로써 임베딩 결과의 유의미성을 높였습니다. 그러나 여전히 이 방법은 단어의 순서나 문맥을 반영하지 못한다는 한계를 지니고 있었습니다.이러한 한계를 극복하기 위해 ‘Word2Vec(워드투벡)’나 ‘GloVe(글로브)’ 같은 임베딩 기법이 등

  • 학습 길잡이 기타

    일상적인 대화, 벡터·행렬로 수치화 가능하죠

    “벡터와 행렬은 컴퓨터에 인간의 언어를 가르치는 언어 교과서다.” 이 말을 들으면 어떤 생각이 드나요? 우리가 일상적으로 사용하는 말과 글이 수학적 구조, 특히 벡터와 행렬로 표현된다는 사실은 다소 놀라울 수 있습니다. 그러나 이는 자연어처리(Natural Language Processing), 즉 컴퓨터가 인간의 언어를 이해하고 소통할 수 있도록 하는 기술의 핵심 원리입니다. 단어와 문장은 단순히 나열된 기호가 아니라, 컴퓨터가 처리할 수 있도록 수학적 데이터로 변환됩니다. 그리고 이 과정에서 벡터와 행렬은 복잡한 언어 체계를 명확하고 효율적으로 다룰 수 있는 강력한 도구로 사용됩니다. 오늘은 자연어처리가 어떻게 수학의 도움으로 발전해왔는지, 그리고 이 과정에서 벡터와 행렬이 어떤 역할을 했는지 살펴보겠습니다.단순히 계산을 빠르게 처리하거나 그림을 그리는 도구로 사용되던 컴퓨터가 점차 인간처럼 언어를 이해하고 소통하는 도구로 발전할 수 있다면 어떨까요? 초기의 연구자들은 컴퓨터에 인간의 언어를 이해시키기 위해 단순한 방법을 사용했습니다. 수많은 ‘if’ 조건문을 작성해 컴퓨터가 특정 단어와 상황에 따라 반응하도록 학습시키려 한 것입니다. 그러나 이 방식은 한계가 명확했습니다. 언어는 복잡하고 유연하며, 단어의 의미는 문맥에 따라 달라지기 때문에 모든 상황을 ‘if’ 조건문으로 정의하는 것은 불가능에 가까웠습니다. 이러한 한계를 극복하기 위해 컴퓨터가 언어를 수학적으로 다루고, 의미를 수치로 표현하는 새로운 접근법이 필요하게 되었습니다.각 사물의 그림에 이름표(label)를 붙여서 컴퓨터가 그림을 배울 수 있도록 하는 방법을 생각해보았습

  • 학습 길잡이 기타

    평면에선 못 만나는 평행선, 구면 위에선 만나

    지난호(제875호)에서는 유클리드기하학에 대해 다루었습니다. 그 과정에서 유클리드기하학은 불필요한 전제를 최소화해 어떤 사실을 설명하고자 할 때 반드시 그러한 전제들로만 혹은 전제들로 이미 증명된 사실만 사용하는 학문적 구조를 지니고 있다고 했습니다. 여담이지만 이러한 학문적 구조는 상당히 세련된 형태이며 과학적 접근법과 함께 논리적 추론을 이끌어내는 아주 중요하고 유용한 사고방식입니다.따라서 꼭 필요한 전제, 즉 기하학의 근원적 사실로서 다른 것들로 증명 불가능하고 논리를 전개하기 위해 당연히 옳다고 여겨지는 것을 지니고 있습니다. 이를 공준이라고 하는데, 유클리드는 총 5개의 공준을 제시합니다.이 공준을 자세히 살펴보면 점, 선, 각 등을 무엇이라고 정의하는 것이 아닙니다. 그 자체가 가지고 있는 성질을 설명하는데, 원문에 가깝게 표현하자면 다음과 같이 쓸 수 있겠습니다.1. 서로 다른 두 점이 주어졌을 때, 그 두 점을 잇는 직선을 그을 수 있다.2. 임의의 선분은 더 연장할 수 있다.3. 서로 다른 두 점 A, B에 대해, 점 A를 중심으로 하고 선분 AB를 한 반지름으로 하는 원을 그릴 수 있다.4. 모든 직각은 서로 같다.5. 임의의 직선이 두 직선과 교차할 때, 교차하는 각의 내각의 합이 두 직각(180도)보다 작을 때, 두 직선을 계속 연장하면 두 각의 합이 두 직각보다 작은 쪽에서 교차한다.위의 사실들조차 인정하지 않고서는 단순한 논리조차 펼 수 없으면서도, 이 5개만으로 충분한 수학적 전개가 가능하다는 사실이 아주 흥미로울 뿐입니다.마지막 공준은 조금 어려울 수 있습니다. 엄밀성 문제가 생길 수도 있지만 약간의 비약을 섞어 조금 이해하기 쉽게 바꿔본다면 &lsq

  • 학습 길잡이 기타

    거리 집회 참석인원은 어떻게 계산할까요?

    2024년 12월, 여의도 국회의사당 앞과 광화문 광장에서 대규모 탄핵 찬반 집회가 열리며 어마어마하게 많은 인파가 몰려들었습니다. 우리나라 사람들은 축제를 함께 즐기거나 부당한 일에 항의하고 집단 의사를 표현하기 위해 거리에 모여 집회를 열고 행진합니다. 우리나라에서는 역사적으로 2002년 한일 월드컵이 열렸을 때 엄청난 규모의 사람들이 붉은 옷을 입고 거리를 가득 메우며 열띤 응원을 펼치면서 세계를 놀라게 했고, 2016년 가을과 겨울에는 서울 광화문을 비롯한 전국 곳곳에서 사람들이 모여 촛불 집회를 열면서 한국 정치사의 흐름을 크게 바꾸어놓았습니다.그런데 인원이 적은 경우나 콘서트장처럼 입구가 제한된 곳은 인원을 정확히 셀 수 있겠지만 거리에 모인 사람들의 수는 어떻게 셀 수 있을까요? 이를 해결할 수 있는 여러 수학적 방법이 있는데, 이 중 페르미 추정이라는 방법에 대해 알아보겠습니다.페르미 추정은 세계 최초로 핵반응로를 만든 이탈리아계 미국인 물리학자인 엔리코 페르미(Enrico Fermi, 1901~1954)의 이름을 딴 것으로, 어떠한 문제에 대해 기초적 지식과 논리적 추론만으로 짧은 시간 안에 대략적인 근삿값을 추정하는 방법입니다.페르미 추정에서 가장 유명한 예는 당시 페르미가 시카고 대학 학생들에게 출제한 ‘시카고의 피아노 조율사 수’라는 황당한 문제입니다. 페르미는 피아노 조율사의 정확한 수를 원한 것이 아니었습니다. 정확한 수는 당시 시카고 지역의 전화번호부를 찾거나 관련 협회 혹은 단체에 문의하면 알 수 있었으니까요. 그러면 페르미는 왜 이러한 문제를 출제했을까요? 페르미는 학생들이 얼마나 과학적이고 합리적으로 사고할 수 있는지를

  • 학습 길잡이 기타

    그림·소리 데이터화에 최적…'딥러닝 혁명' 일으켜

    행렬은 17세기에 이르러 수학자들에 의해 더욱 체계적으로 구조화되었습니다. 당시 수학자들은 행렬을 단순히 숫자의 배열로 인식하는 것을 넘어, 이를 연립방정식과 선형 변환을 처리하는 강력한 도구로 정립하려 했습니다. 이러한 체계화 과정은 19세기 아서 케일리와 제임스 실베스터의 연구로 완성되며 현대적인 행렬 이론의 토대를 마련했습니다.단순 계산을 빠르게 하기 위해 주판 같은 수작업 도구를 사용했고, 17세기에는 블레이즈 파스칼이 덧셈과 뺄셈을 자동으로 처리할 수 있는 계산기를 발명했습니다. 이후 고트프리트 빌헬름 라이프니츠는 곱셈과 나눗셈까지 가능한 기계를 개발하며 계산 도구를 한 단계 발전시켰습니다.19세기에는 찰스 배비지가 기계적으로 수학적 계산을 수행하고, 조건문과 반복문을 활용해 프로그래밍이 가능한 기계를 구상했습니다.1945년에 개발된 ENIAC은 데이터를 처리하기 위해 이진법을 사용했는데, 0과 1이라는 단순한 입력 체계가 전자회로 설계를 단순화하고 연산을 빠르게 처리할 수 있게 했습니다. 이후 컴퓨터는 더 작은 크기와 강력한 연산 능력을 갖추기 위해 발전했으며, 1950년대 트랜지스터의 발명과 1960년대 집적회로(IC)의 개발로 컴퓨터는 빠른 연산과 복잡한 데이터를 처리할 수 있게 되었습니다.행렬은 데이터를 직사각형 배열로 정리해 복잡한 문제를 단순화하는 데 유용했으며, 이를 기반으로 프로그래밍 언어를 좀 더 쉽게 설계할 수 있었습니다. 특히 1950~1960년대에는 포트란(Fortran) 같은 고급 프로그래밍 언어를 개발함으로써 행렬 연산을 자동화하고 복잡한 계산을 간단한 명령으로 구현할 수 있게 되었습니다. 이러한 언어는 행렬 연산을 간편하게

  • 학습 길잡이 기타

    기하학적 성질을 논리적 구조로 만든 최초 수학체계

    수학에 어느 정도 관심 있는 학생이라면 유클리드(Euclid) 혹은 에우클레이데스라는 이름을 알고 있으리라 생각합니다. 아무래도 우리나라 교육과정에서 다루는 모든 형태의 기하학이 유클리드기하학이기도 하고, 피타고라스의 정리를 증명하는 방법 중 유클리드가 제시한 방법을 교과서를 통해 배우기 때문이기도 합니다.유클리드기하학이란 유클리드가 구축한 수학 체계로, 알려져 있던 기하학적 성질을 논리적 구조로 만들어낸 최초의 수학 체계라고 알려져 있습니다.제 생각에 유클리드기하학의 가장 큰 매력이자 힘은 바로 ‘가정의 최소화’에 있다고 생각합니다. 구질구질한 설명과 없어도 되는 부가적 요소를 모두 없애고 단순하고 명확한 것을 추구하는 것이죠.예를 들어봅시다. 이등변삼각형이란 무엇일까요? 세 변의 길이 중 두 변의 길이가 같은 삼각형을 말합니다. 그런데 모든 이등변삼각형은 두 밑각의 크기가 같습니다. 이는 어떻게 그리더라도 항상 성립하는 사실입니다.이때 수학은 “두 변의 길이가 같다”와 “두 밑각의 크기가 같다”는 두 가지 사실을 두고 “원래 이등변삼각형은 그런 거야”라는 식의 접근을 최대한 하지 않으려 노력합니다. 새로운 사실이 나올 때마다 땜질하듯 덧붙이다가는 모순이 생기기 쉽고 예외인 경우가 넘쳐나 논리적이라고 보기 어렵기 때문이죠.“두 밑각의 크기가 같다”는 사실은 “두 변의 길이가 같다”는 사실에 종속되어 있습니다. 후자에서 시작해서 전자의 사실을 논증을 통해 끌어낼 수 있다는 이야기입니다. 즉 “두 변의 길이가 같다”는 사실만 있으면 나머지는 따라오는 것이기에, 이 사실만 서로

  • 학습 길잡이 기타

    17세기 등장…수의 배열 통해 복잡한 계산 처리

    2022년 수학 교육과정에서 주목할 이슈 중 하나는 행렬이 다시 포함되었다는 점입니다. 한동안 제외됐던 행렬이 교육과정에 재도입된 데는 분명한 이유가 있을 것입니다. 오늘은 행렬이 처음 등장하게 된 배경부터 최근 다시 중요해진 역사적 이유까지 살펴보고자 합니다.미지수의 개념이 도입되기 전, 사람들은 방정식을 풀기 위해 숫자의 나열을 활용한 방법을 사용했습니다. 이때 숫자들을 배열해 문제를 푸는 과정에서 자연스럽게 행렬의 개념이 도입되었는데, 어떻게 보면 이것이 행렬의 시작점이라고 할 수 있습니다. 수의 나열을 통해 복잡한 계산을 체계적으로 처리할 수 있었고, 방정식의 해를 구하는 데 큰 도움이 되었습니다.행렬의 개념도 17세기에 등장하게 됩니다. 당시 수학자들은 방정식을 풀고 연립방정식을 해석하는 과정에서 더 효율적인 방법이 필요하다고 느꼈습니다. 특히 여러 변수와 방정식을 한꺼번에 해결하려면 단순한 수의 나열만으로는 한계가 있었기에 숫자나 값을 배열해 체계적으로 연산할 수 있는 도구가 필요했습니다. 이를 위해 숫자들을 행과 열로 정리해놓은 형태가 바로 행렬입니다. 행렬은 수의 배열을 통해 복잡한 계산을 간단하게 처리할 수 있는 방식으로, 선형 변환이나 선형 연립방정식의 해를 구하는 데 유용했습니다. 이처럼 행렬은 단순한 계산을 넘어 여러 방정식을 동시에 풀기 위한 효율적 도구로 자리 잡았고, 이후 다양한 수학적·과학적 문제를 해결하는 데 필수 개념으로 발전했습니다.행렬의 큰 장점 중 하나는 복잡한 연산을 쉽게 처리할 수 있다는 점입니다. 숫자들을 정해진 형식으로 정리해 나열하면, 여러 방정식을 한꺼번에 계산하거나 다양