April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
私たちはこれまで、ニューラルネットワークを使って回帰問題を解いてきました。これから回帰問題に代わる新しいタイプの問題に挑みます。それは多値分類です。多値分類とは、その言葉が示すとおり、「多値」へと「分類」する問題です。未分類の対象があり、それが複数あるクラスのどれに属するのかを推定します。本ステップでは、多値分類を行うための下準備を行います。そして次のステップで、DeZeroを使って多値分類の実装を行います。
まずは下準備として、便利な関数を1つ追加します。それは、get_itemという関数です。ここでは、その関数の使い方だけを示します。その実装方法に興味のある方は、「付録B」を参考にしてください。それでは次に、get_item関数の使用例を示します。
importnumpyasnpfromdezeroimportVariableimportdezero.functionsasFx=Variable(np.array([[1,2,3],[4,5,6]]))y=F.get_item(x,1)(y)
実行結果
variable([4 5 6])
上記のように、get_item関数は、Variableの多次元配列の中から一部を抜き出します。ここでは、(2, 3)の形状のxから、1行目の要素を抜き出しました。この関数はDeZeroの関数として実装しています。つまり、その逆伝播も正しく行えるということです。たとえば、上のコードに続けて、次のコードを書いてみます。
y.backward()(x.grad)
実行結果 ...
Read now
Unlock full access