[소스 코드]
https://github.com/henlix/data-structure.git
[설명]
대학생 연합 IT 벤처 창업 동아리 S.O.P.T (Shout Our Passion Together - http://sopt.org) 에서 내부적으로 진행하는 전공 과목 기초 스터디 자료입니다.
이번주에 다룰 내용은 전반적인 개요, 복잡도 분석 및 기초 데이터 구조인 배열과 연결리스트 기초입니다.
스터디 자료는 다음과 같은 순서대로 올라갈 예정입니다.
1. 데이터 구조 및 알고리즘
2. 운영체제
3. 네트워크
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 등을 단계적으로 접합해 나가는 것을 보여줄 것입니다.
[소스 코드]
https://github.com/henlix/data-structure.git
[설명]
대학생 연합 IT 벤처 창업 동아리 S.O.P.T (Shout Our Passion Together - http://sopt.org) 에서 내부적으로 진행하는 전공 과목 기초 스터디 자료입니다.
이번주에 다룰 내용은 전반적인 개요, 복잡도 분석 및 기초 데이터 구조인 배열과 연결리스트 기초입니다.
스터디 자료는 다음과 같은 순서대로 올라갈 예정입니다.
1. 데이터 구조 및 알고리즘
2. 운영체제
3. 네트워크
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 등을 단계적으로 접합해 나가는 것을 보여줄 것입니다.
Big Bird - Transformers for Longer Sequencestaeseon ryu
안녕하세요 딥러닝 논문 읽기 모임입니다. 오늘 업로드된 논문 리뷰 영상은 NeurIPS 2020 에 발표된 'Big Bird - Transformers for Longer Sequences'라는 제목의 논문입니다.
오늘 소개해 드릴 논문은 Big Bird로, Transformer 계열 논문들의 Full Attention 구조의 한계를 리캡하고, Long Sequence의 처리를 매우 효율적으로 처리하기 위함을 목표로 나온 논문입니다. 트랜스포머의 엄청난 성능은 이미 다들 잘 알고 계시지만, 시퀀스 길이가 길어질수록 연산의 한계에 부딪히게 되는데, 이에 많은 논문이 비효율적인 연산을 줄이고자 많은 시도가 있었고, Big Bird도 그중 하나의 논문이라고 생각해 주시면 됩니다. 오늘 논문 리뷰를 위해 자연어 처리팀 백지윤 님이 자세한 리뷰 도와주셨습니다.
Slides based on "Introduction to Machine Learning with Python" by Andreas Muller and Sarah Guido for Hongdae Machine Learning Study(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)
홍대 머신 러닝 스터디(https://www.meetup.com/Hongdae-Machine-Learning-Study/) (epoch #2)의 "파이썬 라이브러리를 활용한 머신러닝"(옮긴이 박해선) 슬라이드 자료.
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...Gyubin Son
1. Eye in the Sky: Real-time Drone Surveillance System (DSS) for Violent Individuals Identification using ScatterNet Hybrid Deep Learning Network
https://arxiv.org/abs/1806.00746
2. 3D human pose estimation in video with temporal convolutions and semi-supervised training
https://arxiv.org/abs/1811.11742
Efficient linear skyline algorithm in two dimensional space
1. 0
Jongwuk Lee
Dept of Software,
Sungkyunkwan University
Hyeonseung Im
Dept of Computer Science,
Kangwon National University
Sung-Soo Kim
ETRI
Efficient Linear Skyline Algorithm in Two-Dimensional Space
3. 1. 계산에 사용되는 개념 정리
1.1) 지배(dominance)
2
1) 정의
2) 예시
튜플 p가 모든 속성에 대해서 튜플 q보다 작거나 같고, 최소한 하나의 속성에 대해서 p
가 q보다 작을 경우(∀𝐴𝑖 ∈ 𝐴: 𝑝𝑖 ≤ 𝑞𝑖 ∧ ∃𝐴𝑗 ∈ 𝐴: 𝑝𝑗 < 𝑝𝑗), p는 q를 지배 (p ≺ q)한다고
한다.
• p(2,2), q(2,1)
• p(1,10), q(11,12)
4. 1. 계산에 사용되는 개념 정리
1.2) 스카이라인(skyline)
3
1) 정의
2) 예시
스카이라인은 전체 집합 S에서 다른 어떤 튜플에도 지배되지 않은 튜플들의 집
합이다.
sky(S) = { p∈S | ∄q ∈ S: p ≺ q }
• sky(S) = { a(1,10), b(2,8), f(7,7), g(8,2), h(10,1)}
5. 1. 계산에 사용되는 개념 정리
1.2) 스카이라인(skyline)
4
3) 특징
장점 : 단조 증가 형태의 선호도 함수에 대해서 가장 선호되는 후보 집합을 제공
단점 : 속성들이 반상관 관계 이거나 속성의 수가 증가할 경우 스카이라인 질의
결과가 지나치게 증가한다.
6. 1. 계산에 사용되는 개념 정리
1.3) 선형 스카이라인(linear skyline)
5
1) 정의
2) 예시
2차원 공간에서의 선형 스카이라인은 임의의 선형 함수 𝑓 𝑝 = 𝑖=1
2
𝜔𝑖 ∙ 𝑝𝑖 에 대해서 가
장 작은 값을 갖는 튜플 들의 집합이다.
𝑙𝑠𝑘𝑦 𝑆 = {p∈S | ∄p∈S:𝑓 𝑞 <𝑓 𝑝 }
8. 2. 기존 선형 스카이라인 알고리즘
2.1) 가상 튜플을 이용해 스카이라인 구하기
7
• S = { a(1,10), b(2,8), c(4,8), d(4,10), e(5,9), f(7,7), g(8,2), h(10,1)}
• 1) 먼저 스카이라인을 구한다.
• 2) x축에서 최소값 y축에서 최소값을
가진 tuple을 기준으로 가상 tuple을 추
가한다. (𝑥, 𝑦, 𝑧)
• 3) 컨벡스 헐을 구한다.
• 4) 컨벡스 헐 내부에 속하는 tuple을 제
외시킨다.
9. 2. 기존 선형 스카이라인 알고리즘
2.2) 컨벡스헐 계산
8
• S = { a(1,10), b(2,8), c(4,8), d(4,10), e(5,9), f(7,7), g(8,2), h(10,1)}
• 1) x축에서 최소값 y축에서 최소값을
가진 tuple을 기준으로 가상 tuple을 추
가한다. (𝑥, 𝑦, 𝑧)
• 2) 컨벡스 헐을 구한다.
• 3) 컨벡스 헐 내부에 속하는 tuple을 제
외시킨다.
10. 2. 기존 선형 스카이라인 알고리즘
2.3) 기존 알고리즘의 문제점
9
가상 튜플을 추가한 뒤 기존 스카이라인 또는 컨벡스 헐 알고리즘을 활용함으로써 불필요한
계산이 발생한다.
S. Börzsönyi, D. Kossmann, K. Stocker, “The skyline operator,” In IEEE ICDE, 2001, pp. 421–430.
12. 3. 제안 알고리즘 QuickLS
3.0) 선형 스카이라인 특징
1) 정리
11
다른 튜플에 의해 지배되지 않으면서 속성 𝐴1에서 가장 큰 값을 갖는 튜플 p 는 속성 𝐴2
에서 최솟값을 가진다. 즉, p= 𝑎𝑟𝑔𝑚𝑎𝑥 𝑞∈𝑠𝑘𝑦(𝑆) 𝑞1이면 p= 𝑎𝑟𝑔𝑚𝑖𝑛 𝑞∈𝑆 𝑞2을 만족한다.
13. 3. 제안 알고리즘 QuickLS
3.1) <단계 1>
12
• S = { a(1,10), b(2,8), c(4,8), d(4,10), e(5,9), f(7,7), g(8,2), h(10,1)}
1. x축에서 최소값 y축에서 최소값을 가진 tuple을 이어 선을 긋는다. 만약 두 점이 같은
경우 skyline은 1개 이므로 종료한다.
2. 다음 단계 함수를 호출한다.(이 함수는 재귀적으로 작동한다.)
14. 3. 제안 알고리즘 QuickLS
3.2) <단계 2>
13
• S = { a(1,10), b(2,8), c(4,8), d(4,10), e(5,9), f(7,7), g(8,2), h(10,1)}
1. 이전 단계에서 추가한 line 의 위쪽, 즉 dominated 되는 tuple들을 제거한다.
2. line에 속하지 않은 tuple이 없는 경우 종료한다.
15. 3. 제안 알고리즘 QuickLS
3.3) <단계 3>
14
• S = { a(1,10), b(2,8), c(4,8), d(4,10), e(5,9), f(7,7), g(8,2), h(10,1)}
1. 남아 있는 tuple 중에서 line에서 먼 tuple 부터 선택하고 남은 tuple 집합에서 제거한다.
2. 이전 line의 2개의 각 tuple과 연결하여 2개의 라인을 만들고 각 라인에 대해서 단계 2-
3을 반복한다.
18. 4. 실험
4.1) 실험 환경
Algorithm
• SSkyline : 스카이라인 알고
리즘
• QHULL : 컨벡스 헐 알고리
즘
• BSHELL : 기존 스카이라인
알고리즘 1
• BSHELL2 : QHULL을 이용
한 기존 스카이라인 알고리
즘2
• QuickLS : 제안한 알고리즘
HW / SW
• 언어 : C++
• 컴파일러 : g++ (-O3 옵션)
• HW : Intel Xeon E5-2630V
3 2.4GHz, 64GB RAM
• OS : Ubuntu 14.04
Data
• 스카이라인 알고리즘의 성
능을 측정하는데 주로 사용
되는 독립(independent) 또
는 반상관 분포를 고려
• 데이터는 1M, 2M, 4M, 8M,
16M 크기의 합성 데이터
(synthetic data)를 이용
17
19. 4. 실험
4.2) 실험 결과
18
1) 제안 알고리즘과 기존 알고리즘간의 효율성 비교
▲독립 분포 데이터에서 각 데이터
크기에 따른 계산 속도
▲반상관 분포 데이터에서 각 데이터
크기에 따른 계산 속도
20. 4. 실험
4.2) 실험 결과
19
2) 데이터 분포에 따른 스카이라인과 선형 스카이라인의 개수 비교
1M 2M 4M 8M 16M
스카이라인 150 156.3 168.6 174.3 184.3
선형 스카이라인 15.9 15.6 16.1 17.1 19
1M 2M 4M 8M 16M
스카이라인 14.9 16.2 16 16.7 18.6
선형 스카이라인 10 12.1 10.5 12.7 12.4
▲반상관 분포 데이터에서 각 데이터 크기에 따
른 스카이라인과 선형 스카이라인의 개수
▲독립 분포 데이터에서 각 데이터 크기에
따른 스카이라인과 선형 스카이라인의 개수
▲독립 분포 데이터에서 각 데이터 크기에 따
른 계산 속도
▲반상관 분포 데이터에서 각 데이터 크기에 따른
계산 속도