이상엽/ 해석학/ 집합론 복습

집합

  • 현대 수학은 공리 –약속된 명제– 들로부터 논리를 쌓아가는 학문.
  • 수학의 가장 기본이 되는 공리계인 ZFC가 10개의 집합에 대해 서술하고 있음.
  • 대부분의 수학적 대상은 모두 집합으로 정의가 됨.
    • 사칙연산은 함수의 일종이고 함수는 집합으로 정의가 됨.

정의

다음 성질들을 만족시키는 원소 x 들의 모임을 집합이라 한다. (아래는 소박한 정의, 현대적 정의는 공리계가 따로 있음)

  1. 집합에 속하거나 속하지 않거나 둘 중 하나로써 명확하다.
  2. 원소들끼리는 서로 다르다.
  3. 원소들끼리는 순서에 따른 구분이 없으며, 연산이 주어지지 않는다.
  • x 가 집합 X 의 원소이면 x \in X 로 표현하고 원소가 아니면 x \notin X 로 표현한다.
  • 집합 U 의 원소 중에서 명제 P 를 만족시키는 원소로 이루어진 집합 X 를 조건제시법으로 X = \{ x \in U | P(x) \} 라 표현하며, 이때 U 를 전체집합이라 한다.
  • 공집합은 아무런 원소를 가지지 않는 집합이며, 기호로 \phi 라 표현한다.

집합의 연산

합집합

집합 I = \{ 1, 2, ... , n \} 에 대하여 집합들 A_{i} (i \in I) 의 합집합은 (여기서 i 는 첨수라 하고 그 첨수들 모은 집합인 I 를 첨수족이라 한다)

\cup_{i \in I} A_{i} = \{ x | \exists i \in I s.t. x \in A_{i} \}

이고 특히 두 집합 A B 의 합집합을

A \cup B = \{ x | x \in A \vee x \in B \}

라 표현한다.

교집합

집합 I = \{ 1, 2, ... , n \} 에 대하여 집합들 A_{i} (i \in I) 의 교집합은

\cap_{i \in I} A_{i} = \{ x | \forall i \in I s.t. x \in A_{i} \}

이고 특히 두 집합 A B 의 교집합을

A \cap B = \{ x | x \in A \wedge x \in B \}

라 표현한다.

곱집합

집합 I = \{ 1, 2, ... , n \} 에 대하여 집합들 A_{i} (i \in I) 의 곱집합은 (데카르트곱 또는 카테시안곱이라고 한다. 카테시안은 데카르트의 라틴어 표현)

\Pi_{i \in I} A_{i} = \{ (x_{i})_{i \in I} | \forall i \in I s.t. x \in A_{i} \}

  • 여기서 (x_{i})_{i \in I} 는 튜플이라고 한다. 순서쌍이라고도 하는데 순서쌍은 원소가 2개짜리 튜플을 의미.
  • 튜플이란 여러 개 원소를 순서 있게 나열한 것.

이고 특히 두 집합 A B 의 곱집합을

A \times B = \{ (x_{1}, x_{2}) | x_{1} \in A \wedge x_{2} \in B \}

라 표현한다.

차집합

집합 A 에 속하지만 집합 B 에는 속하지 않는 원소의 집합을

A - B = \{ x | x \in A \wedge x \notin B \} = A \cap B^{c}

라 표현하며, A B 의 차집합이라 한다.

전체집합 U 에 대하여 U - A = A^{c} 라 표현하며 A 의 여집합이라 한다.

  • 다음이 성립한다.
    • 드모르간 법칙
      • (\cup_{i \in I} A_{i})^{c} = \cap_{i \in I} A_{i}^{c}
      • (\cap_{i \in I} A_{i})^{c} = \cup_{i \in I} A_{i}^{c}
    • 분배 법칙
      • A \cap (\cup_{i \in I} B_{i}) = \cup_{i \in I} (A \cap B)
      • A \cup (\cap_{i \in I} B_{i}) = \cap_{i \in I} (A \cup B)
      • A \times (B \cap C) = (A \times B) \cap (A \times C)
      • A \times (B \cup C) = (A \times B) \cup (A \times C)
      • A \times (B - C) = (A \times B) - (A \times C)

포함관계

  • 만약 집합 A 에 속하는 모든 원소가 집합 B 의 원소이기도 하면 A \subseteq B 라 표현하며, A B 의 부분집합이라 한다.
  • 만약 A \subseteq B 이면서 동시에 B \subseteq A 이면 A = B 라 표현하며, A B 가 서로 같다고 한다.
  • 만약 A \subseteq B 이면서 A \neq B 이면 A \subset B 라 표현하며, A B 의 진부분집합이라 한다.
  • 집합 A 의 모든 부분집합들의 집합을 P(A) 라 표현하며 A 의 멱집합이라 한다. (P는 Power Set)
  • 집합 기호
    • \mathbb{N} : 모든 자연수의 집합
    • \mathbb{Z} : 모든 정수의 집합
    • \mathbb{Q} : 모든 유리수의 집합
    • \mathbb{R} : 모든 실수의 집합
    • \mathbb{C} : 모든 복수수의 집합

함수

정의

두 집합 X, Y 에 대하여 아래 두 조건을 만족하는 X \times Y 의 부분집합 f 를 함수라 한다. (두 집합의 곱집합의 부분집합이 함수가 됨)

  • \forall x \in X, \exists y \in Y, s.t. (x, y) \in f
    • (모든 x y 값을 갖는다)
  • (x, y_{1}) \in f \wedge (x, y_{2}) \in f \Rightarrow y_{1} = y_{2}
    • (x y 값을 1개만 갖는다)

이때 함수를 f : X \to Y 라 표현하며, (x, y) \in f 이면 y = f(x) 라 표현한다.

  • 집합 A \subseteq X 및 함수 f : X \to Y 에 대하여 f(A) = \{ f(a) | a \in A \} A 의 상(Image)이라 한다.
  • 집합 B \subseteq Y 및 함수 f: : X \to Y 에 대하여 f^{-1}(B) = \{ x \in X | f(x) \in B \} B 의 원상(Pre Image)이라 한다.
  • f : X \to Y 에서 X 를 정의역(Domain) Dom(f) , Y 를 공역(Codomain) f(X) = \{ f(x) | x \in X \} 를 치역(Range) Rng(f) 라 한다.

함수의 종류

함수 f : X \to Y 에 대하여

  • 전사: Rng(f) = Y
    • (치역 = 공역, 남는 y 가 없다)
  • 단사: x_{1} \neq x_{2} \in X \Rightarrow f(x_{1}) \neq f(x_{2})
    • (y x 를 1개씩 갖는다)
  • 전단사: 전사이고 단사인 함수. 일대일대응이라고도 한다.

  • 1
    • Y 에 남는 값이 있기 때문에 전사가 아님
    • Y 에 2개의 화살을 받는 값이 있으므로 단사가 아님
    • 고로 전사도 단사도 아님
  • 2
    • Y 에 남는 값이 있기 때문에 전사가 아님
    • Y 에 2개의 화살을 받는 값이 없으므로 단사가 됨
    • 고로 단사지만 전사는 아님. 단사 함수.
  • 3
    • Y 에 남는 값이 없기 때문에 전사가 됨
    • Y 에 2개의 화살을 받는 값이 있으므로 단사가 아님
    • 고로 전사지만 단사는 아님. 전사 함수
  • 4
    • Y 에 남는 값이 없기 때문에 전사가 됨
    • Y 에 2개의 화살을 받는 값이 없으므로 단사가 됨
    • 고로 전단사(일대일 대응) 함수가 됨.

여러 가지 함수

  • 항등함수: \forall x \in X, I_{X}(x) = x
    • (자기 자신이 그대로 나오는 함수)
  • 상수함수: \exists y_{0} \in Y, f(X) = y_{0}
    • (어떠한 값을 넣어도 항상 상수가 나옴)
  • 역함수: 전단사인 f : X \to Y 에 대해 f^{-1} : Y \to X
    • (함수를 뒤집은 함수인데, 전단사여야만 역함수가 가능)
  • 합성함수: 두 함수 f : X \to Y, g : Y \to Z \forall x \in X, (g \circ f)(x) = g(f(x))

집합의 크기

정의

  • 집합의 크기란 집합의 원소 개수에 대한 척도이다.
  • 두 집합 X, Y 에 대하여 전단사함수 f : X \to Y 가 존재하면 X Y 는 동등이며, X \approx Y 라 표현한다.
  • 집합 X 의 적당한 진부분집합 Y X 와 동등하면 X 는 무한집합이다.
  • 무한집합이 아닌 집합을 유한집합이라 한다.
  • 집합 X X \approx \mathbb{N} 일 때 X 를 가부번집합이라 한다.
  • 유한집합이나 가부번집합을 가산집합이라 한다.
  • 가부번집합이 아닌 무한집합을 비가산집합이라 한다.

여러 가지 정리

  • \mathbb{N} \approx \mathbb{Z} \approx \mathbb{Q}
  • \mathbb{R} 는 비가부번집합이다.
  • \mathbb{R} \approx \mathbb{R} - \mathbb{Q} \approx \mathbb{C}
  • 칸토어의 정리: 공집합이 아닌 임의의 집합 X 에 대하여 P(X) 의 크기는 X 의 크기보다 크다.
  • P(\mathbb{N}) \approx \mathbb{R}

순서관계

  • (기본적인 집합에 연산구조, 순서구조, 위상구조 등을 부여할 수 있음)

순서집합

아래 조건들을 만족하는 집합 X 위의 이항 관계 \leq 를 부분순서관계라 한다.

  1. \forall x \in X, x \leq x
    • (반사적, reflexive)
  2. \forall x, y, z \in X, x \leq y \leq z \Rightarrow x \leq z
    • (추이적, transitive)
  3. \forall x, y \in X, x \leq y \leq x \Rightarrow x = y
    • (반대칭적, antisymmetric)
  • 부분순서관계 \leq 를 갖춘 집합을 부분순서집합이라 한다.
  • 부분순서집합 X 의 어떤 두 원소 x, y x \leq y \vee y \leq x 을 만족하면 x y 는 비교가능하다고 한다.
  • 부분순서집합 X 의 임의의 두 원소가 비교가능하면 X 를 전순서집합이라 한다.

상(하)계, 극대(소), 최대(소)

부분순서집합 X 의 부분집합 A 에 대하여

  • \forall a \in A, a \leq x 를 만족하는 x \in X A 의 상계(upper bound)라 한다.
  • 상계가 존재하는 A 를 ‘위로 유계(bounded)이다’라고 한다.
  • 위로 유계이면서 동시에 아래로 유계인 집합을 유계집합이라 한다.
  • a > m a \in A 가 존재하지 않을 때 m \in A A 의 극대원소라 한다.
  • \forall a \in A, a \leq g g \in A A 의 최대원소라 한다.

각 항목의 부등호 방향을 바꿔주면 각각 하계(lower bound), 아래로 유계, 유계집합, 극소원소, 최소원소의 정의가 된다.

  • 집합 A의
    • 상계: l, m, n
    • 최소상계: l
    • 하계: a, d, e, f
    • 최대하계: 없음
    • 극대: j, k
    • 극소: g
    • 최대: 없음
    • 최소: g

2020

권력이란 본질적으로 다른 사람을 부릴 수 있는 힘이다.
이는 인간이 느낄 수 있는 가장 큰 즐거움 가운데 하나이다.
— 1월 24일

연속적이지 않은 변화는 수평적인 변화와 수직적인 변화로 구분해 볼 수 있다.
수평적인 변화는 현재 상태는 유지한채 팽창이 이루어지는 것이고, 수직적인 변화는 상태 자체가 변하는 것으로 계단식 변화, 도약(jump)라 할 수 있다. 전자는 막힌 길이 터널을 통해 뚫린 것이 예이고, 후자는 물이 얼음이 되거나 수증기가 되는 것이 그 예이다.
수평적인 변화는 돌파구(breakthrough)에 의해 일어나고 수직적인 변화는 상전이(phase transition)에 의해 일어난다.
— 1월 22일

내가 일하는 것만으로는 큰 성취를 할 수 없고, 남들에게 일을 시켜야 큰 성취를 할 수 있다.
— 1월 20일

똑똑하고 불합리한 지시에 따르지 않는 부하들이 많은 리더가 있는 팀이 최고의 성과를 낸다
— 1월 12일

삶의 가장 큰 어려움은 나이가 들어가는만큼 감당해 내야 하는 어려움의 크기도 점점 커진다는 것이다. 삶은 결코 쉬워지지 않으며 점점 더 어려워진다.
— 1월 11일

조직의 모든 구성원이 올바른 사람이 되는 것은 현실적으로 어렵다. 그것은 경쟁 조직도 마찬가지다.
대신 중요한 자리에는 반드시 올바른 사람이 위치해야 한다.
— 1월 5일

사람 사이의 일에 논리적으로 설명이 안되는 부분에는 감정이 개입되어 있다.
— 1월 5일

데이터는 많은 것을 말해주지만, 데이터가 전체의 일부에 대해서만 측정된 것이라면, 그것으로 내릴 수 있는 판단에는 한계가 있다.
— 1월 4일

우리는 구조를 통해 정보가 있는 글과 정보가 없는 글을 구분할 수 있다.
— 1월 3일

앨런 튜링, 지능에 관하여

앨런 튜링, 지능에 관하여

앨런 튜링의 지능에 대한 논문과 강연 등을 정리한 책. 그 유명한 튜링 테스트에서부터 러브 레이스가 기계는 생각할 수 없을 것이다에 대한 반론도 담겨 있고, 체스에 대한 예측 등 시대를 앞서 갔다고 할만큼 놀라운 얘기가 담겨 있다.

다만 튜링은 기계 지능을 통해 인간 지능의 비밀을 풀 수 있을거라는 다소 순진한 믿음을 갖고 생각을 전개하다 보니 인간 지능에 대한 부분에서는 약간 모호하고 허술한 느낌이 들기는 했다. 아무래도 당시에는 뇌에 대한 비밀이 지금보다 훨씬 많았을테니 그럴 수 있다고는 생각 됨.

하지만 역시나 테니스를 잘 치려면 테니스를 훈련해야 하는 것처럼 인간 지능을 이해하려면 뇌를 봐야지 그와 유사한 것으로는 지능에 대해 도달할 수 없음.

개인적으로 요즘 드는 생각은 인간의 지능은 인간 뇌구조의 복잡도 이상 높아질 수 없을 것 같다는 것인데, 뇌구조가 그 위에 구현된 지능 보다 훨씬 복잡하기 때문에 우리의 지능으로는 우리의 뇌를 이해할 수 없지 않을까 하는 것. 우리의 뇌가 돌아가는 것을 이해려면 우리의 뇌보다 훨씬 복잡한 구조를 가진 외계인이 등장해야 이해 가능할 것이라고 추측을 하고 있음. 물론 그러한 논리를 따라가면 외계인은 다시 자기 자신의 뇌에 대해서는 이해하지 못할 것이다. 쉽게 말해 2차원의 정보를 처리하기 위해 3차원의 물리적 구조가 필요하다는 것. –물론 현실 속의 우리는 2차원으로 쪼개진 정보를 조합해서 결국 3차원으로 이해할 수는 있기 때문에 꼭 그렇다고 하기 어려울 수는 있다.

튜링의 예측에 대해서는 놀랄 수 있지만, 튜링 테스트를 통과했다고 정말 지능이있다고 할 수 있는가에 대해서는 논란이있을  있고 –그 순간 사람을 속일 수 있다면 테스트는 통과 할 수 있을 것이다. 애슐리 메디슨이라는 바람 피우는 사이트가 그걸 해내지 않았는가– 지금 보기에는 좀 맥을 잘못 짚은게 아닌가 하는 느낌도 있어서 크게 관심있지 않다면 꼭 읽을 필요는 없지 않을까 싶다.

정상과 비정상의 과학

정상과 비정상의 과학

인간이 가지는 여러가지 정신적인 부분에 대한 뇌과학, 심리학적 탐구를 담은 책. 처음 책 제목과 표지만 보고 통계학에 대한 내용인 줄 알았는데, 사실은 우리의 정신적인 부분에 대해 우리가 비정상이라 받아들일 수 있는 것에 대한 논의를 담고 있었다.

여러 다양한 주제에 대해 꽤나 흥미로운 내용들이 곳곳에 담겨 있어서 참 좋았다. –일본인이라도 갓 태어난 아기는 모든 언어의 발음을 이해할 수 있지만, 자라면서 그 나라 언어의 channel에 맞춰지면서 l과 r 발음이 합쳐져서 그 둘을 구분할 수 없게 된다는 이야기 등–

뇌과학에 관심이 많다면 교양삼아 읽어볼만 하다고 생각 함. 개인적으로도 기회가 되면 책 내용을 따로 정리해 둬야겠다는 생각을 했음.

19.12.15

34·60·78살…인간은 세 번 늙는다

출처 : 네이처 메디신

스탠퍼드대 신경과학자 토니 와이스-코레이 교수는 "이 연구를 시작했을 때 우리는 나이는 점진적으로 먹는 것이기 때문에 노화도 상대적으로 서서히 진행될 것이라고 가정했다"고 말했다. 그런데 결과는 딴판이었다. 단백질 수치로 본 노화 그래프는 선형 곡선이 아닌 세 개의 뚜렷한 꼭지점을 형성했다. 단백질 수치의 급변은 생체 활동 프로그램의 변화를 초래할 가능성이 크다. 연구진은 특히 30대 중반인 34살 무렵에 노화 관련 단백질 수치가 급등하는 걸 보고 매우 놀랐다고 한다. 

연구진은 그러나 왜 이런 변화가 일어나는지는 알 수 없었다. 단백질 수치의 변화가 노화의 결과인지, 아니면 그 원인인지도 불분명하다. 와이스-코레이 교수는 다만 "혈액 속 단백질 대부분은 다른 장기 조직에서 오는 것"이라는 점을 지적했다. 이는 노화한 단백질의 출처가 간이라면 간이 늙고 있다는 걸 뜻한다.

재미있는 이야기. 네트워크의 특징이 아닐까 싶기도 한데, 어쨌건 세상의 변화는 도약에 의해 일어나는 것 같다. 연속적인 것은 stable한 상태를 유지할 때 일어나는 모습이고, 어떻게든 변화가 일어날 때는 도약이 나타남.

사이코패스는 일상의 그늘에 숨어 지낸다

사이코패스는 일상의 그늘에 숨어 지낸다

개인적으로 TV를 잘 안봐서 모르지만, 여튼 범죄심리학자로 유명하다고 하는 저자가 쓴 범죄 사례집. 제목만 봐서는 사이코패스 범죄에 대한 내용으로 짐작되지만, 실제 사이코패스 범죄 사례는 전체의 일부이고 전체적으로는 다소 흉악한 범죄에 대해 여럿 다루고 있다.

내가 사건 수사 현장에 있는 사람은 아니라 추측에 불과하지만, 범죄가 일어나는 것을 단순 개인탓으로 하면 범죄를 저지른 사람의 처벌에 그칠 뿐, 사회 전체적으로 동일한 범죄가 반복되는 것은 막을 수가 없다고 생각한다.

물론 같은 상황에서도 누군가는 범죄를 저지르지 않고, 누군가는 범죄를 저지르기는 하지만, 스키너 실험에서도 증명 되었듯이 사회적 압력이 그 개인이 인내할 수 있는 한계치를 넘어서면 누구나 돌이킬 수 없는 상황에 빠질 수 있으리라 생각한다. 저자도 이야기하지만, 지킬 것도 없고 앞으로 기대할 것도 없는 상황에 빠지면 범죄에 빠질 수 있다는 것.

사회 차원에서 범죄율을 낮출 수 있는 방법은 바로 그러한 지점 즉, 각 개인에게 앞으로 나아질 것이라는 믿음과 현재 자신이 지켜야 할 것들이 존재하게 하는 것이라 생각 한다. 범죄로 얻는 이익 보다 범죄를 저지름으로 인해 잃게될 것들이 감당해야 할 리스크가 크면 조금이라도 더 인내심을 발휘하게 되니까.

이상엽/ 선형대수학/ 자료의 처리

우선순위 평가

인접행렬

개념

요소간의 연결 관계를 나타내는 정사각 행렬

  • 참조한 (화살표가 나가는) 쪽은 행에, 참조된 (화살표를 받는) 쪽은 열에 쓴다.
    • 1은 2와 3으로 화살표를 쏘고 있으므로, 1행은 2열과 3열에 값이 있음.

권위벡터와 허브벡터

n \times n 인접행렬 A = (a_{ij}) 에 대하여

\left( \begin{array}{rrrr} \sum_{i = 1}^{n} a_{i1} \\ \sum_{i = 1}^{n} a_{i2} \\ ... \\ \sum_{i = 1}^{n} a_{in} \end{array} \right) \left( \begin{array}{rrrr} \sum_{j = 1}^{n} a_{1j} \\ \sum_{j = 1}^{n} a_{2j} \\ ... \\ \sum_{j = 1}^{n} a_{nj} \end{array} \right) 을 각각 A 의 권위벡터와 허브벡터라 하며, 각 벡터의 성분을 권위 가중치와 허브가중치라 한다.

  • 가중치로부터 중요도를 판단한다는게 아이디어
    • 권위 벡터(u_{0} )는 연관받은 (열) 데이터에 대한 벡터가 된다. 그 각각의 값은 권위 가중치가 된다.
    • 허브 벡터(v_{0} )는 연관한 (행) 데이터에 대한 벡터가 된다. 그 각각의 값은 허브 가중치가 된다.
  • 권위 벡터와 허브 벡터는 상호작용을 기반으로 계속 값이 업데이트 된다.
    • 업데이트 되는 와중에 어떤 기준선에 도달하여 값이 안정되면 최종적으로 그 벡터를 중요도 평가에 사용한다.

순위평가 원리

인접행렬 A 와 초기권위벡터 u_{0} 와 초기허브벡터 v_{0} 에 대하여

u_{k} = \begin{cases} u_{0} & k =0 \\ {A_{v_{k}}^{T} \over \|A_{v_{k}}^{T}\|} & k > 0 \end{cases},  v_{k} = \begin{cases} v_{0} & k =0 \\ {A_{v_{k-1}} \over \|A_{v_{k-1}}\|} & k > 0 \end{cases}

  • 현재 권위 벡터는 이전 허브 벡터의 값을 원본 행렬(의 전치 행렬)에 곱하여 구하고, 마찬가지로 현재 허브 벡터는 이전 권위 벡터의 값을 원본 행렬에 곱하여 구한다.
    • 이 곱을 반복하여 값을 업데이트 한다.
  • 다만 이것을 점화식을 이용해서 구성하면 자기 자신만 보면 되는 (권위 벡터는 권위 벡터만으로, 허브 벡터는 허브 벡터만으로) 해석적인 결과가 구성되고, 이를 컴퓨터에 넣어서 계속 돌리면 값이 나온다.

와 같이 새로운 정규화된 권위벡터 u_{k} 와 허브벡터 v_{k} 를 정의한다. (k 는 정수)

이때 u_{k}, v_{k} 를 연립하면 다음과 같이 정규화된 u_{k} v_{k} 의 점화식을 얻을 수 있다.

u_{k} = {A_{v_{k}}^{T} \over \|A_{v_{k}}^{T}\|} = {A^{T}({A_{u_{k-1}} \over \|A_{u_{k-1}}\|}) \over \|A^{T}({A_{u_{k-1}} \over \|A_{u_{k-1}}\|})\|} = {(A^{T}A)_{u_{k-1}} \over \|(A^{T}A)_{u_{k-1}}\|}

마찬가지로 v_{k} = {(AA^{T})_{v_{k-1}} \over \|(AA^{T})_{v_{k-1}}\|}

이 벡터들이 안정화가 되었다고 판단되는 상태로부터 각각 최종 중요도를 판별한다.

사례

10개의 인터넷 페이지(ㄱ~ㅊ)들 간의 인접행렬 $latex A &s=2가 다음과 같다고 하자.

앞에서 소개된 절차에 따라 $latex A &s=2의 정규화된 권위벡터가 안정화 될 때까지 반복계산한 결과는 다음과 같다.

  • 위 수식은 소숫점 4자리까지만 연산하는데, u_{9}, u_{10} 에 도달하면 값의 차이가 없기 때문에 더는 연산을 하지 않고 멈춘다.
    • 만일 소숫점 자리를 5자리 이상으로 보면 더 돌 수 있다.

따라서 $latex A &s=2 권위가중치로부터 페이지 ㄱ, ㅂ, ㅅ, ㅈ는 관련이 적고, 그 외의 페이지는 중요도가 높은 것부터 ㅁ > ㅇ > ㄴ > ㅊ > ㄷ = ㄹ 순서대로 검색엔진에서 노출되어야 함을 알 수 있다.

  • 요게 바로 구글 페이지 랭크 연산 방식
  • 주요 키워드) 거듭제곱법(power method), 우세 고유벡터/값(dominant eigen vector/value)

자료압축

특잇값 분해

분해

한 행렬을 여러 행렬들의 곱으로 표현하는 것

ex) QR  분해, LU 분해, LDU 분해, 고윳값 분해, 헤센버그 분해, 슈르 분해, 특잇값 분해 등

특잇값

m \times n 행렬 A 에 대하여 \lambda_{1}, \lambda_{2}, ... , \lambda_{n} A^{T}A 의 고윳값일 때

\sigma_{1} = \sqrt{\lambda_{1}}, \sigma_{2} = \sqrt{\lambda_{2}}, ... \sigma_{n} = \sqrt{\lambda_{n}}

A 의 특잇값이라 한다.

  • 고윳값을 만들려면 정사각 행렬이어야 한다. 반면 특잇값은 임의의 행렬에서도 만들어낼 수 있음.
    • 일반적인 행렬을 정사각 행렬로 만들기 위해  m \times n 행렬 A 에 대하여 A^{T}A 를 한 후 거기서 특이값을 추출한다.

ex) 행렬 A = \left( \begin{array}{rrr} 1 & 1 \\ 0 & 1 \\ 1 & 0 \end{array} \right) 에 대하여

A^{T}A = \left( \begin{array}{rrr} 1 & 0 & 1 \\ 1 & 1 & 0 \end{array} \right) \left( \begin{array}{rrr} 1 & 1 \\ 0 & 1 \\ 1 & 0 \end{array} \right) = \left( \begin{array}{rr} 2 & 1 \\ 1 & 2 \end{array} \right) 이므로

A^{T}A 의 고유방정식은 \lambda^{2} - 4 \lambda + 3 = (\lambda - 1)(\lambda - 3) = 0 이다

따라서 A 의 두 특잇값은 각각 \sqrt{3}, 1 이다.

특잇값 분해

영행렬이 아닌 임의의 m \times n 행렬 A 는 다음과 같이 나타낼 수 있다.

A = U \Sigma V^{T}

이때 U, V 는 직교행렬이며, A 는 주대각성분이 \Sigma 의 특잇값이고 나머지 성분들은 0 m \times n 행렬이다.

  • 여기서 \Sigma 는 합을 의미하는 것이 아니라 \sigma 의 대문자 형태이다. (벡터를 의미하는 \sigma 의 행렬 형태)

ex) 행렬 A = \left( \begin{array}{rrr} 1 & 1 \\ 0 & 1 \\ 1 & 0 \end{array} \right) 는 다음과 같이 특잇값 분해된다.

\left( \begin{array}{rrr} 1 & 1 \\ 0 & 1 \\ 1 & 0 \end{array} \right) = \left( \begin{array}{rrr} {\sqrt{6} \over 3} & 0 & - {1 \over \sqrt{3}} \\ {\sqrt{6} \over 6} & -{\sqrt{2} \over 2} & {1 \over \sqrt{3}} \\ {\sqrt{6} \over 6} & {\sqrt{2} \over 2} & {1 \over \sqrt{3}} \end{array} \right) \left( \begin{array}{rrr} \sqrt{3} & 0 \\ 0 & 1 \\ 0 & 0 \end{array} \right) \left( \begin{array}{rr} {\sqrt{2} \over 2} & {\sqrt{2} \over 2} \\ {\sqrt{2} \over 2} & -{\sqrt{2} \over 2} \end{array} \right)

축소된 특잇값 분해

특잇값 분해에서 0 인 성분들로만 이루어진, 대수적으로 무의미한 행 또는 열을 제거한 형태를 축소된 특잇값 분해라고 한다.

즉, A = U_{1} \Sigma_{1} V_{1}^{T} = (u_{1}, u_{2}, ... , u_{k}) \left( \begin{array}{rrrr} \sigma_{1} & 0 & ... & 0 \\ 0 & \sigma_{2} & ... & 0 \\ ... & ... & ... & ... \\ 0 & 0 & ... & \sigma_{k} \end{array} \right) \left( \begin{array}{rrrr} v_{1}^{T} \\ v_{2}^{T} \\ ... \\ v_{k}^{T} \end{array} \right)

또한 축소된 특잇값 분해를 이용하여 행렬 A 를 다음과 같이 전개한 것을 A 의 축소된 특잇값 전개라 한다.

A = \sigma_{1}u_{1}v_{1}^{T} + \sigma_{2}u_{2}v_{2}^{T} + ... + \sigma_{k}u_{k}v_{k}^{T} 

ex)

\left( \begin{array}{rrr} 1 & 1 \\ 0 & 1 \\ 1 & 0 \end{array} \right) = \left( \begin{array}{rrr} {\sqrt{6} \over 3} & 0 & - {1 \over \sqrt{3}} \\ {\sqrt{6} \over 6} & -{\sqrt{2} \over 2} & {1 \over \sqrt{3}} \\ {\sqrt{6} \over 6} & {\sqrt{2} \over 2} & {1 \over \sqrt{3}} \end{array} \right) \left( \begin{array}{rrr} \sqrt{3} & 0 \\ 0 & 1 \\ 0 & 0 \end{array} \right) \left( \begin{array}{rr} {\sqrt{2} \over 2} & {\sqrt{2} \over 2} \\ {\sqrt{2} \over 2} & -{\sqrt{2} \over 2} \end{array} \right)

= \left( \begin{array}{rrr} {\sqrt{6} \over 3} & 0 \\ {\sqrt{6} \over 6} & -{\sqrt{2} \over 2} \\ {\sqrt{6} \over 6} & {\sqrt{2} \over 2} \end{array} \right) \left( \begin{array}{rr} \sqrt{3} & 0 \\ 0 & 1 \end{array} \right) \left( \begin{array}{rr} {\sqrt{2} \over 2} & {\sqrt{2} \over 2} \\ {\sqrt{2} \over 2} & -{\sqrt{2} \over 2} \end{array} \right)

= \sqrt{3}u_{1}v_{1}^{T} + u_{2}v_{2}^{T}

자료압축 원리

압축되지 않은 m \times n 행렬 A 를 위한 필요 저장 공간은 mn 이다.

A 를 축소된 특잇값 분해한 결과가 A = \sigma_{1}u_{1}v_{1}^{T} + \sigma_{2}u_{2}v_{2}^{T} + ... + \sigma_{k}u_{k}v_{k}^{T}  라면

이제 필요한 저장 공간은 k + km + kn = k(1 + m + n) (\sigma_{1} \geq \sigma_{2} \geq ... \geq \sigma_{k}) 이다.

  • k 는 특잇값 개수 = \Sigma 의 행개수 or 열개수
  • m U 의 행 개수 = u_{i} 의 성분개수
  • n V^{T} 의 열 개수 = v_{i}^{T} 의 성분개수

충분히 작다고 판단되는 \sigma_{r+1}, ... \sigma_{k} 에 대응하는 항들을 추가로 제거하면, 이때 필요한 저장 공간은 r(1 + m + n) 뿐이다.

스킨 인 더 게임

스킨 인 더 게임 Skin in the Game

<행운에 속지마라>와 <블랙 스완>으로 유명한 나심 탈레브의 최신간. –책 표지의 ‘제 2의 블랙스완’이 다가온다’와 같은 문구는 그냥 무시하는 편이 낫다.

앞선 두 책을 모두 읽기도 했고 –안티프래질은 읽지 않았지만– 나심 탈레브의 생각이 나랑 비슷하다는 것과 더는 새로운 얘기 보다는 기존 이야기의 답습일 것 같아서 안 읽으려다가 우연히 서점에서 훑던 중에 <21세기 자본>의 피케티를 비판하는 대목을 보고 구입해서 읽게 되었는데, 아쉽게도 그에 대한 내용은 큰 비중 없이 –나심 탈레브가 구체적으로 어떻게 비판했는지는 이 책에 나오지는 않는다. 피케티의 주장에 오류가 있다는 부분만 언급 됨– 지나가서 좀 허탈했다.

기본적인 생각이 비슷해서 나에게는 큰 감흥은 없었는데 –그렇다고 나심 탈레브의 모든 생각과 비슷한 것은 아니다. 유전자 조작 식품에 대해서는 명백히 반대의 입장을 취하는데, 육종은 안전한 반면 유전자 조작 식품은 믿을 수 없다는 나심 탈레브의 주장에는 실소가 나왔다. 유전자 조작 식품은 빠르고 정확한 육종이다. 나심 탈레브는 유전자에 대해 잘 모르는 것 같다. 덕분에 책의 다른 부분에 대해서도 신뢰가 좀 떨어졌음– 그래도 꽤 흥미로운 이야기가 많이 언급되고 있으므로 관심 있으시다면 읽어볼 만한 책이라 생각 됨.

이상엽/ 선형대수학/ 최적화 문제

곡선 적합

보간법

개념

주어진 특징 점들을 포함하는 함수를 구하는 방법

정리) 좌표평면에 있는 임의의 서로 다른 n 개의 점을 지나는 k 차 다항함수는 유일하게 존재한다. (단 k k < n 인 자연수)

사례

네 점 (1, 3), (2, -2), (3, -5), (4, 0) 을 모두 지나는 3차 함수

f(x) = a_{0} + a_{1} x + a_{2} x^{2} + a_{3} x^{3}

를 구하자. 우선 다음의 방정식을 세운다.

Step 1)

\left( \begin{array}{rrrr} 1 & x_{1} & x_{1}^{2} & x_{1}^{3} \\ 1 & x_{2} & x_{2}^{2} & x_{2}^{3} \\ 1 & x_{3} & x_{3}^{2} & x_{3}^{3} \\ 1 & x_{4} & x_{4}^{2} & x_{4}^{3} \end{array} \right) \left( \begin{array}{rrrr} a_{0} \\ a_{1} \\ a_{2} \\ a_{3} \end{array} \right) = \left( \begin{array}{rrrr} y_{1} \\ y_{2} \\ y_{3} \\ y_{4} \end{array} \right)

Step 2) 네 점을 대입하고 첨가행렬을 만든다.

\left( \begin{array}{rrrrr} 1 & 1 & 1 & 1 & 3 \\ 1 & 2 & 4 & 8 & -2 \\ 1 & 3 & 9 & 27 & -5 \\ 1 & 4 & 16 & 64 & 0 \end{array} \right)

Step 3) 첨가행렬을 가우스-조던 소거법을 이용하여 풀이한다.

\left( \begin{array}{rrrrr} 1 & 1 & 1 & 1 & 3 \\ 1 & 2 & 4 & 8 & -2 \\ 1 & 3 & 9 & 27 & -5 \\ 1 & 4 & 16 & 64 & 0 \end{array} \right) \Rightarrow \left( \begin{array}{rrrrr} 1 & 0 & 0 & 0 & 4 \\ 0 & 1 & 0 & 0 & 3 \\ 0 & 0 & 1 & 0 & -5 \\ 0 & 0 & 0 & 1 & 1 \end{array} \right)

Step 4) 

a_{0} = 4, a_{1} = 3, a_{2} = -5, a_{3} = 1 이므로 f(x) = 4 + 3 x - 5 x^{2} + x^{3} 이다.

  • 곡선 접합은 현재 가진 데이터에 대해 분석은 잘 할 수 있지만, 신규 데이터가 현재 그려 놓은 곡선 위에 존재한다는 보증이 없음. 유연성이 매우 떨어진다.
    • 애초에 데이터를 모두 포함하는 함수가 존재하지 않는 경우도 많음.

최소제곱법

  • 곡선 접합의 단점을 보완할 수 있는 방법.
  • 가우스가 창안한 방법으로 가우스는 이 방법을 통해 소행성 ‘세레스’ 의 궤도를 정확히 예측해 냄.

개념

특징 점들을 포함하는 함수를 특정 지을 수 없을 때, 실제 해와의 오차 제곱 합이 최소가 되는 근사적인 해를 구하는 방법

정리) 방정식 Ax = B 을 변형한 방정식 A^{T}Ax = A^{T}B (정규방정식)의 모든 해는 Ax = B 의 최소제곱해이다.

  • 요게 결국 선형회귀이다.
  • A^{T}Ax = A^{T}B (정규방정식)의 모든 해는 Ax = B 의 최소제곱해이라는 부분은 증명이 복잡하므로 강의 상에서는 생략.

사례

네 점 (0, 1), (1, 3), (2, 4), (3, 4) 에 근사하는 일차 함수 f(x) = a_{0} + a_{1} x 을 구하자. 우선 다음의 방정식을 세운다.

Step 1) Ax = B

\Leftrightarrow \left( \begin{array}{rrrr} 1 & x_{1} \\ 1 & x_{2} \\ 1 & x_{3} \\ 1 & x_{4} \end{array} \right) \left( \begin{array}{rr} a_{0} \\ a_{1} \end{array} \right) = \left( \begin{array}{rrrr} y_{1} \\ y_{2} \\ y_{3} \\ y_{4} \end{array} \right)

Step 2) 네 점을 대입하고 정규방정식 A^{T}Ax = A^{T}B 으로부터 방정식 x = (A^{T}A)^{-1} A^{T}B 을 구성한다.

A^{T}A = \left( \begin{array}{rr} 4 & 6 \\ 6 & 14  \end{array} \right) 이므로

(A^{T}A)^{-1} = \left( \begin{array}{rr} 4 & 6 \\ 6 & 14  \end{array} \right)^{-1} = {1 \over 10} \left( \begin{array}{rr} 7 & -3 \\ -3 & 2  \end{array} \right)  

\therefore x = {1 \over 10} \left( \begin{array}{rr} 7 & -3 \\ -3 & 2  \end{array} \right) \left( \begin{array}{rrrr} 1 & 1 & 1 & 1 \\ 0 & 1 & 2 & 3  \end{array} \right) \left( \begin{array}{rrrr} 1 \\ 3 \\ 4 \\ 4  \end{array} \right)

Step 3) x = \left( \begin{array}{rr} a_{0} \\ a_{1}  \end{array} \right) = \left( \begin{array}{rr} {2 \over 3} \\ 1 \end{array} \right) 이므로 구하고자 하는 함수는 f(x) = {3 \over 2} + x 이다.

n차 일반화

m 개의 자료점 (x_{1}, y_{1}), (x_{2}, y_{2}), ... , (x_{m}, y_{m}) 에 대해 n 차 다항식 y = a_{0} + a_{1} x + ... + a_{n} x^{n} 을 최소제곱법을 이용하여 근사하기 위해서는 Ax = B

A = \left( \begin{array}{rrrr} 1 & x_{1} & ... & x_{1}^{n} \\ 1 & x_{2} & ... & x_{2}^{n} \\ ... & ... & ... & ... \\ 1 & x_{m} & ... & x_{m}^{n} \end{array} \right), x = \left( \begin{array}{rrrr} a_{0} \\ a_{1} \\ ... \\ a_{n} \end{array} \right), B = \left( \begin{array}{rrrr} y_{1} \\ y_{2} \\ ... \\ y_{m} \end{array} \right)

로 설정하면 된다.

두 방법의 비교

  보간법 최소제곱법
목표 데이터를 모두 포함하는 함수 데이터의 경향을 반영하는 함수
데이터의 수 적을 수록 좋음 많아도 무방함
정밀도 매우 높음 상대적으로 낮음
신축성 조절이 어려움 조절이 자유로움

이차형식의 최적화

이차형식

가환환 K 위의 가군 V 에 대해 다음 세 조건을 만족시키는 함수 Q : V \to K

  • \forall k, l \in K, \forall u, v, w \in V
    • Q(kv) = k^{2} Q(v)
    • Q(u + v + w) = Q(u + v) + Q(v+w) + Q(u+w) - Q(u) - Q(v) - Q(w)
    • Q(kv + lv) = k^{2} Q(u) + l^{2} Q(v) + kl Q(u+v) - klQ(u) - klQ(v)

ex 1) R^{2} 상의 일반적인 이차형식은 다음과 같다.

a_{1}x_{1}^{2} + a_{2}x_{2}^{2} + 2a_{3}x_{1}x_{2} \Leftrightarrow \left( \begin{array}{rr} x_{1} & x_{2} \end{array} \right) \left( \begin{array}{rr} a_{1} & a_{3} \\ a_{3} & a_{2} \end{array} \right) \left( \begin{array}{rr} x_{1} \\ x_{2}  \end{array} \right)

ex 2) R^{3} 상의 일반적인 이차형식은 다음과 같다.

a_{1}x_{1}^{2} + a_{2}x_{2}^{2} + a_{3}x_{3}^{2} +  2a_{4}x_{1}x_{2} + 2a_{5}x_{1}x_{3} + 2a_{6}x_{2}x_{2}

\Leftrightarrow \left( \begin{array}{rrr} x_{1} & x_{2} & x_{3} \end{array} \right) \left( \begin{array}{rrr} a_{1} & a_{4} & a_{5} \\ a_{4} & a_{2} & a_{6} \\ a_{5} & a_{6} & a_{3} \end{array} \right) \left( \begin{array}{rrr} x_{1} \\ x_{2} \\ x_{3} \end{array} \right)

제약된 극값

개념

특정 제약 하에 결정되는 원하는 식의 최댓값 또는 최솟값

정리) n \times n 행렬 A 의 고윳값을 큰 순서대로 \lambda_{1}, \lambda_{2}, ... , \lambda_{n} 이라 하자. 이때 \|v\| = 1 제약 하에 v^{T}Av 의 최댓(솟)값은 \lambda_{1} (\lambda_{n}) 에 대응하는 단위고유벡터에서 존재한다.

사례

제약 x^{2} + y^{2} = 1 하에서

  • 위 제약 조건은 \vec{v} = (x, y) 로 정한 것과 같다. \|v\| = 1 이 된다.

z = 5 x^{2} + 5 y^{2} + 4xy

의 최댓값과 최솟값을 구하자. 우선 z 를 이차형식 v^{T} Av 형태로 변환한다.

Step 1) a_{1}x^{2} + a_{2}y^{2} + 2a_{3}xy

\Leftrightarrow \left( \begin{array}{rr} x & y \end{array} \right) \left( \begin{array}{rr} a_{1} & a_{3} \\ a_{3} & a_{2} \end{array} \right) \left( \begin{array}{rr} x \\ y \end{array} \right) = v^{T} A v

즉, z = \left( \begin{array}{rr} x & y \end{array} \right) \left( \begin{array}{rr} 5 & 2 \\ 2 & 5 \end{array} \right) \left( \begin{array}{rr} x \\ y \end{array} \right)

Step 2) 행렬 A = \left( \begin{array}{rr} 5 & 2 \\ 2 & 5 \end{array} \right) 의 고윳값과 고유벡터를 구한다.

\Rightarrow \begin{cases} \lambda_{1} = 7 & v_{1} = (1, 1) \\ \lambda_{2} = 3 & v_{2} = (-1, 1) \end{cases}

Step 3) 고유벡터를 정규화한다.

\Rightarrow \begin{cases} \lambda_{1} = 7 & v_{1} = ({1 \over \sqrt{2}}, {1 \over \sqrt{2}}) \\ \lambda_{2} = 3 & v_{2} = (-{1 \over \sqrt{2}}, {1 \over \sqrt{2}}) \end{cases}

Step 4) 따라서 (x, y) = ({1 \over \sqrt{2}}, {1 \over \sqrt{2}}) 일 때 z 는 최댓값 7을 갖고, (x, y) = (-{1 \over \sqrt{2}}, {1 \over \sqrt{2}}) 일 때 z 최솟값 3을 갖는다.

물론 v_{1} = (-1, -1), v_{2} = (1, -1)   등으로 설정해도 무방하며, 최댓(솟)값은 변하지 않는다.

머신 러닝 교과서/ 컴퓨터는 데이터에서 배운다

데이터를 지식으로 바꾸는 지능적인 시스템 구축

  • 20세기 후반 데이터에서 지식으 추출하여 예측하는 자가 학습(self-learning) 알고리즘과 관련된 인공 지능의 하위 분야로 머신 러닝이 출현했다.
    • 사람이 수동으로 대량의 데이터를 분석하여 규칙을 유도하고 모델을 만드는 대신, 머신 러닝이 데이터에서 더 효율적으로 지식을 추출하여 예측 모델과 데이터 기반의 의사 결정 성능을 점진적으로 향상시킬 수 있게 됨.

머신 러닝의 세 가지 종류

  • 머신 러닝은 3가지 종류로 구분해 볼 수 있다.
    • 지도 학습 (supervised learning)
    • 비지도 학습 (unsupervised learning)
    • 강화 학습 (reinforcement learning)

지도 학습으로 미래 예측

  • 지도 학습의 주요 목적은 레이블(label) 된 훈련 데이터에서 모델을 학습하여 본 적 없는 미래 데이터에 대해 예측을 만드는 것. 
    • 지도(supervised)는 희망하는 출력 신호(레이블)가 있는 일련의 샘플을 의미한다.
  • 지도 학습은 다시 데이터를 범주(category)를 구분하는 분류(classification)와 연속적인 값을 출력하는 회귀(regression)으로 구분할 수 있다.

분류: 클래스 레이블 예측

  • 분류는 과거의 관측을 기반으로 새로운 샘플의 범주형 클래스 레이블을 예측하는 것이 목적.
    • 클래스  레이블은 이산적(discrete)이고 순서가 없어 샘플이 속한 그룹으로 이해할 수 있다.
    • 스팸 이메일 감지는 전형적인 이진 분류(binary classification) 작업의 예이다.
  • 두 개 이상의 클래스 레이블을 가진 경우 지도 학습 알고리즘으로 학습한 예측 모델은 훈련 데이터셋에 있는 모든 클래스 레이블을 새로운 샘플에 할당할 수 있다.
    • 이런 다중 분류(multiclass classification)의 전형 적인 예는 손글씨 인식 문제.
  • 아래 그림은 30개의 훈련 샘플이 있는 이진 분류 작업의 개념을 나타낸다.
    • 15개의 샘플은 음성 클래스(negative class)로 레이블(뺄셈 기호)되어 있고, 다른 15개의 샘플은 양성 클래스(positive class)로 레이블(덧셈 기호) 되어 있다.
    • 각 샘플이 두 개의 x_{1}, x_{2} 값에 연관되어 있으므로 2차원 데이터 셋이다.
    • 지도 학습 알고리즘을 사용하여 두 클래스를 구분할 수 있는 규칙을 학습한다. 이 규칙은 점선으로 나타난 결정 경계(decision boundary)이다.
    • 새로운 데이터의 x_{1}, x_{2} 값이 주어지면 두 개의 범주 중 하나로 분류한다.

회귀: 연속적인 출력 값 예측

  • 회귀는 예측 변수(predictor variable)(또는 설명 변수(explanatory variable), 입력(input))와 연속적인 반응 변수(response variable) (또는 출력(outcome), 타겟(target)) 가 주어졌을 때 출력 값을 예측하는 두 변수 사이의 관계를 찾는다.
    • 학생들의 수학 점수를 예측하는 것이 그 예
  • 아래 그림은 선형 회귀(linear regression)의 개념으로 입력 x 와 타깃 y 가 주어지면 샘플과 직선 사이 거리가 최소가 되는 직선을 그을 수 있다. 
    • 일반적으로 평균 제곱 거리를 사용한다.
    • 이렇게 데이터에서 학습한 직선의 기울기와 절편(intercept)을 사용하여 새로운 데이터의 출력 값을 예측한다.

강화 학습으로 반응형 문제 해결

  • 강화 학습은 환경과 상호 작용하여 시스템(에이전트(agent))의 성능을 향상하는 것이 목적이다.
    • 환경의 현재 상태 정보는 보상(reward) 신호를 포함하기 때문에 강화 학습을 지도 학습과 관련된 분야로 생각할 수 있다.
    • 강화 학습의 피드백은 정답(ground truth) 레이블이나 값이 아니라 보상 함수로 얼마나 좋은지를 측정한 값이다.
    • 에이전트는 환경과 상호 작용하여 보상이 최대화 되는 일련의 행동을 강화 학습으로 학습한다.
    • 탐험적인 시행착오(trial and error) 방식이나 신중하게 세운 계획을 사용한다.
    • 강화 학습의 대표적인 예는 체스이다.

  • 강화 학습에는 여러 하위 분류가 있는데, 일반적인 구조는 강화 학습 에이전트가 환경과 상호작용하여 보상을 최대화 하는 것이다.
    • 각 상태는 양의 보상이나 음의 보상과 연관된다. 보상은 체스 게임의 승리나 패배처럼 전체 목표를 달성하는 것으로 정의할 수 있다.

비지도 학습으로 숨겨진 구조 발견

  • 지도 학습에서는 모델을 훈련할 때 사전에 옳은 답을 알고 있고, 강화 학습에서는 에이전트의 특정 행동을 어떻게 보상할지 그 측정 방법을 정의하는 반면, 비지도 학습에서는 레이블되지 않거나 구조를 알 수 없는 데이터를 다룬다.
    • 비지도 학습을 사용하면 알려진 출력 값이나 보상 함수의 도움을 받지 않고 의미 있는 정보를 추출하기 위해 데이터 구조를 탐색할 수 있다.

군집: 서브그룹 찾기

  • 군집(clustering)은 사전 정보 없이 쌓여 있는 그룹 정보를 의미 있는 서브그룹(subgroup) 또는 클러스터(cluster)로 조직하는 탐색적 데이터 분석 기법이다.
    • 분석 과정에서 만든 각 클러스터는 어느 정도 유사성을 공유하고 다른 클러스터와는 비슷하지 않은 샘플 그룹을 형성한다. 군집을 비지도 분류(unsupervised classification)이라고 하는 이유가 여기에 있다.
    • 클러스터링은 정보를 조직화하고 데이터에서 의미 있는 관계를 유도하는 도구이다.
    • 마케터가 관심사를 기반으로 고객 그룹을 나누는 것이 그 예

차원 축소: 데이터 압축

  • 비지도 학습의 또 다른 하위 분야는 차원 축소(dimensionality reduction)이다.
    • 고차원의 데이터를 다루어야 하는 경우 하나의 관측 샘플에 많은 측정 지표가 존재하는데, 이로 인해 머신 러닝 알고리즘의 계산 성능과 저장 공간의 한계에 맞닥뜨릴 수 있다.
    • 비지도 차원 축소는 잡음(noise) 데이터를 제거하기 위해 특성 전처리 단계에서 종종 적용하는 방법이다. 이런 잡음 데이터는 특정 알고리즘의 예측 성능을 감소시킬 수 있다.
    • 차원 축소는 관련 있는 정보를 대부분 유지하면서 더 작은 차원의 부분 공간(subspace)으로 데이터를 압축한다.
  • 차원 축소는 데이터 시각화에도 유리하다. 아래 그림은 고차원 특성을 1, 2, 3차원 특성공간으로 시각화하는 예

기본 용어와 표기법 소개

  • 아래 그림 1-8의 표는 머신 러닝 분야의 고전적인 예제인 붓꽃(Iris) 데이터셋 일부를 보여준다. 붓꽃 데이터 셋은 Setosa, Versicolor, Virginica 세 종류 150개의 붓꽃 샘플을 담고 있다.
    • 각 붓꽃 샘플은 데이터셋에서 하나의 행(row)으로 표현된다.
    • 센티미터 단위의 측정값은 열(column)에 저장되어 있으며, 데이터셋의 특성(feature)라고도 한다.

  • 데이터는 선형대수학(linear algebra)을 사용하여 행렬(matrix)과 벡터(vector) 표기로 데이터를 표현한다.
    • 일반적인 관례에 따라 샘플은 특성 행렬 X 에 있는 행으로 나타내고, 특성은 열을 따라 저장한다.
    • 150개의 샘플과 네 개의 특성을 가진 붓꽃 데이터셋은 150 x 4 크기의 행렬 X \in \mathbb{R}^{150 \times 4} 로 쓸 수 있다.

\left[ \begin{array}{rrrr} x_{1}^{(1)} & x_{2}^{(1)} & x_{3}^{(1)} & x_{4}^{(1)} \\ x_{1}^{(2)} & x_{2}^{(2)} & x_{3}^{(2)} & x_{4}^{(2)} \\ ... & ... & ... & ... \\ x_{1}^{(150)} & x_{2}^{(150)} & x_{3}^{(150)} & x_{4}^{(150)} \end{array} \right]

  • 기호 설명)
    • 위 첨자 i는 i번째 훈련 샘플을(지수가 아니다 주의), 아래 첨자 j는 데이터셋의 j번째 차원을 나타낸다.
    • 굵은 소문자는 벡터 (x \in \mathbb{R}^{n \times 1} )를 나타내고 굵은 대문자는 행렬 (X \in \mathbb{R}^{n \times m} )을 나타낸다.
    • 벡터나 행렬에 있는 하나의 원소를 나타낼 때는 이탤릭체를 사용한다. x^{n} 또는 x_{m}^{n}
    • 예컨대 x_{1}^{150} 은 150번째 샘플의 1번째 차원인 꽃받침 길이를 나타낸다. 특성 행렬의 각 행은 하나의 꽃 샘플을 나타내고 4차원 행 벡터 x^{i} \in \mathbb{R}^{1 \times 4} 로 쓸 수 있다. 

x_{i} = \left[ \begin{array}{rrrr} x_{1}^{(i)} & x_{2}^{(i)} & x_{3}^{(i)} & x_{4}^{(i)} \end{array} \right]

  • 각 특성 차원은 150차원의 열 벡터 x_{j} \in \mathbb{R}^{150 \times 1} 이다. 예컨대 다음과 같다.

x_{j} = \left[ \begin{array}{rrrr} x_{j}^{(1)} \\ x_{j}^{(2)} \\ ... \\ x_{j}^{(150)} \end{array} \right]

  • 비슷하게 타깃 변수(여기서는 클래스 레이블)를 150차원의 열 벡터로 저장한다.

y = \left[ \begin{array}{rrrr} y^{1} \\ y^{2} \\ ... \\ y^{150} \end{array} \right] (y \in \{ Setosa, Versicolor, Virginica \})

  •  

머신 러닝 시스템 구축 로드맵

  • 아래 그림은 예측 모델링에 머신 러닝을 사용하는 전형적인 작업 흐름을 보여준다.

전처리: 데이터 형태 갖추기

  • 데이터 전처리는 모든 머신 러닝 어플리케이션에서 가장 중요한 단계이다.
    • 많은 머신 러닝 알고리즘에서 최적의 성능을 내려면 선택된 특성이 같은 스케일을 가져야 한다. 특성을 [0, 1] 범위로 변환하거나 평균이 0이고 단위 분산을 가진 표준 정규 분포(standard normal distribution)로 변환하는 경우가 많다.
    • 일부 선택된 특성은 매우 상관관계가 높아 어느 정도 중복된 정보를 가질 수 있다. 이때는 차원 축소 기법을 사용하여 특성을 저차원 부분 공간으로 압축한다. 특성 공간의 차원을 축소하면 저장 공간이 덜 필요하고 학습 알고리즘을 더 빨리 실행할 수 있다.
    • 어떤 경우에는 차원 축소가 모델의 예측 성능을 높이기도 한다. 데이터셋에 관련 없는 특성(또는 잡음)이 매우 많을 경우, 즉 신호 대 잡음비(Signal-to-Noise Ratio, SNR)가 낮은 경우이다.
  • 머신 러닝 알고리즘이 훈련 데이터셋에서 잘 작동하고 새로운 데이터에서도 잘 일반화 되는지 확인하려면 데이터셋을 랜덤하게 훈련 세트와 테스트 세트로 나눠야 한다. 
    • 훈련 세트에서 머신 러닝 모델을 훈련하고 최적화 한다. 테스트 세트는 별도로 보관하고 최종 모델을 평가하는 맨 마지막에 사용한다.

예측 모델 훈련과 선택

  • 분류 알고리즘은 저마다 태생적인 편향이 존재한다. 작업에서 아무런 가정도 하지 않는다면 어떤 하나의 분류 모델이 더 우월하다고 말할 수 없다.
    • 현실에서 가장 좋은 모델을 훈련하고 선택하기 위해 최소한 몇 가지 알고리즘을 비교해야 한다.
  • 여러 모델을 비교하기 전에 먼저 성능을 측정할 지표를 결정해야 한다. 분류에서 널리 사용되는 지표는 정확도(accuracy)이다. 정확도는 정확히 분류된 샘플 비율이다.
  • 모델 선택에 테스트 세트를 사용하지 않고 최종 모델을 평가하려고 따로 보관한다면 테스트 세트와 실제 데이터에서 어떤 모델이 잘동작할지를 어떻게 알 수 있을까?
    • 이 질문에 나온 이슈를 해결하기 위해 다양한 교차 검증 기법을 사용한다.
    • 이 기법은 모델의 일반화 성능을 예측하기 위해 훈련 데이터를 훈련 세트와 검증 세트로 더 나눈다.
  • 또 머신 러닝 라이브럴리들에서 제공하는 알고리즘의 기본 하이퍼파라미터가 현재 작업에 최적이라고 기대할 수는 없다. 이어지는 장에서는 모델 성능을 상세하게 조정하기 위해 하이퍼파라미터 최적화 기법을 사용할 것이다.
    • 하이퍼파라미터(hyperparameter)는 데이터에서 학습하는 파라미터가 아니라 모델 성능을 향상하기 위해 사용하는 다이얼로 생각할 수 있다.

모델을 평가하고 본 적 없는 샘플로 예측

  • 훈련 세트에서 최적의 모델을 선택한 후에는 테스트 세트를 사용하여 이전에 본 적 없는 데이터에서 얼마나 성능을 내는지 예측하여 일반화 오차를 예상한다.
    • 이 성능에 만족한다면 이 모델을 사용하여 새로운 데이터를 예측할 수 있다.
    • 이전에 언급한 특성 스케일 조정과 차원 축소 같은 단계에서 사용한 파라미터는 훈련 세트만 사용하여 얻은 것임을 주목해야 한다. 나중에 동일한 파라미터를 테스트 세트는 물론 새로운 모든 샘플을 변환하는데 사용한다.
    • 그렇지 않으면 테스트 세트에서 측정한 성능은 과도하게 낙관적인 결과가 된다. 

머신 러닝을 위한 파이썬

  • (이하 파이썬 설치에 대한 내용 생략)