본문 바로가기
북스크랩

2015.09.30 컴퓨터과학이 여는 세계

by 101Architect 2015. 10. 1.


컴퓨터과학이 여는 세계

저자
이광근 지음
출판사
인사이트 | 2015-05-26 출간
카테고리
컴퓨터/IT
책소개
1. 컴퓨터/소프트웨어의 근본을 알려주는 교양과학서 오늘날 인류...
가격비교


불완전성 정리 incompleteness theorem 

아무리 추론 규칙(생각의 법칙) 들을 잘 만들어도, 그 법칙들만으로는 모든 참인 명제들을 길어 올릴 수 없다. 만든 그물을 빠져나가는 사실들은 반드시 있다.


이해가 생기면 체계가 생긴다. 체계가 생기면 대규모의 복잡한 것도 만들 수 있게 된다. 경험과 손재주로 한정되는 스케일을 돌파하게 된다. 


속내용을 감추며 차곡차곡 쌓기 abstraction hierarchy

차곡차곡 쌓기란 이러한 속내용 감추기가 모든 게층에서 준비된 것을 뜻한다. 즉 각 단계에서는 바로 아래 단계의 물건들을 사용해서 보다 큰 물건을 만들고, 그다음 윗단게에서는 이렇게 만든 물건을 사용해서 그 윗단계의 큰 물건을 만든다.


알고리즘 이란 컴퓨터가 따라할 문제풀이법이다. 

복잡도 란 알고리즘을 실행에 옮길 때 드는 비용을 말한다. 


P-NP

P : 현실적인 비용으로 풀 수 있는 문제들 

결정론적 튜링 기계를 사용해 다항시간 내에 답을 구할 수 있는 문제의 집합

풀기 쉬운 문제

NP (non-deterministic polynomial) : 아닐 것 같은데 아직 모르겠는 문제들 

결정론적 튜링 기계를 사용해 다항시간 내에 답을 구할 수 있는 문제의 집합

푸는 것은 어렵지만 답을 알고 있을 때 그 답이 맞는지 확인이 쉬운 문제

P = NP : 알고보면 쉬운 문제가 답을 알기 전에도 쉬운 문제인지 증명하라 


알고리즘 기본기

모조리 훑기 exhaustive search

되돌아가기 backtracking

나눠풀어 합치기 divide-and-conquer

기억하며 풀기 dynamic programming 

질러놓고 다듬기 iterative improvement


양자 알고리즘 quantum computer : 전기 스위치 대신에 원자 내부의 양자를 이용해 튜링의 컴퓨터를 구현할 수 있다. 미래의 컴퓨터 

양자 현상 : 겹쳐있기 superposition, 얽혀있기 entanglement, 확률진폭 probability amplitude


소프트웨어를 만드는 작업은 컴퓨터로 문제를 해결하는 방도를 한 단계 한 단계 프로그래밍 언어로 표현해가는 것이다. 어떤 데이터가 필요하고, 그 데이터를 어떻게 조작하고 다루어서 어떤 판단을 하고 어떻게 문제를 해결하는지.

만들어진 소프트웨어가 실행을 시작하면 중단 없이 제대로 진행해야 한다. 


프로그램에 대응하는 증명이 결론 내린 논리식, 이에 대응 하는 것을 프로그램 세계에 적용해서 프로그램 얼개를 표현하는 데 사용하면 된다. 이렇게 적용한 것이 프로그램 세계에서 타입type 이라는 것이다.


요약의 그물 

타입을 통해서 우리는 프로그램 실행을 요약해서 바라보았다. 타입은 프로그램이 만들 데이터를 보통 명사로 요양한 것이다. 실제로 만들어지는 각각의 구체적인 데이터에 세밀하게 초점을 맞춘 것이 아니고, 데이터의 종류까지 만으로 초점을 가져간 것이 타입이다.


데이터의 중력 (데이터가 관련 서비스와 어플리케이션을 끌어 당기는 힘)

확률추론 프로그래밍 probabilistic programming

관찰된 데이터로부터 그 원인을 가늠하는 프로그램을 짜는 것

확률추론 프로그램이 하는 일 : 앱덕 abduction : 원인을 미뤄 짐작하는 것


소프트웨어는 지식 표현의 새로운 도구다.

인류가 지식을 표현하는 방법은 도구에 맞춰 발전한다. 

서술형 (descrptive) : 문과식 말로 설명하고 분류

방정식형 (equational) : 이과식 수학이라는 도구로 지식을 표현하는 방법

계산형 (computational) : 소프트웨어로 표현하는 지식


지식생성

기계학습 

모두 알고 있는 사실에서 새로운 지식을 이끌어낸다.

디덕 deduction (반드시 이끌기) : 사실로부터 의심의 여지가 없는 사실을 유도, 틀림없는 사실이 만들어진다.

앱덕 abduction (원인 짐작하기) : 추측이다.

인덕 induction (짐작해서 이끌기) : 일반화 해서 추측, 가늠한다. 확실하지는 않다.


마르코프 체인 markov chain : 각 시행의 결과가 바로 앞의 시행의 결과에만 영향을 받는 일련의 확률적 시행

연쇄반응의 체인 


인간계산 human computation 

컴퓨터와 사람의 지능이 상호보완적으로 필요한 문제를 같이 풀도록 하는 것이다.


놀이본능

소통본능

정보이론


생각) 코딩클럽 의 북클럽 모임 때문에 읽게된 책, 처음엔 가물가물하고 이해가 안되는 내용이 많아 한번 완독 후에 다시 읽으며 전반적인 내용의 흐름을 이해하고 나중에 이해가 되지 않는 이론을 다시보는 쪽으로 리딩 방법을 가져갔습니다. 첫장에 컴퓨터를 만능의 도구라고 이야기 하는 것이 색다르게 보였습니다. 새로운 도구가 나와 적응하기 급급하기 보단 새로운 도구를 창조해 낼 수 있는 힘은 이런 생각의 차이에서 오는것 같다는 생각을 하게 되었습니다. 전반적인 내용은 튜링기계가 어떤 생각의 시발점으로 탄생하게 되었는지 원리는 무엇인지 부터 시작하여 소프트웨어의 발전이 어떻게 흘러 왔는지 아주 상세하게 알 수 있는 내용들로 구성되어져 있습니다. 처음 소프트웨어를 배우면서 언어는 다 달라도 근본 원리는 같을 것이다 라는 생각에 더 로우레벨의 언어를 배우려고 했었는데 그때 가장 의문이 들었던 부분을 10년 가까이 지나 해소 하게 되었네요.저 같이 분석하기 좋아 하고 원리를 알아야 하겠다는 답답함을 가진 사람이라면 강추! 이 책 덕에 앞으로 더 공부해보고 싶은 이론들이 생겼습니다. (하고 싶은 것들만 잔뜩 늘어나는구만~~ㅎㅎㅎ) 



반응형