본문 바로가기

Theory12

[파이토치 트랜스포머 #11] 4장 파이토치 심화 - 5) 사전 학습된 모델 사전 학습된 모델사전 학습된 모델 Pre-trained Model: 대규모 데이터세트로 학습된 딥러닝 모델, 이미 학습이 완료된 모델모델 자체를 현재 시스템에 적용하거나, 사전 학습된 임베딩 Embeddings 벡터를 활용해 모델 구성 가능처음부터 모델 구성, 학습 x, 이미 학습된 모델의 일부 활용, 추가 학습을 통해 모델 성능 향상예) 늑대와 사자 구별하는 모델 구축개와 고양이 구별하는 사전 학습된 모델 활용동물의 형태를 구분하고 각 개체가 가진 특징을 구분하는 계층에 대한 학습이 완료된 모델이러한 사전 학습된 모델을 사용하면 안정되고 우수한 성능 기대 가능대규모 데이터세트에서 데이터의 특징을 학습했기 때문에 유사한 작업에 대해서도 우수한 성능 기대 가능학습에 필요한 시간 대폭 감소, 모델 개발 프로.. 2024. 7. 3.
[파이토치 트랜스포머 #10] 4장 파이토치 심화 - 4) 데이터 증강 및 변환 데이터 증강 및 변환데이터 증강 Data Argumentation데이터가 가진 고유한 특징을 유지한 채 변형하거나 노이즈를 추가해 데이터세트의 크기를 인위적으로 늘리는 방법기존 학습 데이터를 재가공, 원래 데이터와 유사하지만 새로운 데이터 생성필요 이유모델의 과대 적합 감소, 일반화 능력 향상데이터세트를 인위적으로 확장기존 데이터 품질 유지한 채 특징을 살려 모델 학습에 사용모델의 분산과 편향 감소 가능데이터 수집 시 잘못된 정보가 들어오는 문제 발생 x특정 클래스의 데이터가 적은 경우 데이터 증강 → 불균형 완화주의 사항너무 많은 변형, 노이즈 추가 → 기존 데이터가 가진 특징 파괴 = 데이터의 일관성 사라짐데이터 증강: 특정 알고리즘 적용해 생성, 데이터 수집보다 더 많은 비용 발생 가능 텍스트 데이.. 2024. 6. 30.
[파이토치 트랜스포머 #9] 4장 파이토치 심화 - 3) 정칙화 정칙화 정칙화 Regularization 모델 학습 시 발생하는 과대적합을 방지하기 위해 사용되는 기술 모델이 암기가 아니라 일반화할 수 있도록 손실함수에 규제 Penalty를 가하는 방식 암기 Memorization란 모델이 데이터의 일반적인 패턴을 학습하는 것이 아니라 훈련 데이터의 노이즈나 패턴을 학습한 것 일반화 Generalization 란 특정 데이터가 갖고 있는 노이즈를 학습하는 것이 아닌, 데이터의 일반적인 패턴을 학습하는 것 손실 함수에 규제를 가해 모델의 일반화 성능을 향상 학습 데이터들이 갖고 있는 작은 차이점에 대해 덜 민감해져서 모델의 분산 값이 낮아짐 모델이 학습 시 의존하는 데이터의 특징 수 감소 → 모델의 추론 능력 개선 모델이 비교적 복잡하고 학습에 사용되는 데이터가 적을 .. 2024. 4. 12.
[파이토치 트랜스포머 #8] 4장 파이토치 심화 - 2) 가중치 초기화 가중치 초기화 가중치 초기화 Weight Initialization: 모델의 초기 가중치 값을 설정하는 것 적절한 초깃값 설정 기울기 폭주나 기울기 소실 문제 완화 가능 모델의 수렴 속도 향상, 전반적인 학습 프로세스 개선 상수 초기화 가중치를 초기화 하는 간단한 방법, 비용 거의 x 초기 가중치 값을 모두 같은 값으로 초기화 대표적으로, 0, 1, 특정 값 (Constant), 단위 행렬(Unit Matrix), 디랙 델타 함수(Dirac Delta Function) 값 등이 있음 일반적으로 사용되지 않는 초기화 방법. 모든 가중치 초깃값을 같은 값으로 초기화하면, 배열 구조의 가중치에서 문제 발생하기 때문 대칭 파괴 Breaking Symmetry 현상 발생. 모든 노드가 동일한 출력 생성. 모델 학.. 2024. 4. 12.
[파이토치 트랜스포머 #7] 4장 파이토치 심화 - 1) 과대적합과 과소적합, 배치 정규화 과대적합과 과소적합 과대적합 Overfitting: 모델이 훈련 데이터에서는 우수하게 예측, 새로운 데이터에서는 제대로 예측하지 못해 오차가 크게 발생하는 것을 의미 과소적합 Underfitting: 훈련 데이터에서도 성능이 좋지 않고, 새로운 데이터에 대해서도 성능이 좋지 않음. 공통점 성능 저하 모델 선택 실패 모델을 변경해 문제 완화 가능 과대적합: 모델의 구조가 너무 복잡 과소적합: 모델의 구조가 너무 단순 편향-분산 트레이드오프 모델이 훈련 데이터와 새로운 데이터에 대해서도 우수한 성능을 보이려면 낮은 편향과 낮은 분산을 가져야 함 분산이 높으면 추정치에 대한 변동 폭이 커짐 데이터가 갖고 있는 노이즈까지 학습 과정에 포함 → 과대 적합 발생 모델이 복잡할수록 분산은 커지고, 편향은 작아짐 모델.. 2024. 4. 12.
[파이토치 트랜스포머 #6] 3장 파이토치 기초 - 6) 순전파와 역전파, 퍼셉트론 순전파와 역전파 순전파 Forward Propagation 순방향 전달 Forward Pass라고도 하며, 입력이 주어지면 신경망의 출력을 계산하는 프로세스 입력 데이터를 기반으로 신경망을 따라 입력층부터 출력층가지 차례대로 변수를 계산하고 추론한 결과를 전달 네트워크에 입력값(x)을 전달해 순전파 연산을 진행 계층마다 가중치와 편향으로 계산된 값이 활성화 함수에 전달 활성화 함수에서 출력값 (y 햇)이 계산되고 이 값을 손실함수에 실젯값(y)과 함께 연산해 오차 계산 역전파 Back Propagation 순전파 방향과 반대로 연산 진행 순전파와 역전파는 네트워크가 입력값을 기반으로 예측을 수행할 수 있게 함 학습을 반복할수록 모델의 성능 향상 가능 신경망 학습에서 중요 프로세스 중 하나 유튜브 참고하여.. 2024. 4. 3.
[파이토치 트랜스포머 #6] 3장 파이토치 기초 - 5) 활성화 함수 활성화 함수 활성화 함수 Activation Function 인공 신경망에서 사용되는 은닉층을 활성화하기 위한 함수 활성화: 인공 신경망의 뉴런의 출력값을 선형에서 비선형으로 변환하는 것 네트워크가 데이터의 복잡한 패턴을 기반으로 학습하고 결정을 내릴 수 있게 제어함 가중치와 편향으로 이루어진 노드를 선형에서 비선형으로 갱신하는 역할 예) 출근 시간 예측 모델 구현 일어난 시간(x1), 기상 상태(x2) 기상 상태(x2)보다 일어난 시간(x1)이 더 영향력이 크다는 것을 직관적으로 알 수 있음 → 연산 과정에서 일어난 시간(x1)은 더 많이 활성화(Activate)돼야 하며, 기상 상태(x2)는 비교적 비활성화(Deactivate)돼야 함 비선형 구조를 가져 역전파 과정에서 미분값을 통해 학습이 진행될 .. 2024. 3. 17.
[파이토치 트랜스포머 #5] 3장 파이토치 기초 - 4) 모델/데이터세트 분리, 모델 저장 및 불러오기 모델/데이터세트 분리 파이토치의 모델은 인공 신경망 모듈을 활용해 구현 데이터에 대한 연산 수행, 계층 정의, 순방향 연산 수행 신경망 패키지의 모듈 클래스 활용 새로운 모델 클래스를 생성하려면 모듈 클래스를 상속받아 임의의 서브 클래스를 생성 이 클래스는 다른 모듈 클래스를 포함할 수 있으며 트리 구조로 중첩 가능 모듈 클래스 class Model(nn.Module): def __init__(self): super().__init__() self.conv1=nn.Conv2d(1, 20, 5) self.conv2=nn.Conv2d(20, 20, 5) def forward(self, x): x=F.relu(self.conv1(x)) x=F.relu(self.conv2(x)) return x 초기화 메서드 .. 2024. 3. 6.
[파이토치 트랜스포머 #4] 3장 파이토치 기초 - 3) 데이터세트와 데이터로더 데이터세트와 데이터로더 데이터세트는 데이터의 집합을 의미하며, 입력값X와 결과값Y에 대한 정보를 제공하거나 일련의 데이터 묶음을 제공함 데이터세트 학습에 필요한 데이터 샘플을 정제하고 정답을 저장하는 기능을 제공 모델 학습을 위해 임의의 데이터세트를 구성할 때 파이토치에서 지원하는 데이터세트 클래스를 상속받아 사용 선형 변환 함수나 오차 함수처럼 클래스 형태로 제공 기본형 초기화 메서드 __init__ : 입력된 데이터의 전처리 과정을 수행하는 메서드 새로운 인스턴스가 생성될 때 학습에 사용될 데이터를 선언, 학습에 필요한 형태로 변형하는 과정을 진행 호출 메서드 __getitem__ : 학습을 진행할 때 사용되는 하나의 행을 불러오는 과정 입력된 색인 index에 해당하는 데이터 샘플을 불러오고 반환 .. 2024. 3. 6.
[파이토치 트랜스포머 #3] 3장 파이토치 기초 - 2) 가설, 손실함수, 최적화 가설 가설: 어떤 사실을 설명하거나 증명하기 위한 가정, 두 개 이상의 변수의 관계를 검증 가능한 형태로 기술하여 변수 간의 관계를 예측하는 것을 의미 연구가설, 귀무가설, 대립가설 연구가설: 연구자가 검증하려는 가설. 귀무가설을 부정하는 것으로 설명한 가설을 증명하려는 가설 귀무가설: 통계학에서 처음부터 버릴 것을 예상하는 가설. 변수 간 차이나 관계가 없음을 통계학적 증거를 통해 증명하려는 가설 대립가설: 귀무가설과 반대. 귀무가설이 거짓이라면 대안으로 참이 되는 가설. 통계적 가설 검정 진행 머신러닝에서의 가설 머신러닝에서의 가설 통계적 가설 검정. 데이터와 변수 간의 관계가 있는지 확률론적으로 설명 독립 변수와 종속 변수 간의 관계를 가장 잘 근사시키기 위해 사용 단일 가설 Single Hypot.. 2024. 3. 4.
[파이토치 트랜스포머 #2] 3장 파이토치 기초 - 1) 텐서 텐서 텐서 (Tensor): 넘파이 라이브러리의 ndarray 클래스와 유사한 구조로 배열(Array)이나 행렬(Matrix)과 유사한 자료 구조(자료형) 파이토치에서는 텐서를 사용. 모델의 입출력뿐만 아니라 모델의 매개변수를 부호화(Encode)하고 GPU를 활용해 연산을 가속화 넘파이와 파이토치의 공통점: 다양한 연산 진행 가능 차이점: 파이토치는 GPU 가속 (GPU Acceleration)을 적용할 수 있어서, CPU 텐서와 GPU 텐서로 나눠지고, 각각의 텐서를 상호 변환하거나 CPU 사용 여부를 설정함 차원 (Rank) 스칼라 Scalar (0차원 텐서) 벡터 Vector (1차원 텐서) 행렬 Matrix (2차원 텐서) 배열 Array (3차원 이상) 텐서 생성 생성 방법 torch.tens.. 2024. 2. 24.
[파이토치 트랜스포머 #1] 1장 인공지능과 방법론 인공지능부터 머신러닝에 대한 전반적인 내용이 담긴 챕터 쭉 읽으면서 넘어가기에 좋음 아는 용어가 많으면 당연한 얘기같지만 모르는 부분은 모르겠는.. 특정 부분만 기록 머신러닝 아키텍처 데이터 준비, 모델링, 모델 평가, 모델 배포 모델 배포 머신러닝 시스템을 서비스화하거나 상용화하는 단계, 모델 서빙 과정 의미 모델 서빙: 머신러닝 모델의 예측값을 사용자에게 제공 배치 인퍼런스 입력 데이터를 배치(batch)로 묶어 한 번에 추론(inference)하는 방법 특정 주기마다 여러 데이터를 한 번에 묶어 처리 → 대규모 요청사항을 수월하게 처리 가능 일정 주기마다 처리된 결과는 보통 데이터베이스에 적재해 사용자에게 제공 다음 주기까지 신규 데이터 처리 불가 = 실시간 예측값 제공x 온라인 인퍼런스 클라우드 .. 2024. 2. 24.