반응형

machine learning 32

[Supervised Learning][Classification] Naïve Bayes

나이브 베이즈 (Naïve Bayes) 나이브 베이즈 분류 알고리즘은 데이터를 나이브(단순)하게 독립적인 사건으로 가정하고, 이 독립 사건들을 베이즈 이론에 대입시켜 가장 높은 확률의 레이블로 분류를 실행하는 알고리즘 Bayes' theorem (베이즈 정리) 어떤 사건이 서로 배반하는 원인 둘에 의해 일어난다고 할 때 실제 사건이 일어났을 때 이것이 두 원인 중 하나일 확률을 구하는 정리 조건부 확률(사후 확률)을 구하는 것을 말하며, 어떤 사건이 일어난 상황에서, 그 사건이 일어난 후 앞으로 일어나게 될 다른 사건의 가능성을 구하는 것. 즉, 기존 사건들의 확률(사전 확률)을 알고 있다면, 어떤 사건 이후의 각 원인들의 조건부 확률을 알 수 있다 단, 기존 사건들의 확률을 알지 못하다면 베이즈 정리는..

[Supervised Learning][Classification] SVM(Support Vector Machine)

SVM(Support Vector Machine) 각 훈련 데이터 포인트들의 클래스 결정 경계(decision boundary)를 구분하는 것을 학습 Support Vector: 두 클래스 사이의 경계에 위치한 데이터 포인터 새로운 데이터 포인트에 대해 예측할 때는 데이터 포인트와 각 서포트 벡터와의 거리를 측정 서로 다른 클래스를 지닌 데이터 사이의 간격이 최대가 되는 선이나 평면을 찾아 이를 기준으로 각 데이터를 분류하는 모델 데이터 사이에 존재하는 여백을 최대화, 일반화하여 성능을 극대화 Margin 서포트 벡터와 결정 경계 사이의 거리 SVM의 목표는 마진을 최대로 하는 결정 경계를 찾는 것 Decision boundary(결정 경계): 서로 다른 분류값을 결정하는 경계 데이터의 벡터 공간을 N차..

[Supervised Learning] Decision Tree

Decision Tree (결정 트리) 분류와 회귀 문제에 널리 사용하는 모델 결정에 다다르기 위해 예/아니오 질문을 이어 나가면서 학습 결정 트리의 학습은 정답에 가장 빨리 도달하는 예/아니오 질문(테스트) 목록을 학습한다는 뜻 트리 만들기는 모든 리프 노드가 순수 노드가 될 때까지 진행 모델이 매우 복잡해지고 훈련 데이터에 과대 적합(overfitting)됨 적절한 리프 노드의 샘플 개수와 트리의 깊이에 제한을 둬서 과대 적합 방지해야 함 과대 적합(overfitting)을 막기 위해 사전 가지치기(pre-pruning)와 데이터 포인트가 적은 노드를 삭제하거나 병합하는 방법 사용 장점 수학적인 지식이 없어도 결과를 해석하고 이해하기 쉽다 수치 데이터 및 범주 데이터에 모두 사용 가능하다 단점 ove..

[Supervised Learning][Regression] Linear Regression

Linear Model 입력 특성에 대한 선형 함수를 만들어 예측을 수행 특성 개수: p + 1 Linear Regression 종속 변수 y와 한 개 이상의 독립 변수 x와의 선형 상관 관계를 모델링하는 회귀분석 기법 선형 예측 함수를 사용해 회귀식을 모델링하고 알려지지 않은 파라미더를 데이터로부터 추정 회귀식을 선형 모델이라고 함 >> y가 없는 x값에 대해 y를 예측 x와 y의 관계를 정량화 Simple Linear Regression (단순 선형 회귀) 1개의 설명 변수에 기반 (독립변수 x가 1개) Multiple Lineare Regression (다중 선형 회귀) 둘 이상의 설명 변수에 기반 (독립 변수 x가 2개 이상) 여러 독립 변수에 의해 영향을 받는 경우로 2개의 독립 변수면 그래프는..

EDA(Exploratory Data Analysis)

EDA(Exploratory Data Analysis) 탐색적 데이터 분석 정해진 틀 없이 데이터에 대해 최대한 많은 정보를 추출 데이터에 대한 정보 데이터의 평균값, 중앙값, 최솟값, 최댓값, 범위 분포, 이상치(outlier) 등 데이터 변수 간의 관계, Null 값과 같은 결측값(missing value) 존재 유무 등을 파악 데이터를 분석할 때는 분석가의 선입견을 철저하게 배제하고 데이터가 부여주는 수치만으로 분석을 진행해야 한다

NLP/NLP 기초 2021.03.15

[NLP] Text Similarity

Text Similarity 텍스트가 얼마나 유사한지는 표현하는 방식 같은 단어의 개수를 사용해서 유사도를 판단하는 방법 형태소로 나누어 형태소를 비교하는 방법 자소 단위로 나누어 단어를 비교하는 방법 딥러닝을 기반으로 텍스트의 유사도를 측정하는 방법 Jaccard Similarity 자카드 유사도 또는 자카드 지수는 두 문장을 각각 단어의 집합으로 만든 뒤 두 집합을 통해 유사도를 측정하는 방식 두 집합의 교집합인 공통된 단어의 개수를 합집합(전체 단어의 수)로 나눔 유사도 값은 0 ~ 1, 1에 가까울수록 유사도가 높음을 의미 Cosine Similarity 두 개의 벡터값에서 코사인 각도를 구하는 방법 유사도 값은 -1 ~ 1, 1에 가까울수록 유사도가 높음을 의미 두 벡터간의 각도를 구해 방향성의..

[NLP] Text Classification

Text Classification 자연어 처리 기술을 활용해 특정 텍스트를 사람들이 정한 몇 가지 범주(class) 중 어느 범주에 속하는지 분류 데이터의 정답 라벨 유무에 따라 학습 방법 선택 지도 학습을 통한 텍스트 분류 데이터에 대해 각각 속한 범주에 대한 값(라벨)이 이미 주어져 있음 주어진 범주로 글들을 모두 학습한 후 학습한 결과를 이용해 새로운 글의 범주를 예측 분류 모델 예시 나이브 베이즈 분류(Naïve Bayes Classification) 서보트 벡터 머신(Support Vector Machine) 신경망(Neural Network) 선형 분류(Linear Classifier) 로지스틱 분류(Logistic Classifier) 랜덤 포레스트(Random Forest) 비지도 학습을..

[Machine Learning] Transfer Learning

Transfer Learning 학습 데이터가 부족한 분야의 모델 구축을 위해 데이터가 풍부한 분야에서 훈련된 모델을 재사용하는 학습 기법 특정한 task(classfication, detection, segmentation 등)에 대하여 학습된 딥러닝 모델을 다른 task로 transfer하여 해당 모델을 사후적으로 학습하는 개념 특정 분야에서 학습된 신경망의 일부 능력을 유사하거나 전혀 새로운 분야에서 사용되는 신경망의 학습에 이용 이미 학습된 모델의 weight들을 transfer하여 자신의 model에 맞게 학습 시키는 방법 기존의 만들어진 모델을 사용하여 새로운 모델을 만들 시 학습을 빠르게 하며, 예측을 더 높이는 방법 적은 데이터만을 학습시킬 경우 overfitting 가능성 증가 많은 da..

[Machine Learning] Scikit-Learn

Scikit-Learn(사이킷런) python 머신러닝 라이브러리 Scikit-Learn 설치 # scikit-learn 설치 pip install scikit-learn # 설치 확인 import sklearn sklearn.__verion__ 의존성 라이브러리 Numpy (Numerical Python) Scipy Scipy(사이파이) 파이썬을 기반으로 하여 과학, 분석, 그리고 엔지니어링을 위한 과학(계산)적 컴퓨팅 영역의 여러 기본적인 작업을 위한 라이브러리 Numpy, Pandas, Matplotlib, Sympy 등과 함께 동작 수치적분 루틴과 미분방정식 해석기, 방정식의 근을 구하는 알고리즘, 표준 연속/이산 확률분포화 다양한 통계관련 도구 제공 기능 설명 scipy.integrate 수치적..

Deep Learning Framework

Deep Learning Framework 이미 검증된 수많은 라이브러리와 사전 학습까지 완료된 다양한 딥러닝 알고리즘을 제공하여 개발자가 빠르고 손쉽게 사용할 수 있음 기능 구현이 아닌 문제 해결을 위한 핵심 알고리즘 개발에만 집중할 수 있도록 도와줌 솝쉽게 GPU를 활용한 연산을 사용할 수 있게 지원 ※ Framework 응용 프로그램을 개발하기 위한 여러 라이브러리나 묘듈 등을 효율적으로 사용할 수 있도록 묶어 놓은 일종의 패키지 Theano 최초의 딥러닝 라이브러리 중 하나로 파이썬(Python) 기반 CPU 및 GPU의 수치계산에 매우 유용한 선형대수 심벌 컴파일러 미분, 선형대수 계산을 포함해 Symbolic expression을 통한 정의된 수식을 사람처럼 미분하거나 재정리해서 전체 계산에 ..

[Machine Learning] DenseNet

DenseNet Layer간의 정보가 흘러가는 것을 개선하기 위해 ResNet과는 조금 다른 연결 패턴 제안 Dense Connectivity 모든 이전 layer의 output 정보를 이후의 layer의 input으로 받아오는 방법 사용 모든 입력을 sum하지 않고 이어붙임(concatenation) Dense Block이라고 부르는 하나의 connection 덩어리를 만들어서 전통적인 CNN처럼 Convolution, Pooling Layer와 함께 순차적으로 Dense Block들을 거쳐서 마지막에 Linear Layer 후 결과를 뽑음

[Machine Learning] FPN (Feature Pyramid Network)

Goal Multiscale의 물체를 detection하기 위한 일반적인 feature representations을 학습하는 것 모든 scale에 대해 강력한 semantics를 갖도록 하는 것 Challenges example images에서 가능한 모든 scales의 물체를 검출하는 것 Semantic strong multiscale feature map(Feature representationts) 학습하도록 함 Object detection에서 다양한 application(ex. object proposals, box locatlization, instatnce segmentation)을 위한 일반적인 feature design 함 효율적인 multiscale feature map(feature..

[Machine Learning] GRU (Gated Recurrent Unit)

GRU (Gated Recurrent Unit) 2014년 조경현 교수에 의해 제안 LSTM 셀의 간소화된 버전 LSTM Cell에서 두 상태 벡터 ct와 ht가 하나의 벡터로 합쳐짐 하나의 gate controller인 zt가 forget과 input gate를 모두 제어 zt가 1을 출력하면 forget gate가 열리고 input gate가 닫힘 zt가 0일 경우 반대로 forget gate가 닫히고 input gate가 열림 GRU 셀은 output gate가 없어 전체 상태 벡터 ht가 타임 스텝마다 출력되며, 이전 상태 ht-1의 어느 부분이 출력될지 제어하는 새로운 gate controller인 rt가 있다. Reset Gate 과거 정보를 적당히 리셋하자 Sigmoid 함수를 출력으로 이용..

[Machine Learning] LSTM (Long Short Term Memory)

LSTM (Long Short Term Memory) RNN의 결과를 더욱 개선하기 위한 모델 한 층 안에서 반복을 많이 해야 하는 RNN의 특성상 일반 신경망보다 기울기 소실 문제가 더 많이 발생 반복하기 직전에 다음 층으로 기억된 값을 넘길지 안 넘길지를 관리하는 단계를 하나 더 추가 Gate의 도입으로 입력, 출력을 조절할 수 있게 됨 메모리를 이용하여 Long-range corrlation을 학습할 수 있게 됨 Error를 입력에 따라 다른 강도로 전달할 수 있음 RNN의 Vanishing Gradient 문제 해결 LSTM 핵심 아이디어 이전 단계의 정보를 memory cell에 저장하려 흘려 보냄 현재 시점의 정보를 바탕으로 과거의 내용을 얼마나 잊을지 곱해주고 그 결과에 현재의 정보를 더해서..

[Machine Learning] Transfer Learning with CNNs

Transfer Learning 기존에 만들어진 모델을 사용하여 새로운 모델을 만들 시 학습을 빠르게 하며, 예측을 높이는 방법 dataset에서 학습을 시키면 overfitting이 일어날 가능성이 많아짐으로 많은 dataset에서 학습을 시킨 일부의 layer들을 가져와서 적은 dataset에 적용 모든 데이터셋으로 학습을 시키면 초반 layer에서는 generality한 파라미터들이 나오고 후반 layer에서는 specificity 한 파라미터들이 나옴 Transfer learning은 초반 layer에서 나오는 generality한 파라미터를 이용하는 것 Transfer Learning 이점 복잡한 모델일수록 학습시키기 어려운 것을 해결할 수 있음 학습시간이 단축됨 Fine-Tuning 전략 1...

728x90
반응형