집합과 명제 이용한 데이터분석 론
본 글과 관련하여, 동영상을 올려놓은 것이 있습니다. 본문을 시작하기전에 한번 확인 해보심면 좋을 것 같습니다.
[절묘한번외]당신은 왜 논리적일 수 없는가? https://youtu.be/ZtzYHVji-N4
[절묘한번외] 틀림과 다름: https://youtu.be/pfvSeDjKuts
그리고, 거짓말을 설명하기 위해서는 우리가 어떤 명제/서술에 대해서 인지 하는 것이 무엇인지에 대한 이야기 부터 해야 합니다. 시작 하겠습니다.
위의 제목을 영어로 쓰자면 reconize/admit/accept/know 정도가 될 것이다. 우리(혹은 내)가 서술(혹은 명제)를 인식 한 다는 것은 해당 서술 참/거짓 여부를 있는 명제 그대로 받아 들인다는 의미이다. 즉, 참(True)인 명제는 참(True)인 명제로 거짓(False)인 명제는 거짓(False)로 "제대로" 받아 들이는 것이다. 명제(혹은 서술)에 대한 판단을 잘한다는 의미는 명제에 대한 인식을 정확하게 하고 있다는 것을 의미 한다.
여기서 중요한 것은 명제 여부는 맞고(Right) 틀리고(Wrong)의 개념이 없다는 점이다. 맞고 틀리고의 개념은 해당 명제로 잘 파악 했느냐로 그 여부가 결정이 된다. 여기서 조금 애매한 것은 아무래도 "알수없음" 명제 일 것이다. 그리고, 우리는 명제/서술을 받아들이는데 있어서, 합리적인 인식(혹은 논리적인 인식)과 감정적인 인식이 존재 한다. 그리고, 논리적인 인식은 명제의 진실여부를 논리적인 근거(Causes)를 통하여, 해당 명제가 참인지, 거짓인지를 판단한다. 이와는 반대로 감정적인 인식은 논리적인 근거가 아니라, 자아의 의지나 감정에 따라서 명제의 진실 여부를 인지 한다 [그림2].
명제의 서술에서는 "알수없음"이지만, 자아(사람)이 "알수없음" 명제를 진실(true)에 가깝게 인식 하기도 하고, 거짓(false)에 가깝게 인식하기도 한다 (i.e, t*: tentitively true; f*: tentitively false) 이러한 결정이 가능한 이유는 자아(혹은) 자신만이 가지고 있는 근거와 논리를 가질 수 있기 때문이다. 자신이 가진 논리와 근거가 명제의 진실여부를 인지하는데 있어서, (대체로) 항상 만족 할 경우, 이 논리는 명제서술을 위한 근거로 이용 될 수 있다. 그리고, 근거들로 해당 명제의 진실 여부를 결정해 나가는 것을 논리의 전개라고 한다. 즉, 모든 명제는 근거의 논리적 전개를 통해서 그 진실 여부를 결정 할 수 있다.
논리적인 인식은 통상적으로 말하는 객관적(혹은 과학적)인 논리적 전개를 통해 명제의 진리값을 인식하는 것을 의미하고, 감정적 인식은 감정(감성, 직관 느낌)을 기반으로 인식을 한다. 하지만, 우선 논리적인 인식을 그림으로 표현하면 다음과 같다. 논리적 인식이 명제의 결과(참-거짓)을 받아 들이는 방향(의식의 흐름이라 칭한다)
논리적인 인식은 논리적인 전개의 방향이 근거들을 통해서 명제의 참-거짓을 증명한다. 그리고, 그렇게 인식한 참-거짓을 받아 들이는 것이다. 논리적인 인식이라는 것은 명제의 값을 인식하는 기반이 근거를 기반으로 참-거짓을 인식하는 것이다(. 이와는 반대로 감정적 인식은 단어가 말하는 것처럼, 대충 느낌적인 느낌으로 다가 차이가 있기도 하지만, 그 보다 가장 중요한 것은 의식의 흐름이 반대 라는 것이다.
이것이 뜻하는 것은 감성적인 인식은 논리적인 인식과는 달리 자아에서 명제의 답을 (주관적으로) 정해 놓고, 명제 값을 정해 나간다는 것이다. 이 둘의 인식에서 가장 중요한 portion을 차지 하는 것은 의식흐름의 시작점이기 때문이다. 논리적인 인식에서의 가장 중요한 portion을 차지 하는 것은 근거들(Causes)이다. 하지만, 감정적 인식의 경우는 그 시작점이 나(혹은 자아)이기 때문에 자아의 결정이 가장 큰 portion을 차지 한다.
우선, 사실(fact)과 사실에 대한 서술(statements of facts)의 특징[v.0.13]에 대해서 recall하면:
f2: 서술(statement)자체가 사실(fact)의 존재 여부를 결정 짓지는 않는다.
f3: 우리가 인지하고 있는 대부분은 사실(fact) 자체가 아니라, 사실의 서술(statement of fact)이고,
f4: 이에 대한 판단은 진실(true)과 거짓(false) 혹은 미정(unknown)으로만 선택 할 수 있다.
f6: 사실의 (존재) 여부를 서술 없이 직접 알 수 있는 방법은 자신이 직접 경험하는 방법밖에 없다.
f7: 단, 이 경우라도 경험에 대한 당신의 "인지"가 정확한 경우에만 해당 한다.
f8: (행위를) 한것이 "사실(fact)"이라면, (행위를) 하지 않는 것이 거짓(lie)이다.
f9: 하지 않은 것이 "사실(fact)"이라면, 한 것이 "거짓"이 된다.
위의 특징에 대해서 몇가지는 이 장에서 증명이 가능 하다. 이렇게 명제를 인식하는 flow [그림1]는 사실(fact)에 대한 인식을 어떻게 하는지도 표현이 가능 하다[그림4 참조].
(절대적인) 사실에 대한 명제를 사실 명제(Statement of Fact)라고 한다. 진실(True)로 받아 들여진 명제는 시스템(계) 명제로 즉, 시스템을 구성하는 명제로 항상 참(True)인 명제가 된다. 시스템 명제(statement of system)들[그림4]은 우리가 명제를 판단하는 근거들의 논리전개의 시작점이 된다. 즉, 어떤 명제를 결정하는 근거들은 시스템 명제들을 시작으로 논리의 전개를 시작 한다.
Statement of System은 통상적으로
"자연법칙, 법률, 정의(Definition), Axiom, Theorem, 본질(Core)"등
으로 불리기도 한다.
참고로, statements of facts는 statements of system중 하나 이다. 이에 대한 설명은 별도로 하고, 우선은 statement of fact에 대해서 우선 다루도록 하겠다. 우리는 사실명제 대한 판단을 "증거(evidence)"를 통해 그 진리값을 인식 한다. 일전에도 언급을 했지만, (절대적인) 사실을 우리가 인지 할 수 있는 경우는 매우 드물다. 다음 예제를 보자.
Fact(사실)
f1: 2차 세계대전
f2: 역사(history)
f3: 지구(Earth)
Statements of Fact
s1: 2차 세계 대전이 일어났다. (f1)
s2: 대한 민국은 일본의 점령을 당한적이 있다. (f1 & f2)
s3: 지구는 둥글다 (평면 지구의 반대 의미) (f3)
s4*: 지구는 평면이다 (갈릴레오이전 시대) (f3)
s4*는 사실로 생각되었던 명제가 더 이상 사실 명제가 되지 못한 예제 이다. s4는 더이상 사실명제가 아니긴 하지만, 여전히 명제이긴 하다(i.e., false인 명제).
당신은 어떻게 s1-s3는 "사실(fact)"라고 아는가(인식) 당신이 위의 사실(엄밀하게는 명제)들은 "증거"를 통해서 일 것이다. 여기서 증거라는 것은 사실을 뒷받침 하는 모든 것(역사적 자료, 비디오, 책, 등등)을 뜻 한다. 위의 글들은 통상 우리가 "사실(fact)"로 알고 있지만, 엄밀히 말하면 이는 사실 자체가 아니라 사실을 서술한 "statement of fact"이다. 다시 한번 말하지만,
당신이 사실(fact)이라고 인식하고 것들은 사실이 아니라,
사실을 서술한 참(true)인 명제이다[f3].
그리고, statement(s) of fact(s)는 일반 명제는 가지고 있지 않은 몇가지 특징을 가지고 있다 (몇가지는 이미 언급됨):
f1: 절대적인(absolute)한 사실(fact)을 서술한 문장(statement)은 진실(True)이다.
f5: 사실의 서술이 진실(true)로 판단(확인) 될 경우, 그 서술된 명제를 사실(fact)로 인지 한다.
f11*: Statment of fact의 값은 참(True)만 존재 한다 (즉, 항상 참이다).
f12*: 거짓(false)인 명제는 statement of fact가 아니다.
f13*: "알수없음" 명제는 statement of fact가 아니다 [removed]
그 매우 드문 경우 가운데 하나가 바로 본인의 "(직접) 경험" 정도가 될 것이다[f6]. 본인이 실제로 한 경험은 실질적인 것이기에, 인지를 하는데 증거라는 것이 필요 없다(그림5참조)
거짓말의 수준을 언급하기 위해 우선 정의(Define)할 필요가 있다. 우선 이전에 언급한 거짓(lie)은 바로 사실(fact)가 아닌 것(i.e., ~fact)이다. 그리고, 정확한 의미의 거짓은 다음과 같은 특징을 가진다.
L1. 거짓말: 인식을 제대로 하지 못하도록 하는 행위(말, 행동 등)
L2. 사실(fact)를 거짓(lie)로 인식 (혹은 인식하게 하는 행위)
L3. 진실(true)인 명제를 거짓(false) 혹은 알수없음(unknown) 명제로 인식
L4. 거짓(false) 혹은 unknown인 명제를 참(true)인 명제로 인식
위와 같은 특징을 감안 했을 때, 거짓말은 다음과 같이 정의 할 수 있을 것이다.
거짓말(L1): 진실(true)인 명제를 진실이 아닌 것(false/unknown)으로 인식하게 하는것
혹은, 거짓이나 알수없음인 명제를 진실로 인식(L2)하게 하는 것을 의미 한다. 그리고, L1과 L2는 동일 한 것이라는 것을 잘 알 것이다.
우선, 거짓말을 하는 방법을 이야기 하기전에 인식에 대한 전체적인 flow(혹은 process)를 정의하면 다음과 같이 나타낼수 있다 (그림7 참조). 참고로, 그림7은 필자가 그린 그림들 중에 가장 중요한 그림 중의 하나이다.
우선 그림7은 어떤 명제에 대한 인식을 하는 전체적인 Flow를 그린 그림이다. 그리고, 화살표의 방향은 조건부 명제의 원인-결과의 관계와 동일 하다. 즉, 화살표의 시작은 원인, 화살표의 끝은 결과를 의미한다. 그리고, 이에 대한 판단은 수학의 조건명제와 증명 방법과 동일 하다. 그리고, 빨간색으로 언급한 것들이 바로 거짓말을 하는 7방법이다. 즉, 거짓말을 하는 7가지 방법은
l1: 가짜 증거: 증거가 lie
l2: Statement of fact가 false
l3: Definition (statement of assumption)이 unknown 혹은 false
l4: Proof method가 unknown 혹은 false
l5: 증명오류
l6: 인식오류*
l7: 의식흐름의 방향*
첫번째 방법[l1]은 사실에 대한 증거를 조작하는 것을 의미 한다. 이러한 거짓말은 쉽게 탄로날 수 있다. 물론, 증거의 조작을 고난이도 한다면 조금 다르긴 하겠지만 말이다.
두번째 방법[l2]은 사실을 서술한 사실명제(statement of fact)가 거짓(false)인 경우이다. 일반적인 명제는 true나 false가 존재한다. 하지만, statement of fact의 값이 false가 된다면, 해당 명제는 더 이상 (완벽한) 사실을 서술한 명제가 아니다. 즉, false인 명제를 true인 것처럼 속인 것이다. s4가 그 대표적인 예이다. s4는 false인 명제이다. 갈릴레오 시대에는 사실로 여겨졌던 (Psudo-Fact) 명제였다. 하지만, 갈릴레오 이후 이는 더이상 사실이 아니다. 그래서, lie를 사실명제로 하는 것. 이것이 두번째 거짓말이다.
세번째 거짓말하는 방법[l3]은 정의(definition: Statement of Assumption)에 대해서는 나중에 따로 설명을 하겠지만, 기본적으로 definition은 사실(fact)을 기반하지 않을 수 있다. 예를 들자면, 운동 경기의 규칙 같은 것들이다. 사실을 기반으로 한 것은 아니지만, 그냥 정한 것이다. 여기서 가장 중요한 것은 정의는 그 진리값이 변해서는 안된다. 즉, 해당 시스템에서는 "절대성"이 존재해야 한다. 절대성이 존재하지 않는다면, 해당 명제는 더이상 정의가 아니다. 이러한 정의가 아닌 명제를 정의로 만드는 것. 이것이 세번재 거짓말이다.
논리적인 명제를 수학적인 명제로 바꾸었을 때 생기는 가장 큰 장점이 바로 증명 오류를 쉽게 판단할 수 있기 때문이다.
네번재 거짓말[l4] 잘못된 증명 방법으로 증명을 하는 것을 의미 한다. 즉, fact에서 Statement of fact를 판단할 때는 증거(Evidence)가 기반이 되어야 한다. 그런데, 증명을 통해서 명제를 판단하려 한다면 거짓말이다. 그와 반대도 마찬가지이다. 즉, 증명을 통해 진리값을 판단해야 하는 경우에 증거를 기반으로 판단을 하고자 하는 경우도 이 거짓말에 해당한다. 참고로 이런류의 거짓말이 실제로는 논리적이지 않으나 사실은 논리적인 이들이 주로 쓰는 거짓말이다. 다음 명제를 보자
s5: 컴퓨터는 무리수 저장이 가능 하다.
우선, 수학을 하시는 분들은 아시겠지만, 무리수는 소수점 이하가 "무한"으로 계속되는 수를 의미 한다. 컴퓨터는 유한한 메모리를 가지고 있기 때문에 "무한"개념이 포함한 무리수를 저장하는 것은 불가능 하다. 즉, s5는 false인 명제 이다. 그런데, 다들 알겠지만, 컴퓨터로 무리수의 표현과 계산등과 같은 우리가 사용하는 모든 것들을 컴퓨터로 해결 할 수 있다. 그렇기에 많은 이들이 이러한 예(즉, 증거)를 들어 s5가 참(true)라고 주장한다. 물론, 귿이 따지자면, s5 자체는 unknown인 명제로 볼 수도 있을 것이다. "저장"이라는 것을 만약 다르게 정의 한다면, s5는 참이 될 수도 있으니까 말이다. 어쨋든 이부분을 왜속 시키는 것이 거짓말을 하는 한가지 방법이고. 가장 난이도가 높은 거짓말이다.
그리고, 거짓말들[l2-l4]에서 uknown으로 만든다는 의미는, 기본적으로 원인-결과의 관계 자체가 성립하지 않는 경우가 해당 한다. 즉, 서로 관련이 없는 것을 마치 관련 있는 것처럼 만드는 것이 바로
다섯째 거짓말[l5]은 비교적 간단하다. 증명 오류인 경우이다. 즉, 수학문제를 풀다가 실수를 해서 잘못된 답을 구하는 것 정도 생각하면 이해가 쉬울 것이다. 물론, 공부는 열심히 해야 한다. 어떤 수학문제를 풀때 미/적분을 아는 이가 문제를 풀때와 면적구하는 기본 공식만 아는 아는 이가 문제를 푸는 것은 천지차이가 나는 것과 마찬가지 이다. 이 부분이 비교적 간단하긴 하지만, 증명방법을 모르는 이들에게 거짓말하기는 여전히 유용한 거짓말 방법이다.
여섯번째 거짓말 하는 방법은[l6]은 인식에 관한 문제이다. 사람은 감정의 동물이다. 감정선에 따라서 서술에대한 결과를 달리 인식하는 경우가 많다. 그리고, 이러한 거짓말을 다루는 학문이 바로 심리학이다. 특히, 이러한 거짓말 방법이 적용가능한 명제는 감정과 의지과 관련된 명제이다.
....는 위험하다
....는 믿는다.
....는 착하다.
....는 해야한다.
....
[l6]를 적용할 수있는 명제는 얼마든지 있다. 사실 인간사를 서술하는 거의 모든 명제들은 l6로 거짓말이 가능하다. 왠지 어떤 사람이 맘에 들고, 아침이면 기분이 좋고, 어떤 사람들은 왠지 믿음이 가고, 그 사람이 한 말은 무조건 참일 것 같고, 같은 말을 해도 전문가가 이야기하면 더 참 인것 같고...
그리고, [l7]과 함께 [l6]과 같은 방법의 거짓말이 가능한 이유는 인간은 감정적인인식을 하기 때문이다. 그리고, 이성적인 판단을 할 때 감정적인 인식을 되도록이면 배제해야 하는 이유도 이러한 방법의 거짓말에 속지 않기 위함이다.
일번째 거짓말 방법[l7]은 감정적인식을 논리적인식인 것으로 속이는 것을 말한다. 위에 언급 했듯이 논리적인 인식은 참인 System에서 시작하여 이후의 관계가 조건부명제의 사슬 형태로 구성이 되어 있기 때문에 논리전개의 모든 조건을 만족하면, 명제의 진리값과 같은 값을 인식할 수 있다. 하지만, 감정적인 인식은 그 출발이 자신이다. 그렇기에 논쟁을 할때는 감정적인 인식을 기반으로 한 명제는 설득력이 떨어진다. 그래서, 설득력을 높이기 위해서 쓰는 방법이 출발은 인식이지만, 그것이 마치 논리적인 인식과 같은 의식 흐름을 가지도록 제 구성하는 것이다. 일번째 거짓말 방법이 난이도로도 따지면 가장 어려운 거짓말 방법인데, 상황에 따라서 이게 거짓말이 아닐 수가 있는데, 그 이유는 서술 명제의 값이 인식한 값과 같은 경우에는 거짓말이 아니기 때문이다. 하지만, 인식한(여기서는 이미 정한 것) 진리값과 실제 명제의 값이 일치 않을 경우엔 거짓말이 된다. 그러한 거짓말은 난이도로 따지면, 가장 쉬운 수준의 거짓말이다. 조건부 명제의 기본만 알고 있다면, 바로 거짓인 것을 판단 할 수 있다. 하지만, 가장 많이 쓰는 그리고, 가장 많이 쓰는 거짓말 방법이기도 하다. 특히, 명제에 대한 정확한 인식이 없는 문과계 를 전공한 이들이 가장 많이 속는 방법이기도 하다. 이러한 거짓말 방법의 대표적인 예가 바로 치킨과 프로 야구 이다.
https://brunch.co.kr/@amangkim/11
원문이 궁금한 이는 위의 링크를 보면 되고, 원문에 언급된 명제를 보자.
x1: 치킨 판매량 증가
x2: 구단의 전력 증가
s0: x1 → x2
c1: x2 → x1
s1: s0는 true 이다 (기사가 인식/주장 하는 것).
proof: c1:t -- 구단의 전략이 증가 → 관객수증가 →치킨 판매량증가
하지만, c1이 참이라고 해서 s0가 참은 아니다 (수학명제)
의식의 흐름이 바뀐다는 것은 조건부 명제에서 화살표의 방향이 바뀐 다는 의미 이다. 즉, x1 → x2가 x1←x2로 바뀐다는 말이다. 그리고, 앞이 참이라고 해서 뒷 명제가 참이라는 것을 보장하지는 않는다. 이러한 감정적인식 흐름으로 얻은 명제 값이 진실이 되기 위해서는 x1 ←→ x2인 관계가 성립해야 한다.
다들 알겠지만, 거짓말이라는 단어는 수학에서 나온 말이 아니다. 오히려, 인간사에 있어서 누군가가 하는 말이 거짓말인지, 어떤 사람이 선한 사람인지 아닌지를 판단하는 기준으로 많이 사용되었다. 조금만 고민해 보면, 거짓말이라는 것을 정의하기가 매우 어렵다는 것을 쉽지 않게 알게 될 것이다. 거기다가 회색 거짓말이니, 하얀거짓말이니. 판단도 되지 않은 느낌적인 느낌의 단어들을 갖다 붙이면서, 본질을 흐리게 한다. 우리는 명제의 홍수속에 살고 있다. 매일같이 쏟아져 나오는 기사들이나, 데이터들, 정보들이 모두다 여러분들이 어떤식으로든지 참-거짓 인식해야 하는 명제들이다. 그리고, 좋든 싫던 여러분들은 그에 대한 인식을 하면서 살아간다. 다들 알겠지만, 이런 정보속에서 얻어진 명제들은 대부분은 unknown인 명제들이고, 우리는 자신들만의 기준으로 참-거짓(t/f)으로 인지 해야 하는 경우가 많다.
내가 적은 글은 내가 가진 거짓말에 대한 가치관을 수학이라는 도구를 이용하여 구성해 본 것이다. 이것이 얼마나 의미가 있는지는 모르겠지만, 적어도 내가 어떤 명제에 대해서 거짓말을 판단하는데는 꽤 명확한 근거를 제공해 준다. 그리고, 이 글에서 본것 처럼, 어떤 거짓말을 하기 위해서 많은 (논리적인) 고민을 해야 하고, 어떤 거짓말은 직관적이다. 하지만, 이러한 거짓말의 수준(혹은 난이도)는 그 거짓말이 얼마나 나쁜것인지와는 별개이다. 거짓말의 수준은 논리적인 고민의 질로 결정되지만, 거짓말의 죄질은 거짓말의 목적에 의해 결정이 된다. 그게 난이도가 수준의 거짓말이건, 난이도가 높은 거짓말이건 말이다. 그리고, 그보다 더 중요한 것은 거짓말의 죄질이 나쁘건, 좋건, 그 수준이 높건, 낮건간에 거짓말은 거짓말 이라는 것이다. 그리고, 그 것보다 더 중요한 사실
거짓말은 거짓말이라는 명제는 항상 참(true) 이다!!
이라는 점이다.
[끝]
덧. 해당 글의 내용을 동영상으로 강의 합니다. 관심 있으신 분들의 많은 시청 바랍니다.
https://www.youtube.com/watch?v=6GoiEr-jI7E