7-02 係数が4種類しかなくても正解率は98%以上!

●係数を4種類にしてしまおう!

 前節で述べたように係数の値を「
2の累乗」のみに制限すれば乗算器を使わずにビットシフトで済みます。本節では思い切って係数を4種類(+64, +16, -16, -64)のみにします。

 リスト7-01は係数を4種類に制限するPythonプログラムの一部です。例えば係数が0.3だったら、整数化で76となり、その後64となります。-0.1だったら整数化で-25となり、その後-16となります。

  リスト7-01 整数化してから4つの係数に割り当てる


 図7-04にその際の係数の一部を示します。このようにすべて+64, +16, -16, -64のいずれかになっています。かなり粗っぽいですが正解率はどうなるか試してみましょう。


  図7-04 フィルタ係数は4種類しかない


正解率は約98%以上ある。そんなに落ちていない

 整数化前が99.35%、整数化後が98.84%とわずかに落ちました。さらに上記のように4種類に制限した係数でPythonを走らせて見ると図7-05のように正解率は98.28%になりました。意外にもほとんど落ちていません。(*1)

(*1)1層目の係数は+255〜-256のすべての整数値をとり得る。ちなみに1層目も4種類に制限したら正解率は95.37%に落ちた。


  図7-05 AnacondaのJupyter Labで実行。正解率は約98%


 Pythonで正解率を確認したので次のページではそれをEXCELで実行します。

次のページへ


目次へ戻る