Path: blob/master/site/ko/addons/tutorials/optimizers_conditionalgradient.ipynb
25118 views
Kernel: Python 3
Copyright 2020 The TensorFlow Authors.
In [ ]:
TensorFlow 애드온 옵티마이저: ConditionalGradient
개요
이 노트북은 애드온 패키지에서 Conditional Graident 옵티마이저를 사용하는 방법을 보여줍니다.
ConditionalGradient
신경망의 매개변수를 제한하면 기본적인 정규화 효과로 인해 훈련에 유익한 것으로 나타났습니다. 종종 매개변수는 소프트 페널티(제약 조건 만족을 보장하지 않음) 또는 프로젝션 연산(계산적으로 비쌈)을 통해 제한됩니다. 반면에 CG(Conditional Gradient) 옵티마이저는 값 비싼 프로젝션 단계 없이 제약 조건을 엄격하게 적용합니다. 제약 조건 세트 내에서 목표의 선형 근사치를 최소화하여 동작합니다. 이 노트북의 MNIST 데이터세트에서 CG 옵티마이저를 통해 Frobenius norm 제약 조건의 적용을 보여줍니다. CG는 이제 tensorflow API로 사용 가능합니다. 옵티마이저에 대한 자세한 내용은 https://arxiv.org/pdf/1803.06453.pdf를 참조하세요.
설정
In [ ]:
In [ ]:
In [ ]:
모델 빌드하기
In [ ]:
데이터 준비하기
In [ ]:
사용자 정의 콜백 함수 정의하기
In [ ]:
In [ ]:
훈련 및 평가: CG를 옵티마이저로 사용하기
일반적인 keras 옵티마이저를 새로운 tfa 옵티마이저로 간단히 교체합니다.
In [ ]:
훈련 및 평가: SGD를 옵티마이저로 사용하기
In [ ]:
In [ ]:
In [ ]:
가중치의 Frobenius Norm: CG vs SGD
CG 옵티마이저의 현재 구현은 Frobenius Norm을 대상 함수의 regularizer로 고려하여 Frobenius Norm을 기반으로 합니다. 따라서 CG의 정규화 효과를 Frobenius Norm regularizer를 부과하지 않은 SGD optimizer와 비교합니다.
In [ ]:
훈련 및 검증 정확성: CG vs SGD
In [ ]: