본문 바로가기
728x90
반응형
SMALL

Learning-driven Methodology108

[Deep Learning] 전이 학습 (Transfer Learning) (2) 전이 학습 일반적인 접근 방식 도메인의 유사성을 기반으로 그리고 훈련을 위해 존재하는 데이터 샘플의 유형과 무관하게 전이 학습 전략을 분류하는 또 다른 방법이 있다. 동종 전이 학습 (Homogeneous Transfer Learning) 도메인이 동일한 기능 공간에 있는 상황을 처리하기 위해 동종 전이 학습 접근 방식이 개발 및 제안된다. Homogeneous Transfer learning에서 도메인은 주변 분포에서 약간의 차이만 있다. 이러한 접근 방식은 표본 선택 편향 또는 공변량 이동을 수정하여 영역을 조정한다. 인스턴스 이전 (Instance transfer) 소스 도메인에는 많은 양의 레이블이 지정된 데이터가 있고 대상 도메인에는 제한된 수가 있는 간단한 시나리오를 다룬다. 도메인과 기능 공.. 2022. 6. 21.
[Deep Learning] 전이 학습 (Transfer Learning) (1) 전이 학습 (Transfer Learning) 불가능하지는 않더라도 훈련을 위해 제한된 양의 데이터만 사용하여 만족스러운 모델 성능 (모델 정확도)을 얻는 것은 까다롭다. 다행히도, 바로 이 문제를 해결하는 해결책이 있는데, 그것은 Transfer Learning이라는 이름으로 통한다. 전이 학습은 사전 훈련된 모델을 새로운 작업에 대한 모델의 시작점으로 재사용하는 기계 학습 방법이다. 간단히 말해서, 한 작업에서 훈련된 모델은 두 번째 작업을 모델링할 때 빠른 진행을 허용하는 최적화로 관련 작업에서 용도가 변경된다. 새로운 작업에 전이 학습을 적용하면 적은 양의 데이터로 훈련하는 것보다 훨씬 더 높은 성능을 얻을 수 있다. 전이 학습은 너무 일반적이어서 이미지 또는 자연어 처리 관련 작업에 대한 모델을.. 2022. 6. 21.
[Deep Learning] 딥러닝 프레임워크 비교 딥러닝 프레임워크 비교 장점 단점 텐서플로우 (TensorFlow) 텐서보드 (TensorBoard)를 통해서 파라미터 변화 양상이나 DNN의 구조를 알 수 있다. 메모리를 효율적으로 사용하지 못한다. 케라스 (Keras) 배우기 쉽고 모델을 구축하기 쉽다. 오류가 발생할 경우 케라스 자체의 문제인지 백엔드 (back-end)의 문제인지 알 수 없다. 토치 (Torch) 간단하고 직관적인 학습과 속도 대비 빠른 최적화가 가능하다. 텐서플로우에 비해 사용자층이 얕고, 예제 및 자료를 구하기 힘들다. 텐서플로우 (TensorFlow) 텐서플로는 구글이 개발한 오픈소스 소프트웨어 라이브러리이며 머신러닝과 딥러닝을 쉽게 사용할 수 있도록 다양한 기능을 제공한다. 텐서플로는 데이터 플로우 그래프 (Data Flo.. 2022. 5. 19.
[Deep Learning] 딥러닝 프레임워크 (Deep Learning Framework) 딥러닝 프레임워크 (Deep Learning Framework) 딥러닝에 사용되는 인공신경망 알고리즘에는 DNN, CNN, RNN, RBM, DBN 등 다양한 형태의 수많은 알고리즘이 개발되어 활용되고 있으며, 하나의 문제를 해결하기 위해 두 개 이상의 알고리즘을 혼합하여 사용하는 경우도 많아졌다. 이렇게 이미 검증된 알고리즘을 사용할 때마다 계속해서 새롭게 구현해야 한다는 것은 매우 비효율적 방식이다. 딥러닝 프레임워크는 이렇게 이미 검증된 수많은 라이브러리와 사전 학습까지 완료된 다양한 딥러닝 알고리즘을 제공함으로써, 개발자가 이를 빠르고 손쉽게 사용할 수 있도록 해준다. 이를 통해 중복적인 기능을 구현해야 하는 소모적인 작업으로부터 개발자를 해방시켜, 문제 해결을 위한 핵심 알고리즘 개발에만 집중할.. 2022. 5. 19.
[Machine Learning] MLOps MLOps (Machine Learning Operations) MLOps는 머신러닝 작업 (Machine Learning Operations)을 뜻한다. MLOps는 ML 모델을 프로덕션으로 전환하는 프로세스를 간소화하고, 뒤이어 이를 유지관리하고 모니터링하는 데 주안점을 둔 ML 엔지니어링의 핵심 기능이다. MLOps는 협업 기능이며, 주로 데이터 사이언티스트, DevOps 엔지니어, IT로 구성된다. MLOps는 ML과 AI 솔루션 제작과 품질에 대한 유용한 접근법이다. 데이터 사이언티스트와 ML 엔지니어는 MLOps 방식을 채택하여 협업을 추진하고 모델 개발과 프로덕션 속도를 증강할 수 있다. 이를 위해 ML 모델의 적절한 모니터링, 검증과 governance를 포함해 지속적인 통합과 배포 (CI.. 2022. 5. 11.
[XGBoost] Python Package Introduction (3) Prediction 훈련되거나 로드된 모델은 데이터 세트에 대한 예측을 수행할 수 있다. # 7 entities, each contains 10 features data = np.random.rand(7, 10) dtest = xgb.DMatrix(data) ypred = bst.predict(dtest) 훈련 중에 조기 중지가 활성화된 경우 다음을 사용하여 최상의 반복에서 예측을 얻을 수 있다 bst.best_iteration. ypred = bst.predict(dtest, iteration_range=(0, bst.best_iteration + 1)) Plotting 플로팅 모듈을 사용하여 중요도 및 출력 트리를 그릴 수 있다. 중요도를 표시하려면 xgboost.plot_importance()를 사.. 2022. 5. 9.
[XGBoost] Python Package Introduction (2) 매개변수 설정 XGBoost는 쌍 목록이나 사전을 사용하여 매개변수를 설정할 수 있다. 1. Booster parameters param = {'max_depth': 2, 'eta': 1, 'objective': 'binary:logistic'} param['nthread'] = 4 param['eval_metric'] = 'auc' 2. 여러 평가 지표를 지정할 수도 있다. param['eval_metric'] = ['auc', 'ams@0'] # alternatively: # plst = param.items() # plst += [('eval_metric', 'ams@0')] 3. 성능을 관찰하도록 설정된 유효성 검사 지정 evallist = [(dtest, 'eval'), (dtrain, 'tra.. 2022. 5. 9.
[XGBoost] Python Package Introduction (1) Python Package Introduction Python 패키지는 기본 인터페이스, scikit-learn 인터페이스 및 dask 인터페이스를 포함하여 3가지 다른 인터페이스로 구성된다. Dask 인터페이스에 대한 소개는 Distributed XGBoost with Dask를 참조하면 된다. import xgboost as xgb 데이터 인터페이스 NumPy 2D array SciPy 2D sparse array Pandas data frame cuDF DataFrame cupy 2D array dlpack datatable XGBoost binary buffer file LIBSVM text format file Comma-separated values (CSV) file 데이터는 DMatrix .. 2022. 5. 9.
[XGBoost] 트리 부스팅 (Tree Boosting) (2) 구조 점수 (Structure Score) 트리 모델을 다시 공식화한 후 다음을 사용하여 목적 값을 작성할 수 있다. Ij={i|q(xi)=j}에 할당된 데이터 포인트의 인덱스 집합이다. 두 번째 줄에서 동일한 잎의 모든 데이터 포인트가 동일한 점수를 받기 때문에 합계의 인덱스를 변경했다. 다음을 정의하여 표현식을 더 압축할 수 있다. 이 방정식에서 wj 형태는 서로 독립이다. 주어진 구조 q(x)에 대해 얻을 수 있는 최고 wj의 객관적 감소는 다음과 같다. 마지막 방정식은 트리 구조가 얼마나 좋은지를 측정한다. 그것은 q(x)이다. 그림을 보고 점수를 계산하는 방법을 살펴본다. 기본적으로 주어진 트리 구조에 대해 통계 gi 그리고 hi를 푸시한다. 그들이 속한 잎에 통계를 합산하고 공식을 사용하여 나.. 2022. 5. 6.
[XGBoost] 트리 부스팅 (Tree Boosting) (1) 트리 부스팅 (Tree Boosting) 나무를 어떻게 학습해야 할까? 그 답은 모든 지도 학습 모델에서 항상 그렇듯이 목적 함수를 정의하고 최적화하는 것이다. 다음을 목적 함수로 설정한다 (항상 훈련 손실과 정규화를 포함해야 함을 기억해야 함). Additive Training 나무의 매개변수는 무엇인가? 그 함수 fi들이라는 것을 알 수 있다. 각각은 트리의 구조와 잎 점수를 포함한다. 학습 트리 구조는 단순히 그라디언트를 취할 수 있는 기존의 최적화 문제보다 훨씬 어렵다. 한 번에 모든 나무를 배우는 것은 다루기 힘든 일이다. 대신에, 배운 것을 수정하고 한 번에 하나의 새로운 나무를 추가하는 추가 전략을 사용한다. 단계에서 예측 값을 쓴다. 각 단계에서 어떤 나무를 원할까? 목표를 최적화하는 것을.. 2022. 5. 6.
728x90
반응형
LIST