いつもお世話になっております。
訓練データのunbalance問題について質問をさせていただきます。
Q1: 例えば、tensorFlowを使ってDNNを行う場合、 われわれは特に意識しなくても、
訓練データのunbalance問題 は 自動的に解決されるのでしょうか。
Q2: Q1の極端なケースとして、例えば、手書きの1,2,3のサンプルを多量に学習させて、
4,5,6 に関する学習サンプルは無かった場合、TESTの時に、もし4,5,6 の画像が入力したら、
DCNNは勝手に 1,2,3のいずれかに無理分類するのでしょうか。
Q3: 検査システムにおいて、オンラインで不良サンプルをDNNに学習させる場合、
不良サンプルが一個一個ランダム的に来るので、一つ一つ来る度に DNNに学習させるのはだめでしょうか。
【unbalance問題とそれ以上に深刻な問題になりそうだが、非常に悪い予感があって、原因は言えません】
皆さまのアイディアを是非お伺いさせていただきたいと思います。
どうぞ宜しくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
Q1について
imbalanced classification問題は、コスト関数が少数派の誤差を過小に評価することに起因してオプティマイザーが多数派の精度を高めるように学習を進めることによって発生するものなので、このコスト関数の計算部分に対策をしない限り、ディープニューラルネットワークでも回避することは不可能です。
対策としては、オーバーサンプリングやアンダーサンプリングのようなデータを件数を調整するか、コスト関数のウェイトを調整するかが必要で、いずれもモデル構築者が解決すべき課題と与えられたデータの特性に応じて考えるしかありません。
Q2について
モデルによると思います。
ケース1 : クラス1・2・3を識別するモデルとして構築した場合
4・5・6が手書き数字として与えれると、モデルは1・2・3に最も近いものに識別します。これは無理やりというよりも与えられた画像データとして最も近いものとしてとらえているという理解のほうが近いと思います。ただし、ディープニューラルネットワークにおける最も近いというのは、人の目で似ているというのとは相当異なります。(全結合層のインプットが似ているという感じでしょうか)
ケース2 : クラス1~6を識別するモデルとして構築した場合
学習時のデータに4~6がないので、モデルは4~6を識別する能力が極めて悪くなります。これは、4~6を無理やりに1~3に識別しているというよりも、4~6に識別する能力が低すぎるという解釈のほうがいいように思います。
Q3について
学習方法のひとつにデータ1件単位で行うものがあるそうです。よって、質問されていることをこの学習方法であると解釈してしまえば、『アリ』ということになります。
ただし、これは、学習用データセットが相当数あるなかで1件ずつの学習を全件にわたって行うことを1epochとして、それなりのepoch数の学習を行うことが前提となります。
記載の検査システムの全体像がちょっとわからないので、うまくできるようにする方法がちょっと思いつきませんが、やりようによってはできる気もしますし、できたとしても実用に耐えない可能性もあります。
投稿2018/03/15 12:27
総合スコア3376
0
前提として
DNNにおいて何を学習しているのかというのは人間には直感的ではありません。
DNNは「知能」を創造しているのではなく、決められた目的関数を最小化・最大化しているだけです。
Q1
データ自体の性質はモデルを作る人間が思慮深く考える問題です。
意識しないのであればうまくいくかどうかは運次第です。
できるコンサルはブラフをかけるかもしれませんが、そんなに万能ならデータサイエンティストなんていう仕事はありません。
偏りの強いデータはサンプリングの重みを変えるか、バッチサイズを大きく取って調整しないとよいモデルが作れません。
Q2
https://qiita.com/AkiyoshiOkano/items/dc19bffc88c549393699
リンクは教師データにないものを正常に予測できない例が最後にあります。
「勝手に分類」するというよりも、活性化関数が「正しく」発火しないので正常に予測できることを期待できません。
中はただの数字の演算ですから、「4」を見たことがないからオーバーフローする、ということはありません。
必ずなにかの数字が最後に出力されることを「勝手に分類」と呼ぶかどうかという言葉の問題になります。
極端な例だと、乱数を返す「モデル」を「分類」と呼ぶかという問題です。
数字の例で、分類ですからエンコーディングの方法にもよりますが、3つしか要素を持たないOneHotEncodingならいずれかにしか分類できません。
Q3
学習(勾配を計算して係数を更新)させることはできます。
うまくいくのかは保証できません。
不良であるかどうかをどのようにリアルタイムで伝えるのかという根本的な問題はあります。
投稿2018/03/15 06:25
総合スコア8560
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/15 15:27 編集
2018/03/15 15:30
2018/03/15 18:43
2018/03/16 02:12
2018/03/16 04:04
2018/03/16 07:36 編集
2018/03/16 16:22 編集
2018/03/16 16:21 編集
2018/03/16 18:28
2018/03/18 17:53
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/15 13:02 編集
2018/03/15 13:39
2018/03/15 15:04
2018/03/15 23:17 編集