| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- python 기초
- Python
- 소프트웨어 개발
- CNN
- 랭그래프
- python기초
- Transformer
- 정보처리기사
- 캐글
- 트랜스포머
- 데이터엔지니어
- 데이터 시각화
- 알고리즘
- 자연어처리
- 딥러닝
- 머신러닝
- 객체지향
- 힙정렬
- UMAP
- RNN
- CLIP
- 기초
- 생성형 인공지능
- LangGraph
- dementional reduction
- 에이전트
- ASR
- TTS
- RDBMS
- SQL
Archives
- Today
- Total
수달이네 기술 블로그
2. 다중선형회귀 본문
다중 선형 회귀
여러개의 독립변수로 하나의 종속변수를 예측하는 방법
- 단순 선형 회귀 : 1 대 1 예측, 다중: n : 1 예측
- $y = W1x1 + W2x2 + … + b$
X_train = torch.FloatTensor([[73, 80, 75],
[93, 88, 93],
[89, 91, 90],
[96, 98, 100],
[73, 66, 70],
[85, 90, 88],
[78, 85, 82]]).to(device)
y_train = torch.FloatTensor([[152], [185], [180], [196], [142], [175], [155]]).to(device)
패턴을 위와 같이 만들어준다.
- 독립변수 3 : 종속변수 1
model = nn.Linear(3,1).to(device)
# 독립변수 3개 종속변수 1개 랜덤 초기화
model
- 단순에선 1,1이었으나, 3개의 독립변수이므로 위와 같이 설정
Adam(Adaptive Moment Estimation)
경사 하강법을 개선한 최적화 알고리즘
- Adam 은 SGD의 단점을 보완하였다. 각 가중치와 편향마다 다른 학습률을 적용한다.
특징
- Momentum: 지금까지의 기울기를 누적하여 방향을 부드럽게 만든다.
- 처음엔 급강하 점점 천천히(관성)
- 덕분에 local minimum에 빠지는 것을 예방할 수 있다.
- local minimum: 변곡점이 여러개일때 최저값이 아닌 다른 값
- RMSProp: 각 파라미터마다 학습률을 다르게 조절해서 효율적으로 학습한다.
epochs = 1000
for epoch in range (epochs+1):
y_pred = model(X_train)
loss = loss_fn(y_pred, y_train)
optimizer.zero_grad()
loss.backward()
optimizer.step()
if epoch % 100 == 0:
print(f'Epoch: {epoch}/{epochs} Loss: {loss: .6f}')
# Epoch: 0/1000 Loss: 21585.962891
# Epoch: 100/1000 Loss: 24.979015
# Epoch: 200/1000 Loss: 23.283005
# Epoch: 300/1000 Loss: 23.146479
# Epoch: 400/1000 Loss: 22.982256
# Epoch: 500/1000 Loss: 22.792973
# Epoch: 600/1000 Loss: 22.580563
# Epoch: 700/1000 Loss: 22.346350
# Epoch: 800/1000 Loss: 22.091402
# Epoch: 900/1000 Loss: 21.816732
# Epoch: 1000/1000 Loss: 21.523197
- 1000번의 epoch동안 학습하여 21까지 loss가 감소했다.
- 줄어든 로스를 보면 급강하한 것을 확인 가능하다.
x_test = torch.FloatTensor([[98,99,100]]).to(device)
y_pred = model(x_test)
y_pred
# tensor([[196.9363]], grad_fn=<AddmmBackward0>)
- 예시 값을 넣어보면 위와 같이 결과가 나온다.
'AI공부 > 딥러닝' 카테고리의 다른 글
| 4. 손글씨 숫자 데이터셋 처리 (0) | 2026.01.30 |
|---|---|
| 3. 파이토치 논리회귀(단항, 다중 논리회귀) (0) | 2026.01.29 |
| 1. 단순 선형 회귀(손실함수, 최적화, 경사하강법, 학습률) (0) | 2026.01.27 |
| 딥러닝. Alexnet (0) | 2026.01.15 |
| 0. 파이토치 프레임워크(딥러닝 입문) (0) | 2026.01.13 |