본문 바로가기
728x90

분류 전체보기119

Sequence Modeling(시퀸스 모델링) 시퀀스 데이터 또는 시퀀스 모델링이라는 말을 할 때 정확히 무엇을 의미하는지 예를 들어 설명해 보겠습니다. 공이 움직이는 그림이 있다고 하고 , 이 공이 다음에 어디로 갈지 예측하는 것이 당신의 임무라고 했을 때 만약 공의 궤도, 움직임, 이력에 대한 정보가 전혀 없다면 다음 위치에 대한 어떤 추측이나 예측도 정확히 말하면 무작위 추측일 것이다. 하지만 공의 현재 위치뿐만 아니라 과거 어디로 움직였는지에 대한 정보도 알려준다면 문제가 훨씬 쉬워진다. 이는 정말 단순한 직관적인 예시지만, 시퀀스 데이터와 시퀸스 모델링이라는 개념은 실제 세계의 많은 문제에 적용할 수 있다. 예를 들어, 시계열 데이터(주식 가격, 날씨 데이터)를 예측하거나, 음악을 작곡하거나, 기계 번역을 하거나, 로봇을 제어하는 데 사용할.. 2024. 1. 26.
Linear Regression(선형 회귀) 1. 데이터에 대한 이해(Data Definition) 선형 회귀를 위해 사용할 예제는 공부한 시간과 점수에 대한 상관관계이다. 1시간 : 2점 2시간 : 4점 3시간 : 6점 4시간:? ex) 위에 표를 보고 어떤 학생이 1시간 공부를 했더니 2점을 맞았다. 그렇다면, 내가 4시간을 공부한다면 몇 점을 맞을 수 있을까? 이 질문에 대답하기 위해서 앞서 나온 정보를 이용해야 한다. 이때 예측을 위해 사용하는 데이터를 훈련 데이터셋(training dataset)이라고 한다. 학습이 끝난 후, 이 모델이 얼마나 잘 작동하는지 판별하는 데이터셋을 테스트 데이터셋(test dataset)이라고 한다. 1-2. 훈련 데이터셋의 구성 앞서 텐서에 대해서 배웠는데, 모델을 학습시키기 위한 데이터는 파이토치의 텐서의.. 2024. 1. 24.
Neural Networks in Practice: Overfitting(과적합) 이미지 설명 Underfitting: 데이터 포인트와 단순 선형 모델이 그려져 있다. Overfitting: 데이터 포인트와 적절한 복잡성의 모델이 그려져 있다. Ideal fit: 데이터 포인트와 적절한 복잡성의 모델이 그려져 있다. 신경망 확률적 경사 하강법으로 최적화할 때 우리는 과적합이라는 문제에 직면한다. 과적합은 모델이 훈련 데이터의 패턴을 너무 정확하게 학습하여 테스트 데이터에 일반화되지 못하는 현상이다. Underfitting(과소적합) - 간단한 선형 모델이 훈련 데이터에 잘 맞지 않는 것을 보여준다. 이는 데이터가 선형적이 아니기 때문이다. Overfitting(과적합) - 너무 복잡한 모델이 훈련 데이터의 모든 잡음까지 학습하여 테스트 데이터에 일반화되지 못하는 것을 보여준다. Ide.. 2024. 1. 19.
Neural Network in Practice: Mini-batches Gradient Descent(경사 하강법) 경사 하강법 알고리즘으로 가중치가 업데이트되고 있는 과정을 나타내고 있다. 이미지 오른쪽을 보면 그래프를 확인 할 수 있는데 그래프의 빨간색 부분을 목적지라고 하고 그것을 산의 정상이라고 한다면, 현재 자신의 위치에서 가장 경사가 높은 곳으로 계속 이동하다 보면 일반적으로 산의 정상에 도달할 수 있을 것이다. 이 방법을 경사 상승법이라고 한다. 그리고 목적지가 산 밑이라면 현재 위치에서 계속해서 가장 낮은 지점을 찾아 이동한다. 이것을 경사 하강법이라고 한다. 일반적으로 경사 하강법은 함수의 최소값을 찾아야 하는 상황에서 사용된다. 인공 지능의 경우 최적의 학습 패턴을 위해 자신의 파라미터(Perameter)를 검증해야 하며 검증 과정에서 손실 함수를 사용한다.. 2024. 1. 13.
Neural Network in Practice: Optimization(실제 신경망: 최적화) 전에 설명했던 신경망 훈련의 핵심 알고리즘인 역전파 알고리즘에 대해 다시 정리하자면 손실 함수의 기울기를 계산하여 가중치를 업데이트하고, 체인 룰을 반복적으로 적용하여 효과적으로 기울기를 계산한다. 실제 신경망 훈련의 복잡성은 경사하강법만 사용하지 않고, 실제로는 더 복잡한 최적화 기법과 알고리즘을 사용한다. 딥 뉴런망은 매개변수 수가 많고 가중치 공간이 매우 차원이 높다. 훈련 복잡성에 대한 몇 가지 예시 vanishing gradient: 기울기가 지나치게 작아져 학습이 느려지거나 막힐 수 있다. exploding gradient: 기울기가 지나치게 커져 가중치가 불안정하게 업데이트될 수 있다. saddle points: 국소 최소점에 빠져 최적 해결책을 찾지 못할 수 있다. overfitting: .. 2024. 1. 11.
텐서 조작하기(3) 1. 뷰(view) - 원소의 수를 유지하면서 텐서의 크기 변경 파이토치 텐서의 뷰(view)는 Reshape라는 이름에서 알 수 있듯이, 텐서의 크기를 변경해 주는 역할을 한다. import numpy as np import torch ft라는 이름의 3차원 텐서를 만들었습니다. 크기(shape)를 확인해 보자. t=np.array([[[0,1,2], [3,4,5]], [[6,7,8], [9,10,11]]]) ft=torch.FloatTensor(t) #3차원 텐서를 만들었다. ft의 크기를 기억하자 print(ft.shape) # torch.Size([2, 2, 3]) 1) 3차원 텐서에서 2차원 텐서로 변경 view([-1, 3])이 가지는 의미는 -1은 첫 번째 차원은 사용자가 잘 모르겠으니 파이.. 2024. 1. 10.
728x90