Oneulog

자동 미분 tape_gradient()는 자동 미분 기능을 수행한다. 임의로 2w^2 + 5라는 식을 세워보고, w에 대해 미분해보자 Tensorflow를 활용한 자동 미분 import tensorflow as tf w = tf.Variable(2.) def f(w) : y = w**2 z = 2*y + 5 return z gradient를 출력하면 w에 대해 미분한 값이 저장된 것을 확인할 수 있다. with tf.GradientTape() as tape : z = f(w) gradient = tape.gradient(z, [w]) print(gradient) 출력 결과 : [] Pytorch를 활용한 자동 미분 import torch w = torch.tensor([2], dtype = float,..
선형 회귀 시험 공부하는 시간을 늘리면 늘릴수록 성적이 잘 나온다. 또한 운동량이 많을수록 몸무게는 줄어든다. 이는 수학적으로 생각해보면 어떤 요인의 수치에 따라서 특정 요인의 수치가 영향을 받고 있다고 말할 수 있다. 조금 더 수학적인 표현을 써보면 어떤 변수의 값에 따라 특정 변수의 값이 영향을 받고 있다고 볼 수 있다. 다른 변수의 값을 변하게 하는 변수를 x, 변수 x에 의해 값이 종속적으로 변하는 변수를 y라고 해 보자. 이때 변수 x의 값은 독립적으로 변할 수 있는 것에 반해, y 값은 계속해서 x 값에 의해 종속적으로 결정되므로 x를 독립 변수, y를 종속 변수라고도 한다. 선형 회귀는 한 개 이상의 독립 변수 x와 y의 선형 관계를 모델링한다. 단순 선형 회귀 분석 위의 수식은 단순 선형 ..
머신 러닝 모델의 평가 기계를 학습하기 전 데이터셋을 훈련용, 검증용, 테스트용으로 분리하는 것이 일반적이다. 훈련 데이터는 머신 러닝 모델을 학습하기 위한 용도이고, 테스트 데이터는 학습된 머신 러닝 모델의 성능을 평가하기 위한 용도이다. 그렇다면 검증용 데이터의 용도는 무엇일까? 검증용 데이터는 모델의 성능을 평가하기 위한 용도가 아니라 모델의 성능을 조정하기 위한 용도이다. 정확히는 모델이 훈련 데이터에 오버피팅이 발생하는지 판단하거나 하이퍼파라미터 조정을 위한 용도이다. 하이퍼파라미터와 매개변수라는 용어를 알아두자. 하이퍼파라미터 : 모델의 성능에 영향을 줄 수 있는 값을 지정하는 변수 매개변수 : 가중치와 편향. 학습을 하는 동안에 값이 계속해서 변하는 수 이 두 변수의 가장 큰 차이는 하이퍼파..
머신 러닝이 아닌 접근 방법의 한계 머신 러닝이 아닌 기존의 프로그래밍 작성 방식을 통해서는 해결하기 어려운 문제 예시를 하나 들어보자. 예시 : 주어진 사진으로부터 고양이 사진인지 강아지 사진인지 판별하는 일 위 문제는 실제 2017년에 있었던 DGIST의 딥 러닝 경진대회의 문제다. 사진을 보고 고양이 사진인지, 강아지 사진인지 판단하는 건 사람에게는 너무나 쉬운 일이다. 그런데 이 문제를 풀 수 있는 프로그램을 작성하는 것은 상당히 난해한 수준이다. 입력된 이미지로부터 강아지와 고양이를 구분할 수 있는 코드를 어떻게 작성할 수 있을까? def prediction(이미지 as input) : 어떻게 코딩해야 하지? return 결과 사진이란 건 사진을 보는 각도, 조명, 타겟의 변형(고양이의 자세)에..
문서의 유사도를 구하기 위한 방법으로는 코사인 유사도 외에도 여러가지 방법들이 있다. 여기서는 문서의 유사도를 구할 수 있는 다른 방법들을 학습한다. 유클리드 거리(Euclidean distance) 유클리드 거리는 문서의 유사도를 구할 때 자카드 유사도나 코사인 유사도만큼 유용한 방법은 아니다. 하지만 여러 가지 방법을 이해하고, 시도해보는 것 자체만으로 다른 개념들을 이해할 때 도움이 되므로 의미가 있다. 다차원 공간에서 두 개의 점 p와 q가 각각 p = (p1, p2, p3, ..., pn)과 q = (q1, q2, q3, ..., qn)의 좌표를 가질 때 두 점 사이의 거리를 계산하는 유클리드 거리 공식은 다음과 같다. 다차원 공간이라고 가정하면, 처음 보는 입장에서는 식이 너무 복잡해보인다. ..
BoW에 기반한 단어 표현 방법인 DTM, TF-IDF, 또는 뒤에서 배우게 될 Word2Vec 등과 같이 단어를 수치화할 수 있는 방법을 이해했다면 이러한 표현 방법에 대해서 코사인 유사도를 이용해 문서의 유사도를 구하는 게 가능하다. 코사인 유사도(Cosine Similarity) 코사인 유사도는 두 벡터 간의 코사인 각도를 이용해 구할 수 있는 두 벡터의 유사도를 의미한다. 두 벡터의 방향이 완전히 동일한 경우에는 1의 값을 가지며, 90도의 각을 이루면 0, 180도로 반대의 방향을 가지면 -1의 값을 가지게 된다. 즉, 결국 코사인 유사도는 -1 이상 1 이하의 값을 가지며 값이 1에 가까울수록 유사도가 높다고 판단할 수 있다. 이를 직관적으로 이해하면 두 벡터가 가리키는 방향이 얼마나 유사한가..
TF-IDF TF-IDF는 단어의 빈도와 역 문서 빈도를 사용해 DTM 내의 각 단어들마다 중요한 정도를 가중치로 주는 방법이다. 우선 DTM을 만든 후, TF-IDF 가중치를 부여한다. TF-IDF는 주로 문서의 유사도를 구하는 작업, 검색 시스템에서 검색 결과의 중요도를 정하는 작업, 문서 내에서 특정 단어의 중요도를 구하는 작업 등에 쓰일 수 있다. TF-IDF는 TF와 IDF를 곱한 값을 의미하는데 이를 식으로 표현해보자. 문서를 d, 단어를 t, 문서의 총 개수를 n으로 표현할 때 TF, DF, IDF는 각각 다음과 같이 정의할 수 있다. (1) tf(d, t) : 특정 문서 d에서의 특정 단어 t의 등장 횟수 생소한 글자 때문에 어려워보일 수 있지만, TF는 앞에서 배운 DTM에서 각 단어들이..
문서 단어 행렬(DTM)의 표기법 문서 단어 행렬(DTM)이란 다수의 문서에서 등장하는 각 단어들의 빈도를 행렬로 표현한 것을 말한다. 쉽게 생각하면 각 문서에 대한 BoW를 하나의 행렬로 만든 것으로 생각할 수 있으며, BoW와 다른 표현 방법이 아니라 BoW 표현읋 다수의 문서에 대해서 행렬로 표현하고 부르는 용어이다. 예를 들어 이렇게 4개의 문서가 있다고 하자. 문서1 : 먹고 싶은 사과 문서2 : 먹고 싶은 바나나 문서3 : 길고 노란 바나나 바나나 문서4 : 저는 과일이 좋아요 띄어쓰기 단위 토큰화를 수행한다고 가정하고, 문서 단어 행렬로 표현하면 다음과 같다. 각 문서에서 등장한 단어의 빈도를 행렬의 값으로 표기한다. 문서 단어 행렬은 문서들을 서로 비교할 수 있도록 수치화할 수 있다는 점에..
NLP Developer
'NLP' 카테고리의 글 목록 (2 Page)