본문 바로가기

전체 글346

DL : Deep Learning 개요 : 인공 신경망, Activation Function 1. Feed-Forward Neural Network 2. Fully-Connected Layer, Dense Layer 어떤 층의 모든 뉴런이 이전 층의 모든 뉴런과 연결되어있는 층을 전결합층이라고 한다. 위의 그림에서 FFNN에 해당한다. 3. 활성화 함수 (Activation Function) (1) 활성화 함수의 특징 - 비선형 함수(Nonlinear function) 층을 계속 쌓는다고 가정해보겠습니다. 활성화 함수는 f(x)=Wx라고 가정합니다. 여기다가 은닉층을 두 개 추가한다고하면 출력층을 포함해서 y(x)=f(f(f(x))가 됩니다. 이를 식으로 표현하면 W×W×W×X입니다. 그런데 이는 잘 생각해보면 W의 세 제곱값을 k라고 정의해버리면 y(x)=kx와 같이 다시 표현이 가능합니다. .. 2020. 3. 8.
DL : Deep Learning 성공 이유, 장단점 Deep Learning이 각광받는 이유 빅데이터 관련한 플랫폼이 발전했기 때문입니다. -> memory와 storage 가격의 감소로 큰 dataset을 저장이 가능했고, network 기술의 폭발은 memory와 계산능력에 대해 발전을 주었고, cloud 저장소 및 컴퓨팅은 NN계층 및 node의 수를 증가시켰다. GPU 도입으로 병렬 시스템이 구비되었다. 훈련 과정에서 피쳐 추출을 통합하는 것이 가능해졌기 때문입니다. -> CNN과 같은 feature를 추출하여 효율적인 계산과 차원축소로 인해서 계산속도가 굉장히 빨라졌다. 개발 프로세스에서 성능 평가를 체계적으로 통합하기 때문에 이전에는 해결되지 않은 문제에 성공했습니다. -> Kaggle 과 같은 comunity가 늘어남에 따라 발전속도가 점점 .. 2020. 3. 7.
ML : 회귀분석 : PCA (Principal Component Analysis) 차원축소 등장 배경 차원의 저주 1차원에서 50%의 자료를 가지고 있다고 할 때, 차원을 늘리면 (변수를 추가하려면) 25%의 자료를 가지고 있고, 또 차원을 늘리면 12.5%의 자료를 가지고 있다고 얘기할 수 있다. 차원이 커질수록 한정된 자료는 커진 차원의 패턴을 잘 설명하지 못한다. 차원이 증가함에 따라 model의 complexity가 증가한다. 차원 축소의 필요성 KNN이 있다고 가정할 때, 쓸데없는 변수가 추가가 된다면 model의 성능에 악영향을 끼친다. 상관계수가 매우 큰 서로 다른 독립변수 예측하고자 하는 변수와 관련이 없는 변수 따라서 성능을 높이기 위해 차원축소를 진행한다. 이외의 방법 변수 선택법 penalty 기반 regression CNN Drop-Out & Bagging 공분산 행렬 정.. 2020. 3. 7.
ML : Machine Learning 개념과 종류 : 모형의 적합성 평가 및 실험 설계 모형의 적합성을 평가하는 방법 학습을 시킬 때 변수의 갯수에 따라 학습데이터의 성능과 검증데이터의 성능을 항상 비교해야 한다. 데이터 분할 data 분할은 항상 training, valiadation, test 로 세 가지를 나눠서 검증해야한다. 2020/02/01 - [machine_learning/ML] - ML&DL : train, validation, test 데이터로 나누기 ML&DL : train, validation, test 데이터로 나누기 code - 1 import sklearn def data_split(examples, labels, train_frac, random_state=None): ''' https://scikit-learn.org/stable/modules/generate.. 2020. 3. 7.
ML : Machine Learning 개념과 종류 : 개념과 종류 정의 머신러닝은 f(x)라는 함수, 머신러닝 알고리즘을 만들어 X라는 입력변수를 받으면 Y라는 종속변수를 출력하는 과정이다. 또한 회귀분석의 경우 모집단을 잘 알지 못하기 때문에, 학습데이터만 추출하여 추정하는 머신러닝 알고리즘을 만든다. 예시 지도학습 vs 비지도학습 지도학습 (Supervised) 비지도학습 (UnSupervised) Y = F(x) 일 때, Y는 연속형 변수, X는 연속 or 이산형 변수, F는 회귀모형 Y는 이산형 변수(class), X는 연속 or 이산형 변수, F는 분류모형 출력변수는 존재하지 않고, 입력 변수 (X) 간의 관계에 대해 모델링을 하는 것. 회귀모형, 분류모형 군집분석(유사데이터), PCA(독립변수들의 차원축소화) ML의 종류 선형 회귀분석 (Linear Regr.. 2020. 3. 7.
자연어 처리 : SVD 정리 선형대수학에서 실제로 SVD하는 과정은 꼭 익혀보길 바란다. 공돌이의 수학노트에서 원형에서 타원형으로 했을 때, x,y가 Ax,Ay로 변할 때 수직인 부분만 관찰한 것을 기억하자. https://www.youtube.com/watch?v=cq5qlYtnLoY U,V 는 정규직교벡터이며, 단위벡터라고 정의하였다. scaling vector가 0이라는 것은 선형변환을 진행하고 나서 그 해당하는 부분의 영향이 0으로 없어졌다는 의미이다. 그리고 scaling vector는 σi = |Avi| 에 해당한다. 따라서 A 행렬에 대한 단위벡터 vi와 ui에 대한 정보량을 담고 있다. https://darkpgmr.tistory.com/106 [선형대수학 #4] 특이값 분해(Singular Value Decompos.. 2020. 3. 6.
자연어 처리 : 문서 유사도 : 유클리드, 코사인, 자카드 1. Euclidean Distance Similarity 좌표를 word들이라고 가정을 해보자. (5,1)과 다른 단어들을 유사도 측정을 해볼 때, 거리는 피타고라스 정리로 구할 수 있다. 여기서 거리가 짧으면 단어들끼리 유사도가 높고, 거리가 길면 단어들끼리 유사도가 낮다고 판단한다. import numpy as np def dist(x,y): return np.sqrt(np.sum((x-y)**2)) doc1 = np.array((2,3,0,1)) doc2 = np.array((1,2,3,1)) doc3 = np.array((2,1,2,2)) docQ = np.array((1,1,0,1)) print(dist(doc1,docQ)) print(dist(doc2,docQ)) print(dist(doc3.. 2020. 3. 6.
자연어 처리 : TF-IDF 활용해 문서의 유사도 구하기 How to get document similarity? Cosine Similarity on Bag of Words Cosine similarity on with Bag of Words Back of Words 먼저 문장들을 back of words를 해서 벡터로 구현한다. d4와의 유사도를 검증을 위해, cosine similarity를 한다. (d4는 d4와 비교하였기 때문에 유사도 1) 이 때, d1이 가장 비슷하다고 나왔다. 하지만 american restaurant의 메뉴가 궁금하기 때문에 search 잘못함. -> TD-IDF로 검증한다. Back of Words + TF-IDF 위의 table은 TF-IDF로 구현한 table이다. Back of Words는 문장간의 반복적인 관용구들을 배.. 2020. 3. 6.
자연어 처리 : 카운트 기반의 단어 표현 : TF-IDF 1. 정의 (1) TF (Term Frequency) TF(단어 빈도, term frequency)는 특정한 단어가 문서 내에 얼마나 자주 등장하는지를 나타내는 값으로, 이 값이 높을수록 문서에서 중요하다고 생각할 수 있다. 위의 문장을 보면 car 의 TF 수치가 높은 것을 보아, car가 중요한 문장이다. 하지만 단어 자체가 문서군 내에서 자주 사용되는 경우, 이것은 그 단어가 흔하게 등장한다는 것을 의미한다. 위 그림이 가설의 예시이다. 여기 문장에서 중요한 단어는 friend 이다. 하지만 TF 수치상으로는 a 도 중요하다. 이는 관용적으로 많이 쓰이는 말이고 연관성이 없다는 것 이다. (2) IDF (Inverse Document Frequency) 관용적인 표현이나 연관성이 없는 단어의 수치를.. 2020. 3. 6.
자연어 처리 : 카운트 기반의 단어 표현 : Bag of Words + DTM 1. Bag of words 란? (1) 정의 단어들의 출현 빈도에만 집중하는 text data 수치화 표현방법이다. 문장을 숫자로 표현, 가방 안에 순서 상관없이 문자를 모두 넣는다고 생각하자. (2) BoW 만드는 과정 문장을 입력하면, 단어들이 모두 포함된 단어들을 list 화 한 후, key 값에 맞는 단어들의 value를 증가해준다. 예를 들면, not good, not bad 경우에는 not이 2개, bad 1개, good 1개 로 [0, 0, 0, 0, 2, 1, 1] 이다. 이런식으로 여러 문장들의 단어 집합 리스트를 만들어서 test 문장을 하나씩 비교해보면 유사도 측정이 가능하다. (3) 유사도 비교 위 문장에서 awesome thank you, great thank you의 bag o.. 2020. 3. 6.
자연어처리 : 카운트 기반의 단어 표현 단어의 표현 방법 국소 표현 (Local Representation) : 단어 그 자체만을 보고 특정 값에 mapping 하는 방법 ex) puppy -> a[0], cute ->a[1], lazy ->a[2], turtle -> a[3] 분산 표현 (Distributed Representation) : 단어 주변을 참고하여 단어를 표현하는 방법 ex) puppy와 cute는 상관관계가 존재, 따라서 vector(1,0), (0.9,0.1) // turtle와 lazy는 vector (0,1), (0.1, 0.9) 구조 우리는 자연어처리에서 예측을 기반으로하는 FastText를 주로 학습할 것이고, 예측과 카운트 두 가지 방법이 모두 사용된 GloVe를 학습할 것이다. 2020. 3. 6.
자연어처리 : 언어모델 : Perplexity 정의 번역하면 "혼란도"의 의미이다. 즉, Language Model이 실제로 관측되는 값을 얼마나 잘 예측하는지를 평가할 때 사용. 외부 평가 (extrinsic Evaluation) : 비교해야하는 모델이 너무 많아서 test data에 대해서 빠르게 식으로 계산되는 간단한 평가 방법 내부 평가 : 모델 내에서 자신의 성능을 수치화화여 결과를 내놓는 내부 평가 방법 Perplexity는 수치가 높을수록 혼잡도가 높고 낮은 성능을 의미하며, 수치가 낮을수록 높은 성능을 의미한다. 1. 언어 모델의 평가 방법 : PPL https://wikidocs.net/21697 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net 문장의 확률이 커질수록 1을 향해 가므로 PPL의 값은 작아지고,.. 2020. 3. 6.