[D2대학생세미나]lovely algrorithm

9,410 views
9,587 views

Published on

[D2대학생세미나]lovely algrorithm

Published in: Technology
0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,410
On SlideShare
0
From Embeds
0
Number of Embeds
7,352
Actions
Shares
0
Downloads
53
Comments
0
Likes
14
Embeds 0
No embeds

No notes for slide

[D2대학생세미나]lovely algrorithm

  1. 1. 사 랑 이 야 기 이 것 은 진 짜 로 참 으 로 진 지 하 구 나 송기 선印 네 이 버 랩 스
  2. 2. 슬램 덩크 , 이노우에 다케히코 , 대원씨아이 . SLAM DUNK, スラムダンク ', 井上雄彦 , 株式 社集英社会
  3. 3. 아스코마치 ~ 아스카 공업 고교 이야기 ~, アスコーマーチ ~ 明日香工業高校物語 ~ TV 아사히
  4. 4. 청 중 의 생 각 도대체 이 새끼는 누구인가 ?
  5. 5. 제 소개를 하겠습니다 . ● ... ● 알고리즘 공부가 취미 , 수학 공부가 취미 ● ... ● ... ● ... ● ... ● ... ● ...
  6. 6. http://www.thisismoney.co.uk/money/news/article-2177769/Ride-like-Wiggins-The-best-road-bikes-500.html http://wdc2010.tistory.com/174
  7. 7. 이 발표에서 발표자가 주장하는 바는 ... ● 알고리즘과 수학은 사랑스럽습니다 . ● 알고리즘과 수학에 대하여 알게 되면 알게 될 수록 할 수 있는 일의 영역은 넓어집니다 . ● 자기 페이스에 맞게 꾸준히 공부하면 알고리즘과 수학 실력을 향상시킬 수 있습니다 .
  8. 8. 다음과 같은 내용을 주장하지 않습니다 .!!! ● 알고리즘과 수학을 잘 해야 훌륭한 개발자입니다 . ● 알고리즘과 수학을 잘 하면 돈을 많이 벌 수 있습니다 . ● 알고리즘과 수학을 잘 하려면 재능이 필요합니다 .
  9. 9. 여러분은 다음과 같은 의문에 답할 수 있게 됩니다 . ● 도대체 전산과에서 왜 미적분 , 선형대수 , 확률 통계를 배우나요 ? ● 얼마나 공부해야 알고리즘 고수가 되나요 ? ● 어떻게 수학 공부를 해야하는 것일까요 ?
  10. 10. 차범근과 자전거
  11. 11. 자전거를 잘 탄다는 것은 어떤 것일까 ? ?
  12. 12. 호나우도 몸의 변화
  13. 13. 각자의 학습곡선 성과 노력 투입 정도
  14. 14. f ' >0 f (t +Δt )>f (t)
  15. 15. ( 프로그래머 | 컴퓨터과학자 ) 의 역량 모델 프로그램 작성 능력 정도 알고리즘 & 수학 능력 정도 시스템 아키텍처 이해 능력 정도
  16. 16. 어떤 일을 하기 위하여 요구되는 능력 #1 프로그램 작성 능력 정도 알고리즘 & 수학 능력 정도 시스템 아키텍처 이해 능력 정도
  17. 17. 어떤 일을 하기 위하여 요구되는 능력 #2 프로그램 작성 능력 정도 알고리즘 & 수학 능력 정도 시스템 아키텍처 이해 능력 정도
  18. 18. 어떤 일을 하기 위하여 요구되는 능력 #3 프로그램 작성 능력 정도 알고리즘 & 수학 능력 정도 시스템 아키텍처 이해 능력 정도
  19. 19. 모든 컴퓨터 과학 / 프로그 래밍분야에서 높은 수준의 알고리즘과 수학 지식을 요 구하는 것은 아니다 .
  20. 20. 그러나 알고리즘과 수학 지 식을 전혀 요구하지 않는 컴 퓨터 과학 / 프로그래밍 분 야는 없다 .
  21. 21. 어떤 요구 사항 ● 채점 결과를 바탕으로 학점 평가를 하는 프로그램 '90 점 이상이면 A 학점 ' 이 요구 사항 if (score >= 90) { grade = Grade.A; } ● 점수가 95 점이면 A 학점인가 ? ● 점수가 85 점인데 A 학점일 수 있는가 ? ● 점수가 97 점인데 B 학점일 수 있는가 ?
  22. 22. Imply Truth Table A B A B⇒ True True True True False False False True True False False True ● '90 점 이상이면 A 학점 ' ● 점수가 95 점이면 A 학점인가 ? ● 점수가 85 점인데 A 학점일 수 있는가 ? ● 점수가 97 점인데 B 학점일 수 있는가 ?
  23. 23. 명제 논리 (Propositional Calculus) 는 거의 모든 프로그래밍에서 필요한 것
  24. 24. • Sums • Recurrences • Integer functions • Elementary number theory • Binomial coefficients • Generating functions • Discrete probability • Asymptotic methods
  25. 25. Mathematics for Computer Science Eric Lehman and Tom Leighton 2004 • Introduction and proofs • Induction • Strong induction • Number theory I • Number theory II • Graph theory and coloring • Matching problems • Graph theory II: minimum spanning trees • Communication networks • Graph theory III • Relations, partial orders, and scheduling • Sums • Sums and Asymptotics • Divide and conquer recurrences • Linear recurrences • Counting rules I • Counting rules II • Probability introduction • Conditional probability • Independence • Random variables • Expectation I • Expectation II • Large deviations • Random walks
  26. 26. 전체 수학 영역 컴퓨터과학 / 프로그래밍 개발에서 필요한 수학 영역
  27. 27. 아인슈타인의 고등학교 시절 수학 성적 / 실력은 ' 우수 ' 한 정도 대학 때는 대충대충 공부 일반상대성이론 발표를 위하여 주변 수학자로부터 상당한 도움을 받아야 했음 그러나 일반상대성이론 발표 이후에는 상당한 수학 지식 보유 ( 시대를 바꾼 천재들 중에는 30 대 이전에는 그저 평범한 사람이었던 경우도 많다 .)
  28. 28. 알고리즘을 얼마나 공부해야 어려운 문제들도 잘 풀 수 있게 될까 ? “ 내게 충분한 길이의 막대기와 받침목을 주시오 . 내 직접 지구를 움직여 보리다 .” - 아르키메데스 ( 허세작렬 ) http://commons.wikimedia.org/wiki/File:Archimedes_lever.png
  29. 29. Reduction ( 환산 ) 문제 A 가 어떤 과정을 통해 문제 B 로 환산된다면 B 의 해답을 가지고 A 의 해답을 알 수 있기 때문에 , A 를 푸는 작업이 B 를 푸는 작업보다 어려울 수 없다 . http://ko.wikipedia.org/wiki/환산_(복잡도) ● 임의로 나열된 정수열이 있다고 할 때 , 이중 가장 많은 빈도를 보이는 하나 이상의 정수 ( 들 ) 를 찾아라 . - 정수열을 정렬한 후 , 순차 검색
  30. 30. Convex Hull http://staff.ustc.edu.cn/~csli/graduate/algorithms/book6/chap35.htm http://www.voronoi.com/wiki/index.php?title=Vector_Algebra_%26_Geometry
  31. 31. 축구 기본 기술들 http://www.dk.co.uk/nf/Book/BookDisplay/0,,9781405349925,00.html?/Football_Skills_DK_Publishing
  32. 32. 기본 자료구조 & 알고리즘 • Array, List • Stack, Queue, Priority Queue • Sort(Insertion, Heap, Merge, Quick) • Binary Search • Union Find • Binary Search Tree, Red-Black Tree • Hash, HashTable • Huffman Codes • SubString Search • Graph • Shortest Path (Dijkstra, Bellman-Ford) • Minimum Spanning Tree (Prim, Kruskal) • Trie • Maxflow • Divide & Conquer • Greedy Algorithm • Dynamic Algorithm • P != NP ?
  33. 33. 운동 선수들은 지속적으로 기본기 훈련을 한다 . 악기 연주가들 또한 기본적인 스케 일링 연습을 거의 매일 한다 . 알고리즘과 수학은 한번 이해하고 나면 그것으로 충분한 것일까 ?
  34. 34. 자기만의 페이스 , 자기 수준에 맞는 학습과 기대 http://www.foxsports.com.au/olympic-games/events/ugandas-stephen-kiprotich-has-won-the-london-olympics-marathon/story-fnd7zc3y-1226448756056?nk=4b7cb839581f0c61d2dd f6c335741faa http://article.joins.com/news/article/article.asp?total_id=3684161&cloc
  35. 35. 하면 는다 .
  36. 36. 이제부터 어려워 보이지만 사실 알고보면 별 것 아닌 것들을 소개합니다 . 일정 수준 이상의 프로그램 개발 능력을 가지고 있는 사람이라면 능히 어렵지 않게 개발할 수 있는 것들입니다 .
  37. 37. Seam Carving, content aware image resizing http://en.wikipedia.org/wiki/Seam_carving 중요한 정보인 성 모양이 왜곡된 형태로 축소되었다 . 중요한 정보인 성 모양이 유지된 형태로 , 전체 이미지의 폭이 줄어들었다 .
  38. 38. ● The energy of pixel E(x, y) = Δx2 (x, y) + Δy2 (x, y) ● 인접한 픽셀의 E(x, y) 의 최종 합이 가최소 되는 경로 탐색 ● 개념 상으로 최단경로문제 , Dynamic Programming 을 가이용하면 쉽게 구현 능 Seam Carving, content aware image resizing ● 시각상으로 중요한 정보란 어떤 것일까 ? ● ¬ 중요한 것 = 중요하지 않은 것 ● 가장 중요하지 않은 것은 어떻게 찾을까 ? http://www.cs.princeton.edu/courses/archive/spr13/cos226/assignments/seamCarving.html
  39. 39. DBMS Index & Query Performance http://cis.stvincent.edu/html/tutorials/swd/btree/btree.html CREATE INDEX clm1_idx ON tbl(clm1); CREATE INDEX clm2_idx ON tbl(clm2); … SELECT * FROM tbl WHERE (clm1 >= 10 AND clm1 <= 20000) AND (clm2 > 100 AND clm2 < 5000) LIMIT 2000;
  40. 40. DBMS Index & Query Performance WHERE (clm1 >= 10 AND clm1 <= 20000) AND (clm2 > 100 AND clm2 < 5000)
  41. 41. Machine Learning 기계 학습 (machine learning) 은 인공 지능의 한 분야로 , 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다 . 가령 , 기계 학습을 통해서 수신한 이메일이 스팸인지 아닌지를 구분할 수 있도록 훈련할 수 있다 . http://ko.wikipedia.org/wiki/기계_학습
  42. 42. Machine Learning
  43. 43. Machine Learning 다음 글자는 2 일까요 ? 3 일까요 ?
  44. 44. Machine Learning 예쁜지 안 예쁜지 판단하는 프로그램을 만들어 보자 . boolean 가예쁜 ( 사진 사진객체 ) { if(! 가눈이예쁜 ( 눈추출 ( 사진객체 )) { if (! 가다른곳이많이예쁜 ( 사진객체 )) { return false; } else if (...) { if (...) { … } else if(...) { if (...) { ... } else if(...) { ... } } } else if (…) { ... } } ... 100 만개는 필요할 듯 싶은 if 중첩문 !!!! 실 tothe 패
  45. 45. Machine Learning 예쁜지 안 예쁜지 판단하는 기계학습 프로그램을 만들어 보자 !!! 1 1+e −h( x)
  46. 46. Machine Learning 예쁜지 안 예쁜지 판단하는 기계학습 프로그램을 만들어 보자 !!! 1 1+e −h( x) 김태희에 대한 결과값 제대로 만든 h(x) 가 너님을 인자로 하였 을 때의 수행 결과 슈레딩거의 고양이 상태 너님이 화장실에서 너님을 거울로 볼 때
  47. 47. Machine Learning 어떤 기준 1 어떤 기준 2 h( x1, x2)>0 h( x1, x2)<0
  48. 48. Machine Learning 하지만 2 차원 정보로는 충분하지 않다 . ● 그래서 가능한 수집 / 측정할 수 있는 정보를 바탕으로 N 차원 데이터를 생성한다 . ● 이 N 차원 데이터를 대상으로 연산을 하기에는 너무나도 많은 연산량이 필요할 수 있다 . 그래서 PCA( 주성분분석 , Principle Component Analysis) 같은 방법을 사용하여 N 차원 데이터를 K(K ≤ N) 차원 데이터로 줄이기도 한다 . ( 대학 선형대수를 수강하였다면 , 능히 이해할 수 있는 수준의 정보이다 .) ● 이렇게 만든 K 차원의 데이터를 바탕으로 h(x) 에서 사용할 벡터 θ 를 생성한다 . 이 때 선형대수 미분적분 등의 수학적 지식이 요구된다 . ● h(x) = θT x
  49. 49. Machine Learning 무인 운전은 어떻게 만드는가 ? http://www.youtube.com/watch?v=jet4vwPUfh8
  50. 50. 지금까지 설명한 사례들은 모두 학부 교과 과정을 이수하면 충분히 이해할 수 있는 수준입니다 . 전산과 학부 교과 과정의 수준이 충분히 높고 , 양 또한 적지 않음을 전달하고 싶습니다 . 그리고 졸업 후 어떤 일을 하느냐에 따라 다르겠지만 , 학부 교과 과정의 내용이 모두 필요한 일을 하게 될 수도 있습니다 .
  51. 51. 문제를 해결한다는 것은 도구가 될 수 있는 기본 지식을 바탕으로 응용력을 발휘하는 것입니다 . 학부 교과 과정에 있는 데이터구조 , 알고리즘 , 전공필수 수학 과목은 문제를 해결하기 위한 도구적 지식입니다 .
  52. 52. 감사합니다 . 진지하게

×