728x90 반응형 SMALL DNN with Keras/Regularization and Dropout8 정규화 기술 벤치마킹 (2) (분류) Bootstrapping for Classification 분류 부트스트래핑은 StratifiedShuffleSplit 클래스를 사용하여 분할을 수행한다. 이 클래스는 표본 추출이 비율에 영향을 미치지 않도록 클래스가 균형을 이루므로 교차 검증을 위한 StratifiedKFold와 유사하다. import pandas as pd import os import numpy as np import time import statistics from sklearn import metrics from sklearn.model_selection import StratifiedKFold from tensorflow.keras.models import Sequential from tensorflow.keras.layers.. 2023. 7. 24. 정규화 기술 벤치마킹 (1) (회귀) Benchmarking Regularization Techniques 하이퍼 파라미터 값을 각각 조정하면 신경망에서 얻은 점수에 영향을 미칠 수 있다. 하이퍼 파라미터 중 일부는 다음과 같다. • 신경망의 레이어 수 • 각 레이어에서 사용할 뉴런 수 • 각 레이어에서 사용할 활성화 기능 • 각 레이어의 드롭아웃 비율 • 각 레이어의 L1 및 L2 값 이 하이퍼 파라미터를 사용하기 위해 여러 설정을 사용하여 신경망을 훈련해야 한다. 그러나 신경망은 여러 번 훈련할 때 종종 다소 다른 결과를 낸다는 것이다. 이것은 신경망이 무작위 가중치로 시작하기 때문이다. 이 때문에 한 세트의 하이퍼 파라미터가 실제로 다른 세트보다 더 낫다는 것을 보장하기 위해 신경망 시간을 맞추고 평가해야 한다. 부트스트래핑은 두 개의.. 2023. 7. 24. 과적합을 줄이기 위한 드롭아웃 Dropout to Decrease Overfitting Hinton, Srivastava, Krizhevsky, Sutskever, Salakhutdinov (2012)는 드롭아웃 정규화 알고리즘을 도입했다. 드롭아웃은 L1과 L2와는 다르게 작용하지만 과적합 방지라는 동일한 목표를 달성한다. 하지만, 이 알고리즘은 실제로 뉴런과 연결을 제거함으로써 이 작업을 수행한다. 적어도 L1, L2와 달리 일시적으로 가중치 페널티가 추가되지 않는다. 드롭아웃은 직접적으로 작은 체중을 훈련시키는 것을 추구하지 않는다. 드롭아웃은 훈련의 일부 동안 신경망의 숨겨진 뉴런을 사용할 수 없게 함으로써 작동한다. 신경망의 일부를 떨어뜨리면 나머지 부분은 떨어진 뉴런이 없어도 좋은 점수를 얻을 수 있도록 훈련된다. 이 기술.. 2023. 7. 24. 과적합을 줄이기 위한 L1 및 L2 정규화 L1 and L2 Regularization to Decrease Overfitting L1과 L2 정규화는 과적합 효과를 줄일 수 있는 두 가지 일반적인 정규화 기법이다. 이러한 알고리즘은 목적 함수와 함께 작동하거나 역전파 알고리즘의 일부로 작동할 수 있다. 두 경우 모두 정규화 알고리즘은 목표를 추가하여 훈련 알고리즘에 첨부된다. 이러한 알고리즘은 신경망 훈련에 가중치를 추가함으로써 작동한다. 이 페널티는 신경망이 가중치를 작은 값으로 유지하도록 장려한다. L1과 L2 모두 이 패널티를 다르게 계산한다. 이 패널티 계산을 역 전파와 같은 경사 강하 기반 알고리즘의 계산된 그레디언트에 추가할 수 있다. 페널티는 시뮬레이션 annealing과 같은 목적 함수 기반 훈련의 목표 점수와 부정적으로 결합된다.. 2023. 7. 24. 홀드아웃 (Holdout) 방법 홀드아웃 (Holdout) 방법 주어진 원천 데이터를 랜덤 (random)하게 두 분류로 분리하여 교차 검정을 실시하는 방법이다. 하나는 모형의 학습 및 구축을 위한 훈련용 데이터로 하나는 성과 평가를 위한 검증용 데이터로 사용한다. Classification with Stratified K-Fold Cross-Validation 샘플 부족을 생성하기 위해 교차 검증을 사용하여 데이터 세트를 훈련하고 fit한다. 또한, 표본 외 (검정 세트에 대한 예측) 결과도 기록한다. 분류 데이터를 사용하여 계층화된 k-폴드 교차 검증을 수행하는 것이 좋다. 이 기법을 사용하면 모든 접기에서 각 클래스의 백분율이 동일하게 유지된다. 계층화 사용회귀 분석에 사용된 KFold 개체 대신 StratifiedKFold개체이.. 2023. 7. 24. K-Fold Cross-validation K-Fold Cross-validation 예측 모델링에서 다양한 목적으로 교차 검증을 사용할 수 있다. • 신경망에서 표본 외 예측 생성 • 조기 중단 (early stopping)을 위해 신경망을 훈련시키기 위한 충분한 수의 에포크 추정 • 활성화 함수, 뉴런 수 및 계층 수와 같은 특정 하이퍼 파라미터의 효과 평가 교차 검증은 여러 접힘 및 여러 모델을 사용하여 각 데이터 세그먼트가 유효성 검사 및 훈련 세트 역할을 모두 할 수 있는 기회를 제공한다. 새 데이터에 대한 예측을 생성하기 위해 (훈련 세트에 없는) 폴드 모델의 예측은 여러 가지 방법으로 처리할 수 있다. • 검증 점수가 가장 높은 모델을 최종 모델로 선택한다. • 새 데이터를 5개의 모델 (폴드마다 하나씩)에 미리 설정하고 결과를 평균.. 2023. 7. 24. L1 / L2 정규화 L1 (Lasso) Regularization LASSO (Least Absolute Shrinkage and Selection Operator)라고도 하는 L1 정규화를 사용하여 신경망에서 희소성을 생성해야 한다. 즉, L1 알고리즘은 많은 가중치 연결을 거의 0으로 밀어넣는다. 가중치가 0에 가까우면 프로그램이 네트워크에서 가중치를 삭제한다. 가중 연결을 삭제하면 희소 신경망이 생성된다. 기능 선택은 희소 신경망의 유용한 부산물이다. 특징은 훈련 세트가 입력 뉴런에 제공하는 값이다. 입력 뉴런의 모든 가중치가 0에 도달하면 신경망 훈련은 기능이 불필요하다고 판단한다. 데이터 세트에 불필요한 입력 기능이 많은 경우 L1 정규화를 통해 신경망이 불필요한 기능을 감지하고 무시할 수 있다. L1은 목표에 다.. 2023. 7. 24. 정규화 (Regularization) 정규화 (Regularization) 정규화는 과적합을 줄이는 기술로, 신경망이 훈련 데이터를 학습하기보다는 암기하려고 할 때 발생한다. 인간은 또한 과적합을 할 수 있다. 기계가 어떻게 우연히 과적합되는지를 조사하기 전에, 먼저 인간이 어떻게 기계로부터 고통을 받을 수 있는지를 탐구해야 한다. 인간 프로그래머들은 종종 주어진 프로그래밍 언어로 그들의 능력을 보여주기 위해 자격증 시험을 치른다. 이러한 시험을 준비하는 것을 돕기 위해, 시험 제작자들은 종종 연습 시험을 이용할 수 있게 한다. 연습 시험을 보고, 더 공부하고, 그리고 나서 연습 시험을 다시 보는 루프에 들어가는 프로그래머를 생각해보자. 프로그래머는 개별 문제를 파악하는 데 필요한 기술을 배우기보다는 어느 시점에서 연습 시험의 많은 부분을 .. 2023. 2. 8. 이전 1 다음 728x90 반응형 LIST