https://www.coursera.org/learn/data-driven-astronomy
--------------------------------------------------------
Week 2: Big data makes things slow
제2주차: 자료가 방대해지면 뭘하든 느려진다.
- How to work out the time complexity of algorithms
복잡한 계산을 빠르게 수행하는 방법
- Exploring the black holes at the centers of massive galaxies
거대 은하의 중심부 블랙 홀 찾기
--------------------------------------------------------
1강: 방대한 자료는 일을 더디게 만든다
Lesson 1: Big Data makes things slow / 한글자막
--------------------------------------------------------
2강: 초거대 블랙홀과 활동성 은하 핵(AGN)
Lesson 2: Supermassive Black Hole / 한글자막
--------------------------------------------------------
3강: 교차정합(cross-matching) 알고리즘에 대하여
Lesson 3: What is cross-matching ? / 한글자막 / 영문자막
[강의대본] 교차정합(Cross-Matching)이 뭔지 알아나보자

[00:06] 천체 탐사(survey*)영상에서 그안에 담긴 천체 목록을 만들려고 할 때 먼저 대상찾기** 소프트웨어를 사용하여 찍힌 목록을 만든다. 이 일을 수행하는 소프트웨어가 다양하게 있지만 그 한가지로 sExtracter***가 널리 이용된다.
* 탐사(survey) 와 관측(observation)의 차이에 대하여 생각해 보자.
** 인식 전처리용 영상처리 소프트웨어
*** https://www.astromatic.net/software/sextractor
[00:35] 그 결과 각 천체 마다 위치(position),각크기(angular size)와 밝기(intensity)측정치가 포함된 목록을 얻는다. 측정치는 불확정(uncertainties)* 적인데 관측영상의 잡음, 망원경의 보정, 망원경의 반응 함수를 얼마나 잘 특성화** 하느냐에 따라 달렸다.
* 관측 측정치의 불확정성: 워낙 멀리 떨어진 대상을 찍은 천체 영상은 외적 영향을 많이 받는다. 동일한 대상이라도 사진을 찍을 때마다 다르다. 따라서 통계적 분석과 표준함수로의 근사기법이 매우 중요한 역활을 한다.
** 목적에 따라 서로 다른 파장대의 반응 특성을 갖는 망원경의 사진을 교차비교 하는 경우

<왼쪽은 전파 망원경, 오른쪽은 광학 망원경 탐색 영상: 분해능, 감응 파장대 같은 특성이 완전히 다른 두 망원경으로 획득한 영상이다. 과연 같은 대상인가? 오른편에 찍힌 영상의 천체 목록과 왼편에 찍힌 영상에서 목록을 비교하는 것이 바로 교차정합이다.>
[00:53] 관측 목록을 얻고나면 교차 탐색을 실시하는데 첫번째 목록(Catalog_1)에서 각 대상에 상응하는 대상을 찾기위한 두번째 목록(Catalog_1)을 준비한다. 이를 위해 대개 주어진 범위 내에서 탐색을 하는데 위치의 부정확성을 고려한다. 말은 쉽다.
[01:08] 교차정합 프로그램을 실제로 구현하기 전에 옆으로 약간 비켜서서 하늘에서 거리계산 방법에 대한 논의를 해보도록 하자. 왜냐하면 거리야 말로 가장 먼저 해결해야 할 문제이기 때문이다. 이번 강좌는 하늘에 투영된 각거리를 계산할 것이다. 이는 공간 상에서 두 물체 사이의 물리적 거리를 의미하는 것이 아니다. 이 영상에서 왼쪽에 있는 은하는 천 오백만 광년 떨어져 있다고 하자. 그리고 오른쪽에 위치한 은하는 1억 광년 떨어져 있다고 하자. 그 두 은하가 구면에 투영되면 마치 가까운 것 처럼 보이지만 실제로는 이웃하고 있다고 하기에는 너무 멀다.
[01:41] 거리야 말로 천문학에 있어서 가장 난제다. 만일 두점이 주어지고 그 둘사이의 거리를 계산하라고 한다면 아마도 이렇게 할 것이다. 그러니까 유클리디언(직교좌표계) 거리계산을 떠올릴 것이다. 이는 고교 수학에서 피타고라스 정리로 잘 알고 있다.

[01:56] 하지만 여기에 문제가 있는데 피타고라스 정리는 평면을 가정하는데 우리는 하늘에서 거리를 계산하고자 한다. (하늘은 구면이다. 직교좌표계에서 구면 좌표계로 생각 체계를 바꾸자.) 예를 들어 시드니에서 런던까지 비행하는 가장 짧은 거리를 계산 하고자 한다면 하늘에 대원을 긋는 거리를 사용해야 한다. 이에 대해 다음 과제활동에서 다뤄볼 것이다.

[참조] 넘겨짚어보는 가우스 함수와 적분(feat.부분적분법, 중적분, 야코비언)
[02:14] 기본지식을 얻었으니 이제 교차정합 알고리즘을 구현해볼 준비가 됐다. 앞서 논의한 대로 이 알고리즘은 다음과 같다.

[02:19] 첫번째 목록(Catalogue_1)에서 광원A(Source_A)에 대해 상응하는 광원B(Source_B)를 두번째 목록(Catalogue_2)에서 찾아낸다. 두 상응하는 짝의 각거리, angular_distance(A,B),를 계산했더니, 만일 각거리가 미리 정해놓은 탐색범위(radius) 내에 있고 광원A의 위치 이격(offset)이 가장 작았다면 두 대상이 일치한다고 간주 할 수 있다. 두가지 목록에 대하여 개발한 프로그램을 작동 시키면 첫번째 목록에 나와있는 은하들과 두번째 목록에 나와있는 은하들 사이에 가장 일치하는 것들과 대원 이격이 가장 짧은 것(best_match)을 추려낸다.
[02:47] 이 프로그램이 내 컴퓨터에서 실행되는 시간을 재봤다. 각각 100개의 탐색 대상이 있는 두 목록을 처리 하는데 약 50밀리초가 걸렸다. 이정도면 아주 괜찮아 보인다. 우리의 교차정합 알고리즘이 잘 작동하는 것 같다. 우리가 원하는 결과를 얻었다.
[02:59] 무슨 문제가 있을까?
[03:01] 이곳이 바로 대부분 학생들이 자신의 결과에 만족해 하는 지점이다. 이제 그들의 프로그램을 방대한 목록을 상대로 돌려 보기로 한다. 그리고 아마 다음 회의 때 이렇게 질문 할 것이 뻔하다.
[03:12] 인터넷이 끊어져도, 제 노트북이 꺼져도 제 프로그램을 계속 실행시킬 수는 없을까요? (학생들은 단말기를 통해 방대한 관측 자료들이 저장된 서버에 접근하고 있다.)
[00:03:16] 그러면 나는 물론 가능하다고 답해줄 수 있지만 학생들은 왜 시간을 더 요구하게 됐을까?
[03:20] 맞다. 학생들이 만든 교차정합 프로그램이 밤새 실행 되고도 아직도 마치지 못했기 때문이다. 더 긴 시간을 주기로 했다.
[03:26] 왜 이런 일이 발생 했을까? 왜 그처럼 작은 교차정합 프로그램이 실행 되는데 몇일 씩이나 걸리는 걸까?
[03:32] 이 문제가 무엇인지 파헤쳐보기 위해 몇가지 시험을 해보자. 난수의 배열을 생성해 놓고 각 배열에 담긴 값의 갯수를 매번 증가시키면서 교차정합을 실시해 보면, 아마 다음과 같은 도표를 얻게 된다. X-축은 목록에 담긴 각 지점의 갯수를 나타내며, Y-축은 프로그램이 실행되면서 걸린 시간을 미리초 단위로 나타내었다.

[03:50] 100개의 은하가 담긴 목록에 대해 내 프로그램은 약 50 미리초가 걸렸다. 1천개의 은하의 경우 약 5천 미리초가 걸렸다. 1만개의 은하에 대해서 약 50만 밀리초가 걸렸다. 더 많은 갯수로 시험을 해볼 수 있지만 실행되길 기다리기가 너무나 지루해서 그만 두었다. 프로그램이 실행되는 시간이 증가하는 경향을 알아보기에 충분했으므로 상관없다. 각 목록에 담긴 은하의 갯수를 열배 씩 증가시키면 실행에 걸리는 시간은 백배 씩 증가한다.
[04:20] 다음 강의에서 실행시간이 오래 걸리는 알고리즘을 어떻게 다룰지 살펴보고 우리의 교차정합 알고리즘을 개선할 방도를 찾아보기로 하자.
--------------------------------------------
[파이썬 실습]
댓글 없음:
댓글 쓰기