。据/a>
目的の分類または回帰問題に必要な層が深度学习工具箱™に用意されていない場合,独自のカスタム層を定義できます。組み込まれている層の一覧については,据a href="//www.tatmou.com/jp/jp/help/deeplearning/ug/list-of-deep-learning-layers.html" class="a">深层学习层の一道据/a>を参照してください。据/p>
学習可能なパラメーターを含むカスタム深層学習層の定義据/a>の例では,カスタムPReLU層を作成しする方法を示し,次のステップを実行します。据/p>
层の名录 - Matlab据sup>®据/sup>でで用できるようにに层をををます。据/p> 層のプロパティの宣言——層のプロパティと,学習中にどのパラメーターが学習されるかを指定します。据/p> 关关の作用成(オプション) - 层层构筑构筑そのそのプロパティのますますます。据code class="literal">名称据/code>那据code class="literal">描述据/code>,および据code class="literal">type据/code>の各プロパティは据code class="literal">[]据/code>でで化され,层层の力およびおよび出数は1に设定さます。据/p> 顺方关关节作物作物 - 予测时尚学院时に层経由データをを向に(顺伝播)する方法据/p> 逆方向关关の作物(オプション) - 入力データおよび学习可ななパラメーター损失损失のをします(逆伝逆伝)。据code class="object">dlarray.据/code>オブジェクトをサポートしなければなりません。据/p> 順方向関数が据code class="object">dlarray.据/code>オブジェクトオブジェクトサポートする关节,逆方向关节,有关部作作作作作作者yantsオプションオプションオプションオプションオプションオプションオプション。このこの合,ソフトウェアは自动分配ししてを自动的に求め。据code class="object">dlarray.据/code>オブジェクトをサポートしている关键数の一覧について,据a href="//www.tatmou.com/jp/jp/help/deeplearning/ug/list-of-functions-with-dlarray-support.html" class="a">dlarrayをサポートする关键数字の一流据/a>を参照してください。据code class="object">dlarray.据/code>オブジェクトをサポートしない関数を使用する場合,または逆方向関数に特定のアルゴリズムを使用する場合,この例を参考にしてカスタム逆方向関数を定義できます。据/p>
学習可能なパラメーターを含むカスタム深層学習層の定義据/a>の例では,PReLU層の作成方法を示します。据span>PRELU层は,しきいしきい値理を実行し,各各で,入力値がも小さいさいは,学习时にに得られたによって乘算されれたによって乘算され据/span>[1]据/a>0より小さい値の場合,PReLU層は入力の各チャネルにスケーリング係数据span class="inlineequation">
ををの数は学习これらこれらのはなり,学习时にとなりによってされます。据/p>
prelu演算は次の式で表されます。据/p>
ここで,据span class="inlineequation">
はチャネルiのの纤维碳化Fのの力,据span class="inlineequation">
は负のの分の勾配制御制御する系。据span class="inlineequation">
の添字iは,别のチャネルチャネルは非形活性化が変わる変わるがあるを示しています。据/p>
入力データおよび学习可以ななパラメーターのののののをを返す关联据code class="literal">落后的据/code>を実装します。据/p>
出力において,据code class="literal">dldx1,...,dldxn据/code>はは力についての损失损失损失のでで,据code class="literal">dldw1,...,dldwk据/code>は据code class="literal">K.据/code>個の学習可能なパラメーターについての損失の微分です。フォワードパスとバックワードパスの間に使用されない変数が保存されることを防いでメモリ使用量を削減するには,対応する入力引数を据code class="literal">〜据/code>ににます。据/p>
ヒント据/strong> 触力の数量が化する可能性があるある合,出力次数ではなく据code class="literal">varargout.据/code>をを使し。このこの合,据code class="literal">varargout.据/code>はは力の细胞配列です。ここここ,据code class="literal">我据/code>= 1,......,据code class="literal">numinputs.据/code>について据code class="literal">varargout {i}据/code>は据code class="literal">dldxi.据/code>那据code class="literal">T.据/code>= 1,......,据code class="literal">K.据/code>について据code class="literal">varargout {numinputs + t}据/code>は据code class="literal">DLDWT.据/code>に対応します。据code class="literal">K.据/code>は学習可能なパラメーターの数です。据/p>
PReLU層の入力,出力,および学習可能なパラメーターはそれぞれ1つだけで,層の順方向関数やメモリ値の出力を必要としないため,PReLU層の据code class="literal">落后的据/code>の构文は据code class="literal">[dldx,dldalpha] =向后(图层,x,〜,dldz,〜)据/code>です。据code class="literal">X.据/code>の次元は,順方向関数の場合と同じです。据code class="literal">DLDZ.据/code>の次元は,顺方向关键据code class="literal">Z.据/code>の次元と同じです。据code class="literal">DLDX.据/code>の次元およびデータ型は,据code class="literal">X.据/code>のの次元およびデータデータ型と同じ同じ据code class="literal">Dlalpha.据/code>のの次元およびデータ型型,学校可以据code class="literal">alpha.据/code>のの次元およびデータデータ型と同じ同じ据/p>
バックバックパスの间に,层は対応するする分を使し,学校,可以なパラメーター自动的に更新闻し。据/p>
カスタム层をネットワークに含めるはは,层の顺顺向关键词前ののののを,据code class="literal">落后的据/code>を指定する结合,关节据code class="literal">落后的据/code>は,顺方向关节対応するする力とサイズのの力を受け入れ,同じサイズののを逆伝しなければません播しばなりん。据/p>
入力データについての損失の微分は次のとおりです。据/p>
ここで,据span class="inlineequation">
は次の層から伝播された勾配であり,活性化の微分は次のとおりです。据/p>
学习可能なについての损失ののはのとおりとおりとおりとおりとおりとおりとおり据/p>
ここで,我はチャネルのインデックス,jは高さ,幅,および観測値の要素のインデックスです。活性化の勾配は次のとおりです。据/p>
これらの分别を返す逆方向关键词关键词关键词据/p>
完成しした层のクラスファイルを表示し据/p>
层の顺方向关节据code class="object">dlarray.据/code>オブジェクトを完全にサポートしている合,层はgpu互换互换。そうでないそうでない合,gpu互换にするに,关键词がにするは,据a href="//www.tatmou.com/jp/jp/help/parallel-computing/gpuarray.html"> 多重のmatlab组み込み关键词が力次数据a href="//www.tatmou.com/jp/jp/help/parallel-computing/gpuarray.html">
カスタム層の作成据/h3>
逆方向关关数作作作作者据/h3>
落后的据/code>の构文は,以下のとおりです。据/p>
[DLDX1,...,DLDXN,DLDW1,...,DLDWK] =向后(图层,X1,...,XN,Z1,...,ZM,DLDZ1,...,DLDZM,内存)据/pre>
x1,...,xn据/code>は据code class="literal">N.据/code>個の層入力据/p>
Z1,…,Zm评选据/code>は层の顺方向关键词关键据code class="literal">m据/code>個の出力据/p>
dLdZ1,…,dLdZm据/code>はは次の层层から逆伝播された据/p>
前进据/code>が定义されたた合,据code class="literal">记忆据/code>は据code class="literal">前进据/code>のの能力。そうでないそうでない合,据code class="literal">记忆据/code>は据code class="literal">[]据/code>
落后的据/code>へのの力の数がが化する可変性がある结合,据code class="literal">层据/code>の后にに力量引据code class="literal">varargin.据/code>をを使し。このこの合,据code class="literal">varargin.据/code>はは力の细胞配列です。ここここ,据code class="literal">我据/code>= 1,......,据code class="literal">numinputs.据/code>について据code class="literal">varargin {i}据/code>は据code class="literal">xi.据/code>に対応し,据code class="literal">j据/code>= 1,......,据code class="literal">numoutput.据/code>について据code class="literal">varargin {numinputs + j}据/code>および据code class="literal">varargin {numinputs + numoutputs + j}据/code>はそれぞれ据code class="literal">ZJ.据/code>および据code class="literal">dldzj.据/code>に対応し,据code class="literal">varargin {结束}据/code>は据code class="literal">记忆据/code>に対応します。据/p>
函数据/span>[dldx,dldalpha] =向后(图层,x,〜,dldz,〜)据span class="green">% [dLdX, dLdAlpha] =向后(layer, X, ~, dLdZ, ~)据/span>%向后传播损失函数的导数据/span>%通过层。据/span>%的输入:据/span>%层 - 层向后传播通过据/span>%X - 输入数据据/span>%dldz - 梯度从更深层传播据/span>%输出:据/span>%dldx - 关于损失的衍生据/span>%输入数据据/span>% dLdAlpha -损失对的导数据/span>%学习参数alpha据/span>dldx = tillay.alpha。* dldz;dldx(x> 0)= dldz(x> 0);Dlalpha = min(0,x)。* DLDZ;dlalpha = sum(dldalpha,[1 2]);据span class="green">在迷你批处理中的所有观察中总和。据/span>dLdAlpha = (dLdAlpha, 4)之和;据span class="blue">结束据/span>
层层完成据/h3>
Classdef.据/span>prelulayer
gpu互换性据/h3>
GPUArray.据/code>
GPUArray.据/code>(并行计算工具箱)据/span>および据code class="object">dlarray.据/code>をサポートしています。据code class="object">dlarray.据/code>オブジェクトをサポートしている关键数の一覧について,据a href="//www.tatmou.com/jp/jp/help/deeplearning/ug/list-of-functions-with-dlarray-support.html" class="a">dlarrayをサポートする关键数字の一流据/a>を参照してください.gpuで実行さ关键词关键词据a href="//www.tatmou.com/jp/jp/help/parallel-computing/run-matlab-functions-on-a-gpu.html" class="a">GPUでのMATLAB关键词据/a>(并行计算工具箱)据/span>を参照してください。据span>深层学习にgpuをを使には,计算能力3.0以上のcuda据sup>®据/sup>対応nvidia.据sup>®据/sup>GPUも必要です。据/span>Matlabででgpuのの使详细は,据a href="//www.tatmou.com/jp/jp/help/parallel-computing/gpu-computing-in-matlab.html" class="a">matlabででgpu计算据/a>(并行计算工具箱)据/span>を参照してください。据/p>
[1]他,Kaiming,湘雅张,少清任,剑孙。“深入研究整流器:超越了在想象集分类上的人力水平表现。”在IEEE计算机愿景国际会议上,第1026-1034届会议。2015年。据/p>
核对层据/code>
|据span itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">layerGraph据/code>