# Part 7: 딥러닝 기초와 PyTorch 용어집 ## 핵심 용어 | 용어 (Term) | 설명 (Description) | | --- | --- | | **딥러닝 (Deep Learning)** | 여러 층(layers)으로 구성된 인공 신경망(Artificial Neural Network, ANN)을 사용하여 복잡한 패턴을 데이터로부터 학습하는 머신러닝의 한 분야입니다. 이미지, 음성, 텍스트와 같은 비정형 데이터 처리에서 뛰어난 성능을 보입니다. | | **PyTorch** | Facebook의 AI 연구팀(FAIR)이 개발한 오픈소스 머신러닝 라이브러리입니다. Python 기반이며, `Tensor` 연산(NumPy와 유사하지만 GPU 지원)과 자동 미분(Autograd) 기능을 통해 유연하고 동적인 신경망 구축 및 학습을 지원합니다. 연구 및 프로토타이핑에 널리 사용됩니다. (비유: 레고 블록) | | **텐서 (Tensor)** | PyTorch에서 데이터를 다루는 기본 단위이자 다차원 배열입니다. NumPy의 `ndarray`와 유사하지만, GPU를 사용한 고속 연산 및 자동 미분 기능을 핵심적으로 지원하여 딥러닝 모델 학습에 필수적입니다. | | **인공 신경망 (Artificial Neural Network, ANN)** | 인간의 뇌 신경망 구조에서 영감을 받아 설계된 계산 모델입니다. 여러 개의 노드(뉴런)들이 서로 연결되어 계층(layer)을 이루며, 입력 데이터로부터 패턴을 학습하여 특정 작업을 수행합니다. | | **`nn.Module`** | PyTorch에서 모든 신경망 모델의 기본이 되는 클래스입니다. 사용자는 이 클래스를 상속받아 자신만의 모델 구조(`__init__`)와 데이터 흐름(`forward`)을 정의합니다. 모델의 파라미터 관리, 저장 및 로드, GPU 이동 등의 기능을 제공합니다. | | **활성화 함수 (Activation Function)** | 신경망의 선형 계층(Linear Layer) 통과 후 적용되는 비선형(non-linear) 함수입니다. 이 비선형성이 없다면 여러 계층을 쌓아도 결국 하나의 선형 함수와 같기 때문에, 활성화 함수는 모델이 복잡하고 구불구불한 데이터 패턴을 학습할 수 있는 표현력(Expressiveness)을 부여하는 핵심적인 역할을 합니다. | | **손실 함수 (Loss Function / Cost Function)** | 모델의 예측값(prediction)과 실제 정답(target) 사이의 차이, 즉 '오차(Error)'를 수치적으로 계산하는 함수입니다. 딥러닝 학습은 이 손실 함수의 값을 최소화하는 방향으로 모델의 파라미터(가중치)를 업데이트하는 과정입니다. 해결하려는 문제의 종류(회귀, 분류)에 따라 적합한 손실 함수를 선택해야 합니다. | | **ReLU (Rectified Linear Unit)** | 딥러닝에서 가장 널리 사용되는 활성화 함수. 입력이 0보다 크면 값을 그대로 출력하고, 0보다 작으면 0을 출력합니다 (`max(0, x)`). 계산이 매우 빠르고 Sigmoid나 Tanh의 Vanishing Gradient 문제를 해결하여 학습 속도를 높입니다. | | **Softmax** | 다중 클래스 분류 문제의 마지막 출력층에서 사용되는 활성화 함수입니다. 모델의 최종 출력(Logits)을 각 클래스에 대한 '확률'로 변환해줍니다. 모든 출력의 합은 1이 되므로, 가장 확률이 높은 클래스를 선택하는 근거가 됩니다. | | **교차 엔트로피 (Cross-Entropy)** | 분류 문제에서 사용되는 대표적인 손실 함수입니다. 모델이 예측한 확률 분포와 실제 정답의 확률 분포가 얼마나 다른지를 측정합니다. 모델이 정답 클래스를 낮은 확률로 예측할수록 손실 값이 커집니다. (PyTorch의 `nn.CrossEntropyLoss`는 Softmax를 내장하고 있습니다.) | | **옵티마이저 (Optimizer)** | 손실 함수가 계산한 오차(손실 값)를 기반으로, 모델의 파라미터(가중치와 편향)를 효과적으로 업데이트하여 손실을 최소화하는 알고리즘입니다. (예: `Adam`, `SGD`, `RMSprop`) | | **순전파 (Forward Propagation)** | 인공 신경망에서 입력 데이터가 입력층에서 시작하여 은닉층들을 거쳐 출력층까지 전달되면서 각 층에서 가중치와 곱해지고 활성화 함수를 통과하여 최종 예측값을 계산하는 과정입니다. | | **역전파 (Backward Propagation)** | 순전파를 통해 계산된 예측값과 실제 정답 사이의 오차(손실)를 기반으로, 이 오차에 각 파라미터가 얼마나 기여했는지를 출력층부터 입력층 방향으로 거슬러 올라가며 계산하는 과정입니다(미분을 사용). 이 결과를 바탕으로 옵티마이저가 파라미터를 업데이트합니다. 딥러닝 학습의 핵심 알고리즘입니다. | | **에포크 (Epoch)** | 전체 훈련 데이터셋이 신경망 모델을 통해 한 번 완전히 통과(순전파 및 역전파)된 횟수를 의미합니다. 즉, 모든 훈련 샘플이 학습에 한 번 사용되면 1 에포크가 완료된 것입니다. | | **CNN (Convolutional Neural Network / 합성곱 신경망)** | 이미지 인식 및 처리에 특화된 딥러닝 모델 아키텍처입니다. 입력 데이터에서 특징(feature)을 추출하는 합성곱 계층(Convolutional Layer)과 풀링 계층(Pooling Layer)을 사용하여 공간적 계층 구조를 효과적으로 학습합니다. | | **Attention** | RNN의 장기 의존성 문제를 해결하기 위해 등장한 메커니즘으로, 번역할 문장을 생성할 때 인코더의 모든 출력 중 현재 예측해야 할 단어와 연관이 높은 입력 단어에 더 집중(가중치 부여)하는 방식입니다. | | **Transformer** | RNN을 사용하지 않고 Attention 메커니즘만으로 데이터의 순차적 정보와 문맥을 학습하는 혁신적인 신경망 아키텍처입니다. 병렬 처리가 가능하여 학습 속도가 매우 빠르며, 현대 자연어 처리 모델의 기반이 됩니다. | | **Self-Attention** | Transformer의 핵심 구성 요소로, 문장 내의 단어들이 서로를 얼마나 참조해야 하는지(관련이 있는지)를 계산하는 메커니즘입니다. 이를 통해 문맥에 맞는 단어의 의미를 파악할 수 있습니다. | | **Positional Encoding** | 순서 정보가 없는 Transformer에게 단어의 위치 정보를 제공하기 위해 각 단어의 임베딩 벡터에 더해주는 고정된 값입니다. 사인, 코사인 함수를 사용하여 위치 정보를 벡터로 표현합니다. | | **Encoder (인코더)** | Transformer 구조의 일부로, 입력 문장을 받아 각 단어의 의미와 문맥 정보를 함축한 벡터 표현(representation)으로 변환하는 역할을 합니다. Self-Attention과 피드포워드 신경망으로 구성됩니다. | | **Decoder (디코더)** | Transformer 구조의 일부로, 인코더의 출력과 이전에 생성된 출력값을 입력으로 받아 다음 단어를 예측하는 역할을 합니다. | | **BERT (Bidirectional Encoder Representations from Transformers)** | Google에서 개발한 언어 모델로, Transformer의 인코더 구조만을 사용합니다. 문장의 양방향 문맥을 모두 학습하여 문맥을 이해하는 데 매우 뛰어난 성능을 보입니다. (주로 문장 이해, 분류, 개체명 인식 등에 활용) | | **GPT (Generative Pre-trained Transformer)** | OpenAI에서 개발한 언어 모델로, Transformer의 디코더 구조만을 사용합니다. 이전 단어들을 기반으로 다음 단어를 예측하는 방식으로 학습되어 문장 생성에 매우 뛰어난 성능을 보입니다. (주로 챗봇, 텍스트 생성 등에 활용) | --- *이 용어집은 `geumdo_docs/ai lecture/part_7_deep_learning.md` 와 `geumdo_docs/ai lecture/part_7.1_transformer_and_llm_principles.md` 파일 내용을 기반으로 작성되었습니다.*