ML & DL

    [debugging] torchvison model 다운로드시 나타나는 WinError 10060 해결하기

    torchvision에서 transfer learning model을 불러와 학습시키고자 할 때 해당 에러가 나올 수 있다. model = models.resnet50(pretrained=True).to(device)이렇게 모델을 가져오면, https://download.pytorch.org/models/모델명 링크를 통해 가져온다. 이 때 WinError 10060 이 발생한다면, 직접 다운로드 받아 경로에 옮겨 모델을 사용할 수 있다. torch.hub.get_dir()1. 먼저, 위 코드를 입력해 어떤 경로에 다운로드 받아야하는지 확인한다. 보통 로컬의 경우 'C://Users//사용자이름//.cache//torch//hub//checkpoints' 일 것이다. (윈도우) 2. 확인한 후에 http..

    내적과 코사인 유사도

    내적과 코사인 유사도가 어떤 연관이 있는지 정리해 보겠습니다. 내적 (Dot product / Scalar product) 여러 가지 연산 중 하나의 연산이다. 벡터와 벡터의 연산 결괏값은 스칼라 공식 : a • b = |a| * |b| * cos θ 코사인 유사도 (Cosine Similarity) 두 벡터 사이의 각도를 계산해 두 벡터의 유사도를 측정하는 척도 1에 가까울수록 두 벡터가 유사하다고 해석 유사도는 두 벡터가 가리키는 방향의 유사도를 의미 방향이 같다면 코사인 유사도는 1, 직교한다면 0, 정반대의 방향이라면 -1로 표현한다. 코사인 유사도에서 내적 내적의 공식을 다시 살펴보면, a • b = |a| * |b| * cos θ이다. 두 벡터의 크기와 두 벡터가 이루는 각의 코사인 값을 곱한..

    [논문리뷰] Sequence to Sequence Learning with Neural Networks

    본 게시물은 Sequence to Sequence Learning with Neural Networks를 요약 및 번역 정리한 내용입니다. 0. Abstract 어려운 학습 과제에도 좋은 성과를 내는 Deep Neural Networks(DNNs)는 대용량의 지도 학습 데이터셋에는 잘 적용되지만 시퀀스를 잇는(mapping) 학습에는 사용될 수 없다. 시퀀스 학습의 일반적인 end-to-end 접근법을 제안하고자 한다. 해당 접근법은 시퀀스 구조에 대해 최소한의 추정을 하는 방법이다. 입력 시퀀스를 고정된 차원의 벡터로 매핑하기 위한 다층의 Long Short-Term Memory (LSTM)을 사용한다. 벡터로부터 타겟 시퀀스를 디코딩하는 또 다른 다층의 LSTM을 사용한다. 논문에서 사용할 태스크는 ..

    Word Embedding Association Test (WEAT) - 편향성 측정

    모델의 성능을 높이기 위해서 데이터를 살펴봐야 한다. 실제 세상의 데이터는 특정한 쪽으로 편향된 경우가 많고 이는 모델의 학습을 방해할 수 있기 때문이다. WEAT test는 데이터가 얼마나 편향적인지를 확인할 수 있는 계산식이다. 자연어를 학습할 때 자연어를 임베딩으로 변환해 학습시킨다. 변환된 워드 임베딩(word embedding) 간의 거리를 이용해 해당 데이터셋의 편향 정도를 측정할 수 있다. - target 단어와 attribute 단어들로 분류한다. (e.g. target : attribute = flower : happy = insect : disgusting) - 위 예시처럼 상반되는 두 target 데이터셋(해당 단어를 대표하는 단어들)을 잇고, 상반되는 두 attribute 데이터셋(..

    interpolate method의 종류 및 차이점

    시계열 데이터 전처리 과정에서 결측치를 보간하기 위해 interpolate 함수를 사용한다. method를 여러 종류 중 하나로 지정해서 보간하는 기준(방법)을 설정할 수 있다. 주로 많이 쓰이는 linear과 time에 대해 알아보겠다. interpolate(method='linear') 선형적으로 보간 interpolate함수의 default 설정이다. interpolate(method='time') 시간차를 고려해서 선형이 되도록 보간 결과값을 보면 직관적으로 이해할 수 있다. pandas 공식문서에는 다음과 같이 나와있다.

    confusion matrix와 평가지표

    정밀도와 재현율을 더 이해하기 쉽게 말로 풀어 설명해보았습니다. 정밀도(precision) 정밀도는 예측한 모든 y_pred 중에 정확하게 예측한 값이 어느 정도 있는가를 측정한 지표이다. 참과 거짓이 있다면 참이라고 예측한 값들 중 진짜 참은 얼마나 있는가?!라고 말할 수 있다. 정밀도를 통해 우리는 예측하고자 하는 label을 얼마나 정확하게 예측하는지를 알 수 있다. 재현율(recall) 재현율은 참과 거짓이 있다면 모든 참 중 참이라고 예측한 값이 얼마나 있는가를 측정한 지표이다. 이를 통해 우리가 예측한 결과가 얼마나 정확한지를 알 수 있다. trouble shooting confusion matrix를 확인할 때 값이 0이 나와 그 이유를 찾아보았다. true positive+false pos..

    random_state

    x_train, x_test, y_train, y_test = train_test_split(features, labels, test_size=0.2, random_state=16) 모델 학습을 위해 데이터셋을 구성할 때 자주 보이는 random_state는 무엇일까? 데이터셋을 train, test로 나눌 때 자동으로 무작위로 섞게 된다. (shuffle=False 파라미터를 설정하지 않는다면) 여기에서 무작위란 어떤 특정한 숫자로부터 시작한 난수처럼 보이는 수열을 말한다. 수열이 시작되는 특정한 숫자를 시드(seed)라고 한다. 이 시드를 수동으로 설정한 후, 동일한 시드를 사용하면 동일하게 나눠진 데이터를 얻을 수 있다. 따라서 데이터를 섞되, 일정하게 섞고 싶을 때 사용하는 것이 seed이다. 이..

    [CS231n] lecture 03. Loss Functions and Optimization - 2

    Stanford University의 CS231n (spring 2017)을 들으며 정리했습니다. 0. SVM loss 이어서.. 위 loss function에서 W는 loss 0을 얻을 수 있는 유일한 값일까? 아니다. W에 2를 곱한 2W도 loss 0을 얻을 수 있다. 이미 정답 예측 점수가 오답 예측 점수보다 1(safety margin)이상 크다면, W가 두배가 되어도 loss 0을 얻을 수 있기 때문이다. 이처럼 우리는 학습 데이터(training data) 안에서 loss 가 0이 되는 W 값을 찾았기 때문에, W를 두배를 하는 등의 변형된 W여도 loss 가 0이 될 수 있다. 과연 이 방식이 옳은 학습이라고 할 수 있을까? 1. 과적합 (Overfitting) 우리는 전체 데이터를 학습,..