Neural Networks: Zero to Hero 강의 소개
Andrej Karpathy가 공개한 Neural Networks 강의는 신경망을 코드로 처음부터 직접 구현하는 방법을 다룹니다. 이 과정에서는 역전파(backpropagation)의 기본부터 시작하여 GPT와 같은 최신 심층신경망까지 구축하게 됩니다. 언어 모델은 딥러닝을 학습하기에 훌륭한 주제이며, 이는 궁극적으로 컴퓨터 비전 등 다른 분야로 확장할 때도 많은 부분이 즉시 활용될 수 있기 때문입니다.
이 강의는 다른 온라인 AI 강좌와 달리, 이론보다는 실습에 중점을 두어 실제 코드를 통해 신경망의 동작 원리를 이해할 수 있도록 합니다. 특히 PyTorch를 사용해 모델을 구현하고 디버깅하는 과정에서 실무에 필요한 기술들을 익힐 수 있습니다.
선수 지식: 탄탄한 프로그래밍(Python) 실력과 기초 수준의 수학(예: 미분, 가우시안 분포)에 대한 이해가 필요합니다.
강의 목차 및 개요
1. 역전파와 신경망 훈련의 기초 (2시간 25분)
가장 기본적인 파이썬 지식과 고등학교 수준의 미적분에 대한 희미한 기억만 있으면 이해할 수 있는, 역전파와 신경망 훈련의 가장 자세한 설명입니다.
2. 바이그램(bi-gram) 문자 수준 언어 모델 구현 (1시간 57분)
이 비디오에서는 현대의 GPT와 같은 트랜스포머 언어 모델로 발전시킬 바이그램 문자 수준 언어 모델을 구현합니다. 이 과정에서 torch.Tensor의 미묘한 부분과 신경망의 효율적인 평가 방법, 언어 모델링의 전체 프레임워크(모델 훈련, 샘플링, 손실 평가 등)를 다룹니다.
3. 다층 퍼셉트론(MLP) 문자 수준 언어 모델 구현 (1시간 15분)
여기서는 다층 퍼셉트론(MLP) 문자 수준 언어 모델을 구현하며, 머신러닝의 기본 개념(예: 모델 훈련, 학습률 조정, 하이퍼파라미터, 평가, 훈련/검증/테스트 분할, 과적합/과소적합 등)을 소개합니다.
4. MLP의 내부 구조 탐구 (1시간 55분)
다층 퍼셉트론(MLP)의 여러 층을 가진 신경망의 내부를 탐구하고, 순전파 활성화의 통계, 역전파 기울기, 잘못된 스케일링으로 발생할 수 있는 문제들을 분석합니다. 이 과정에서 배치 정규화(Batch Normalization)와 같은 현대적인 혁신 기법을 소개하며, 향후 다룰 잔여 연결과 Adam 옵티마이저도 언급합니다.
5. 역전파의 수동 구현 (1시간 55분)
이 강의에서는 이전 비디오에서 사용한 2층 MLP(배치 정규화 포함)를 이용하여 PyTorch의 자동 미분 기능 없이 수동으로 역전파를 구현합니다. 이 과정에서 신경망의 최적화 방식에 대한 직관을 쌓고, 현대 신경망을 더 자신 있게 혁신하고 디버깅할 수 있는 능력을 키웁니다.
6. CNN 아키텍처 구현 (56분)
이전 비디오에서 만든 2층 MLP를 확장하여 트리 구조를 갖춘 컨볼루션 신경망(CNN) 아키텍처를 구현합니다. 이 과정에서 torch.nn의 기본 원리를 이해하고, 딥러닝 개발 과정의 전형적인 흐름을 체험하게 됩니다.
7. GPT 구축 (1시간 56분)
"Attention is All You Need" 논문과 OpenAI의 GPT-2 / GPT-3을 따라 GPT를 구축합니다. 이 비디오에서는 ChatGPT와 같은 언어 모델과의 연결성을 탐구하며, GitHub Copilot이 어떻게 GPT 구축을 돕는지에 대한 이야기도 다룹니다.
8. 토크나이저 구현 (2시간 13분)
대규모 언어 모델(LLM)의 필수 구성 요소인 토크나이저를 구현합니다. 토크나이저는 문자열을 토큰으로 변환하고, 토큰을 다시 문자열로 변환하는 두 가지 기본 기능을 수행합니다. 이 과정에서 토크나이저가 LLM에서 발생하는 여러 문제의 원인이 될 수 있음을 이해하게 되며, 이러한 문제를 근본적으로 해결할 방법을 고민합니다.
(진행 중)
다른 강의들은 계속 진행 중입니다.
Neural Networks: Zero to Hero 강의 목록
https://karpathy.ai/zero-to-hero.html
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~