목록AI/Machine Learning (48)
우노
오프라인 학습이란? 오프라인 학습은, 모델을 학습시킨 뒤, 더 이상의 학습 없이 제품 시스템에 적용하는 것을 의미합니다. 하지만, 모델 학습을 주어진 훈련 데이터셋 전체를 사용해서 진행해야하기 때문에, 새로운 데이터가 생성되면, 다시 전체 데이터셋을 사용해 모델을 새롭게 학습해야합니다. 일반적으로 이러한 작업들은 몇 시간이 소요될 수 있으므로, 컴퓨팅 자원(CPU, GPU 등)이 충분한 환경에서 사용됩니다. 온라인 학습이란? 온라인 학습은, 학습된 모델이 제품 시스템에 적용된 상태에서도, 적은 양의 데이터셋으로 점진적으로 모델을 추가적으로 학습할 수 있는 것을 의미합니다. 모델 학습은 미니 배치 단위의 데이터로 진행되기 때문에, 일반적인 오프라인 학습에 비해 매 학습 단계가 빠르며, 적은 양의 자원을 사..
들어가기 앞서, 양자화(quantization)는 float32 로 학습된 weight 값들을 float16, int8 등의 형태로 변환하는 작업을 의미합니다. 이 작업을 하게되면, .tflite 의 파일크기가 대략 4분의 1정도로 줄어들게 되지만, 세밀한 데이터값을 버리는 작업이므로, model 의 정확도를 잃을 수 있는 작업이 됩니다. 결과적으로 양자화는, model 의 사이즈를 줄임으로써, 정확도는 떨어지지만 빠른 추론 시간을 얻게 되는 작업이라고 볼 수 있습니다. TFLite 변환 시, FP16 양자화 적용 예제 파일로 저장되어 있는 모델을 load 한 뒤, TFLite 모델로 변환 import tensorflow as tf # 파일로 저장되어 있는 모델을 load 한 뒤, TFLite 모델로 변..
들어가기 앞서, PCA(Principal Component Analysis) 와 ICA(Independent Componenet Analysis) 는 모두 차원 축소에 사용되는 기술이다. 주성분 분석 (PCA, Principal Component Analysis) PCA 는 기본적으로 비지도 학습(Unsupervised Learning) 이며, 데이터들의 주성분을 찾을 때, 데이터를 가장 잘 설명할 수 있는 축으로 찾는 기법이다. PCA 의 Principal Component 는 이 축을 의미하며, 분산이 최대가 되는 축이 데이터를 가장 잘 설명하는 축 벡터가 된다. 독립 성분 분석 (ICA, Independent Componenet Analysis) ICA 는 주성분을 이용한다는 점에서 PCA 와 비슷..
평균 제곱 오차 (MSE, Mean Squared Error) 추가 설명 yi 는 예측값, ti 는 정답값입니다. 예제 코드 import numpy as np from sklearn.metrics import mean_squared_error y_pred = np.array([0.001, 0.9, 0.001, 0.098]) y_real = np.array([0, 0, 0, 1]) # 평균제곱오차 print(mean_squared_error(y_pred, y_real)) print(((0.001-0)**2 + (0.9-0)**2 + (0.001-0)**2 + (0.098-1)**2)/4) 교차 엔트로피 오차(CEE, Cross Entropy Error) 추가 설명 yi 는 예측값, ti 는 정답값입니다. ..
들어가기 앞서, Binary Cross Entropy 와 Cross Entropy 의 개념은 자주 헷갈리는 것 같습니다. 따라서, 해당 포스트에서는 Binary Cross Entropy 와 Cross Entropy 의 차이점에 대해서 다뤄볼 것입니다. 진행 순서 이진 분류 멀티 이진 분류 다중 분류 이진 분류 이진 분류란, 데이터가 주어졌을 때, 해당 데이터를 두 가지 정답 중 하나로 분류하는 것을 의미합니다. 예를 들어, 홍길동이라는 데이터가 주어졌을 때, 해당 데이터가 사람이냐 아니냐에 대한 정답이 1 과 0 중 하나라면, 해당 데이터가 1 일 확률이 출력되고, 해당 확률이 0.5 이상이면, 1 로 판단하게 됩니다. Binary Cross Entropy Loss (이진 교차 엔트로피 손실) 이러한 이..
비지도 학습 비지도 학습이란, 입력 데이터에 대한 출력 값(정답) 없이, 오직 입력 데이터만으로 학습을 진행한 뒤, 데이터로부터 유의미한 정보를 추출하는 머신러닝 기법입니다. 정답이 주어지지 않으므로, 학습이 끝난 뒤에도 정확도를 알 수 없습니다. 주요 기술 군집화(Clustering) 유사한 데이터들을 그룹화하는 작업 비정상 탐지(Anomaly detection) 예상치 못한 이벤트 또는 결과를 식별하는 작업 차원 축소(Dimension reduction) 고려해야하는 Feature 의 개수를 줄이는 작업 상관관계가 있는 여러 Feature 를 하나로 합치는 작업 군집화 주요 모델 K-Means Clustering DBSCAN Mean-Shift Clustering EM Clustering using ..
XGBoost version 확인 코드 $ python > import xgboost as xgb > xgb.__version__ '1.3.3'
Dataset 에 Sklearn Scaler 적용 from sklearn.preprocessing import MinMaxScaler # MinMaxScaler 객체 생성 minmax_scaler = MinMaxScaler() # 훈련데이터의 모수 분포 저장 minmax_scaler.fit(X_train) # 훈련 데이터 스케일링 X_train_scaled = minmax_scaler.transform(X_train) Tensorflow Model 및 Sklearn Scaler 저장 Model 저장 # 모델 생성 및 훈련 model = create_model() model.fit(X_train_scaled, y_train, epochs=5) # 모델을 savedModel 포맷으로 저장 model.save..
티처블 머신이란? 티처블 머신은 구글에서 제공하는 머신러닝 학습 도구이며, 누구나 머신러닝 모델을 쉽고 빠르게 만들 수 있도록 제작된, 웹 기반 도구입니다. 사용자들은 티처블 머신을 사용해 이미지, 사운드, 포즈를 학습할 수 있으며, 생성한 학습 모델을, 사이트, 앱 등 다양한 방법과 용도로 사용할 수 있습니다. 사용방법 1. 공식 홈페이지 접속 공식 홈페이지에 접속합니다. https://teachablemachine.withgoogle.com/ 사용방법 2. 프로젝트 시작 [시작하기] 를 클릭하여, 티처블 머신을 시작합니다. (로그인 없이도 사용 가능합니다.) 좌측 상단의 [햄버거 버튼] 클릭 후, [새 프로젝트] 를 클릭합니다. 티처블 머신 2.0 은 웹 기반으로 동작하기 때문에, 별도의 프로그램 설..
.h5 이란? 학습 시킨 model 을 파일로 저장할 때, 보통 .h5 확장자로 저장합니다. .h5 확장자는, HDF5 포맷으로 데이터를 저장한다는 것을 의미합니다. .h5 파일은, 모델 및 가중치(weight)를 모두 가지고 있습니다.