6P by GN⁺ | ★ favorite | 댓글 2개
  • 제네바 대학교 14x050용으로 정리된 딥러닝 공개 강의 자료로, François Fleuret의 슬라이드·핸드아웃·녹화 영상을 한곳에서 볼 수 있음
  • PyTorch 예제를 바탕으로 텐서 연산, 자동 미분, 경사 하강법부터 생성·순환·어텐션 모델까지 입문자가 따라갈 범위를 넓게 잡음
  • 전체 PDF 아카이브는 1107장 슬라이드 규모이며, 스크린캐스트 자막은 OpenAI Whisper로 자동 생성된 ZIP 파일로 제공됨
  • Practical 1~6, 해답 코드, 공통 Python prologue가 함께 제공되어 MNIST/CIFAR10 로딩과 전처리 옵션을 실습에 바로 활용할 수 있음
  • 선형대수, 미분, Python, 확률·통계, 최적화, 알고리듬, 신호처리 기초가 필요하며 자료는 CC BY-NC-SA 4.0 조건으로 배포됨

코스 개요

  • Deep Learning Course는 François Fleuret의 제네바 대학교 14x050 딥러닝 코스 슬라이드와 녹화 자료를 모아 둔 페이지임
  • PyTorch 프레임워크 예제를 포함한 딥러닝 입문 강의로 구성됨
  • 강의 범위는 다음 축으로 이어짐
    • 머신러닝 목표와 주요 과제
    • 텐서 연산
    • 자동 미분과 경사 하강법
    • 딥러닝 전용 기법
    • 생성 모델, 순환 모델, 어텐션 모델
  • 별도 자료로 "The Little Book of Deep Learning"도 제공함
    • STEM 배경 독자를 위한 휴대폰 포맷의 짧은 딥러닝 입문서임
  • 이 코스는 2018년 Idiap Research Institute에서 처음 개발됐고, 2022년까지 École Polytechnique Fédérale de Lausanne에서 EE-559로 강의됨

자료 형식과 다운로드

  • 강의용 슬라이드 PDF는 발표에 맞춰 가로 방향과 오버레이를 사용함
  • 핸드아웃 PDF는 세로 방향으로 컴파일되며, 오버레이 효과 없이 추가 노트를 포함함
  • 스크린캐스트는 브라우저 스트리밍과 다운로드 가능한 mp4 파일로 볼 수 있음
  • 전체 PDF 아카이브는 다음 파일로 받을 수 있음
  • 스크린캐스트 자막은 OpenAI의 Whisper로 자동 생성됐으며, dlc-video-subtitles.zip 파일 크기는 502.1Kb임

13개 단원 흐름

  • 전체 강의 자료는 13개 큰 단원으로 구성되며, 각 단원마다 슬라이드 수와 영상 시간이 함께 제공됨
  • 초반부는 딥러닝과 머신러닝의 기본 개념을 잡는 데 초점을 둠
    • Introduction: 신경망에서 딥러닝으로, 현재 응용과 성공 사례, 텐서 기초와 선형 회귀, 고차원 텐서, 텐서 내부 구조
    • Machine learning fundamentals: 손실과 위험, 과적합과 과소적합, 편향-분산 딜레마, 평가 프로토콜, 클러스터링과 임베딩
    • Multi-layer perceptron and back-propagation: 퍼셉트론, 선형 분류기의 확률적 관점, 선형 분리 가능성, MLP, 경사 하강법, 역전파
  • 중반부는 PyTorch 사용법과 딥러닝 레이어·학습 기법으로 넘어감
    • Graphs of operators, autograd, and convolutional layers: DAG 네트워크, Autograd, PyTorch 모듈과 배치 처리, 합성곱, 풀링, PyTorch 모듈 작성
    • Initialization and optimization: 교차 엔트로피 손실, 확률적 경사 하강법, PyTorch optimizer, L2/L1 패널티, 파라미터 초기화, 아키텍처 선택과 학습 프로토콜, Autograd 함수 작성
    • Going deeper: 깊이의 이점, Rectifier, Dropout, Batch Normalization, Residual Network, GPU 사용
  • 후반부는 생성 모델, 컴퓨터 비전, 모델 내부 분석, 시퀀스 모델까지 확장됨
    • Autoencoders: Transposed convolution, Deep Autoencoder, Denoising Autoencoder, Variational Autoencoder
      • VAE 스크린캐스트는 최신 상태가 아니므로 슬라이드를 확인해야 함
    • Computer vision: 컴퓨터 비전 태스크, 이미지 분류 네트워크, 객체 탐지 네트워크, 의미론적 분할 네트워크, DataLoader와 neuro-surgery
    • Under the hood: 파라미터 보기, 활성화 보기, 입력에서 처리 시각화, 입력 최적화
    • Autoregression and Normalizing Flows: 자기회귀, Causal convolution, Non-volume preserving network
    • Generative Adversarial Networks: GAN, Wasserstein GAN, Conditional GAN과 이미지 변환, 모델 지속성과 체크포인트
    • Recurrent models and NLP: RNN, LSTM과 GRU, 단어 임베딩과 번역
    • Attention models: 메모리와 시퀀스 번역을 위한 어텐션, 어텐션 메커니즘, Transformer Network
      • 어텐션 단원 스크린캐스트는 최신 상태가 아니므로 슬라이드를 확인해야 함

실습 자료와 Python prologue

  • 실습은 Practical 1~6으로 제공되며, 각 PDF와 해답 코드가 함께 링크됨
  • 실습용 Python prologue는 dlc_practical_prologue.py로 제공됨
  • prologue는 명령행 인자를 처리함
    • --full: 전체 데이터셋 사용
    • --tiny: 빠른 확인을 위한 매우 작은 데이터셋 사용
    • --seed SEED: 랜덤 시드 지정, 0 미만이면 시딩하지 않음
    • --cifar: MNIST 대신 CIFAR 데이터셋 사용
    • --data_dir DATA_DIR: PyTorch 데이터 위치 지정, 기본값은 $PYTORCH_DATA_DIR 또는 ./data
  • load_data(cifar=None, one_hot_labels=False, normalize=False, flatten=True) 함수는 필요한 경우 데이터를 다운로드하고, flatten이 참이면 이미지를 1차원 벡터로 변환함
  • 반환값은 train_data, train_target, test_data, test_target 네 개의 텐서임
  • cifar=True이면 CIFAR10을 사용하고, False이면 MNIST를 사용하며, None이면 --cifar 인자를 따름
  • one_hot_labels=True이면 타깃을 클래스 수만큼 열을 가진 2D torch.Tensor로 바꾸고, 정답 위치만 1, 나머지는 -1로 설정함
  • normalize=True이면 학습 데이터의 평균과 분산을 기준으로 데이터 텐서를 정규화함
  • flatten=True이면 데이터는 N × D 2D 텐서가 되고, 거짓이면 N × C × H × W 4D 텐서가 됨
  • 기본 예시는 MNIST를 사용하고 --full이 없으면 학습 1000개, 테스트 1000개 샘플로 축소되며, 입력 크기는 torch.Size([1000, 784])

선수 지식과 참고 문서

  • 선수 지식은 다음 영역을 포함함
    • 선형대수: 벡터, 행렬, 유클리드 공간
    • 미분: Jacobian, Hessian, Chain rule
    • Python 프로그래밍
    • 확률과 통계 기초: 이산·연속 분포, 대수의 법칙, 조건부 확률, Bayes, PCA
    • 최적화 기초: 최소값 개념, 경사 하강법
    • 알고리듬 기초: 계산 비용
    • 신호처리 기초: Fourier transform, wavelet
  • 참고 문서로 Python, Jupyter notebook, PyTorch 문서를 확인할 수 있음

이용 라이선스

  • 페이지의 자체 자료는 Creative Commons BY-NC-SA 4.0 International License로 배포됨
  • 정규 학술 교육 목적 사용은 허용되지만, 책, 광고가 많은 YouTube, 기타 수익화 모델에는 사용하지 않겠다는 조건이 명시돼 있음

댓글과 토론

강의에 자막이 없어서 아쉽군요..

Hacker News 의견들
  • Stanford의 YouTube 채널도 볼 만함. 머신러닝 강의 전체 시리즈 19개 영상을 올려둠
    https://m.youtube.com/playlist?list=PLoROMvodv4rNyWOpJg_Yh4NSqI4Z4vOYy
    채널에 들어가 보면 컴퓨터과학 강의가 꽤 많이 올라와 있고, 품질도 좋은 편임

    • 이 Stanford 강의는 꽤 고급스럽고 빡센 과정으로 보임
  • 좋은 자료가 많이 올라왔지만, 목록에 Understanding Deep Learning이 빠진 것 같음
    Simon J.D. Prince는 이 책으로 정말 대단한 일을 해냈다고 봄. 본문 내용뿐 아니라 각 장에 붙은 노트가 고급 참고문헌으로 바로 이어지고, 이해도를 제대로 시험하는 연습문제와 개념을 실제 코드로 구현한 훌륭한 노트북까지 제공함
    딥러닝 수업을 가르친다면 학생들에게 줄 수 있는 무료 연습자료로도 좋지만, 아마 이 커뮤니티가 주 대상은 아닐 듯함
    [0] https://udlbook.github.io/udlbook/

  • 이 강의에 관심 있다면 같은 저자의 Little Book of Deep Learning도 꼭 확인해볼 만함
    https://fleuret.org/francois/lbdl.html

  • 또 하나의 좋은 자료로 Yann LeCun과 Alfredo Canziani의 NYU Deep Learning 강의가 있고, YouTube에서 전체를 볼 수 있음
    https://atcold.github.io/NYU-DLSP20/
    https://www.youtube.com/playlist?list=PLLHTzKZzVU9eaEyErdV26ikyolxOsz6mq

  • Practical Deep Learning for Coders도 참고할 만함
    https://course.fast.ai/

    • Jeremy Howard가 AI 상위 100인 목록에 없었다는 게 충격이었음. 이 강의는 정말 훌륭함
  • 영상을 보지 않아도 되는, 깊이 있는 좋은 강의가 있을까?

  • Andrej Karpathy의 이 강의 묶음도 추천함. 첫 강의는 초보자 관점에서도 꽤 접근하기 쉬움
    https://karpathy.ai/zero-to-hero.html

    • 좀 더 고급 수학이 부족한 사람에게도 괜찮을까?
  • Sebastian Raschka의 이 강의도 전체적으로 접근하기 쉬움. Python이나 비슷한 언어를 조금 알면 따라갈 수 있음
    https://youtube.com/playlist?list=PLTKMiZHVd_2KJtIXOW0zFhFfBaJJilH51&si=ocsN2zSPN7YsrGiY

  • 몇 년 된, 감이 좀 무뎌진 풀스택 개발자로서 이 분야에 들어가 보고 싶긴 한데, 6개월 공부로 어느 정도든 진입이 가능한지 전혀 감이 안 옴

    • 미분이 뭔지 기억하고 수학과 확률을 어느 정도 할 수 있다면 충분히 가능함. React보다도 대부분을 더 쉽게 익힐 수 있다고 봄
      진입 경사의 가파름은 덜하지만, 전체 시간은 더 오래 걸릴 수 있어서 단거리 질주보다는 마라톤에 가까움