본문 바로가기

전체 글

(68)
[NLP] 단어임베딩 정리 # 4.21. 1차 수정 단어임베딩 (개요) 1. 신경망은 비선형적 차원 축소를 통해 특징을 효율적으로 추출할 수 있다. 2. 그러나 비선형적 차원 축소는 계산 비용이 매우 비싸고 최적화가 어렵다. 3.비선형적 방법을 이용하지 않고서도 성능이 좋은 단어임베딩을 구현한 알고리즘이 word2vec / GloVe 알고리즘 종류 : word2vec (skip-gram&CBOW) / GloVe Word2Vec CBOW : 주변에 나타나는 단어들을 원핫인코딩된 벡터로 입력받아 해당 단어를 예측 skip-gram : 대상 단어를 입력받아 주변에 나타나는 단어를 예측하는 네트워크를 구성해 단어 임베딩 벡터를 학습 (분류문제-softmax사용) Negative Sampling : 전체 단어 집합에 대하여 임베딩을 조정하..
window10 에 torchtext 설치하기 (1) 윈도우 10에서 cmd 창으로 torchtext 설치 시도. pip install torchtext (2) 아나콘다 프롬프트 창에서 conda install torchtext 시도했으나 실패. (1) ModuleNotFoundError: No module named 'tools.nnwrap' (2) 깃헙에서 파일을 받아 직접 설치 pip install https://github.com/pytorch/text/archive/master.zip
자연어 처리 시작! word embedding 특정 인물이 어떤 사람인지 알기 위해서는 어떻게 해야 할까? 한 방법으로는 그 사람의 주변인을 보면 된다는 말이 있다. 그렇다면 특정 단어의 특징을 알기 위해서는 어떻게 해야 할까? 마찬가지로 그 단어가 어울리는 단어를 확인하면 된다. Word Embedding은 이런 생각에서 나온 것 같다. 각 단어(token)을 One hot encoding 을 하면 모든 단어 벡터 사이의 거리가 같다. 모든 단어는 서로 독립적이라는 뜻인데, 전혀 그렇지 않다. 예를 들어, '강아지'와 '고양이'는 비슷한 카테고리이지만, '강아지'와 '날다'는 거의 관계가 없다. 이처럼 벡터 공간에 token을 뿌릴 때, 연관성이 높은 단어는 근처에, 연관성이 떨어지는 단어는 멀리 token 벡터를 배치해야 할 것이다. word e..
DP 는 아직도 너무 어렵다. 서울에서 경산까지 https://programmers.co.kr/learn/courses/30/lessons/42899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr dp 테이블을 무엇을 기준으로 만들어야 하는지, 인덱스는 어떻게 잡는지가 어렵다. 처음에 나는 walk table, bike table만 만들었다. 즉 들른 도시의 수를 인덱스로 잡으려고 한 것이다. 도시를 인덱스로 잡은 후, 각 인덱스에 (남은 시간, 총 모금액)을 기록하려 했는데 너무 복잡했다. 쉬운 방법은 모든 것을 잘게 쪼개는 것이다! 도시 별로 (맞았다) 시간(K)을 인덱스(띠용!)..
[ML]Regularization에 대하여 Concept of bias and variance ML model의 hypotheses를 평가하는 기준은 무엇인가? 단순히 모델의 정확도만을 가지고 판단하기엔 불안하다. 99개의 참인 데이터와 단 1개의 거짓인 데이터에 대하여 항상 참밖에 모르는 바보같은 모델을 평가한다고 상상해보라! 모델의 성능을 평가하는 또하나의 기준으로 우리는 모델을 평가하는 기준의 하나로 실제값과 예측치 간의 에러를 평가 기준으로 삼을 수 있다. 이때 에러는 두 가지의 관점에서 발현된다. 1. Approximation 2. Generalization Approximation 근사에 의한 에러 ML는 현실의 데이터를 예측하기 위해 SVM이나 logistic 등 특정한 learning algorithm을 사용한다. 그러나 algor..
재밌는 분야[적대적 훈련(Adversarial training)] 적대적 훈련이란 적대적 훈련 Adversarial training은 regularization의 한 방법이다. 머신러닝, 딥러닝 분야에서 regularization은 overfitting을 막고 모델을 robust하게 만들어주기 위해 사용한다. 딥러닝 모델은 Input data를 학습하여 적절한 label을 반환하는 것을 목적으로 훈련을 진행한다. Adversarial attack은 반대로 이미 훈련된 모델에 대하여 입력 데이터를 잘못 예측하도록 Input을 조작하는 것을 말한다! (Adversarial attack) 이미지 데이터를 input으로 받는 CNN의 경우 정답 Y에서 내가 원하는 예측값Y'를 반환하도록 조금씩 이미지의 픽셀을 수정한다. 그렇다면 이러한 공격에 대하여 어떻게 방어할 수 있는가?..
운영체제 알고리즘 SJF 와 디스크 컨트롤러 https://programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 운영체제 스케쥴링 알고리즘 CJSF 알고리즘 First Come First Start " 온 순서대로 업무를 처리한다. " 단점: waiting time 이 길다. SJF 알고리즘 Shortest Job First "소요 시간이 짧은 업무부터 처리한다. " 장점: waiting time 이 단축된다. 단점: 미래에 올 업무의 소요 시간을 예측할 수 없어 실제로 사용할 순 없다. Priority Scheduli..
네트워크 Graph, BFS 알고리즘 ###======================================= # stack을 이용하여 BFS 사용하기 # 왜 bfs? 주위를 살펴보며 네트워크가 갖춰져 있는지 확인해야 함. # 그래프를 먼저 만들고 , 그래프에 대하여 bfs 알고리즘 ###===================================== def dfs(graph, start_node): visit = [] stack = [] stack.append(start_node) while stack: node = stack.pop() if node not in visit: visit.append(node) stack.extend(graph[node]) return visit def solution(n,computers): #1...