데이터분석 203

gensim 라이브러리를 이용하여 Doc2vec모델 학습하기 - 2. class iter활용

1. train함수 이용하기 : sosoeasy.tistory.com/3262. class를 만들고, iter함수를 이용하여 객체를 만드는식으로 학습하기  class의 iter함수를 이용하여 doc2vecr객체를 생성함과 동시에 모델을 학습시키는 방법. 아래와 같은 내용이 들어있는 txt파일을 저장하고 읽어오는 식으로 진행된다. 1. 라이브러리 다운from gensim.models import Doc2Vecfrom gensim.models.doc2vec import TaggedDocumentfrom konlpy.tag import Okt 2. 클래스 생성파일에서 한줄씩 문장을 읽으면서 형태소분해하고, tagged list type으로 변환하여 yield하는식으로 진행된다.class Doc2VecSente..

gensim 라이브러리를 이용하여 Doc2vec모델 학습하기 - 1.train function 이용

1. train함수 이용하기2. class를 만들고, iter함수를 이용하여 객체를 만드는식으로 학습하기 : sosoeasy.tistory.com/327 1. 라이브러리 다운okt: 한국어 형태소 분석을 위한 라이브러리from gensim.models.doc2vec import Doc2Vec, TaggedDocumentfrom konlpy.tag import Okt 2. 데이터 전처리taggedDocument 타입으로 만들어야 학습이 가능하다. 이때 형태소 단위로 문장을 분해해야 의미적으로 학습하기 좋다.#데이터 전처리okt=Okt() #형태소 분해 객체 생성data = ["나는 학교에 간다", "나는 친구를 만난다", "나는 영화보러 간다", "영화가 재밌다", ..

gensim라이브러리로 학습한 doc2vec모델의 함수들

1. 모델 불러오기불러온 모델은 문서별로 번호가 태그되여 있습니다.from gensim.models import Doc2Vec#모델 저장doc2vec_model=Doc2Vec.load('model/doc2vec_morph.model') 2. 학습한 문서중 비슷한 문서 찾기# a(태그번호 or 벡터화된 문서)문서와 비슷한 문서를 b개 리턴한다.a="276"b=5for i in doc2vec_model.docvecs.most_similar(a,topn=b): print(i)('76889', 0.8220891952514648)('148', 0.816669762134552)('52004', 0.8151654005050659)('155489', 0.8135135769844055)('41881', 0.8119..

단어를 표현하는 방법. 원핫벡터와 워드임베딩

단어를 분석하기 위해선 문자를 정형데이터로 바꿔야 한다. 이때 사용하는 기법이 원핫벡터와 워드임베딩 1. 원핫벡터문서에 나오는 모든 단어들(코퍼스)의 개수만큼 차원을 가지고, 해당단어만 1, 나머지는 0을 갖는 행렬로 표현ex) 나는 강아지를 좋아한다.  나는강아지를좋아한다나는100강아지를010좋아한다001나는 => [1,0,0]강아지를 => [0,1,0]좋아한다 => [0,0,1]* 하지만 문서의 양이 커지고, 단어의 수가 많아지면 차원이 너무 커지는 문제점이있다. 따라서 워드 임베딩을 통해표현한다희소표현(원핫벡터) -> 분산표현(워드임베딩)   2. 워드임베딩(1) 인풋단어 원핫인코딩 (2) 임베딩(첫번째 가중치 곱하기) (3) 인베딩한단어(벡터)들의 평균구하기  (4) 평균벡터를 두번째 가중치로 곱..

batch 사이즈에 따른 학습 형태

batch사이즈가 작을수록 데이터 하나하나의 값을 잘 반영하지만, 많이 돌아간다.반면 batch사이즈가 클 수록 여러가지 데이터가 평균을 잘 반영하기 때문에 global minimum을 향해 잘 간다.그리고 batch 사이즈가 클 수록 다양한 데이터들로 cost function을 구성하기 때문에 우리가 원하는 둥근 밥그릇 모양이 만들어 진다. 1. batch size=2 (2개의 데이터로 cost function이 만들어진것) 2. batch size = 4 3. batch size = 32 (보통 데이터를 학습할 때 batch size는 32가 적절하다) * 출처 : 패스트캠퍼스 수학적으로 접근하는 딥러닝 올인원 패키지 Online.

학습용 데이터의 평균에 따른 cost function의 모양

1. 데이터의 평균이 0에 가까울때데이터의 평균이 0에 가까울 수록 cost function의 모양이 둥근 밥그릇 모양이 된다. 2. 데이터의 평균이 0에 가깝지 않을때데이터의 평균 값이 커질 수록 cost function이 좀 더 뾰족한 모양이 된다. 따라서 학습도 ⍬_1에 대해서만 많이 수행된다 (⍬_1을 미분한 값에 x가 포함되어 있기 때문) => 따라서 데이터를 항상 정규화(평균=0, 표준편차=1) 해준 후 학습을 진행한다.* 출처 : 수학적으로 접근하는 딥러닝 올인원 패키지 Online.

선택한 데이터의 유형에 따른 cost function의 모양

1. loss functionloss function은 데이터 하나에 대한 오차를 구하는 것이기 때문에, 이를 그래프로 나타내면 아래와 같이 여러 값(선)들이 모여있는 형태가 된다. 2. cost function반면 cost function은 데이터들을 모두 모아 평균을 낸 값이므로 등고선의 형태(밥그릇형태)로 볼 수 있다. 3. loss function과 cost function의 관계loss function 선이 고르게 분포할 수록 cost function은 둥근 모양으로 만들어 진다.  * 출처 : 패스트캠퍼스 수학적으로 접근하는 딥러닝 올인원 패키지 Online.

loss function으로 본 데이터의 평균, 분산, 노이즈에 따른 학습의 차이

1. 분산에 따른 학습의 차이데이터의 분산이 높을 때 보다 낮을 때 더 빠른 학습이 가능하다. 2. 평균에 따른 학습의 차이평균이 커질수록 파라미터의 변화율이 크다.⍬_1의 미분값에 x가 포함되어있고, x의 절댓값이 1이상일때 학습률이 높아지기 때문. 3. 노이즈에 따른 학습의 차이노이즈가 있을땐 데이터들의 계곡이 한 점에서 교차하지 않는다.따라서 학습은 아래와 같이 이루어 진다  * 출처 :수학적으로 접근하는 딥러닝 올인원 패키지 Online.

Single Variable Linear Regression에서 파라미터의 개선

bias가 있는 linear regression을 수행할 때 loss function은 다음과 같다. 또한 loss function을 각각의 파라미터로 미분하면 다음과 같다이때 ⍬_1의 미분값에는 x가 곱해져 있기 때문에 x의 값에 따라 ⍬_1과 ⍬_2의개선 속도가 다르다.x의 절댓값이 1보다 크면 ⍬_1이 ⍬_0보다 더 빠르게 개선되고, x의 절댓값이 1보다 작으면 ⍬_0이 ⍬_1보다 더 빠르게 개선된다.사진에서 볼 수 있듯 x의 절댓값이 1보다 작은 보라색 부분은 ⍬_1(가로축)보다 ⍬_0(세로축)의 변화율이 더 크고,x의 절댓값이 1보다 큰 빨간색 부분은 ⍬_1(가로축)보다 ⍬_0(세로축)의 변화율이 더 작다  * 출처 : 패스트캠퍼스 - 수학적으로 접근하는 딥러닝 올인원

batch size에 따른 loss의 변화율

1. 학습 과정상의 차이batch size의 크기에 따라 학습되는 과정되는 모습이 달라질 수 있다.batch size가 작으면 순간 loss가 커지고 그에 따라서 파라미터가 급격히 변화하는 경향이 있다. 따라서 그래프가 비교적 크게 흔들린다.=> 그 이유는 batch size가 크면 여러 데이터의 평균으로 loss가 구해지기 때문에 강건하게 변한다. 2. 학습속도상의 차이batch size가 작을수록 파라미터를 개선하는 횟수(계산을 수행하는 횟수)가 크기 때문에 시간이 오래걸린다. 3. iterator는 batch size가 작을수록 크다.

데이터 생성기

y=ax+b 로 선형회귀분석을 하기위해 데이터를 생성하는 클래스. (1) 소스코드import numpy as npimport matplotlib.pyplot as pltclass dataset_generator: def __init__(self,feature_dim=1,n_sample=100,noise=0): self._feature_dim=feature_dim self._n_sample=n_sample self._noise=noise self._coefficient=None self._init_set_coefficient() # 초기 기울기값 설정, 마지막값은 bias (기울기는 1로 초기화, bias는 0으로 초기화) de..

batch size

딥러닝에서 데이터를 몇개 단위로 학습시킬것인지에 대한 하이퍼파라미터를 batch size라고 한다. 데이터의 개수가 x개 일때, batch size는 크게 3가지로 나뉜다 batch gradient descentmini-batch gradient descentstochastic gradient descent설명모든 데이터를 사용해서 그 평균값으로 한번만 웨이트를 개선N개의 데이터씩 사용1개의 데이터씩 사용1epoch 당 iterate 횟수1X/NX계산속도빠름>느림신뢰도낮음높음비고거의 쓰지않음주로 많이쓴다