목록AI (99)
우노
Import library import pandas as pd import numpy as np import matplotlib.pyplot as plt import tensorflow as tf from sklearn.model_selection import GridSearchCV from sklearn.model_selection import KFold from sklearn.metrics import make_scorer from sklearn.metrics import mean_squared_error from tensorflow import keras from tensorflow.keras.models import Sequential from tensorflow.keras.layers impor..

Train Set 생성 from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd # TfidfVectorizer 객체 생성 vectorizer = TfidfVectorizer() # TfidfVectorizer 할 X_train 데이터 X_train = ['I go to my home my home is very large', 'I went out my home I go to the market'] # vectorizer는 X_train에 등장하는 단어를 통해 단어 사전을 생성한 뒤, # 해당 단어 사전을 사용해 X_train를 TfidfVectorizer 한다. # 따라서, vec_X_tr..

Semantic Segmentation이란? Semantic Segmentation 은 컴퓨터비젼 분야에서 가장 핵심적인 분야 중 하나이며, 위 그림처럼, 이미지 내에 있는 물체들을 의미 있는 단위로 분할해내는 것입니다. 더 구체적으로는 아래 그림처럼, 이미지의 각 픽셀이 어느 클래스에 속하는지 예측하는 것입니다. Semantic Segmentation은 다른 컴퓨터비젼 문제들과 마찬가지로, Deep Convolution Neural Network (깊은 신경망)을 적용해서 많은 발전을 이루었습니다. 이번 포스트에서는 Semantic Segmentation 에 대해서 자세히 설명하고, 자주 활용되는 몇가지 접근방법을 알아보겠습니다. Semantic Segmentation의 의미와 목적 Semantic S..

Anomaly Detection(이상 탐지)이란? Anomaly Detection(이상 탐지)이란 전체 데이터에서 다른 패턴을 보이는 데이터를 찾는 것을 말한다. 다른 패턴을 보이는 데이터를 이상값(anomaly)라고 부르며, 이상 탐지는 사기 탐지, 침입 탐지, 안전 관리를 포함한 다양한 분야에 널리 활용된다. Anomaly Detection 은 정답 label 이 주어졌냐, 안 주어졌냐에 따라 지도학습이나 비지도학습으로 진행된다. 비지도 학습을 통해 진행하는 Anomaly Detection 의 종류는 아래와 같다. Isolation Forest One Class SVM Etc 따라서, 해당 포스트는 Anomaly Detection 의 비지도 학습 알고리즘 중 하나인, Isolation Forest에 ..

오토인코더란? 오토인코더(Autoencoder)는 위 그림과 같이, 단순히 입력을 출력으로 복사하는 신경망이다. 어떻게 보면 간단한 신경망처럼 보이지만, 네트워크에 여러가지 방법으로 제약을 줌으로써, 어려운 신경망으로 만든다. 예를들어, 위 그림처럼 hidden layer의 뉴런 수를 input layer(입력층) 보다 작게해서 데이터를 압축(차원을 축소)한다거나, 입력 데이터에 노이즈(noise)를 추가한 후 원본 입력을 복원할 수 있도록 네트워크를 학습시키는 등 다양한 오토인코더가 있다. 이러한 제약들은 오토인코더가 단순히 입력을 바로 출력으로 복사하지 못하도록 방지하며, 데이터를 효율적으로 표현(representation)하는 방법을 학습하도록 제어한다. Undercomplete Autoencode..

Feature Selection이란? Feature Selection은 ML에 있어서 매우 중요한 기술입니다. Feature Selection의 기본적인 아이디어는, 모델링 시 raw data의 모든 feature를 사용하는 것은 computing power와 memory 측면에서 매우 비효율적이기 때문에, 일부 필요한 feature만 선택해서 사용하자는 것입니다. 어떻게 보면, Feature Selection은 여러분의 모델 성능을 높이기 위해서 반드시 필요한 기술 중 하나입니다. Feature Selection은 Feature Engineering, Feature Extraction과 유사하지만, 표현 자체는 구분되며, 간단하게 정리하면 아래와 같습니다. Feature Engineering : 도메인..
XGBoost는 내장함수 또는 pickle, joblib 모듈을 사용해 모델을 저장/불러오기 할 수 있습니다. 내장 함수 import xgboost as xgb # 모델 정의 및 학습 xgb_model = xgb.XGBRegressor(**param).fit(trainData.features, trainData.labels) # 파일명 filename = 'xgb_model.model' # 모델 저장 xgb_model.save_model(filename) # 모델 불러오기 new_xgb_model = xgb.XGBRegressor() # 모델 초기화 new_xgb_model.load_model(filename) # 모델 불러오기 pickle import pickle # 모델 정의 및 학습 ..

One-Hot Vector 기존의 자연어처리 분야에서는, 단어를 One-Hot Vector 로 표현했습니다. One-Hot Vector란, 예를 들어 사전에 총 10000개의 단어가 있고, Man이라는 단어가 사전의 5391번째 index에 존재한다면 Man이라는 단어를, 5391번째 index만 1이고 나머지는 0인 10000차원 Vector로 표현하는 것입니다. 이 방법은 단순하다는 장점이 있지만, 단어를 단순히 index에 따른 Vector로 표현하기 때문에, 여러 단어 간 유사성을 평가할 수 없을 뿐만 아니라, 사전의 단어 개수가 증가하는 경우, One-Hot Vector의 크기가 지나치게 커진다는 단점을 가지고 있습니다. 따라서, 단어의 유사성을 파악할 수 있고, 저차원을 가지는 Vector를 ..

NLP에서 단어를 표현하는 방법으로는 One-Hot Vector와 Word Embedding이 있다. One-Hot Vector와 Word Embedding에 대해서 알아보자. One-Hot Vector One-Hot Vector는 단어를 사전 개수 만큼의 차원을 가지는 Vector로 표현하는 것이다. 예를 들어, 사전에 총 10000개의 단어가 있고, Man이라는 단어가 사전의 5391번째 index에 존재한다면 Man이라는 단어를, 5391번째 index만 1이고 나머지는 0인 10000차원 Vector로 표현하는 것이다. 단점 여러 단어의 유사성을 표현해줄 수 있는 방법이 없다. 예를 들어, 위 그림처럼 Man과 Woman은 단순히 사전의 index에 따른 One-hot Vector로 표현되기 때문..

Naive Neural Network "Yesterday, Harry Potter met Hermione Granger"라는 문장을 입력 받았을 때, 문장의 각 단어가 사람 이름이라면 1, 아니라면 0을 매핑하는 Naive한 개체명 인식 신경망을 만든다고 가정해보자. 입력 문장의 각 단어는 Voca(단어사전)의 index를 통해 사전 개수 만큼의 차원을 가지는 one-hot vector로 매핑될 것이며, 단어는 총 9개이므로, 9개의 one-hot vector가 구성될 것이다. 따라서, 해당 단어가 사람 이름이라면, 해당 one-hot vector의 y값은 0으로 매핑 해당 단어가 사람 이름이 아니라면, 해당 one-hot vector의 y값은 1로 매핑되며 학습이 진행될 것이다. 하지만 이러한 방법은 ..