본문 바로가기
728x90

분류 전체보기95

A Sequence Modeling Problem: Predict the Next Word (시퀀스 모델링 문제: 다음 단어 예측하기) A Sequence Modeling Problem: Predict the Next Word 이번에는 RNN을 사용하여 다음 단어를 예측하는 시퀀스 모델링 문제를 다룰 것이다. 시퀀스 모델링 문제는 주어진 단어 시퀀스의 다음 단어를 예측하는 것이다. 예를 들어, 다음 문장의 마지막 단어를 예측하는 문제를 생각해 보겠습니다. "이번 아침에 저는 고양이를 산책에 데리고 나갔습니다." "This morning I took my cat for a walk" 이 문장에서 RNN은 "산책에" 다음에 올 단어를 예측해야 한다. 하지만 뉴럴 네트워크는 자연어를 직접적으로 이해하지 못하기 때문에 텍스트 데이터를 숫자 벡터로 변환해야 한다. 텍스트 데이터를 숫자 벡터로 변환하는 방법은 다음과 같다. 1. 사전 생성: 모든 .. 2024. 3. 8.
nn.Module로 구현하는 선형 회귀 이전 게시글은 직접적으로 가설을 제시해, 비용 함수를 직접 정의해서 선형 회귀 모델을 구현했다. 이번에는 파이토치에서 이미 구현되어 제공되고 있는 함수들을 불러오는 것으로 선형 회귀 모델을 구현해 보자. 단순 선형 회귀 구현하기 import torch import torch.nn as nn #torch.nn은 딥러닝 모델을 구성하는 레이어 및 모듈을 제공 import torch.nn.functional as F import torch.optim as optim torch.manual_seed(1) 필요한 도구들을 임포트 하고, 이제 데이터를 선언한다. 아래 데이터는 y= 2x를 가정된 상태에서 만들어진 데이터로 우리는 이미 정답이 W=2, b=0 임을 알고 있는 사태다. 모델이 이 두 W와 b의 값을 제.. 2024. 3. 4.
Recurrent Neural Networks(RNNs) Recurrent Neural Networks(RNNs) 위의 이미지는 RNN의 내부 구조를 보여준다. 입력(x_t), 이전 상태(h_(t-1)), 갱신된 상태(h_t), 출력(y_t) 간의 관계를 나타낸다. 화살표는 정보 흐름을 나타낸다. 순환 신경망(RNN)의 핵심 개념은 내부 상태(h)를 유지 관리하고 시퀸스를 처리하면서 각 시간 단계에서 업데이트한다. 이 업데이트는 재귀 관계를 통해 계산되며, 이 관계는 이전 시간 단계의 정보(h_(t-1))와 현재 입력(x_t)을 모두 고려한다. 이 함수(f_W)는 가중치(W) 집합에 의해 정의되며, RNN이 시계열 데이터를 처리하는 동안 시간 단계마다 동일한 가중치 집합을 사용한다. 텍스트와 이미지 모두 RNN이 내부 상태를 사용하여 시퀸스 데이터를 처리한다는.. 2024. 2. 29.
다중 선형 회귀(Multivariable Linear regression) 앞서 배운 x가 1개인 선형 회귀를 단순 선형 회귀라고 한다. 이번 챕터에서는 다수의 x로부터 y를 예측하는 다중 선형 회귀에 대해서 이해한다. 1. 데이터에 대한 이해(Data Definition) 다음과 같은 훈연 데이터가 있습니다. 앞서 배운 단순 선형 회귀와 다른 점은 독립 변수 x의 개수가 이제 1개가 아닌 3개라는 점입니다. 3개의 퀴즈 점수로부터 최종 점수를 예측하는 모델을 만들어보자 독립 변수 x의 개수가 3개이므로 이를 수식으로 표현하면 아래와 같다. H(x) = w1x2 + w2x2 + w3x3 + b 2. 파이토치로 구현하기 우선 필요한 도구들을 임포트 하고 랜덤 시드를 고정한다. import torch import torch.nn as nn import torch.nn.functio.. 2024. 2. 2.
Neurons with Recurrence 순환 신경망(RNN)의 개념과 순차 데이터를 처리하는 데 사용하는 방법에 대해 설명하겠습니다. 먼저 퍼셉트론(perceptron)에 대한 기본 구성 요소부터 설명드리겠습니다. 위의 이미지는 perceptron의 기본 구성 요소를 보여준다. 입력층은 X1부터 XM까지의 입력에 해당한다. 각 입력은 해당 가중치를 곱한 다음 비선형 활성화 함수를 통과하여 출력을 생성한다. 출력은 y로 표시된다. RNN의 피드백 루프는 은닉층의 출력을 은닉층의 입력으로 다시 연결하여 생성된다. 이미지에서는 이 피드백 루프가 표시되지 않지만 RNN의 중요한 특징이다. RNN은 텍스트, 오디오 또는 비디오와 같은 데이터의 시퀀스에서 정보를 학습하고 처리할 수 있는 인공 신경망의 한 유형이다. 이를 수행하러면 아키텍처에 피드백 루프.. 2024. 2. 1.
자동 미분(Autograd) 경사 하강법 코드는 requires_grad=True, backward()등이 나온다. 이는 파이토치에서 제공하는 있는 자동 미분(Autograd) 기능을 수행하고 있는 것이다. 파이토치의 학습 과정을 보다 더 잘 이해하기 위해서 자동 미분에 대해서 이해해 보자. 자동 미분(Autograd) 실습하기 자동 미분에 대해서 실습을 해보자. 임의로 2w^2 + 5라는 식을 세워보고, w에 대해 미분해 보겠습니다. import torch 값이 2인 임의의 스칼라 텐서를 w를 선언합니다. 이때 required_grad를 Ture로 설정합니다. 이는 이 텐서에 대한 기울기를 저장하겠다는 의미 한다. w = torch.tensor(2.0, requires_grad = True) 이제 수식을 정의한다. y=w**2 z.. 2024. 1. 26.
728x90