4.4) モデル設定のパラメーター

モデルを設定する際には、モデルの学習方法に関するパラメーター(ハイパーパラメーターと呼ばれます)の設定と、 学習に用いる画像の拡張方法(オーグメンテーションと呼ばれます)の設定を行う必要があります。 予め標準的な値に設定されていますが、必要に応じて変更することが出来ます。

4.4.1) ハイパーパラメーター設定

../_images/44_1_Yolo_parameters.png

図1 モデルのハイパーパラメーター設定

ハイパーパラメータに関する項目は図1(a)に表示されています。
各項目について簡単に説明します。
  1. バッチサイズ

    • 分割したデータ(バッチ)のサイズ(画像の枚数)です。
      学習時には、学習に使用するデータをバッチに分割し、 バッチ毎に重みの計算や更新が行われます。

ヒント

バッチサイズを大きくした場合、「学習速度の向上」、「メモリ使用量の増加」、 「汎化性能(未知のテストデータに対する識別性能)が低くなる場合がある」などの影響があります。

  1. エポック数

    • 学習用のデータを何回繰り返し使用するかを決める値(回数)です。
      1エポックは、学習用の入力データ全てに対して1度ずつ処理したことを意味します。 学習の際には、学習用データを設定されたえボックス数分繰り返し入力し、 重みの更新などの計算処理を繰り返し行うことで、モデルの予測精度を高めていきます。

    ヒント

    学習を繰り返し過ぎると過学習が発生します (モデルが訓練データに過剰に適合し、未知のデータに対する予測精度が低下すること)。 一般的に過学習は、「データ量が少ない」「ラベルの種類が少ない」のような場合に発生しやすく、 そのような場合にはエポック数の設定を調整する必要があります。
    ReNomIMGでは一番精度の良い時のデータを保存するため、 過学習が起きてもモデルの精度がベストな状態から落ちることはありません。
    また、モデル詳細画面内の学習曲線でエポック毎の精度の変化を確認することで、 最適なエポック数を決めることもできます。 もし、エポックが進むにつれて精度が悪くなっている場合は、 それ以上エポック数を増やす必要はありません。
  2. リサイズ後の画像高さ (アルゴリズムによって、画像の高さは固定)

    • 拡大・縮小後の画像の高さです。全ての入力画像を、設定された高さに拡大・縮小を行い、 入力画像の高さを均一に揃えます。

ヒント

検出したい対象オブジェクトが小さい場合に、 大きな値を設定することで精度が向上することがあります (ただし、メモリ消費量は増加します)。

  1. リサイズ後の画像幅 (アルゴリズムによって、画像の横幅は固定)

    • 拡大・縮小後の画像の横幅です。 全ての入力画像を、設定された幅に拡大・縮小を行い、入力画像の幅を均一に揃えます。

    ヒント

    検出したい対象オブジェクトが小さい場合に、 大きな値を設定することで精度が向上することがあります (ただし、メモリ消費量は増加します)。

  2. 事前学習重みの利用

    • 事前学習済み重みを利用する場合:
      画像認識コンペティションILSVRC2012データセットで事前学習した重みを初期値として使用します。
    • 事前学習済み重みを利用しない場合:
      ランダムな値を重みの初期値として使用します。

    ヒント

    一般的には事前学習済み重みを使用した方がモデルの精度は向上するため、利用することをお勧めします。 非常に珍しい画像などでは利用しない(ランダムな値を使用する)方が、精度が向上することがあります。

    ヒント

    画像認識コンペティションILSVRC(ImageNet Large Scale Visual Recognition Challenge) の2012年開催時に使用されたデータセットです。

    物体名(ラベル名)

    約1,000個

    学習用画像

    約120万枚

    検証用画像

    約5万枚

    テスト用画像

    約10万枚

  3. ネットワーク全体を学習

    • ネットワーク全体を学習する場合:
      モデルの全てのニューラルネットワークの層(レイヤー)に対し学習を行います。
    • ネットワーク全体を学習しない場合:
      モデルの一部のレイヤーに対し学習を行います。

    ヒント

    全てのレイヤーを学習する場合、データに対してより柔軟な計算を行えるため、 精度向上が期待できます。一方、学習に必要な処理時間やメモリ使用量は増加します。

  4. アンカーボックスの数 (Yolo v2で設定できる項目)

    • アンカーボックスとは学習時の予測処理や誤差(Loss)計算の基準となるバウンディングボックスです。 学習の前に、訓練データ全体を解析することで、設定された数の代表的な物体を抽出し、 それらの物体のサイズに合わせたアンカーボックスがこの設定値の数分生成されます。

    ヒント

    検出したい物体が多くの形状・サイズを取りうる場合は、 設定値を大きくすることで精度が向上することがあります。 逆に、1つの形状・サイズのみを検出したい場合は1がお勧めです。

4.4.2) オーグメンテーション設定

オーグメンテーションとは、画像に回転、反転、拡大、縮小などの変換処理を加えることで 学習データの数を増加させる処理です。
機械学習では、学習データが少ない場合、 学習したデータに過剰に適応した状況(過学習)になり、 学習したデータに含まれている画像でしか性能が上がらず、 学習データにない未知の画像に対する性能(汎化性能)が落ちてしまうことがあります。
学習データが十分な量あれば過学習が起きず、問題ないのですが、学習データを 十分に収集できない場合があります。このような場合でも、オーグメンテーションを 実行することで、過学習を回避して、汎化性能を向上させることが期待できます。
../_images/44_2_augmentation.png

図2 オーグメンテーションの設定

オーグメンテーションの詳細設定は図1(b)の「詳細設定」ボタンをONにすると図2(a)が表示され、 設定可能になります。
各項目について簡単に説明します。
  1. 反転

    像に対し水平反転、垂直反転をランダムに実施します。

発生確率

データに対する処理の発生確率です

  1. 回転

    画像に対し、0度、90度、180度、270度の回転をランダムに実施します。

    発生確率

    データに対する処理の発生確率です

  2. シフト

与えられたパラメーターを元に画像をランダムに移動(シフト)させます。移動後画像がなくなった領域は黒色になります。

発生確率

データに対する処理の発生確率です

水平方向

水平方向の最大シフト(移動)量です。
10の場合は-10〜10ピクセルの範囲でランダムにシフトされます。

垂直方向

垂直方向の最大シフト量です。
10の場合は-10〜10ピクセルの範囲でランダムにシフトされます
  1. コントラスト

    画像のコントラストをランダムに変動させます。

    発生確率

    データに対する処理の発生確率です。

    アルファ

    コントラストの最大変動量です。
    値が大きいほど明暗の強い画像に変換されます。
  2. 水平反転

    • 画像に対し水平反転をランダムに実施します

発生確率

データに対する処理の発生確率です

  1. 垂直反転

画像に対し垂直反転をランダムに実施します。

発生確率

データに対する処理の発生確率です

  1. ホワイトノイズ

画像にホワイトノイズを加え、画質を粗くします。

発生確率

データに対する処理の発生確率です

ノイズ強度

ホワイトノイズの強さ(正規分布の標準偏差)です。
値が大きいほど強いノイズが発生します。
  1. カラージッター

HSV色空間の「色相(Hue)」「彩度(Saturation)」「明度(brightness)」に対し、ランダムな変動を加えます。

発生確率

データに対する処理の発生確率です

色相

色相(色合い)の最大変動量です。
0.1の場合、0.9〜1.1の割合の範囲でランダムに変動されます。

彩度

彩度(色の鮮やかさ)の最大変動量です。
0.1の場合、0.9〜1.1の割合の範囲でランダムに変動されます。

明度

明度(色の明るさ)の最大変動量です。
0.1の場合、0.9〜1.1の割合の範囲でランダムに変動されます。
  1. RGBシャッフル

画像のRGBの3チャンネルをランダムに入れ替える処理です。

発生確率

データに対する処理の発生確率です

  1. 拡張

キャンバスサイズをランダムなアスペクト比(横と縦の長さの比率)で拡大し、 元の画像をキャンバスのランダムな位置に配置します。("拡張"を使用する場合は、"切り取り"も使用してください)

発生確率

データに対する処理の発生確率です

  1. 切り取り

画像のランダムな領域を切り出します。切り出す領域のサイズと位置はランダムですが、 必ずラベル付けしたボックスの重心座標が含まれるように設定されます。("切り取り"を使用する場合は、"拡張"も使用してください)

発生確率

データに対する処理の発生確率です