금 9:00 - 11:30(전 B06호)
[Q&A 사이트]
수업 목표
(전반부) 기계학습의 기초 이론 학습 및 구현 실습
(전반부) 딥러닝 라이브러리를 이용한 딥러닝 모델링 및 최적화 기법 실습
(후반부) 다양한 딥러닝 응용에 대한 실습 제공
(후반부) C++를 이용하여 CNN, Transformer 등 딥러닝 모델 밑바닥 부터 구현
(후반부) OpenMP/CUDA 등 병렬처리 프로그래밍 기법 및 딥러닝 모델 병렬화 구현
중간-팀 프로젝트(30%)
유형: Leader board를 이용한 competition 수행(데이터셋은 추후 공개)
목표: 주어진 조건에서 모델의 성능 최대화
평가방식: 최종순위(20) 및 발표/보고서(10)
상위 순위팀은 발표 및 모델 공개 필수
기말-개인 프로젝트(50%)
유형: Leader board를 이용한 competition 수행(데이터셋은 추후 공개)
목표: 제한된 모델 성능 하락(-2%) 범위 내에서 모델의 Throughput 최대화
평가방식: 최종순위(30) 및 발표/보고서(10)
상위 순위팀은 발표 및 모델 공개 필수
과제(13%)
총 13회(매주) 과제가 부과됨
제출기간: 해당 과제의 수업시작 시간으로부터 1주일 (예를 들어, 1월 1일 9사 수업에 배포된 과제는 1월 8일 9시 까지 제출)
출석 및 태도 점수(7%)
1회 결석 (-2점), 1회 지각 (-1점), 2.5회 이상 결석시 F(학칙에 의거함)
수업에 적극적 참여시 최대 3점 추가점수 부여
윤리적 위반(수업 퇴출 및 학칙 적용)
치팅
(모델 학습 시) Test data를 학습에 사용한 경우
참고 자료
주교재1: 파이썬으로 만드는 인공지능(오일석, 이진선 저)
주교재2: PyTorchZeroToAll (Sung Kim)
주교재3: Hands-on Introduction to OpenMP (Mattson, et al.)
주교재4: CUDA C++ Programming Guide (NVidia)
GPU 활용가이드
기본적으로 대부분 딥러닝 모델은 Google Colab에서 제공하는 GPU를 활용해서 학습이 가능합니다(Google Colab은 사용이 매우 편리합니다)
중대규모 데이터를 이용한 딥러닝 모델 학습이 필요한 경우 학교 공용 GPU 클러스터를 사용할 수 있습니다.
공용 GPU클러스트 사용을 위한 [웹사이트]
Week 01
Week 02
09/12(금): 2장. 파이썬 및 구글코랩 사용법, [부록], [세라프 사용법], Lab#02
Week 03
Week 04
Week 05
Week 06
10/10(금): 딥러닝 최적화 이론 (1/2) [code], Lab#06, [중간 프로젝트 소개]
Week 07
Week 08
10/24(금): 중간 프로젝트결과 발표
Week 09
10/31(금): [CPU 병렬처리] OpenMP 기초1, Lab#08
Week 10
11/07(금): [CPU 병렬처리] OpenMP 기초2, Lab#09
Week 11
11/14(금): [CPU 병렬처리] C++ 및 OpenMP를 이용한 CNN 구현, Lab#10
Week 12
11/21(금): [GPU 병렬처리] CUDA 프로그래밍(GPU 병렬화) 기초1, Lab#11
Week 13
11/28(금): [GPU 병렬처리] CUDA 프로그래밍(GPU 병렬화) 기초2, Lab#12, [기말 프로젝트 소개]
Week 14
12/05(금): [GPU 병렬처리] C++/CUDA를 이용한 Transformer 구현, Lab#13
Week 15
12/12(금): 기말 프로젝트 결과 발표