CNNを使って2クラス分類をしていますが、訓練データの枚数を変えると出力層softmax関数のクラス1の出力値分布が変わる理由が知りたいです。
前提・実現したいこと
CNNアルゴリズムはGoogLeNet
フレームワークはcaffe
2クラス分類を行っています。
出力層はsoftmax関数です。
出力される2次元ベクトルのうち1個目の要素をここではP1とします。
クラス分けをする際のP1の閾値を最適化させるために、
クラス1,クラス2でのP1分布を見ました。
発生している問題
1回目の学習では持ってるデータ全てを使い、訓練データ数を以下のようにしました。
クラス1:42230枚
クラス2:42230枚
テストデータ(各クラス1000枚ずつ)でテストを行ったところ、P1のヒストグラムはこのようになりました。
2回目の学習では訓練データを意図的に減らしました。
クラス1:9000枚
クラス2:9000枚
テストデータ(各クラス100枚ずつ)でテストを行ったところ、P1のヒストグラムはこのようになりました。
訓練データが多い1回目の学習では、クラス1,2がなだらかなP1の分布を持つのに対し、
訓練データの少ない2回目の学習では、クラス1,2共に極端な分布を持ってしまいました。
最後に
私の行っている解析では、訓練データの少ない2回目の学習結果の方が適しているので
今後も2回目の学習結果を使いたいと考えています。
ただ、学習において訓練データは少ないより多いほうが良いと勉強してきましたので、
2回目の結果を使うのは、やや不安なところがあります。
そのため、1回目と2回目の結果の違いが現れた原因、理由を教えていただけたら幸いです。
###追記
1回目の学習における検証データの損失と精度は以下のようになります。
2回目の学習における検証データの損失と精度は以下のようになります。
以上を追記します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/07 02:40 編集
2021/07/07 13:21 編集