본문 바로가기
전공백서/기타 학과 및 학부

데이터사이언스대학원: 데이터사이언스를 위한 머신러닝 및 딥러닝 1

by STEMSNU 2023. 8. 28.

 

강의를 수강한 학과: 데이터사이언스대학원
작성자 성함/기수: 서민균 / 14기

1. 과목에서 배울 수 있는 내용

0) 과목의 전반적인 개요(키워드 중심)

이 과목은 MLDL1으로도 불리며, 전반부에서는 ML (machine learning)을, 후반부에서는 DL (deep learning)을 다룬다. ML 파트에서는 NN (Neural Network)를 사용하지 않는 머신러닝 기법 전반을 다루며 DL 파트에서는 딥러닝 전반에 대해 배우며 주로 CNN, RNN, Attention & Transformer에 대해 배운다. DL 파트에서는 실습 세션이 4회 있으며, 파트별 각 2번씩 총 4번의 실습과제를 통해 이론으로 배운 모델들을 구현 및 활용해본다. 특징으로는 하이브리드 강의이며, 전부 줌수업으로 들을 수 있고, 출석이 의무가 아니며 강의 영상도 전부 업로드 해준다.

1) ML

전반부에서는 다음과 같은 내용들을 배운다.

  1. Assessing Model Accuracy, Bias-VarianceTrade-Off
  2. Linear Regression
  3. Classification: Logistic Regression
  4. Classification: Generative Models for Classification
  5. Resampling Methods: Cross-Validation, Bootstrap
  6. Model Selection: Subset Selection, Shrinkage Methods, Regularization
  7. Tree Based Methods: RegressionTrees, Classification Trees
  8. Bagging, Random Forests, Boosting
  9. Support Vector Machines
  10. Unsupervised Learning: PCA, Clustering Methods

주로 통계를 기반으로 한 머신러닝 알고리즘을 다루지만, 수학적으로 부담을 주는 과목은 전혀 아니다. 머신러닝 / 딥러닝 모델들은 파라미터 세팅에 따라 다양한 trade-off가 존재하는데, 가장 대표적인 bias-variance trade-off에 대해 배운다. 이후 통계적 추론의 기본이 되는 Linear regression, Logistic Regression을 배운다.

학습 데이터를 최대한 활용하기 위한 방법인 resampling method를 배우는데, 이 방법 중 하나인 cross-validation이 cheating이 될 수 있는 사례들을 소개하며 올바른 검정 방법에 대해 배운다. Model selection에서는 unseen 데이터에 대해 더 general한 모델을 얻기 위해 feature를 선택하는 방법을 배운다.

이후 두 차례에 걸쳐 Tree 기반 regression / classification 모델들을 배우고, 머신러닝의 꽃이라 볼 수 있는 SVM (Support Vector machine)과 PCA (Principle Component Analysis)에 대해 배우며 전반부 강의가 끝난다.

별도의 lab 세션은 존재하지 않지만 강의 자료에 쓰인 모델들을 구현한 (Scikit-learn과 Statsmodel api 사용)코드 파일을 제공하며, 전반부에서 두 번의 실습 과제가 나온다. 이 강의의 특징으로 과제에서 api 사용이 금지되는 문제들이 종종 출제된다. 요구사항을 제대로 읽지 않는다면 해당 문제에서 0점을 획득할 수 있으니 주의하자.

2) DL

후반부에서는 다음과 같은 내용들을 배운다.

  1. Intro to Deep Learning & Nearest Neighbor Classifiers
  2. Softmax classifier, Cross-entropy
  3. Neural networks, backpropagation

Lab 1. Neural network basics, Intro to PyTorch

  1. Convolutional neural networks
  2. Training neural networks I

Lab 2. Convolutional neural networks with visual data

  1. Training neural networks II
  2. Recurrent neural networks

Lab 3. More on model training & Sequential modeling with text data

  1. Seq2seq models, Attention
  2. Transformers

Lab 4. Attention & Transformer language models

Neural network와 이를 이해하기 위해 필수적인 개념들에 배운다. Loss, Optimizer, Regularization, Normalization, Augmentation 등 training에 관련된 개념들과 딥러닝에서 가장 대표적인 모델인 CNN과 RNN에 대해 배우며, 마지막으로 현재 SOTA (State Of The Art) 모델들에서 대부분 쓰이는 attention mechanism과 transformer에 대해 배운다.

강의 사이에 4회의 lab 세션이 존재하며, PyTorch를 활용해 강의에서 배운 내용들을 코드로 구현해보는 시간을 갖는다. 참고로 대중적으로 가장 많이 쓰이는 딥러닝 프레임워크로 PyTorch와 Tensorflow가 있는데, PyTorch 점유율이 압도적이다. Lab 세션에서는 PyTorch에서 제공하는 library들을 가져와서 사용하지만, 과제에서는 해당 library들을 사용하면 안 되고 전부 scratch부터 구현해야 한다. 특히 항상 과제 4의 난도가 가장 높은데, 논문을 보고 모델을 구현해야 하는데 PyTorch에서 제공하는 라이브러리를 사용할 수 없다 (아주 기본적인 연산 함수만 사용 가능). 마찬가지로 요구사항을 제대로 읽지 않으면 구현을 하고도 0점을 받을 수 있으니 주의하자.

2. 선배의 조언

데이터사이언스는 주로 Python을 활용하기 때문에 이 강의에서도 python을 사용한다. 따라서 python이라는 언어에 대한 이해도가 높을 필요는 없지만, 수강 계획이 있다면 최소한 python 사용이 익숙할 필요가 있다. 공대에서 배우는 컴개실 수준의 이해도만 있으면 충분하다고 생각한다.

조교님들이 답변을 정말 잘 해주신다. 심지어 빨리 해주신다. 따라서 독강이여도 혼자 듣는 느낌이 들지 않을 수 있다. 애매하다고 생각하는 부분이나 궁금한 부분이 있으면 게시판을 적극 활용하고, 매 강의마다 마지막에 교수님이 질문을 꽤 오랫동안 받아 주시니 이 시간을 잘 활용해보자.

AI 관련 경험이 없다고 해서 시험 볼 때 불리한 점은 전혀 없다고 생각하지만, 아무래도 과제는 코딩을 직접해야 하기 때문에 입문자에게는 부담이 될 수 있다. 하지만 요즘 인터넷에 워낙 좋은 자료들이 많기 때문에 이를 잘 활용하면 과제를 아예 제출하지 못 하는 일이 생기진 않을 것이다.

3. 진로 선택에 도움되는 점

요즘 머신러닝/딥러닝은 분야와 어떤 분야에서도 도입하려 시도하는 추세라 생각한다. 따라서 본인의 분야가 컴퓨터 관련이 아니더라도 이 강의는 분명히 많은 도움이 된다. 실제로 이 강의의 수강생들은 정말 다양한 전공을 가졌으며, AI를 본인들의 전공에 활용하려는 목적으로 수강하는 사람들이 많다. AI를 본인 연구에 활용하려는 분들이 정말 많았다. 따라서 본인이 AI 관련 커리어를 생각하고 있지 않더라도 이 강의는 많은 도움이 될 것이라 생각한다.

4. 맺음말

대학원 강의를 수강하는 것 자체가 낯설게 느껴질 수 있다. 하지만 이 강의는 머신러닝과 딥러닝을 입문하는 사람들을 대상으로 열리기 때문에 대학원 강좌라고 해서 내용이 특별히 어렵거나 하진 않다. 오히려 필자가 이 강좌를 듣게 된 이유는 학부에서 열리는 수업에 비해 입문하는 사람이 듣기에 부담이 덜할 것으로 생각됐기 때문이다. 수강생이 총 150~200명 정도 되는데, 이 중 절반은 데이터사이언스대학원생, 나머지는 공과대학 및 다른 단과대 대학원생들로 입문하는 분들이 이 강좌를 많이 듣는다. 물론, 여느 강의가 그렇듯 ‘고인물’들도 항상 존재하며 이미 내용을 꽤 아는 전공자들도 있지만, 대학원 강의는 학부 강의보다 학점을 넉넉하게 주기 때문에 이에 대한 걱정은 하지 않아도 된다.

딥러닝에 대해 조금 알거나 아예 모르지만 관심 있는 사람들에게 이 강의를 권한다. 특히 입문자는 이 강의를 통해 많은 것들을 배울 수 있을 것이다. 전반부, 후반부 모두 조교님들이 게시판에 상주하시며 질문에 열정적으로 답해주셔서 스스로 애매하다고 생각되는 부분은 정말 전부 다 질문하면서 해결했다. 이 부분이 인터넷에 돌아다니는 cs 229, cs231n과 같은 유명 강의를 혼자 들으며 공부할 때와 가장 큰 차이라 생각되며, 교수님 두 분 다 강의력이 좋으시다. 수강이 고민되는 학생들은 DL 파트 강의는 유튜브에 검색하면 나오니 참고하면 좋을 것이다.

댓글