전체 글

내공냠냠
· 개발
Train | Test Good | Bad 학습은 잘하는데 시험은 못 보는 경우 train x test x -> underfit train o test o -> fit train o test x -> overfit underfit, overfit 일 경우 학습을 잘 했는지 확인 학습을 잘 했으면 overfit, 학습도 못 했으면 underfit. 데이터 복잡도 > 모델 복잡도 : underfit 데이터 복잡도 < 모델 복잡도 : overfit 데이터 복잡도에 적절한 모델 복잡도를 가지고 있으면 fit 하다. underfit 은 모델의 복잡도를 끌어올리면 된다. overfit은 모델의 복잡도를 끌어내리면 된다. 모델의 복잡도를 올리거나 내리거나 하면 된다. 데이터 복잡도를 올리거나 내리는 것은 전처리. 어..
· 개발
어떻게 cost 가 낮은 weight를 구할 수 있을까? 0단계 Hypo 폼 결정 y = w1x + w0(bias) 1단계 초기값 설정 y = 7x + 3 2단계 cost 확인 3단계 weight update weight update를 어떻게 하는지. update 하는 방향이 있어야되지 않냐. 특정 weight가 특정 cost를 가지게 된다. weight와 cost 간의 어떤 관계가 성립된다. 관계 -> 함수. cost는 weight에 의한 함수다. 적절한 기울기일 때 cost가 최소이다. 그 순간의 cost와 weight 관계에서 기울기를 계산해서 이동할 방향을 알 수 있다. cost가 감소해야되는 상황은 고정. 그게 목적이니까. 기울기가 양수일 경우 둘의 방향이 같다. cost가 감소해야되는 상황이니..
· 개발
데이터에 y값의 유무를 보고 정답이 있는지 보고 지도학습인지 비지도학습인지 알 수 있다. y값의 유: 지도학습 y값의 무: 비지도학습 지도학습은 회귀와 분류로 나뉜다. y가 숫자냐, 카테고리냐에 따른 것. 숫자면 회귀, 카테고리면 분류이다. 학습시키는 목적에 따라 다른 것이다. 값이 없다고 비지도학습을 하는 것이 아니라. 지도학습은 '예측'하려고 하는 것이다. 비지도는 x 끼리의 관계를 학습시키려고 하는 것이다. 출처: https://ardino.tistory.com/
· 개발
데이터의 패턴, 규칙성을 기계가 발견하도록 양도하는 것 대량의 데이터를 학습시킴으로써 내재적인 사람이 찾지 못하는 규칙을 기계가 찾도록 하여 대량의 데이터를 넣고 학습을 시킨다. 데이터의 상관관계를 학습한다. 데이터의 hypothesis(가설)을 학습하도록 하는 것 hypothesis는 우리가 잡고, 구성하고 있는 weight를 기계가 찾도록 하는 것. 우선순위가 없이 다양한 답이 나올 수 있기 때문에 폼은 우리가 정해줘야 한다. ex) y = 10x, y = x^3 + 6x^2 + 21x - 6... hypothesis의 폼을, 어떤 모델을 쓰는 것이 적합한지의 판단력을 기르기 위해 머신러닝을 공부하는 것이다. 기계가 학습해야 하는 것은 상관관계 hypothesis 중 weights를 학습하는 것이다...
· 개발
N-gram : N개의 단어 묶음 n=1, unigram n=2, bi-gram n=3, tri-gram... n = 2-3 이하로 사용된다. 순서 그대로 묶었기 때문에 그 토큰 안에 순서정보가 들어가게 된다. 전처리적인 관점에서 보면 합쳐서 처리하도록 하는 방식이라고 볼 수 있다. 인접한 토큰을 묶어주는 작업을 통해서 언어 모델링에서 사용한다. 문장을 생성하는 프로그램 만든다고 가정할 경우, '나는' 에서 나머지는 완성해달라고 할 경우, 바이그램으로 묶어서 '나는'으로 시작하는 바이그램을 싹 다 가져온다. 그 다음 통계를 내고 그 결과로 문장을 완성해준다. 계속 붙여가면서 문장을 완성한다.
· 개발
완전 독립적일 수 있도록 원핫인코딩을 한다. 그러나 너무 길고 희소성이 높다. 유사한 것들을 모으고 싶다. 이런 사항들을 해결하기 위해 word2vec, GloVe 등의 방법이 있다. 원핫벡터는 고차원이고 표현은 희소성이 있고 학습을 하지 않으며 0 또는 1로 값이 구성되어있고, 임베딩 벡터는 저차원이고 표현이 밀집되어있으며 학습되어있고 실수표현이다.
· 개발
우리 문서에 이런 토큰이 몇 번 나왔어라고 체크하니까 feature 라고 사용해버리니 불용어인데 빈도수가 높으면 중요해져버리고, 중요한데 빈도수가 낮으면 안중요해져버리고. 단순하게 단어의 빈도수만 가지고 평가하는 것은 불충분하다. 그래서 IDF값을 추가로 얹기로 한다. Term Frequency - Inverse Document Frequency Bag of Words 에서 하던 Term Frequency 는 같되, IDF를 고려하냐 안 하냐의 차이 IDF: 역 문서빈도수. 우리 문서 내에만 등장하는 건지 다른 문서에도 등장하는 것인지를 같이 고려하는 것 다른 문서에도 많이 등장했으면 우리 문서의 등장했던 것은 중요한 정보가 아니라는 것 ex) 어떤 이성이 밥먹자고 했을 때 나한테만 했는지, 다른 사람에..
· 개발
벡터화. BoW(Bag of Words): 토큰의 빈도수 -> 숫자 (문서의 의미 정보) 어떤 토큰이 얼마나 많이 나왔나. 1) 하나의 문서 이상 등장한 모든 토큰 수집 2) 수집한 토큰 뭉치 -> 문서의 feature(의미를 갖고 있는 정보)로 삼겠다 3) 각 문서마다 토큰(feature)의 빈도수를 카운팅 (여러 텍스트의 BoW를 결합하여 문서단어행렬(DTM)을 만들 수 있다.) -> 이제 카운팅한 feature기준으로 여러 분석을 수행할 수 있다. 예측하고자 하는 것에 대해 불용어(쓸모없는 것)들은 사전에 버려야 한다. 1) 빈도수가 높은 불용어에 의해서 왜곡이 일어난다. -> 불용어를 직접 날리면서 해결 2) 희소표현 표현 문제 -> 하나 이상 등장했으면 모은다는 기준을 높여주면 된다. 열 개 이..
내공얌냠
내공냠냠