April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
私たちはこれまで、勾配降下法によってパラメータを更新してきました。ディープラーニングの分野では、勾配降下法の他にも、様々な最適化手法が提案されています。本ステップでは、パラメータの更新作業(更新するコード)をモジュール化し、それらを簡単に変更できる仕組みを作ります。
ここでは、パラメータの更新を行うための基盤となるクラスをOptimizerとして実装します。Optimizerクラスは、最適化を行う基底クラスです。具体的な最適化手法は、Optimizerクラスを継承した先で実装することにします。それでは、Optimizerクラスの実装を次に示します。
dezero/optimizers.py
classOptimizer:def__init__(self):self.target=Noneself.hooks=[]defsetup(self,target):self.target=targetreturnselfdefupdate(self):# None以外のパラメータをリストにまとめるparams=[pforpinself.target.params()ifp.gradisnotNone]# 前処理(オプション)forfinself.hooks:f(params)# パラメータの更新forparaminparams:self.update_one(param)defupdate_one(self,param):raiseNotImplementedError()defadd_hook(
Read now
Unlock full access