활성화 함수, 경사하강법, 은닉층 관련 내용 보충
| 조합 | 학습 정확도 | 검증 정확도 | 학습 손실 | 검증 손실 | 특징 요약 |
|---|---|---|---|---|---|
| sigmoid + SGD | 매우 낮음 | 매우 낮음 | 매우 높음 | 매우 높음 | 학습 불가, 수렴 실패 |
| relu + SGD | 높음 | 높음 | 낮음 | 낮음 | 안정적 학습, 일반적인 성능 |
| relu + Adam | 매우 높음 | 매우 높음 | 매우 낮음 | 매우 낮음 | 가장 빠르고 안정적, 최고 성능 |
relu + Adam 조합이 가장 우수하며, sigmoid + SGD 조합은 성능이 현저히 떨어집니다.
딥러닝 모델의 은닉층 노드 수와 구조는 "공식이 없다"는 것이 정설이며, 다양한 구조를 실험하며 최적의 아키텍처를 찾는 것이 일반적입니다.
Tensor 관련 내용 보충

| 데이터 타입 | 별칭 | 비트 수 | 설명 |
|---|---|---|---|
| torch.float32 | torch.float | 32 | 단정밀도 부동소수점, 일반적인 딥러닝 연산에 사용 |
| torch.float64 | torch.double | 64 | 배정밀도 부동소수점, 높은 정밀도 필요 시 사용 |
| torch.int16 | torch.short | 16 | 부호 있는 정수, 메모리 효율성 필요 시 사용 |
| torch.int32 | torch.int | 32 | 부호 있는 정수, 일반적인 정수 연산에 사용 |
| torch.int64 | torch.long | 64 | 부호 있는 정수, 큰 정수값이나 인덱싱에 사용 |
| torch.uint8 | - | 8 | 부호 없는 정수 (0~255), 이미지 처리에 사용 |
| torch.bool | - | - | 불리언 (True/False), 논리 연산에 사용 |
| torch.float16 | torch.half | 16 | 반정밀도 부동소수점, 메모리 절약과 속도 향상 시 사용 |
| torch.int8 | - | 8 | 부호 있는 정수 (-128~127), 높은 메모리 효율성 필요 시 사용 |
| torch.complex64 | - | 64 | 32비트 실수부 + 32비트 허수부 복소수 |
| torch.complex128 | - | 128 | 64비트 실수부 + 64비트 허수부 복소수 |

bf16과 fp16은 모두 수치 형식(numerical format)으로, 컴퓨터에서 부동 소수점 수(floating-point numbers)를 표현하는 방법 중 하나

Mixed Precision
fp16, fp32를 혼합하면서 모델학습에 사용하는 방식
학습에 사용되는 메모리 사용량을 최적화하여 학습을 가속화 하면서도 모델의 정확도를 유지할 수있음
일반적으로 Mixed precision은 다음과 같은 과정이 존재:
fp32를 사용할 때보다 많은 메모리 사용을 줄일수가있어서, 일반적으로 대규모 모델 학습에 사용됨
'3번에서 가중치를 복사하면 오히려 메모리 사용량이 커질 수 있지 않을까?'라고 생각할 수 있는데 생각보다 이 복사하는 것이 메모리를 크게 잡아먹지 않는다고 함.