본문 바로가기

자연어 처리13

[딥러닝을 이용한 자연어 처리 입문] 벡터와 행렬 연산 텐서 1. 벡터와 행렬과 텐서 - 벡터는 숫자가 나열된 형상이며, 파이썬에서는 1차원 배열 또는 리스트로 표현함 - 행렬은 행과 열을 가지는 2차원 형상을 가진 구조임 - 3차원부터는 주로 텐서라고 부름 2. 텐서 - 0차원부터 3차원 텐서는 아래와 같이 표현됨 import numpy as np # 0차원 텐서(스칼라) d1 = np.array(5) print('d1의 차원 :',d1.ndim) print('d1의 크기(shape) :',d1.shape) # 1차원 텐서(벡터) d2 = np.array([1,2,3,4]) print('d2의 차원 :',d2.ndim) print('d2의 크기(shape) :',d2.shape) # 2차원 텐서(행렬) d3 = np.array([[1,2,3,4], [5,6.. 2023. 4. 16.
[딥러닝을 이용한 자연어 처리 입문] 선형 회귀와 로지스틱 회귀 선형 회귀 1. 선형 회귀 1) 단순 선형 회귀 분석 y=wx+b w: 가중치(weight) b: 편향(bias) 2) 다중 선형 회귀 분석 y=w_1*x_1+w_2*x_2+...+w_n*x_n+b 2. 가설(hypothesis) 세우기 -x와 y의 관계를 유추하기 위해 수학적으로 식을 세워보게 되는데 머신러닝에서는 이러한 식을 가설이라고 함 3. 비용함수(cost function): 평균 제곱 오차(Mean Squared Error, MSE) - w와 b를 찾기 위해서 실제값과 가설로부터 얻은 예측값의 오차를 계산하는 식을 세우고, 이 식의 값을 최소화하는 최적의 w와 b를 찾아냄 - 이때 실제값과 예측값에 대한 오차에 대한 식을 목적 함수(objective function, 함수의 값을 최소화하거나 .. 2023. 4. 16.
[딥러닝을 이용한 자연어 처리 입문] 머신 러닝 오늘은 머신 러닝에서 나오는 기본적인 개념에 대해서 알아보고자 함 모델 성능 평가 - 머신 러닝 모델의 성능을 평가하기 위해서는 분석 전에 데이터를 훈련용, 검증용, 테스트용으로 분리함 - 훈련용 데이터는 머신 러닝 모델을 학습하는 용도이며, 테스트 데이터는 학습한 머신 러닝 모델의 성능을 평가하기 위한 용도임 - 검증용 데이터는 모델이 훈련 데이터에 과적합이 되고 있는지 판단하거나 하이퍼파라미터를 조정하기 위한 용도로 사용됨(하이퍼파라미터란 모델의 성능에 영향을 주며, 사람이 값을 지정하는 변수임) - 검증용 데이터를 이용하여 하이퍼파라미터를 결정하는 과정을 튜닝한다고 표현함 분류와 회귀 - 머신 러닝 모델을 이용하여 스팸 메일 분류/과학, 영어, IT, 학습지, 만화라는 레이블이 붙어있는 5개의 책장.. 2023. 4. 6.
[딥러닝을 이용한 자연어 처리 입문] 벡터의 유사도 여러 개의 문서 중에 주제가 유사한 문서끼리 분류하는 작업이 필요한 경우가 있을 수 있으며, 이와 같은 작업의 성능은 각 문서의 단어들을 어떤 방법(DTM, Word2Vec)으로 수치화하여 표현했는지와 문서 간의 단어들의 차이를 어떤 방법(유클리드 거리, 코사인 유사도 등)으로 계산했는지에 따라 달라짐 오늘은 단어들의 유사도를 측정하는 방법에 대해서 학습할 예정임 코사인 유사도 코사인 유사도는 두 벡터 간의 코사인 각도를 이용하여 구함 두 벡터의 방향이 완전히 동일한 경우에는 1, 90도의 각을 이루면 0, 180도로 반대의 방향을 가지면 -1 값을 가짐 즉, 코사인 유사도는 -1이상 1이하의 값을 가지며 1에 가까울수록 유사도가 높다고 판단할 수 있음 코사인 유사도를 구하는 식은 아래와 같음 3개 문서.. 2023. 4. 6.