산포된 데이터를 정합하는 직선을 찾는 것으로 이해해도 무방합니다. 주어진 데이터를 이용해 기울기와 절편을 구하는 방법입니다.
먼저 행렬연산을 통해 구하는 방법을 설명합니다. 그리고 퍼셉트론에 사용된 것과 같은 방법을 다시 설명하므로 선택적으로 듣기 바랍니다.
설명된 예제에 대한 C 언어 코드를 제공합니다. Tensorlow 코드는 정합 과정을 시각화하여 보여줍니다.
이 발표에서는 위상학적 자료 분석(Topological Data Analysis)을 어떻게 하고, 그에 대한 통계적 추정을 어떻게 하는지 간단하게 소개한다. 위상학적 자료 분석은 포괄적으로는 자료에서 위상학적인 특성을 추출하는 분석 방법을 아우르는데, 대표적으로 persistent homology와 군집 나무(cluster tree) 등이 있다.
persistent homology는 자료를 여러 해상에서 관측하고 지속성 있게 나타나는 위상 특성을 추려냄으로써 분석하고, 군집 나무는 자료의 레벨 군집이 어떤 계층 구조를 생성하는지 봄으로써 자료를 분석한다. 자료로부터 추정된 persistent homology와 군집 나무는 자료 분포의 임의성에 의해 오차가 생기는데, 이를 통계적으로 정량화할 수 있다.
이 발표에서는 persistent homology와 군집 나무의 오차를 정량화함으로써 어떻게 통계적으로 유효한 신뢰 집합을 얻을 수 있는지 제시하고, 실제로 계산하는 방법도 알아본다.
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Ki-Hwan Kim
PYCON Korea 2015
Python은 과학 계산 분야에서도 이미 널리 사용되고 있습니다. numpy와 scipy 기반으로 만들어진 많은 모듈들이 휼륭한 생태계를 이루고 있기 때문입니다. 그러나 극한의 계산 성능을 요구하는 분야(HPC, High Performance Computing)에서는 여전히 C와 Fortran으로만으로 짜여진 코드들이 선호되고 있습니다. 이런 분야에서 Python에 대한 일반적인 견해는 전처리/후처리에는 유용하지만 메인 코드에 적용하기에는 느리다라는 것입니다.
이번 발표에서는 HPC 분야에서도 Python의 유용함을 보여줍니다. 계산이 집중된 부분만을 Fortran, C로 구현하여 Python 메인 코드에 접합하면, Python의 장점은 충분히 활용하면서도 계산 성능에 큰 손해는 보지 않을 수 있습니다. 게다가 CUDA-C, OpenCL-C와 연동하면 GPU, MIC와 같은 가속 프로세서들도 비교적 쉽게 활용할 수 있습니다. 이번 발표에서는 간단한 시뮬레이션 코드를 예제로 사용하여 Python 코드로부터 시작하여 Fortran, C, CUDA-C, OpenCL-C 등을 단계적으로 접합해 나가는 것을 보여줄 것입니다.
"R을 이용한 데이터 처리 & 분석 실무 - 서민구 지음" 정리 자료 #3
- https://thebook.io/006723/
- 첫번째 : goo.gl/FJjOlq
- 두번째 : goo.gl/Wdb90g
- 세번째 : goo.gl/80VGcn
- 네번째 : goo.gl/lblUsR
산포된 데이터를 정합하는 직선을 찾는 것으로 이해해도 무방합니다. 주어진 데이터를 이용해 기울기와 절편을 구하는 방법입니다.
먼저 행렬연산을 통해 구하는 방법을 설명합니다. 그리고 퍼셉트론에 사용된 것과 같은 방법을 다시 설명하므로 선택적으로 듣기 바랍니다.
설명된 예제에 대한 C 언어 코드를 제공합니다. Tensorlow 코드는 정합 과정을 시각화하여 보여줍니다.
이 발표에서는 위상학적 자료 분석(Topological Data Analysis)을 어떻게 하고, 그에 대한 통계적 추정을 어떻게 하는지 간단하게 소개한다. 위상학적 자료 분석은 포괄적으로는 자료에서 위상학적인 특성을 추출하는 분석 방법을 아우르는데, 대표적으로 persistent homology와 군집 나무(cluster tree) 등이 있다.
persistent homology는 자료를 여러 해상에서 관측하고 지속성 있게 나타나는 위상 특성을 추려냄으로써 분석하고, 군집 나무는 자료의 레벨 군집이 어떤 계층 구조를 생성하는지 봄으로써 자료를 분석한다. 자료로부터 추정된 persistent homology와 군집 나무는 자료 분포의 임의성에 의해 오차가 생기는데, 이를 통계적으로 정량화할 수 있다.
이 발표에서는 persistent homology와 군집 나무의 오차를 정량화함으로써 어떻게 통계적으로 유효한 신뢰 집합을 얻을 수 있는지 제시하고, 실제로 계산하는 방법도 알아본다.
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Ki-Hwan Kim
PYCON Korea 2015
Python은 과학 계산 분야에서도 이미 널리 사용되고 있습니다. numpy와 scipy 기반으로 만들어진 많은 모듈들이 휼륭한 생태계를 이루고 있기 때문입니다. 그러나 극한의 계산 성능을 요구하는 분야(HPC, High Performance Computing)에서는 여전히 C와 Fortran으로만으로 짜여진 코드들이 선호되고 있습니다. 이런 분야에서 Python에 대한 일반적인 견해는 전처리/후처리에는 유용하지만 메인 코드에 적용하기에는 느리다라는 것입니다.
이번 발표에서는 HPC 분야에서도 Python의 유용함을 보여줍니다. 계산이 집중된 부분만을 Fortran, C로 구현하여 Python 메인 코드에 접합하면, Python의 장점은 충분히 활용하면서도 계산 성능에 큰 손해는 보지 않을 수 있습니다. 게다가 CUDA-C, OpenCL-C와 연동하면 GPU, MIC와 같은 가속 프로세서들도 비교적 쉽게 활용할 수 있습니다. 이번 발표에서는 간단한 시뮬레이션 코드를 예제로 사용하여 Python 코드로부터 시작하여 Fortran, C, CUDA-C, OpenCL-C 등을 단계적으로 접합해 나가는 것을 보여줄 것입니다.
"R을 이용한 데이터 처리 & 분석 실무 - 서민구 지음" 정리 자료 #3
- https://thebook.io/006723/
- 첫번째 : goo.gl/FJjOlq
- 두번째 : goo.gl/Wdb90g
- 세번째 : goo.gl/80VGcn
- 네번째 : goo.gl/lblUsR
제2회 열린세미나 100도씨의 발표자료입니다.
Unique Count를 구하기위한 몇가지 특징과 자료구조등을 정리한 발표자료입니다.
* 열린세미나 그룹
https://www.facebook.com/groups/576473599127259/
* 블로그
http://blog.indf.net
AMD의 TressFX The Fast and The Furry by Nicolas Thibieroz 의 한글 번역
원본 http://www.slideshare.net/DevCentralAMD/tress-fx-the-fast-and-the-furry-nicolas-thibieroz
13. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
Egg BOJ #11012
54 node* init(int s, int e) {
55 if (s == e) return new node(0);
56 int m = (s + e) / 2;
57 return new node(init(s, m), init(m + 1, e));
58 }
59
60 int sum(node *u, int s, int e, int l, int r) {
61 if (l > r)
62 return 0;
63 if (l == s && e == r)
64 return u ->sum;
65 int m = (s + e) / 2;
66 return sum(u ->l, s, m, l, min(r, m))
67 + sum(u ->r, m + 1, e, max(l, m + 1), r);
68 }
source code
그냥 세그먼트 트리 만들듯이
14. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
Egg BOJ #11012
54 node* init(int s, int e) {
55 if (s == e) return new node(0);
56 int m = (s + e) / 2;
57 return new node(init(s, m), init(m + 1, e));
58 }
59
60 int sum(node *u, int s, int e, int l, int r) {
61 if (l > r)
62 return 0;
63 if (l == s && e == r)
64 return u ->sum;
65 int m = (s + e) / 2;
66 return sum(u ->l, s, m, l, min(r, m))
67 + sum(u ->r, m + 1, e, max(l, m + 1), r);
68 }
source code
그냥 세그먼트 트리 만들듯이
15. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
Egg BOJ #11012
70 node* update(node* u, int s, int e, int i, int dv) {
71 if (s == e)
72 return new node(u ->sum + dv);
73 int m = (s + e) / 2;
74 if (i <= m)
75 return new node(update(u ->l, s, m, i, dv), u ->r);
76 else
77 return new node(u ->l, update(u ->r, m+1, e, i, dv));
78 }
79 }
source code
여기서는 갱신되는 부분만 새로 만들어주고 아닌 부분은 원래 트리를
포인터로 레퍼런스한다