About Me(99)
-
경사하강법(Gradient_Descent)으로 선형회귀 문제 풀기
# 경사하강법 다음 상태 = 현재 상태 - 학습률 * 미분(비용함수) # 선형회귀 모델 가설 함수 = 가중치 * 변수 + 절편 비용 함수 = 평균[(가설함수(변수) - 실제 값)^2] 목적. 비용함수의 값을 최소화함으로써 선형회귀 모델의 가중치와 절편을 구하는 것이다. Q. 미지수인 가중치와 절편을 각각의 식은? 일단, 비용함수를 최소화하는 것이 목표이므로 미분을 통해 비용함수 값이 0이 되는 가중치와 절편을 찾아야 한다. 찾고자 하는 것이 가중치이면, 가중치에 대해 비용함수를 미분하고, 찾고자 하는 것이 절편이라면, 절편에 대해 비용함수를 미분한다. 따라서 각각에 대해 미분을 적용하면 다음과 같은 식이 계산된다. 가중치 = 1/m * 합(가설함수(변수) - 실제 값) * 변수 절편 = 1/m * 합(가..
2022.02.03 -
[Week 3- Day 1] 회고
# 데이터 종류 - 시계열 데이터 : 시간 흐름O - 지리/ 지도 데이터 : 지도 정보(위/경도) + data 섞어 (Q. 어떻게 표현할지? 표현 방식?) - 관계 데이터 : 관계 표현가능O(2D Array & LinkedList), 객체 간의 관계 시각화(Graph/ NW 시각화) - 계층적 데이터 : 계층O data (NW로도 시각화 가능), 보통 Tree구조로 나타냄(ex. Tree, Treemap, Sunburst 등) - 수치형 (numerical) -- 연속형 (ex. 60cm, 60kg, 60도) -- 이산형 (ex. 주사위6, 6명)(통계O, 비례/비율O) - 범주형 (수치 자체의 연속 X)(str로 나타남) -- 명목형 (ex. B형, 기독교)(순서X) -- 순서형 (ex. 4학년, 별점..
2022.02.03 -
[Week 2- Day 5] 회고
# nn.Module내의 Apply 함수 nn.Module의 모든 sub-module에 대해 재귀적으로 인수인 fn을 적용한다. 보통 모델의 가중치를 초기화하기 위해 많이 사용한다고 한다. @torch.no_grad() def init_weights(m): print(m) if type(m) == nn.Linear: m.weight.fill_(1.0) print(m.weight) net = nn.Sequential(nn.Linear(2, 2), nn.Linear(2, 2)) net.apply(init_weights) # Cuda https://ko.wikipedia.org/wiki/CUDA Compute Unified Device Architecture 의 약자. GPU를 수행하는 병렬처리 알고리즘을 C..
2022.01.30 -
[Week 2- Day 4] 회고
# Multi-GPU - Signle(1개) vs Multi(2개) - GPU vs Node(1대 컴퓨터) - Signle Node Signle GPU vs Signle Node Multi GPU(많은 경우) vs Signle Node Signle GPU - module 병렬화 : module의 반으로 쪼개서 각각의 GPU에서 학습 - data 병렬화 : data를 나눠서 병렬적으로 학습 # DataParallel (py는 GIL 문제 있을 수O) parallel_model = torch.nn.DataParallel(model) # DistributedDataParallel (사실 복잡 & 신경써야할 게 많아서 거의 안써!) train_sampler = torch.utils.data.distributed..
2022.01.27 -
[Week 2- Day 3] 회고
# 남이 만든 Model 가져오기 Model을 저장하는 방법 - 아키텍처(architecture) 저장 --> NLP에서는 HuggingFace가 사실상 표준 - 파라미터(parameter) 값 저장 --> checkpoint 가져오기 (Checkpoint = 중간결과 저장) Colab Pro Colab이 꺼지면 결과가 날라가는데, Pro를 결제하면 저장하거나 카톡으로 결과를 보내놓을 수 있다. pre-trained Model 활용 시, Parameter 일부분을 frozen 시켜 학습함. ex. [param1, frozen-param2, frozen-param3, frozen-param4, frozen-param5] .pth 파일은 pytorch extension 뭐시기 하는 파일인데, 그냥 .pt 파..
2022.01.27 -
[Week 2- Day 2] 회고
# Forward pass vs Backward pass Forward pass Backward pass forward의 결과 값은 예측치(y_hat)에 해당한다. AutoGrad는 backward 함수를 호출해서 진행한다. optimizer.zero_grad() # 0으로 초기화 outputs = model(inputs) # 예측치(y_hat) loss = criterion(outputs, labels) # 손실 함수 (ex. MSELoss) loss.backward() # optimizer에서 미분대상에 대해 미분 수행 (ex. SGD방식) optimizer.step() # 한 번에 변수 모두 update # Dataset 클래스 from torch.utils.data import Dataset, D..
2022.01.25