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

Learning-driven Methodology108

[Deep Learning] Global Average Pooling (GAP) Global Average Pooling (GAP) GAP (global average pooling)은 Max (Average) Pooling 보다 더 급격하게 feature의 수를 줄인다. 하지만, GAP을 사용하는 이유는 Pooling과 조금 다르다. GAP의 목적은 feature를 1차원 벡터로 만들기 위함이다. 이 방식은 Location 정보를 FC Layer보다 적게 잃고 85%의 가중치를 없앤다. 이것으로 계산량과 모델의 무게와 파라미터가 줄어든다. 따라서, 오버피팅 방지 효과도 따라온다. 그리나 이것은 정보량 손실이 있다. 이미지의 모든 값을 평균을 내는 것인데, 정보를 잃지만 성능은 좋은 것으로 알려져 있다. 분류할 클래스 수만큼 feature map을 마지막에 생성하여 i번째 featu.. 2022. 8. 14.
[LightGBM] 매개변수 조정 (Parameters Tuning) (2) Grow Less Trees 모델에 트리 노드를 추가하는 데 필요한 시간을 줄여 학습 시간을 더욱 줄일 수 있다. 아래는 훈련 속도를 높이지만 훈련 정확도를 떨어뜨릴 수 있다. Decrease num_iterations 매개변수 num_iterations는 수행할 부스팅 라운드 수를 제어한다. LightGBM은 의사결정 트리를 학습자로 사용하기 때문에 "트리의 수"로 생각할 수도 있다. num_iterations을 변경하려고 하면 learning_rate도 바꾼다. learning_rate는 훈련 시간에는 영향을 미치지 않지만 훈련 정확도에는 영향을 미친다. 일반적으로 num_iterations를 줄이면 learning_rate을 늘려야 한다. num_iterations와 learning_rate의 올바.. 2022. 7. 4.
[LightGBM] 매개변수 조정 (Parameters Tuning) (1) 리프 방식 (최상 우선) 트리 매개변수 조정 LightGBM은 잎별 트리 성장 알고리즘을 사용하는 반면 다른 많은 인기 도구는 깊이별 트리 성장을 사용한다. 깊이별 성장과 비교할 때 잎별 알고리즘은 훨씬 빠르게 수렴할 수 있다. 그러나 적절한 매개변수와 함께 사용하지 않으면 잎사귀 성장이 과적합될 수 있다. 리프 방식 트리를 사용하여 좋은 결과를 얻으려면 다음과 같은 몇 가지 중요한 매개변수가 있다. num_leaves : 이는 트리 모델의 복잡성을 제어하는 ​​주요 매개변수이다. 이론적으로 깊이별 트리와 동일한 수의 잎을 얻도록 num_leaves = 2^(max_depth)을 설정할 수 있다. 그러나 이 간단한 변환은 실제로 좋지 않다. 그 이유는 고정된 수의 잎에 대해 leaf-wise tree가 .. 2022. 6. 28.
[LightGBM] Features (2) 네트워크 통신 최적화 (Optimization in Network Communication) LightGBM의 분산 학습에서 "All Reduce", "All gather" 및 "Reduce scatter"와 같은 일부 집합적 통신 알고리즘만 사용하면 된다. LightGBM은 최신 알고리즘을 구현한다. 이러한 집합적 통신 알고리즘은 지점간 통신보다 훨씬 더 나은 성능을 제공할 수 있다. 분산 학습 최적화 (Optimization in Distributed Learning) LightGBM은 기능과 데이터 병렬 분산 학습 알고리즘을 제공한다. 기능 병렬 (Feature Parallel) 1. 전통적인 알고리즘 (Traditional Algorithm) 기능 병렬은 의사 결정 트리에서 "최상의 분할 찾기"를.. 2022. 6. 28.
[LightGBM] Features (1) 속도 및 메모리 사용량 최적화 많은 부스팅 도구는 의사결정 트리 학습을 위해 사전 정렬 기반 알고리즘 (ex: xgboost의 기본 알고리즘)을 사용한다. 간단한 솔루션이지만 최적화하기가 쉽지 않다. LightGBM은 히스토그램 기반 알고리즘을 사용하여 연속적인 특징 (속성) 값을 개별 bin으로 묶는다. 이렇게 하면 훈련 속도가 빨라지고 메모리 사용량이 줄어든다. 히스토그램 기반 알고리즘의 장점은 다음과 같다. 각 분할에 대한 이득 계산 비용 절감 사전 정렬 기반 알고리즘에는 시간 복잡도 O(#data)가 있다. 히스토그램 계산에는 시간 복잡도 O(#data)가 있지만 이는 빠른 합계 연산만 포함한다. 히스토그램이 구성되면 히스토그램 기반 알고리즘은 시간 복잡도 O(#bins)를 가지며 #bins는 #.. 2022. 6. 28.
[LightGBM] Python 패키지 (2) 매개변수 설정 LightGBM은 사전을 사용하여 매개변수를 설정할 수 있다. # 부스터 매개변수: param = {'num_leaves': 31, 'objective': 'binary'} param['metric'] = 'auc' # 여러 평가 지표를 지정 param['metric'] = ['auc', 'binary_logloss'] 훈련 모델을 훈련하려면 매개변수 목록과 데이터 세트가 필요하다. num_round = 10 bst = lgb.train(param, train_data, num_round, valid_sets=[validation_data]) 학습 후 모델을 저장할 수 있다. bst.save_model('model.txt') 훈련된 모델은 JSON 형식으로 덤프할 수도 있다. json_mo.. 2022. 6. 28.
[LightGBM] Python 패키지 (1) 설치 pip install lightgbm 데이터 인터페이스 LightGBM Python 모듈은 다음에서 데이터를 로드할 수 있다. LibSVM (zero-based) / TSV / CSV 형식 텍스트 파일 NumPy 2D 배열, pandas DataFrame, H2O DataTable의 프레임, SciPy 희소 행렬 LightGBM 바이너리 파일 LightGBM Sequence개체 데이터는 Dataset개체에 저장된다. import numpy as np # LibSVM(0 기반) 텍스트 파일 또는 LightGBM 바이너리 파일을 Dataset에 로드하려면: train_data = lgb.Dataset('train.svm.bin') # numpy 배열을 Dataset에 로드하려면: data = np.ra.. 2022. 6. 28.
LightGBM LightGBM LightGBM은 트리 기반 학습 알고리즘을 사용하는 그래디언트 부스팅 프레임워크이다. 다음과 같은 이점이 있는 분산 및 효율적으로 설계되었다. 더 빠른 훈련 속도와 더 높은 효율성 메모리 사용량을 줄임 더 나은 정확도 병렬, 분산 및 GPU 학습 지원 대규모 데이터를 처리할 수 있음 https://lightgbm.readthedocs.io/en/latest/index.html Welcome to LightGBM’s documentation! — LightGBM 3.3.2.99 documentation © Copyright 2022, Microsoft Corporation. Revision df14e607. lightgbm.readthedocs.io 2022. 6. 28.
[Deep Learning] 전이 학습 (Transfer Learning) (4) 심층 전이 학습의 유형 도메인 적응 (Domain Adaptation) 도메인 적응은 소스 도메인과 대상 도메인이 서로 다른 기능 공간과 분포를 갖는 전이 학습 시나리오이다. 도메인 적응은 목표 학습자의 성능을 향상시키기 위해 정보를 전달하기 위해 하나 이상의 소스 도메인을 조정하는 프로세스이다. 이 프로세스는 소스의 배포를 대상의 배포에 더 가깝게 만들기 위해 소스 도메인을 변경하려고 시도한다. 도메인 혼란 (Domain Confusion) 신경망에서 서로 다른 계층은 기능의 서로 다른 복잡성을 식별한다. 완벽한 시나리오에서 우리는 이 기능 도메인을 불변으로 만들고 도메인 간 전송성을 향상시키는 알고리즘을 개발할 것이다. 소스 도메인과 대상 도메인 간의 기능 표현은 이러한 컨텍스트에서 가능한 한 유사해.. 2022. 6. 21.
[Deep Learning] 전이 학습 (Transfer Learning) (3) 미리 훈련된 기성 모델 미세 조정 이것은 사전 훈련된 모델에서 추출한 특징에 직접적으로 의존하고 최종 레이어를 교체할 뿐만 아니라 이전 레이어 중 일부를 선택적으로 다시 훈련하는 보다 매력적인 기술이다. 심층 신경망은 계층 구조이며 조정 가능한 하이퍼파라미터가 많다. 초기 레이어의 역할은 일반적인 기능을 캡처하는 반면, 나중 레이어는 당면한 명시적 작업에 더 중점을 둔다. 기본 모델에서 고차 기능 표현을 미세 조정하여 특정 작업과 더 관련성 있게 만드는 것이 좋다. 훈련에서 일부를 고정시키면서 모델의 일부 레이어를 다시 훈련할 수 있다. 다음 그림은 객체 감지 작업에 대한 예를 보여준다. 여기서 네트워크의 초기 하위 계층은 매우 일반적인 기능을 학습하고 상위 계층은 작업별 기능을 학습한다. 동결 vs 미.. 2022. 6. 21.
728x90
반응형
LIST