탈잉 - 세상의 모든 재능
다회차 수업
06.06(토)
13:00~18:00
|
신림
상세장소 : 토즈, 서울대입구역점
수업장소는 지하철 2호선 서울대입구역 4번 출구에서 도보로 1분 거리에 있는 토즈 서울대입구역점입니다.
실시간 톡
₩22,000원 / 시간
₩660,000 / 총 6회 30시간
한창호
데이터사이언스
인공지능 개발을 위한 파이썬 고성능 컴퓨팅-6/6(토) 오후 1시
찜하기
  • 5시간/회
  • 최대인원:4~8
  • ₩22,000/시간

튜터정보

  • Univ. of California, San Diego 경제학 박사
  • 신분 인증 됨
  • (학력인증추가)서울대학교 경제학 학사
  • (학력인증추가)서울대학교 경제학 석사
현재 고려대학교 기술경영전문대학원 겸임교수(인공지능, 빅데이터 강의)
확인사이트 : https://mot.korea.ac.kr/members/list_hi.asp?board_name=faculty&gubun=K
밑에서 3번째 라인 확인

가톨릭대학교 산업수학센터 연구교수(산업수학 프로젝트)
가톨릭대학교 수학과 겸임교수(계량경제학, 수리금융 강의)
성균관대학교 경영대학 겸임교수(금융공학 강의)
삼성금융연구소
(주)한국기업평가
에너지경제연구원
University of California, San Diego, 경제학 박사(계량경제학 전공)
서울대학교 대학원 졸업, 경제학 석사
서울대학교 경제학과 졸업, 경제학 학사

<관련 주요 학술 저술>
“The DNA of Security Return”, Quantitative Finance, vol.15, no.1, pp. 1-17. 2015
Quantitative Finance 2015년 1월 표제논문(Featured paper)으로 선정됨
https://www.tandfonline.com/doi/full/10.1080/14697688.2014.920100
“수익률 DNA를 이용한 금융시장 분석 방법론”, 자산운용연구, vol 2, no.1, pp 82-106, 2014.
“Measuring the Dependency between Securities via Factor-ICA Models”, Journal of AppliedFinance and Banking, vol. 4, no. 1, 2014.
“Multi-Variate Estimation and Forecasting with Artificial Neural Networks”,
(인공신경두뇌망을 이용한 다변량 추정 및 예측)
박사학위논문, UCSD, 1999.

수업소개

본 수업은 1회 5시간 6회 총 30시간 구성되어 있습니다.
수업일정은 2020/6/6~2020/7/11 매주 토요일 오후 1시부터 6시까지 입니다.
....................................................................................................................................................................................................................

빅데이터, 인공지능, 머신러닝 등 4차산업혁명 관련 일을 하는 데에는 대용량 데이터 처리와 고속 연산이 가능한 최첨단 하드웨어가 필요해 일반인들이 쉽게 접근 할 수 없는 영역에 있다는 인상을 강하게 받습니다. 그러나, 일반 데스크탑이나 노트북일지라도 그 잠재적 성능을 최대한 이끌어 낼 수 있도록 소스코드를 튜닝하면 강력한 인공지능 구현에 활용 가능합니다.

사실 요즘은 하드웨어 발전 속도가 워낙 빨라서 일반 데스크탑 컴퓨터 안에 들어 있는 CPU가 다중 코어로 구성되어 있고 일부 게임 전용 컴퓨터일 경우 그 수가 수십개에 달하기도 합니다. 뿐만 아니라 이들 코어를 논리적으로 분할하면 그 수가 두 배로 늘어날 뿐만 아니라 전압만 적절히 높여줘도 동작속도를 1GHZ 이상 더 높일 수 있습니다. 그뿐만이 아닙니다. 화면을 뿌려주는 그래픽 카드에는 수천개의 코어가 들어 있는데, 최근에는 머신러닝 알고리듬을 CPU가 아니라 GPU에서 훈련시켜 엄청난 성능 향상을 보여주고 있습니다. 요약하자면 이미 최첨단 하드웨어가 우리 주변에 널려 있다는 사실입니다. 문제는 이런 엄청난 성능을 제대로 활용하여 학업이나 업무의 생산성 향상에 도움을 주지를 못하고 있다는 점입니다. 왜 그럴까요?

이번 강의에서는 인공지능 개발을 위한 각종 머신러닝 알고리듬 코딩에 가장 활발하게 활용되고 있는 파이썬을 이용하여 고성능 컴퓨팅 구현 기법에 대해 설명 드립니다. 일반 노트북 컴퓨터에서 대규모 데이터 처리 및 고속연산이 가능하도록 병렬분산처리 컴퓨팅을 구현하고, 인터프리터 언어인 파이썬의 한계를 극복할 수 있도록 파이썬 코드 자체를 컴파일링하며, GPU 컴퓨팅을 사용하는 등 노트북 컴퓨터를 마치 슈퍼컴처럼 활용하실 수 있도록 이론과 실습을 통해 자세히 설명 드립니다. 여러분의 파이썬 코딩 능력을 한 단계 업그레이드 할 수 있는 좋은 기회입니다. 이런 기법들은 비단 인공지능 개발 뿐만 아니라 각종 데이터 사이언스 업무에서도 활용 가능합니다.

수업대상

  • 1. 고급 파이썬 프로그래밍 기법을 익히고 싶으신 분: 대규모 데이터를 고속으로 처리해야 하는 인공지능 개발 및 데이터 사이언스 분야에 종사하시면서 생산성을 획기적으로 높일 수 있는 고급 코딩 지식에 갈증을 느끼시는 분들께 아주 유용한 강좌입니다.

    2. 인공지능 관련 학위 논문 작성 중이신 분: 인공지능 전반에 걸친 조언을 수업시간과 휴식시간을 통해서 해드리고 개인적으로도 적극 도와드리겠습니다.

    3. 전직 및 이직을 준비 중이신 분: 인공지능, 데이터 사이언스 및 관련 분야에 대한 각종 정보와 전직 및 이직에 대한 조언을 해드리겠습니다.

    4. 금융공학, 계량경제학, 기계학습 분야에 조언이 필요하신 분: 강사의 경험과 인적 네트워크를 활용하여 적극적으로 도와드리겠습니다.

커리큘럼

1회차

* 1회차(2020/6/6)

1) 벤치마킹

- 파이썬 프로그램의 성능 평가

* test, benchmark : 프로그램의 정상적 동작 확인 및 성능 확인
* pytest_benchmark : pytest_benchmark 를 활용한 테스터 및 벤치마킹 방법

2) 프로파일링

- 프로그램 실행을 느리게 만드는 요인 파악 방법

* cProflier : cProflier 이용한 병목 발견
* line_profiler : line_profiler를 이용한 병목 분석
* memory_profiler : 메모리 사용 최적화

2회차

* 2회차(2020/6/13)

1) 옵티마이징

- 데이터 구조 및 알고리듬 효율 개선으로 실행 속도 증가

* 내장 데이터 구조 : 파이썬 내장 데이터 구조를 이용한 프로그램 병목 해결

- 파이썬 기본 및 응용 라이브러리 활용법

* Caching : 메모리 또는 디스크의 임시 저장소에 계산 결과 저장
* Memoization : 이전의 함수 호출 결과를 저장했다가 다시 사용
* Comprehensions : for-loop 를 대체하여 프로그램의 속도 향상
* Generators : for-loop 를 대체하여 프로그램의 속도 향상

2) 고속 배열 연산

- Numpy 및 Pandas 기반 배열 연산 활용하여 수치해석학적 알고리듬 고속 실행

* array : NumPy의 배열 구조를 활용한 고속 연산
* broadcasting : 모양이 다른 배열간의 연산 규칙을 활용한 고속연산
* numexpr : Numexpr 활용한 배열 연산 속도 향상

- Numpy 및 Pandas 배열 연산 사용법

* Indexing : Pandas series 및 dataframe 인덱싱을 활용한 고속 연산
* DB형 연산 : Pandas 명령어를 활용한 DB 유형의 연산

3회차

* 3회차(2020/6/20)

1) Cython활용

- 파이썬 호환 문법을 사용하는 Cython을 이용하여 효율적인 C 코드 생성

* Static Typing : 파이썬의 dynamic typing을 static typing으로 전환

- Cython 사용법

* Sharing declaration : 별도의 파일에 자주 사용되는 함수 및 클래스 저장
* C array : NumPy array 를 C array 로 대체
* Typed memoryviews : Typed memoryviews 활용한 고속 연산
* 프로파일링 : Cython 프로그램 작동 속도 향상

4회차

* 4회차(2020/6/27)

1) 파이썬 컴파일링

- 파이썬 코드를 실시간으로 컴파일하여 기계어 코드로 전환

* JIT : Just-In-Time compiler 개념 소개

- Numba, PyPy 사용법

* Numba 설치: 라이브러리 설치 및 세팅
* Numba 사용 : 파이썬 코드를 실시간으로 기계어 코드로 전환
* PyPy : 라이브러리 설치 및 세팅
* PyPy 사용 : 코드를 실시간 분석하여 느린 loop를 자동적으로 최적화

5회차

* 5회차(2020/7/4)

1) 병행처리(Concurrency) 프로그래밍

- 비동기적 반응형 프로그래밍

* 비동기 프로그래밍1 : I/O 대기, 병행성
* 비동기 프로그래밍2 : Callbacks, Futures, Event Loop

- asyncio, RxPy 프레임워크 활용한 병행처리 코딩

* Asyncio 프레임워크 : Coroutines 으로 blocking 코드를 non-blocking으로 전환
* 반응형 프로그래밍1 : RxPy를 이용한 반응형 프로그래밍
* 반응형 프로그래밍2 : Observables 개념 소개 및 활용

6회차

* 6회차(2020/7/11)

1) 병렬 처리

- 다중 코어 CPU나 GPU를 이용한 병렬처리 프로그래밍

* 병렬 프로그래밍 : 개념 소개
* 다중 코어 활용 : Process, Pool, Executor interface, Synchronization. Locks
* OpenMP : Cython 코드 병렬화

- 다중처리 모듈을 이용하거나 Theano 또는 Tensorflow를 이용하여 병렬처리 코딩하는 방법

* GPU 활용 1 : Theano 코드를 GPU에서 실행
* GPU 활용 2 : Tensorflow 코드를 GPU에서 실행

2) 분산 처리

- 빅데이터 및 대규모 문제 해결용 병렬처리 알고리듬을 분산 컴퓨팅 환경에서 운용

* 분산 처리 : 개념 소개
* MapReduce : MapReduce를 이용한 분산처리

- Dask, PySpark, mpi4py 라이브러리 사용법

* Dask : Dask array, Dask Bag/Data Frame, Dsak distributed
* PySpark : PySpark 설치 및 세팅, 사용법 소개
* mpi4py : mpi4py 이용한 과학 연산

리뷰

리뷰쓰기

실시간톡

실시간 톡하기