Deep Learning

문제 발생한글 대화문을 보고 요약하는 모델을 pre training시키고 있는데 계속 데이터셋에 토큰들이 안지워져서 성능이 잘 안나오는 이슈가 있었다.모델의 예측값(PRED)과 실제 정답값(GOLD)을 비교하는 과정에서 나 같은 특수 토큰들이 제거되지 않아 성능이 저하되는 문제가 발생했다. 대화문 데이터에는 #Person1#, #Person2#와 같은 스페셜 토큰이 포함되어 있었는데 이 토큰들은 디코딩 과정에서도 유지되어야 했다. 이를 확인하기 위해 다음과 같이 skip_special_tokens=False 설정으로 디코딩 결과를 확인했다:decoded_preds = tokenizer.batch_decode(predictions, skip_special_tokens=False)print('>>>')pr..
문서 요약 모델의 성능을 평가할 때, ROUGE (Recall-Oriented Understudy for Gisting Evaluation)는 가장 널리 사용되는 평가지표 중 하나이다. 이 글에서는 ROUGE 1, ROUGE 2, ROUGE-L, ROUGE-W, ROUGE-S의 정의와 계산 방법을 이해하기 쉽게 설명하고, 각 지표의 특징과 활용 방안에 대해 알아보자. 1. ROUGE란 무엇인가?ROUGE는 사람이 작성한 참조 요약(reference summary)과 모델이 생성한 요약(candidate summary) 간의 유사도를 측정하기 위한 평가 지표이다. 주로 n-gram 기반의 겹치는 정도를 비교하며 대표적으로 Precision(정밀도), Recall(재현율), 그리고 F1-score를 산출한다..
데이터 전처리 방법데이터 전처리 방법에는 여러 가지 방법이 있다. 과연 텍스트 전처리 기법에는 뭐가 있을까? Data Preprocessing컴퓨터가 텍스트를 이해할 수 있도록 하는 data Preprocessing 방법은 다음과 같다.HTML 태그, 특수문자, 이모티콘정규표현식불용어 (Stopword)의미 없는 단어들어, 그, 저, 아휴 같은어간추출(Stemming)의미를 가진 부분만 추출표제어추출(Lemmatizing)원형 추출are, is -> be Preprocessing Pipeline문서가 들어오면 토큰화를 하고, 텍스트 전처리를 하게 되고 내가 원하는 데이터 클리닝, bag of words를 만들 수도 있다. KoNLPy한국어 자연언어처리를 위한 대표적 python Library다. Twit..
딥러닝 모델 구현에서 PyTorch딥러닝 모델 구현에 필요한 요소들을 PyTorch를 통해 편리하게 사용할 수 있다.이 그림을 PyTorch 클래스를 이용해서 어떻게 구현을 하는지는 다음과 같다.  Dataset, DataLoader를 이용해서 데이터를 만들게 되고, 만들어진 데이터를 모델에 넘겨주게 된다. 이 모델의 연산과정을 통해서 Output을 내게 된다. 이 Output을 이용해서 Loss를 계산하게 된다. 계산된 Loss들을 이용해서 모델의 파라미터를 업데이트하는 Optimization을 진행하게 된다. 1. 데이터Dataset과 DataLoader를 조합하여 데이터를 손쉽게 로드하고 처리할 수 있다.Dataset과 DataLoader를 사용하면, 데이터 집합에서 미니 배치 크기만큼의 데이터를 ..
tensor에 대해서 공부하다가 각각의 함수가 비슷비슷하고 -1, 1의 쓰임이 조금씩 다르고 텐서를 공부하면서 슬라이싱([:])에 대해서도 새롭게 알게된 내용이 있어서 정리해보려고 한다. 텐서 shape 바꾸기 (1) reshape 함수reshape은 텐서의 모양을 다시 배열하는 함수로 텐서의 원소 수는 유지하되 차원 배열을 바꿀 수 있다. 메모리를 공유하지 않는다.# 모양 변경a = torch.randn(2, 3, 5) # (2,3,5) 크기를 가지는 텐서 생성print(a)print("Shape : ", a.size()) # 텐서 모양 반환print('\n')reshape_a = a.reshape(5, 6) # 3차원 텐서를 2차원 텐서로 크기 변경 (2,3,5) -> (5,6)print(resha..
딥러닝을 공부하면서 내가 헷갈렸던 개념들과 각 함수들의 순서, 쓰임, 역할에 대해서 정리해보려고 한다. 손실 함수 (Loss Function)손실 함수는 모델이 예측한 값과 실제 값 사이의 차이를 측정하여 오차를 계산한다. 이 오차를 줄이는 것이 모델 학습의 목표이다.손실 함수는 학습 과정에서 출력된 예측 값과 실제 값(레이블) 사이의 차이를 계산하는 데 사용된다. 대표적인 손실 함수는 다음과 같다.회귀 문제: MSE분류 문제: Cross-Entropy Loss손실 함수의 순서는 순전파 후, 모델이 예측한 값과 실제 값 간의 차이를 계산하는 과정에서 사용된다. 활성화 함수 (Activation Function)활성화 함수는 각 뉴런이 계산한 값에 비선형성을 부여한다. 딥러닝 모델은 비선형 문제를 다루기 ..
가중치 초기화가중치 초기화는 굉장히 중요하다.가중치 초기화는 딥러닝 모델의 학습 속도와 성능에 큰 영향을 미친다. 잘못된 초기화는 활성화 함수에 의해 데이터 분포가 한쪽으로 쏠리거나, 전역 최솟값에 도달하는 데 어려움을 겪게 할 수 있다. 특히, 층이 깊어질수록 데이터가 활성화 함수를 거치며 왜곡되기 때문에 가중치 초기화는 필수적인 과정이다. 가중치 초기화가 필요한 이유(1) 데이터 분포 왜곡 방지딥러닝을 쓰다 보면 레이어가 많아지는데 이게 무슨 의미냐면 활성화 함수를 계속 거쳐가면서 데이터가 뒤로 넘어간다는 뜻이다. 그 말은 활성함수를 시그모이드를 쓰던, ReLU를 쓰던, 하이퍼볼릭 탄젠트를 쓰던, 입출력 관계의 분포를 보면 한쪽으로 쏠리게 되어있다.시그모이드는 입력 신호 범위가 마이너스 무한대부터 무..
📌 서론딥러닝 모델을 학습할 때, 우리는 모델의 파라미터를 추정하는 과정에서 다양한 손실 함수를 사용한다. 이러한 손실 함수들은 특정 확률 분포에 기반한 Maximum Likelihood Estimation(MLE)을 통해 도출된다.이번 글에서는 MLE와 손실 함수(MSE, Cross-Entropy) 간의 관계를 확률적 관점에서 살펴보고, 손실 함수를 선택할 때 고려해야 할 점을 알아보자.Maximum Likelihood Estimation (MLE)Maximum Likelihood Estimation은 주어진 데이터가 가장 높은 확률로 발생하게 만드는 모델의 파라미터를 추정하는 방법이다. 이때, 모델의 출력은 확률 값을 직접적으로 나타내지 않으며, 확률을 추정하기 위한 파라미터 값을 의미한다.예를 들..
평양냉면7
'Deep Learning' 카테고리의 글 목록