κ°œλ°œμžλŠ” μˆ˜ν•™μ„ μž˜ν•΄μ•Όν• κΉŒ?

    κ°œλ°œμžλŠ” μˆ˜ν•™μ„ μž˜ν•΄μ•Όν• κΉŒ?


    이번 ν¬μŠ€νŒ…μ—μ„œλŠ” ν•„μžκ°€ 많이 받은 질문 쀑 ν•˜λ‚˜μΈ κ°œλ°œμžλŠ” μˆ˜ν•™μ„ μž˜ν•΄μ•Όν• κΉŒ?λΌλŠ” μ§ˆλ¬Έμ— λŒ€ν•΄μ„œ ν•œλ²ˆ 이야기 ν•΄λ³ΌκΉŒ ν•œλ‹€. λ¬Όλ‘  이 μ£Όμ œλŠ” μ „ μ„Έκ³„μ˜ λ§Žμ€ κ°œλ°œμžλ“€ 간에도 의견이 κ°ˆλ¦¬λŠ” λ‚΄μš©μ΄κΈ° λ•Œλ¬Έμ— κ·Έλƒ₯ μ§€λ‚˜κ°€λŠ” 개발자 ν•œλͺ…μ˜ 생각일 뿐이라고 μƒκ°ν•΄μ€¬μœΌλ©΄ μ’‹κ² λ‹€.

    사싀 ν•„μžλ„ μˆ˜ν•™μ„ μž˜ν•˜λŠ” 편이 μ•„λ‹ˆλΌ κ·Έλƒ₯ 컴퓨터 κ³΅λΆ€ν•˜μ‹  λ‹€λ₯Έ λΆ„λ“€μ²˜λŸΌ ν•™κ΅μ—μ„œ 배우긴 ν–ˆλŠ”λ° μ‘Έμ—…ν•˜κ³  λ‚˜μ„œλŠ” 잘 κΈ°μ–΅μ•ˆλ‚˜λŠ” κ·Έλƒ₯ κ·Έ μ •λ„μ˜ μˆ˜μ€€μ΄λ‹€. κ²Œλ‹€κ°€ ν•„μžλŠ” μ†μœΌλ‘œ ν‘ΈλŠ” 계산이 ꡉμž₯히 μ•½ν•˜κΈ° λ•Œλ¬Έμ— μˆ˜ν•™ 성적이 μ’‹μ•˜λ˜ νŽΈλ„ μ•„λ‹ˆλ‹€.(사칙연산을 잘 ν‹€λ¦°λ‹€.)

    κ·Έλž˜λ„ μΈν„°λ„·μ—μ„œ λ§Žμ€ 뢄듀이 이 μ£Όμ œμ— λŒ€ν•΄μ„œ 이야기 ν•΄μ£Όμ‹œκΈ°λ„ ν–ˆκ³ , μ‹€μ œλ‘œ κ°œλ°œμžκ°€ μ•„λ‹Œ λΆ„λ“€μ—κ²Œ 이런 μ§ˆλ¬Έμ„ 받은 적도 μžˆμ–΄μ„œ ν•„μžλ„ ν•œλ²ˆ 이 μ£Όμ œμ— λŒ€ν•œ ν•„μžμ˜ 생각을 λ„μ μ—¬λ³ΌκΉŒν•œλ‹€.

    ν”„λ‘œκ·Έλž˜λ°μ€ μˆ˜ν•™μ΄λ‹€

    일단 근본적으둜 μš°λ¦¬κ°€ μ‚¬μš©ν•˜κ³  μžˆλŠ” 이 μ»΄ν“¨ν„°λŠ” 사싀 0κ³Ό 1을 μ‚¬μš©ν•˜λŠ” 계산기닀. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— μ»΄ν“¨ν„°μ—λŠ” μ•„λ¬΄λž˜λ„ μˆ˜ν•™μ μΈ λ‚΄μš©μ΄ 많이 λ“€μ–΄κ°ˆ 수 밖에 μ—†κ³ , ν”„λ‘œκ·Έλž˜λ°μ„ ν•  λ•Œλ„ μ•Œκ²Œ λͺ¨λ₯΄κ²Œ 많이 λ…Ήμ•„μžˆλŠ” μˆ˜ν•™μ μΈ κ°œλ…λ“€μ΄ λ§Žλ‹€.

    κ·Έλž˜μ„œ 사싀 ν•„μžλŠ” 개발자라면 μˆ˜ν•™μ„ μ‘°κΈˆμ€ ν•  쀄 μ•Œμ•„μ•Όν•œλ‹€κ³  μƒκ°ν•˜λŠ” νŽΈμ΄λ‹€. 이 μ–˜κΈ°λ₯Ό 듀은 μ—¬λŸ¬λΆ„μ€ μ–΄? λ‚œ μˆ˜ν•™μ„ 잘 λͺ»ν•˜λŠ”데 μ§€κΈˆ κ°œλ°œμ„ ν•˜κ³  μžˆλŠ”λ°?라고 μƒκ°ν•˜μ‹€ μˆ˜λ„ μžˆκ² λ‹€.

    κ·ΈλŸ¬λ‚˜ μ—¬κΈ°μ„œ ν•„μžκ°€ λ§ν•˜λŠ” μˆ˜ν•™μ€ 무슨 μ„ ν˜•λŒ€μˆ˜ν•™μ΄λ‚˜ 미적뢄같은 κ³ λ“±μˆ˜ν•™μ„ λ§ν•˜λŠ” 것이 μ•„λ‹ˆλ‹€. ν•„μžκ°€ μ–˜κΈ°ν•˜λŠ” μˆ˜ν•™μ€ λŒ€λΆ€λΆ„ λͺ…μ œλ‚˜ 집합, n진법과 같이 이미 μš°λ¦¬κ°€ μ€‘κ³ λ“±ν•™κ΅μ—μ„œ λ°°μ› λ˜ μ •λ„μ˜ μˆ˜μ€€μ„ μ΄μ•ΌκΈ°ν•˜λŠ” 것이닀.

    λ¬Όλ‘  이 κ°œλ…λ“€λ„ κ²°κ΅­ νŒŒκ³ λ“€λ©΄ νŒŒκ³ λ“€μˆ˜λ‘ 점점 좔상적이고 μ–΄λ €μš΄ κ°œλ…λ“€μ΄ λ‚˜μ˜€μ§€λ§Œ μ†”μ§νžˆ κ·Έλ ‡κ²ŒκΉŒμ§€ μ•Œ ν•„μš”λŠ” μ—†λ‹€κ³  μƒκ°ν•œλ‹€. μš°λ¦¬κ°€ 무슨 μˆ˜ν•™μ„ μ—°κ΅¬ν•˜λŠ” μ‚¬λžŒλ„ μ•„λ‹ˆκ³ , μš°λ¦¬λŠ” κ·Έλƒ₯ 개발자둜써 ν”„λ‘œκ·Έλž˜λ°μ— ν•„μš”ν•œ μ •λ„λ§Œ μ•Œκ³  있으면 λœλ‹€. μ€‘μš”ν•œ 것은 μˆ˜ν•™μ΄λΌλŠ” ν‚€μ›Œλ“œμ— 쫄지 μ•ŠλŠ” 것이닀.

    κ·Έλž˜μ„œ 이번 ν¬μŠ€νŒ…μ—μ„œλŠ” ν•„μžκ°€ μƒκ°ν–ˆμ„ λ•Œ ν”„λ‘œκ·Έλž˜λ°μ— 도움이 λ˜λŠ” μˆ˜ν•™ κ°œλ… 3가지에 λŒ€ν•΄μ„œ κ°€λ³κ²Œ ν•œλ²ˆ 이야기 해보렀고 ν•œλ‹€.

    μˆ˜ν•™μ— 쫄지 말자!

    μš”μ¦˜ ν•«ν•œ 주제인 λ¨Έμ‹ λŸ¬λ‹μ΄λ‚˜ 인곡 신경망 같은 경우 ν˜ΈκΈ°μ‹¬μ„ μžκ·Ήν•˜λŠ” ν‚€μ›Œλ“œμ§€λ§Œ, ꡬ글링을 해보면 λ‚˜μ˜€λŠ” 검색 κ²°κ³ΌλŠ” 우리의 곡뢀 μ˜μš•μ„ κΊΎμ–΄λ†“λŠ”λ‹€.

    …
    해닡이 μ–΄λ–€ 데이터에 의쑴적인 경우, λΉ„μš©μ€ 관츑값에 λŒ€ν•œ ν•¨μˆ˜κ°€ λ˜μ–΄μ•Ό ν•˜λ©°, 그렇지 μ•Šμ„ κ²½μš°μ—λŠ” 데이터와 κ΄€λ ¨λœ μ–΄λ–€ 것도 λͺ¨λΈλ§ν•  수 μ—†κ²Œ λœλ‹€. λ§Žμ€ 경우 λΉ„μš©μ€ κ·Όμ‚¬λ μˆ˜λ§Œ μžˆλŠ” ν†΅κ³„λ‘œ 주어진닀.

    κ°„λ‹¨ν•œ 예둜, μ–΄λ–€ 뢄포 D\mathcal {D}μ—μ„œ 뽑아낸 데이터 쌍 (x,y)(x, y)에 λŒ€ν•΄ λΉ„μš© C=E[(f(x)βˆ’y)2]C = E[(f(x) - y)^{2}]을 μ΅œμ†Œν™”ν•˜λŠ” λͺ¨λΈ ffλ₯Ό μ°ΎλŠ” 문제λ₯Ό μƒκ°ν•΄λ³΄μž. μ‹€μš©μ μœΌλ‘œλŠ” 뢄포 D\mathcal {D}μ—μ„œ μœ ν•œν•œ NN개의 μƒ˜ν”Œλ§Œμ„ 뽑아낼 수 μžˆμœΌλ―€λ‘œ, 이 예의 경우 C^=1Nβˆ‘i=1N(f(xi)βˆ’yi)2\hat{C} = \frac{1}{N}\sum_{i=1}^{N}(f(x_i) - y_i)^{2}, 즉 전체 데이터 집합이 μ•„λ‹ˆλΌ λ°μ΄ν„°μ˜ μƒ˜ν”Œμ— λŒ€ν•œ λΉ„μš©λ§Œ μ΅œμ†Œν™”λ  수 μžˆμ„ 것이닀.
    …

    인곡 신경망 - ν•™μŠ΅, μœ„ν‚€ λ°±κ³Ό

    luckyjjang 난 분명 수식을 보고 있는데 숫자보다 영어가 더 많이 보이고...

    μ†”μ§νžˆ μ €λŸ° μˆ˜μ‹μ„ 처음 보면 무슨 외계어 같기도 ν•˜κ³  무슨 말을 ν•˜λŠ” 지 도톡 μ•Œ μˆ˜κ°€ μ—†λ‹€. κ²Œλ‹€κ°€ κ°„λ‹¨ν•œ μ˜ˆλžμ‹œκ³  μ„€λͺ…ν•˜κ³  μžˆλŠ” 것은 μ „ν˜€ κ°„λ‹¨ν•˜μ§€ μ•Šκ²Œ 생겼닀.(λΉ‘μΉ¨)

    이런 것듀이 λ°”λ‘œ 우리의 곡뢀 μ˜μš•μ„ κΉŽμ•„λ¨ΉλŠ” μˆ˜ν•™μ˜ λͺ¨μŠ΅μ΄λ‹€. ν•˜μ§€λ§Œ μ € μˆ˜μ‹μ΄ μ§„μ§œ μ–΄λ ΅κ³  λ³΅μž‘ν•œ 의미일까?

    μ € κΈ°ν˜Έμ™€ μ•ŒνŒŒλ²³μ΄ μ–΄λ–€ μ˜λ―ΈμΈμ§€λ§Œ μ•Œλ©΄ μš°λ¦¬λŠ” 이 μˆ˜μ‹μ„ μ½”λ“œλ‘œ ν¬νŒ…ν•  수 μžˆλŠ”λ°, 막상 μ§œλ†“κ³  보면 ꡉμž₯히 κ°„λ‹¨ν•˜λ‹€. 그럼 λ”± 봀을 λ•Œ 제일 λ³΅μž‘ν•΄λ³΄μ΄λŠ” C^=1Nβˆ‘i=1N(f(xi)βˆ’yi)2\hat{C} = \frac{1}{N}\sum_{i=1}^{N}(f(x_i) - y_i)^{2}λ₯Ό κ°’ Cλ₯Ό κ΅¬ν•˜λŠ” μ½”λ“œλ‘œ ν•œλ²ˆ μž‘μ„±ν•΄λ³΄κ² λ‹€.

    const inputs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    const outputs = [10, 9, 8 ,7, 6, 5, 4, 3, 2, 1];
    const N = inputs.length;
    
    function exampleFunction (x) {
      return x + 1;
    }
    
    function getC (x, y) {
      let result = 0;
      for (let i = 0; i < N; i++) {
        result += (exampleFunction(x[i]) - y[i]) ** 2;
      }
      return result / N;
    }
    
    const C = getC(inputs, outputs);

    쨘, 이제 μ•„κΉŒ μ € μˆ˜μ‹μ΄ μ–΄λ–€ λ‚΄μš©μΈμ§€ 쑰금 더 이해가 잘될 것이라고 μƒκ°ν•œλ‹€. ν˜Ήμ‹œ μ € μˆ˜μ‹μ΄ μ–΄λ–€ λ‚΄μš©μΈμ§€ μ΄ν•΄ν•˜μ§€ λͺ»ν–ˆλ”라도 μ½”λ“œλŠ” 이해할 수 μžˆμœΌλ‹ˆ 말이닀.

    그럼 λ¨Όμ € μ΄μƒν•œ κΈ°ν˜Έκ°€ μžˆμ–΄μ„œ μ–΄λ €μ›Œ λ³΄μ΄λŠ” βˆ‘i=1N\sum_{i=1}^{N}λ₯Ό ν•œλ²ˆ μ‚΄νŽ΄λ³΄μž.

    βˆ‘\sum(Sum이라고 μ½λŠ”λ‹€) κΈ°ν˜ΈλŠ” κ·Έλƒ₯ 뒀에 λΆ™μ–΄ μžˆλŠ” 값을 반볡문 λŒλ¦¬λ©΄μ„œ λ”ν•˜λΌλŠ” λœ»μ΄λ‹€. 즉, βˆ‘i=1N\sum_{i=1}^{N}은 iλ₯Ό 1둜 μ΄ˆκΈ°ν™”ν•˜κ³  NκΉŒμ§€ 반볡문 λŒλ¦¬λ©΄μ„œ 값을 λ”ν•΄λΌλΌλŠ” 의미인 것이닀. μš°λ¦¬κ°€ for문을 μ‚¬μš©ν•  λ•Œ κ΄€μŠ΅μ μœΌλ‘œ μ‚¬μš©ν•˜λŠ” λ³€μˆ˜ ii도 μ—¬κΈ°μ„œ νŒŒμƒλœ 것이닀.

    그러면 βˆ‘\sum의 λ’€μͺ½μœΌλ‘œ μ˜€λŠ” (f(xi)βˆ’yi)2(f(x_i) - y_i)^{2}에 ν¬ν•¨λœ xix_iλ‚˜ yiy_i의 μ˜λ―Έλ„ μžμ—°μŠ€λŸ½κ²Œ 이해가 될 것이닀. κ·Έλƒ₯ μ–΄λ–€ μ§‘ν•©μ˜ ii번째 μ›μ†Œλ₯Ό λ§ν•˜λŠ” 것이닀.

    그리고 λ§ˆμ§€λ§‰μ— 1N\frac{1}{N}을 κ³±ν•΄μ£ΌλŠ”λ°, NN번 λ°˜λ³΅ν•˜λ©΄μ„œ λͺ¨λ‘ λ”ν•œ 값을 NN으둜 λ‚˜λˆ„λ©΄ 뭘까?

    λ„€, ν‰κ· μž…λ‹ˆλ‹€.

    μ—¬κΈ°κΉŒμ§€ λ³΄κ³ λ‚˜λ©΄ 이제 더 이상 μ € μˆ˜μ‹μ΄ λ‚―μ„€κ²Œλ§Œ λŠκ»΄μ§€μ§€λŠ” μ•Šμ„ 것이닀. 그리고 μœ„μ—μ„œλ„ ν•œλ²ˆ μ–˜κΈ°ν–ˆμ§€λ§Œ ν•„μžκ°€ λ§ν•˜κ³  싢은 것은 μ € μˆ˜μ‹μ„ μ½”λ“œλ‘œ μž‘μ„±ν•  수 μžˆλƒ 없냐가 μ•„λ‹ˆλ‹€. μ €λŸ° μˆ˜μ‹λ„ μ½”λ“œλ‘œ 바꿔보면 κ·Έλ ‡κ²Œ μ–΄λ €μš΄ μˆ˜μ‹μ΄ μ•„λ‹ˆλΌλŠ” 것을 λ§ν•˜κ³  싢은 것이닀. μ«„ ν•„μš”κ°€ μ—†λ‹€!

    κ·Έλƒ₯ μš°λ¦¬μ—κ²Œ for문은 μ΅μˆ™ν•˜μ§€λ§Œ βˆ‘\sum이 μ΅μˆ™ν•˜μ§€ μ•Šμ„ 뿐이닀. λ§Œμ•½ μ–΄λ–€ μˆ˜μ‹μ„ 보고 λͺ¨λ₯΄λŠ” κΈ°ν˜Έκ°€ λ‚˜μ˜€λ©΄ ν•œλ²ˆ 의미λ₯Ό μ°Ύμ•„λ³΄μž. λ¬Όλ‘  κ·Έ μ€‘μ—λŠ” 의미 μžμ²΄κ°€ μ–΄λ €μš΄ κΈ°ν˜Έλ„ μžˆλ‹€.(∫\int같은 적뢄 κΈ°ν˜Έβ€¦?) ν•˜μ§€λ§Œ λŒ€λΆ€λΆ„μ˜ 경우 κ·Έλƒ₯ μ•ŒνŒŒλ²³μ€ λ³€μˆ˜, κΈ°ν˜ΈλŠ” κ·œμΉ™(ν”„λ‘œκ·Έλž˜λ°μ—μ„œμ˜ λͺ…λ Ήλ¬Έ)μ΄λ‚˜ νŠΉλ³„ν•œ ν•¨μˆ˜λ₯Ό μ˜λ―Έν•˜κΈ° λ•Œλ¬Έμ— ν•˜λ‚˜ν•˜λ‚˜ λœ―μ–΄λ³΄κ³  μ½”λ“œλ‘œ μž‘μ„±ν•΄λ³΄λ©΄ 생각보닀 λ‹¨μˆœν•œ κ²½μš°κ°€ λ§Žλ‹€.

    이제 더 이상 μˆ˜ν•™μ΄ 별 κ±° μ—†λ‹€λŠ” κ±Έ μ•Œμ•˜μœΌλ‹ˆ μˆ˜ν•™μ΄λΌλŠ” 단어 μžμ²΄μ— 쫄지 말고 ν•œλ²ˆ μ”Ήκ³  뜯고 맛보고 즐겨보자.

    μ•Œλ©΄ 도움이 λ˜λŠ” μˆ˜ν•™ κ°œλ… 3가지

    자 그럼 이제 본둠으둜 λ“€μ–΄κ°€μ„œ, μš°λ¦¬κ°€ ν”„λ‘œκ·Έλž˜λ°μ„ ν•  λ•Œ 도움이 λ λ§Œν•œ μˆ˜ν•™μ˜ 3가지 κ°œλ…λ“€μ„ μ‚΄νŽ΄λ³΄μž.

    사싀 ν•„μžκ°€ μ΄μ•ΌκΈ°ν•˜κ³  싢은 것은 κ°œλ…μ΄κΈ° λ•Œλ¬Έμ— μœ„μ—μ„œ 예둜 λ“€μ—ˆλ˜ κ²ƒμ²˜λŸΌ μˆ˜μ‹μ΄ λ‚˜μ˜€λŠ” λŒ€μˆ˜ν•™ 같은 건 μ•„λ‹ˆλ‹€. 그리고 이 ν¬μŠ€νŒ…μ—μ„œ μ„€λͺ…ν•˜λŠ” κ°œλ…λ“€μ€ 사싀 μˆ˜ν•™λ³΄λ‹€ 논리학에 κ°€κΉŒμš΄ λŠλ‚Œμ΄κΈ° λ•Œλ¬Έμ— λ°˜λ“œμ‹œ μˆ«μžμ™€ μ—°κ΄€μ§€μ–΄μ„œ 생각할 ν•„μš”λŠ” μ—†λ‹€.

    이 κ°œλ…λ“€μ€ μš°λ¦¬κ°€ 쀑학ꡐ, κ³ λ“±ν•™κ΅μ—μ„œ 이미 λ°°μ› λ˜ κ°œλ…λ“€μ΄λ‹€. λ‹€λ§Œ 수λŠ₯을 보고 λ‚˜λ©΄ λ”±νžˆ μ“Έ 일이 μ—†κΈ° λ•Œλ¬Έμ— κΉŒλ¨Ήμ—ˆμ„ 뿐이닀. λ¬Όλ‘  이과 κ³„μ—΄μ˜ 전곡을 νƒν•˜μ‹  λΆ„μ΄λ‚˜ λ¬Έκ³Ό μ€‘μ—μ„œλ„ κ²½μ œν•™μ²˜λŸΌ μˆ˜ν•™κ³Ό 연관이 κΉŠμ€ 전곡을 νƒν•˜μ‹  뢄은 계속 μˆ˜ν•™μ„ κ³΅λΆ€ν•˜κΈ° λ•Œλ¬Έμ— κΉŒλ¨Ήμ§€ μ•Šμ•˜μ„ 수 μžˆμ§€λ§Œ κ·Έ μ™Έμ˜ κ²½μš°λŠ” 사싀 κΉŒλ¨Ήμ„ 수 밖에 μ—†λ‹€.

    뭐 μ–΄μ¨Œλ“  ν•„μžκ°€ μ„€λͺ…ν•  κ°œλ…λ“€μ€ μ „λΆ€ 어릴 λ•Œ ν•œλ²ˆ μ •λ„λŠ” λ“€μ–΄λ΄€λ˜ 논리에 λŒ€ν•œ κ°œλ…λ“€μ΄λ‹ˆκΉŒ μ‘°κΈˆμ€ κ°€λ²Όμš΄ 마음으둜 ν•œλ²ˆ 즐겨보도둝 ν•˜μž.

    λͺ…μ œ(Proposition)

    자 처음으둜 μ΄μ•ΌκΈ°ν•˜κ³  싢은 κ°œλ…μ€ 쀑학ꡐ 1학년인가? 2ν•™λ…„ λ•Œ λ°°μš°λŠ” λͺ…μ œμ΄λ‹€. 사싀 λͺ…μ œλŠ” ꡳ이 ν”„λ‘œκ·Έλž˜λ°μ„ μœ„ν•΄μ„œκ°€ μ•„λ‹ˆλ”λΌλ„ κ·Έλƒ₯ 논리적인 사고λ₯Ό ν•˜κΈ° μœ„ν•΄μ„œ 기본적으둜 μ•Œκ³  μžˆμ–΄μ•Ό ν•˜λŠ” κ°œλ…μ΄λ‹€.

    λͺ…μ œλŠ” μ°Έ, 거짓과 같은 논리적인 진릿값을 κ°€μ§€λŠ” 것을 λ§ν•œλ‹€. 즉, μ°Έκ³Ό 거짓을 ꡬ뢄할 수 μ—†λŠ” λ¬Έμž₯은 λͺ…μ œλ‘œ μΉ˜μ§€ μ•ŠλŠ”λ‹€. 즉, μ—λ°˜μ€ ν‚€κ°€ 크닀와 같은 λ¬Έμž₯은 λͺ…μ œλ‘œ 성립될 수 μ—†λ‹€λŠ” 것이닀. λ‹€λ₯Έ μ‚¬λžŒμ΄ ν•„μžλ₯Ό 봀을 λ•Œ ν‚€κ°€ 크닀고 생각할 μˆ˜λ„ 있고 μž‘λ‹€κ³  생각할 μˆ˜λ„ μžˆλŠ” 주관성이 λ“€μ–΄κ°€λŠ” λ¬Έμž₯이기 λ•Œλ¬Έμ΄λ‹€.

    κ·Έλ ‡λ‹€λ©΄ λͺ…μ œλŠ” μš°λ¦¬κ°€ ν”„λ‘œκ·Έλž˜λ°μ„ ν•  λ•Œ 어디에 μ‚¬μš©λœλ‹€λŠ” 걸까?

    λͺ…μ œκ°€ λ§ν•˜λŠ” μ°Έκ³Ό 거짓은 μš°λ¦¬κ°€ ν”„λ‘œκ·Έλž˜λ°ν•  λ•Œ μ‚¬μš©ν•˜λŠ” True, Falseλ‚˜ 1, 0κ³Ό λ™μΌν•œ κ°œλ…μ΄λ‹€. 즉, μš°λ¦¬κ°€ 쀑학생 λ•Œ μˆ˜ν•™ κ΅κ³Όμ„œλ‘œ λ°°μ› λ˜ λͺ…μ œλŠ” 쑰건식과 λ™μΌν•˜λ‹€κ³  ν•  수 μžˆλ‹€. κ°„λ‹¨ν•œ μ½”λ“œλ₯Ό ν•œλ²ˆ 보자.

    const array = ['a', 'b', 'c'];
    
    if (array.includes('a')) {
      console.log('array λ³€μˆ˜μ—λŠ” aκ°€ λ“€μ–΄μžˆλ‹€.');
    }
    else {
      console.log('array λ³€μˆ˜μ—λŠ” aκ°€ λ“€μ–΄μžˆμ§€ μ•Šλ‹€.');
    }

    이 μ½”λ“œμ—μ„œ ν•„μžκ°€ μ œμ‹œν•œ λͺ…μ œλŠ” array λ³€μˆ˜μ— λ‹΄κΈ΄ 배열에 "a"λΌλŠ” μ›μ†Œκ°€ ν¬ν•¨λ˜μ–΄μžˆλ‹€μ΄κ³  이 λͺ…μ œκ°€ 참일 경우 ifλ¬Έ λ‚΄λΆ€μ˜ μ½”λ“œκ°€, 거짓일 κ²½μš°μ—λŠ” elseλ¬Έ λ‚΄λΆ€μ˜ μ½”λ“œκ°€ μ‹€ν–‰λœλ‹€. 이처럼 쑰건문에 μ‚¬μš©λ˜λŠ” 쑰건은 λ°˜λ“œμ‹œ λͺ…μ œμ—¬μ•Όν•˜λ―€λ‘œ λͺ…μ œμ— μ΅μˆ™ν•œ κ°œλ°œμžλŠ” μ–΄λ–€ μš”κ΅¬μ‚¬ν•­μ„ λ“€μ—ˆμ„ λ•Œ, κ·Έ μš”κ΅¬μ‚¬ν•­μ„ μΆ©μ‘±ν•  수 μžˆλŠ” λͺ…μ œλ₯Ό λΉ λ₯΄κ²Œ μ œμ‹œν•΄λ‚˜κ°ˆ 수 μžˆλ‹€.

    이 λͺ…μ œλΌλŠ” κ°œλ…μ€ ν•„μžκ°€ μ•žμœΌλ‘œ μ„€λͺ…ν•  λ‹€λ₯Έ κ°œλ…λ“€μ΄λ‚˜ λ‹€λ₯Έ μˆ˜ν•™μ˜ κ°œλ…μ—μ„œλ„ κ°€μž₯ κΈ°μ΄ˆκ°€ λ˜λŠ” κ°œλ…μ΄κΈ° λ•Œλ¬Έμ— μš°λ¦¬κ°€ 쀑학ꡐ에 μž…ν•™ν•˜μžλ§ˆμž λ°°μš°λŠ” 것이닀. μˆ˜ν•™μ€ κΈ΄κ°€λ―Όκ°€ν•œ 학문이 μ•„λ‹ˆλΌ μ •ν™•ν•œ 질문과 μ •ν™•ν•œ 닡을 μ œμ‹œν•  수 μžˆμ–΄μ•Όν•˜λŠ” λŠ₯λ ₯이 ν•„μš”ν•œ 학문이기 λ•Œλ¬Έμ— λͺ…μ œκ°€ κ°€μž₯ κΈ°μ΄ˆκ°€ λœλ‹€.

    집합(Set)

    λ‹€μŒμœΌλ‘œ 이야기 ν•  것은 λͺ…μ œμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ μš°λ¦¬κ°€ 쀑학ꡐ μž…ν•™ν•˜κ³ λ‚˜μ„œ λ°°μ› λ˜ 집합이닀. 집합도 λͺ…μ œμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ μ•Œκ²Œ λͺ¨λ₯΄κ²Œ 많이 μ‚¬μš©λ˜λŠ” κ°œλ…μ΄κΈ° λ•Œλ¬Έμ— 집합에 λŒ€ν•œ ν™•μ‹€ν•œ κ°œλ…μ„ μ•Œκ³  μžˆλ‹€λ©΄ ν”„λ‘œκ·Έλž˜λ°ν•  λ•Œ λ§Žμ€ 도움을 μ€€λ‹€.

    동글동글 κ·€μ—¬μš΄ λ²€λ‹€μ΄μ–΄κ·Έλž¨κ³Ό ν”„λ‘œκ·Έλž˜λ°μ€ 왠지 거리가 λ©€μ–΄λ³΄μ΄μ§€λ§Œ 사싀 μš°λ¦¬λŠ” μ € κ°œλ…μ„ 맀일맀일 ν”„λ‘œκ·Έλž˜λ°ν•  λ•Œ μ‚¬μš©ν•˜κ³  μžˆλ‹€. λ°”λ‘œ 논리식을 μž‘μ„±ν•  λ•Œ 말이닀. 논리식은 μœ„μ—μ„œ λ§ν•œ λͺ…μ œμ²˜λŸΌ True, False λ‘˜ 쀑에 ν•˜λ‚˜λ‘œ 평가받을 수 μžˆλŠ” 식을 μ΄μ•ΌκΈ°ν•œλ‹€. 보톡 μš°λ¦¬λŠ” λͺ…μ œ μ—¬λŸ¬ 개λ₯Ό 논리 μ—°μ‚°μžλ‘œ 묢은 식을 많이 μ‚¬μš©ν•œλ‹€. 이 논리식과 집합이 무슨 관계가 μžˆλ‹€λŠ” 걸까?

    사싀 μš°λ¦¬κ°€ μ‚¬μš©ν•˜λŠ” λ…Όλ¦¬μ—°μ‚°μžλŠ” &&(AND) = ꡐ집합, ||(OR) = ν•©μ§‘ν•©μœΌλ‘œ λŒ€μ‘λ˜κΈ° λ•Œλ¬Έμ— λ³΅μž‘ν•œ 논리식을 λ§ˆμ£Όμ³€μ„ λ•Œ κ·Έ 논리식을 λ²€λ‹€μ΄μ–΄κ·Έλž¨μœΌλ‘œ κ·Έλ €λ³΄λŠ” 것도 κ°€λŠ₯ν•˜λ‹€. 그리고 μš°λ¦¬κ°€ 어릴 λ•Œ μ™Έμ› λ˜ λ“œ λͺ¨λ₯΄κ°„μ˜ 법칙도 논리식에 κ·ΈλŒ€λ‘œ μ μš©λœλ‹€.(사싀 λ“œ λͺ¨λ₯΄κ°„μ˜ 법칙은 집합에 λŒ€ν•œ 법칙이라기보닀 μ’€ 더 포괄적인 λ…Όλ¦¬ν•™μ˜ 법칙이닀.)

    dmorgan dmorgan2 드 모르간의 법칙을 벤다이어그램으로 나타낸 모습

    ν•„μžλŠ” λ“œ λͺ¨λ₯΄κ°„ 법칙이 빛을 λ°œν•˜λŠ” μˆœκ°„μ΄ λ°”λ‘œ μžμ—°μ–΄λ₯Ό λ…Όλ¦¬μ‹μœΌλ‘œ λ³€ν™˜ν•  λ•ŒλΌκ³  μƒκ°ν•œλ‹€. 보톡 νšŒμ‚¬μ—μ„œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ§œλ‹€λ³΄λ©΄ PO듀이 μ–΄λ–€ κΈ°λŠ₯의 μž‘λ™ 여뢀에 쑰건을 μΆ”κ°€ν•˜λŠ” κ²½μš°κ°€ λ§Žμ€λ° λ¬Έμ œλŠ” 쑰건을 μΆ”κ°€ν•  λ•Œ 기쑴에 있던 μ‘°κ±΄λ“€κΉŒμ§€ λͺ¨λ‘ μƒκ°ν•˜λ©΄μ„œ 말해주지 μ•ŠλŠ”λ‹€λŠ” 것이닀.

    ν•„μžκ°€ μ§€κΈˆκΉŒμ§€ 일을 ν•˜λ©΄μ„œ κ²ͺ은 쑰건 쀑에 κ°€μž₯ λ³΅μž‘ν–ˆλ˜ 경우λ₯Ό 예둜 듀어보겠닀. ν•„μžλŠ” μ˜ˆμ „μ— 멀버십 결제 κΈ°λŠ₯을 κ°œλ°œν•œ 적이 μžˆμ—ˆλŠ”λ° λ¬Έμ œλŠ” 결제 μˆ˜λ‹¨μ„ μž…λ ₯ν•  수 μžˆλŠ” 폼의 λ Œλ” 쑰건이 ꡉμž₯히 λ³΅μž‘ν•˜λ‹€λŠ” κ²ƒμ΄μ—ˆλ‹€. λ¬Όλ‘  μ²˜μŒλΆ€ν„° μ΄λ ‡κ²Œ λ³΅μž‘ν•œ 건 μ•„λ‹ˆμ˜€κ³ , κΈ°λŠ₯이 좔가됨에 따라 점점 쑰건이 λ³΅μž‘ν•΄μ§„ μΌ€μ΄μŠ€μ΄λ‹€.

    λ‹Ήμ‹œ μ‘°κ±΄μ΄μ—ˆλ˜ 논리식을 μžμ—°μ–΄λ‘œ κ·ΈλŒ€λ‘œ 써보겠닀.

    쑰건 1. μ‚¬μš©μžμ˜ 멀버십이 해지 μƒνƒœκ°€ μ•„λ‹ˆκ³  결제 μˆ˜λ‹¨λ„ 가지고 μžˆμ§€ μ•Šλ‹€.
    쑰건 2. μ‚¬μš©μžκ°€ κ²°μ œμˆ˜λ‹¨μ„ 가지고 있고 결제 μˆ˜λ‹¨μ„ ν•Έλ“œν°μœΌλ‘œ 가지고 있으며, ν˜„μž¬ μ‚¬μš©μžκ°€ κ³ λ₯Έ μƒν’ˆμ΄ ν˜„μž¬ μ‚¬μš©μžκ°€ 가지고 μžˆλŠ” μƒν’ˆμ΄ μ•„λ‹ˆκ³  ν˜„μž¬ 멀버십이 해지 μ˜ˆμ•½μƒνƒœκ°€ μ•„λ‹ˆλ‹€.

    (쑰건 1 || 쑰건 2)이면 결제 μˆ˜λ‹¨ 등둝 폼이 ν™œμ„±ν™” λœλ‹€.

    쑰건 version 1

    what are you saying

    뭐 사싀 μ € 사단이 λ‚œκ±΄ 1차적으둜 개발자인 ν•„μžμ˜ 잘λͺ»μ΄κΈ΄ ν•˜μ§€λ§Œ ꡳ이 핑계λ₯Ό λŒ€μžλ©΄ μ‹œκ°„μ— μ«“κ²¨μ„œ 맨날 μ•Όκ·Όν•˜λ©΄μ„œ κ°œλ°œν•˜λ‹€λ³΄λ‹ˆ μ €λŸ° 괴물같은 논리식이 탄생해버렸닀…

    μ €λ ‡κ²Œ κ°œνŒμ³λ†“κ³ λ‚˜μ„œλ„ λ‹€λ₯Έ ν•  것도 λ„ˆλ¬΄ λ§Žμ•˜κΈ° λ•Œλ¬Έμ— 일단 묻어놓고 λ‹€λ₯Έ ν”„λ‘œμ νŠΈλ₯Ό 또 κ°œλ°œν•˜λ˜ 쀑에 POκ°€ ν•„μžμ—κ²Œ 이야기 ν–ˆλ‹€.

    μ—λ°˜, 저희 결제 μˆ˜λ‹¨ 등둝 폼에 쑰건 ν•˜λ‚˜λ§Œ 더 μΆ”κ°€ν•  수 μžˆμ„κΉŒμš”?

    μ € μ–˜κΈ°λ₯Ό λ“£κ³  λ‹€μ‹œ μ € μ½”λ“œλ₯Ό 보고 PO 얼꡴을 ν•œλ²ˆ λ³Έ λ’€, μ €κ±Έ μ–΄λ–»κ²Œλ“  λœ―μ–΄κ³ μ³μ•Όκ² λ‹€λŠ” 결둠에 λ‹€λ‹€λ₯Έ ν•„μžλŠ” 쑰용히 λ…ΈνŠΈλΆμ„ λ“€κ³  ν™”μ΄νŠΈ λ³΄λ“œ μ•žμœΌλ‘œ κ°„ ν›„, μ € λ³΅μž‘ν•œ 쑰건듀을 μ–΄λ–»κ²Œλ“  이해할 수 μžˆλŠ” μˆ˜μ€€μœΌλ‘œ λ§Œλ“€κΈ° μœ„ν•΄μ„œ λ°œλ²„λ‘₯μ³€λŠ”λ° κ·Έ κ²°κ³Όκ°€ 이것이닀.

    쑰건 1. μ‚¬μš©μžκ°€ 멀버십 κ°€μž… μƒνƒœκ°€ μ•„λ‹ˆκ³ , μ‚¬μš©μžκ°€ λ“±λ‘ν•œ 결제 μˆ˜λ‹¨μ΄ μΉ΄λ“œκ°€ μ•„λ‹ˆλ‹€.
    쑰건 2. μ‚¬μš©μžκ°€ 멀버십 κ°€μž… μƒνƒœμ΄κ³  μ‚¬μš©μžκ°€ λ“±λ‘ν•œ 결제 μˆ˜λ‹¨μ΄ νœ΄λŒ€ν°μ΄λ©°, ν˜„μž¬ κ΅¬λ§€ν•˜λ €κ³  μ„ νƒν•œ 멀버십이 λ‚˜μ˜ 멀버십과 λ‹€λ₯Έ μƒν’ˆμ΄λ‹€.
    쑰건 3. μ‚¬μš©μžμ˜ 결제 μˆ˜λ‹¨ 정보가 μ—†λ‹€.

    (쑰건 1 || 쑰건 2 || 쑰건3)이고 μ‚¬μš©μžκ°€ μ„ νƒν•œ 결제 μˆ˜λ‹¨μ΄ μΉ΄λ“œλΌλ©΄ 결제 μˆ˜λ‹¨ 등둝 폼이 ν™œμ„±ν™” λœλ‹€.

    쑰건 version 2

    사싀 이것도 κ°„λ‹¨ν•œ 논리식은 μ•„λ‹ˆμ§€λ§Œ κ·Έλž˜λ„ 쑰건 1, 쑰건 2, 쑰건 3만 읽어 λ³΄μ•˜μ„ λ•Œ μ΄μ „μ˜ 쑰건에 λΉ„ν•΄μ„œ μ–΄λ–€ μƒνƒœμΈμ§€ μ’€ 더 μ•Œμ•„λ³΄κΈ° μ‰¬μ›Œμ‘Œλ‹€.(라고 μžκΈ°ν•©λ¦¬ν™”λ₯Ό ν•΄λ΄…λ‹ˆλ‹€.) 이 λ‹Ήμ‹œ ν•„μžκ°€ 논리식을 정리할 λ•Œ μ‚¬μš©ν–ˆλ˜ 방법이 λ²€λ‹€μ΄μ–΄κ·Έλž¨κ³Ό λ“œ λͺ¨λ₯΄κ°„ λ²•μΉ™μ΄μ—ˆλ‹€.

    λ²€λ‹€μ΄μ–΄κ·Έλž¨μœΌλ‘œ 논리식을 νŽΌμ³λ†“μŒμœΌλ‘œμ¨ μ—¬λŸ¬ 개의 논리식 쀑 사싀 같은 λͺ…μ œμ΄μ§€λ§Œ μ—­μ˜ 꼴을 μ·¨ν•˜κ³  μžˆλŠ” μΉœκ΅¬λ“€μ„ μ‰½κ²Œ 찾을 수 μžˆμ—ˆκ³  κ²ΉμΉ˜λŠ” λͺ…μ œλ“€μ„ κ³¨λΌμ„œ ν•©μΉ˜κ³  μ’€ 더 μ•Œμ•„λ³΄κΈ° μ‰¬μš΄ λ‹¨μœ„λ‘œ 쑰건을 λ‚˜λˆ„κ³ ν•΄μ„œ μ €λ ‡κ²ŒλΌλ„ λ§Œλ“€μ–΄ 놓은 것이닀.

    λ¬Όλ‘  이 μ½”λ“œλŠ” μ–Έμ  κ°€ κ°œμ„ μ„ ν•΄μ•Όν•œλ‹€β€¦μ–Έμ  κ°€β€¦

    그리고 μΆ”κ°€μ μœΌλ‘œ 이런 논리식 외에도 λ°μ΄ν„°λ² μ΄μŠ€μ— 질의λ₯Ό 던질 λ•Œ μ‚¬μš©ν•˜λŠ” SQL의 JOIN κ°œλ…λ„ 보톡 λ²€λ‹€μ΄μ–΄κ·Έλž¨μœΌλ‘œ ν‘œν˜„ν•œλ‹€.

    sqljoin

    이런 경우 λ³΅μž‘ν•œ λ…Όλ¦¬μ‹μ΄λ‚˜ SQL의 JOIN문을 보고 λ²€λ‹€μ΄μ–΄κ·Έλž¨μ΄ λ°”λ‘œ 머리 속에 λ– μ˜€λ₯Έλ‹€λ©΄ κ·Έλƒ₯ μ½”λ“œλ‚˜ μžμ—°μ–΄λ‘œ μ΄ν•΄ν•˜λŠ” 것 λ³΄λ‹€λŠ” μ’€ 더 직관적이고 λΉ λ₯΄κ²Œ 이해할 수 μžˆμ§€ μ•Šμ„κΉŒ? λΌλŠ” 생각을 ν•΄λ³Έλ‹€.

    μˆ˜ν•™μ  귀납법(Mathematical Induction)

    μˆ˜ν•™μ  귀납법(Mathematical Induction)은 μˆ˜ν•™μ—μ„œ μ‚¬μš©ν•˜λŠ” 증λͺ… 방법 쀑 ν•˜λ‚˜μ΄λ‹€. 주둜 μ–΄λ–€ λͺ…μ œκ°€ λͺ¨λ“  μžμ—°μˆ˜μ— λŒ€ν•˜μ—¬ 성립함을 보이기 μœ„ν•΄ μ‚¬μš©ν•œλ‹€. μˆ˜ν•™μ  귀납법이 무엇인가λ₯Ό μžμ„Ένžˆ μ•Œμ•„λ³΄κΈ° 전에 λ¨Όμ € μš°λ¦¬λŠ” λ…Όλ¦¬ν•™μ˜ 논증법 νˆ¬ν†±μΈ 귀납논증과 연역논증에 λŒ€ν•΄μ„œ μ•Œμ•„μ•Όν•œλ‹€.

    κ°„λ‹¨ν•˜κ²Œ μ΄μ•ΌκΈ°ν•˜μžλ©΄ 귀납논증은 β€œμ§€κΈˆκΉŒμ§€ κ·Έλž˜μ™”μœΌλ‹ˆκΉŒ μ•žμœΌλ‘œλ„ 그럴 κ²ƒμ΄λ‹€β€λΌλŠ” λŠλ‚Œμ΄κ³  연역논증은 β€œμ „μ œκ°€ λ§žλ‹€λ©΄ 결둠도 λ°˜λ“œμ‹œ λ§žλ‹€β€λΌλŠ” λŠλ‚Œμ΄λ‹€. 이걸 λ„ˆλ¬΄ μžμ„Ένžˆ μ„€λͺ…ν•˜λ©΄ 글이 길어지기 λ•Œλ¬Έμ— κ°„λ‹¨ν•œ μ˜ˆμ‹œλ‘œ κ°„λ§Œ 보겠닀.

    λ¨Όμ € 귀납논증은 이런 λŠλ‚Œμ΄λ‹€.

    2000λ…„ 여름은 더웠닀, 2001λ…„ 여름도 더웠닀…2019λ…„ 여름도 더웠닀. κ·ΈλŸ¬λ―€λ‘œ μ—¬λ¦„μ—λŠ” λ°˜λ“œμ‹œ λ₯λ‹€.

    귀납적인 이런 논증 방식은 λͺ¨λ“  μ „μ œκ°€ 참이라고 해도 λ°˜λ“œμ‹œ 결둠도 μ°Έμ΄λΌλŠ” 법이 μ—†λ‹€. λ‹Ήμž₯ μœ„μ˜ μ˜ˆμ‹œλ§Œ 봐도 2020λ…„ μ—¬λ¦„μ—λŠ” κΈ°μƒμ΄λ³€μœΌλ‘œ μΈν•΄μ„œ 눈이 올 μˆ˜λ„ μžˆμ§€ μ•Šμ„κΉŒ?(투λͺ¨λ‘œμš°β€¦?)

    즉, 귀납논증은 μ–Έμ œλ‚˜ 였λ₯˜κ°€ μ‘΄μž¬ν•  ν™•λ₯ μ΄ μžˆλ‹€. μ—¬κΈ°κΉŒμ§€λ§Œ 보면 왠지 ν—ˆμ νˆ¬μ„±μ΄ 논증법인 것 κ°™μ§€λ§Œ κ·Έλž˜λ„ ν˜„λŒ€ 과학은 귀납논증을 톡해 λŠμž„μ—†λŠ” 가섀을 μ œμ‹œν•˜κ³  κ·Έκ±Έ 증λͺ…ν•¨μœΌλ‘œμ¨ λ°œμ „ν•΄μ™”μœΌλ―€λ‘œ μƒλ‹Ήν•œ κ°€μΉ˜κ°€ μžˆλŠ” 논증법이라고 ν•  수 μžˆλ‹€.

    λ°˜λ©΄μ— 연역논증은 이런 λŠλ‚Œμ΄λ‹€.

    λ§₯뢁은 μ• ν”Œμ΄ λ§Œλ“ λ‹€. λ‚΄ μ»΄ν“¨ν„°λŠ” λ§₯뢁이닀. κ·ΈλŸ¬λ―€λ‘œ λ‚΄ μ»΄ν“¨ν„°λŠ” μ• ν”Œμ΄ λ§Œλ“€μ—ˆλ‹€.

    연역논증 μ€‘μ—μ„œ κ°€μž₯ λŒ€ν‘œμ μΈ 사둀인 삼단논법이닀. 이게 λ°”λ‘œ μœ„μ—μ„œ μ–˜κΈ°ν•œ β€œμ–΄λ–€ 뢀뢄적인 μ „μ œκ°€ λ§žλ‹€λ©΄ 결둠도 λ°˜λ“œμ‹œ λ§žλ‹€β€λΌλŠ” μ˜λ―Έμ΄λ‹€. λ§Œμ•½ 결둠이 거짓이라면 μ „μ œ 쀑 ν•˜λ‚˜λ„ 무쑰건 거짓이닀. 즉, 연역논증은 이미 μ „μ œμ— λ‹΄κ²¨μžˆλ˜ 것을 증λͺ…ν•˜λŠ” λ°λŠ” νƒμ›”ν•˜μ§€λ§Œ κ·€λ‚©λ…Όμ¦μ²˜λŸΌ μƒˆλ‘œμš΄ 지식을 νƒκ΅¬ν•˜κΈ°μ—λŠ” λΆ€μ μ ˆν•˜λ‹€.

    ν•˜μ§€λ§Œ μš°λ¦¬κ°€ ν”„λ‘œκ·Έλž˜λ°μ„ ν• λ•ŒλŠ” μƒˆλ‘œμš΄ 지식을 νƒκ΅¬ν•˜λŠ” 것이 μ•„λ‹ˆλΌ κ·Έλƒ₯ λ‚΄ μ½”λ“œκ°€ 였λ₯˜μ—†μ΄ μ™„λ²½ν•œκ°€λ₯Ό 증λͺ…ν•˜κΈ° μœ„ν•œ 논증법을 μ‚¬μš©ν•΄μ•Όν•˜λ―€λ‘œ κ·€λ‚©λ…Όμ¦λ³΄λ‹€λŠ” 연역논증이 더 μ•Œλ§žλ‹€.

    ν•„μžκ°€ 이 두 논증법을 μ „λΆ€ μ„€λͺ…ν•œ μ΄μœ λŠ” λ°”λ‘œ μˆ˜ν•™μ  귀납법이 귀납논증이 μ•„λ‹ˆλΌ 연역논증이기 λ•Œλ¬Έμ΄λ‹€.

    ah 아니...귀납법이라며...?

    μˆ˜ν•™μ  귀납법은 μ–΄λ–€ λͺ…μ œ PPκ°€ μžˆμ„ λ•Œ λ‹€μŒ 2κ°€μ§€λ§Œ μΆ©μ‘±μ‹œν‚€λ©΄ λͺ¨λ“  μžμ—°μˆ˜μ— λŒ€ν•΄μ„œ PPκ°€ μ„±λ¦½ν•œλ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€.

    1. P(1)P(1)은 참이닀
    2. P(n)P(n)이 참이면 P(n+1)P(n + 1)도 참이닀.

    κ·ΈλŸ¬λ―€λ‘œ λͺ…μ œ PPλŠ” λͺ¨λ“  μžμ—°μˆ˜μ— λŒ€ν•΄μ„œ 참이닀.

    μ΄λ ‡κ²Œλ§Œ μ–˜κΈ°ν•˜λ©΄ 또 머리가 μ•„νŒŒμ§€λ‹ˆκΉŒ μ˜ˆμ‹œλ₯Ό μ‚΄νŽ΄λ³΄μž. μˆ˜ν•™μ  귀납법은 보톡 λ„λ―Έλ…Έλ‘œ μ˜ˆμ‹œλ₯Ό 많이 λ“€κΈ° λ•Œλ¬Έμ— ν•„μžλ„ 도미노λ₯Ό 예둜 μ„€λͺ…ν•˜κ² λ‹€.

    1. 맨 μ²˜μŒμ— μžˆλŠ” 도미노가 μ“°λŸ¬μ§„λ‹€. (P(1)P(1)이 μ°Έ)
    2. λ¬΄μž‘μœ„λ‘œ κ³ λ₯Έ nn번째 도미노가 μ“°λŸ¬μ§ˆ λ•Œ 항상 n+1n+1λ²ˆμ§Έμ— μ„Έμ›Œμ§„ 도미노도 μ“°λŸ¬μ§„λ‹€. (P(n)P(n)이 참이면 P(n+1)P(n + 1)도 μ°Έ)

    κ·ΈλŸ¬λ―€λ‘œ 맨 μ²˜μŒμ— μžˆλŠ” 도미노λ₯Ό μ“°λŸ¬νŠΈλ¦¬λ©΄ λ°˜λ“œμ‹œ λͺ¨λ“  도미노가 μˆœμ„œλŒ€λ‘œ μ­‰μ­‰ μ“°λŸ¬μ§„λ‹€.

    이것이 μˆ˜ν•™μ  κ·€λ‚©λ²•μ˜ 논리 μ „κ°œ 방식이닀. κ°„λ‹¨ν•˜κ²Œ μ–˜κΈ°ν•˜μžλ©΄ μ „μ œκ°€ μ°Έμ΄λΌλŠ” 것을 λ¨Όμ € 보인 후에 κ·Έ μ „μ œμ—μ„œ 보편적인 결둠을 μ΄λŒμ–΄ λ‚΄λŠ” 것이닀.

    이런 μˆ˜ν•™μ  귀납법은 μ•Œκ³ λ¦¬μ¦˜μ˜ 정당성을 검증할 λ•Œ μ•„μ£Ό μœ μš©ν•˜κ²Œ 쓰일 수 μžˆλ‹€. μ™œλƒλ©΄ μ•Œκ³ λ¦¬μ¦˜μ΄λž€ 것은 ꡉμž₯히 보편적인 κ·œμΉ™μ΄κ³ , μ–΄λ–€ ν˜•νƒœλ‘œλ“  λ°˜λ“œμ‹œ 반볡적인 μš”μ†Œλ₯Ό 가지고 있기 λ•Œλ¬Έμ΄λ‹€.

    그럼 ν•œλ²ˆ 유λͺ…ν•œ μ•Œκ³ λ¦¬μ¦˜μΈ n!n!, νŒ©ν† λ¦¬μ–Όμ„ κ΅¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ„ ν•œλ²ˆ μˆ˜ν•™μ  κ·€λ‚©λ²•μœΌλ‘œ ν’€μ–΄λ³΄μž.

    function factorial (n) {
      if (n < 1) {
        return 1;
      }
      else {
        return n * factorial(n - 1);
      }
    }
    1. n=0n = 0인 경우 n!=1n! = 1이닀.
    2. n!=nΓ—(nβˆ’1)Γ—(nβˆ’2)Γ—...3Γ—2Γ—1n! = n \times (n - 1) \times (n - 2) \times ... 3 \times 2 \times 1 이닀.
    3. (n+1)Γ—n!=(n+1)Γ—nΓ—(nβˆ’1)Γ—...3Γ—2Γ—1(n + 1) \times n! = (n + 1) \times n \times (n - 1) \times ... 3 \times 2 \times 1 이닀.

    κ·ΈλŸ¬λ―€λ‘œ 이 λ…Όλ¦¬λŠ” 참이닀.

    이런 μ‹μ˜ 논리적인 사고방식은 λ‹Ήμž₯ μ½”λ”©ν• λ•Œ 직접적인 도움이 λ˜μ§€λŠ” μ•Šκ² μ§€λ§Œ, λ³΅μž‘ν•œ 문제λ₯Ό λ§Œλ‚¬μ„ λ•Œ μΌλ°˜ν™”λœ 해결법을 μ°Ύμ•„λ‚Ό 수 μžˆλŠ” λŠ₯λ ₯을 ν‚€μ›Œμ€€λ‹€. 사싀 이런 논증법을 μ μš©ν•  수 μžˆλŠ” λ¬Έμ œλŠ” μΌμƒμ—μ„œλ„ μ–Όλ§ˆλ“ μ§€ μ°Ύμ•„λ³Ό 수 μžˆμœΌλ―€λ‘œ ν‰μ†Œμ—λ„ ν•œλ²ˆ μ΄λ ‡κ²Œ μƒκ°ν•˜λŠ” μŠ΅κ΄€μ„ λ“€μ—¬λ³΄λŠ” 것도 λ‚˜μ˜μ§€ μ•Šλ‹€.(μ—°μ• ν•  λ•ŒλŠ” μ ˆλŒ€ μ΄λŸ¬μ§€ 말자.)

    마치며

    사싀 이 ν¬μŠ€νŒ…μ—μ„œ μ„€λͺ…ν•œ μ €λŸ° 것듀 λ‹€ λͺ°λΌλ„ λŠλ‚Œμ μΈ λŠλ‚ŒμœΌλ‘œ ν”„λ‘œκ·Έλž˜λ°μ„ 잘 ν• μˆ˜λŠ” μžˆλ‹€. ν•˜μ§€λ§Œ 곰곰히 μƒκ°ν•΄λ³΄μž. μ €λŸ° 것듀을 λͺ¨λ₯΄κ³  ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜κ³  μžˆμ—ˆλ‹€κ³  μƒκ°ν–ˆλ˜ 뢄듀도 κ·Έλƒ₯ 이둠으둜 μ •λ¦¬ν•˜μ§€ μ•Šμ•˜μ„ 뿐이지 μ•Œκ²Œλͺ¨λ₯΄κ²Œ μ € κ°œλ…λ“€μ„ μ „λΆ€ μ‚¬μš©ν•˜κ³  μžˆμ—ˆμ„ 것이닀.

    그리고 ν•„μžκ°€ μƒκ°ν–ˆμ„ λ•Œ μˆ˜ν•™μ„ 배우면 κ°€μž₯ 쒋은 점은 λ‚΄κ°€ λ§Œλ“€κ³  싢은 것을 λ§Œλ“€λ•Œ 적어도 μ΄λ‘ μ—μ„œ λ§‰νžˆλŠ” 일은 μ—†λ‹€λŠ” 것이닀.

    ν•„μžκ°€ μ˜ˆμ „μ— μž‘μ„±ν–ˆλ˜ ν¬μŠ€νŒ…μΈ ν–‰μ„± ꢀ도 κ³„μ‚°μ΄λ‚˜ μ—­μ „νŒŒ μ•Œκ³ λ¦¬μ¦˜κ°™μ€ ν¬μŠ€νŒ…λ§Œ 봐도 μˆ˜μ‹μ΄ 많이 λ‚˜μ™€μ„œ μ–΄λ €μ›Œ 보일 수 μžˆλ‹€. 사싀 ν•„μžλ„ μ € μΉœκ΅¬λ“€μ„ 처음 λ§Œλ“€ λ•Œ ν•™κ΅μ—μ„œ 배운 μˆ˜ν•™ 같은 건 이미 κ°€λ¬Όκ°€λ¬Όν•œ μƒνƒœμ˜€κΈ° λ•Œλ¬Έμ— 거의 μ²˜μŒλΆ€ν„° λ‹€μ‹œ κ³΅λΆ€ν•΄μ„œ 결ꡭ은 μ € ν”„λ‘œμ νŠΈλ₯Ό μ™„μ„±ν•  수 μžˆμ—ˆλ‹€.

    λ¬Όλ‘  μ„ ν˜•λŒ€μˆ˜ν•™λΆ€ν„° μ‹œμž‘ν•΄μ„œ 였일러 νšŒμ „, μΏΌν„°λ‹ˆμ˜¨ λ“± μ΄λ¦„λ§Œ 듀어도 ν† ν•  것 같은 이둠듀이 μ²˜μŒμ—λŠ” ν•„μžμ—κ²Œλ„ μƒλ‹Ήν•œ λ‘λ €μ›€μœΌλ‘œ λ‹€κ°€μ™”μ§€λ§Œ 일단 이해가 μ•ˆλ˜λ”λΌλ„ λ¬Έμ„œλ₯Ό 계속 보고 μ‘°κΈˆμ΄λΌλ„ μ΄ν•΄λ˜λŠ” 뢀뢄이 μžˆλ‹€λ©΄ μ½”λ“œλ‘œ μž‘μ„±ν•œ 후에 ν•˜λ‚˜ν•˜λ‚˜ μ‹€ν–‰μ‹œμΌœλ³΄λ©΄μ„œ κ³΅μ‹μ˜ λ§€μ»€λ‹ˆμ¦˜μ„ 눈으둜 직접 λ³΄λ‹€λ³΄λ‹ˆκΉŒ μ–΄λŠ μˆœκ°„λΆ€ν„°λŠ” κ·Έλž˜λ„ μ²˜μŒλ³΄λ‹€ 많이 μ΅μˆ™ν•΄μ‘Œλ˜ 것 κ°™λ‹€.(근데 사싀 μ§€κΈˆλ„ 잘 λͺ¨λ₯Έλ‹€.)

    μˆ˜ν•™μ€ κ·Έλ ‡κ²Œ λ¬΄μ„œμš΄ μΉœκ΅¬κ°€ μ•„λ‹ˆλ‹€. μœ„μ—μ„œ μ˜ˆμ‹œλ‘œ λ‚˜μ™”λ˜ 인곡신경망 μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜μ‹λ„ 처음 보면 λ­”κ°€ μ–΄λ €μ›Œλ³΄μ΄κ³  λ³΅μž‘ν•΄λ³΄μ΄μ§€λ§Œ 막상 μ½”λ“œλ‘œ ν’€μ–΄λ³΄λ‹ˆ 별 κ±° μ•„λ‹ˆμ˜€λ˜ κ²ƒμ²˜λŸΌ 말이닀. μ—¬λŸ¬λΆ„μ€ 이미 개발자둜써 μ•Œκ²Œ λͺ¨λ₯΄κ²Œ μˆ˜ν•™μ΄λ‚˜ λ…Όλ¦¬ν•™μ˜ κ°œλ…μ΄ λͺΈμ— λ°°μ–΄μžˆλŠ” μ‚¬λžŒμΈλ° 이제 μ™€μ„œ μˆ˜ν•™μ„ κ²λ‚΄λŠ” 것도 μ’€ μ΄μƒν•˜μ§€ μ•Šμ€κ°€? μ΄μ œλŠ” 그런 λ§ˆμŒμ„ λ‹€ 털어버리고 ν•œλ²ˆ μˆ˜ν•™κ³Ό μΉœν•΄μ Έλ³΄μž.

    μˆ˜ν•™μ€ κ·Έλƒ₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ²˜λŸΌ μ—¬λŸ¬λΆ„μ΄ μƒμƒν•˜λŠ” 것을 μ‹€ν˜„μ‹œμΌœμ€„ 수 μžˆλŠ” 도ꡬ라고 μƒκ°ν•˜μž.

    μ΄μƒμœΌλ‘œ κ°œλ°œμžλŠ” μˆ˜ν•™μ„ μž˜ν•΄μ•Όν• κΉŒ? ν¬μŠ€νŒ…μ„ λ§ˆμΉœλ‹€.

    Evan Moon

    🐒 거뢁이처럼 μ‚΄μž

    κ°œλ°œμ„ μž˜ν•˜κΈ° μœ„ν•΄μ„œκ°€ μ•„λ‹Œ κ°œλ°œμ„ 즐기기 μœ„ν•΄ λ…Έλ ₯ν•˜λŠ” κ°œλ°œμžμž…λ‹ˆλ‹€. μ‚¬μ†Œν•œ 생각 정리뢀터 νŠœν† λ¦¬μ–Ό, μ‚½μ§ˆκΈ° 정도λ₯Ό 주둜 끄적이고 μžˆμŠ΅λ‹ˆλ‹€.