###サンプル数を少なくする工夫について
最近機械学習を始めて、MNIST等の精度を上げるためにいろいろ調べました。
そこでふと思ったのですが、サンプル数を少なくする方法は研究とかは行われるのでしょうか。
もし人が新しい言語・数字を学習するとしたら数万個も同じ文字の例を探さずに、
正解の文字をしっかり学習することから始めるかと思いますが、機械学習はその逆を行っているように感じるので。
そういう研究・論文をどこかで見かけたことはあるでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
とても面白い質問ですね。
サンプル数を少なくする方法
私は聞いたことがありません。実際問題として、少ないサンプルであっても特徴を抽出するために内部では無理やり水増しして学習させるのが常套手段です。元のデータを少なくすれば少なくしただけ、結局内部でデータを増やすことになります。これは「サンプル数を少なくする方法」ではありますが、結局内部でサンプル数を増やしているだけなので、答えになっているかどうか微妙です。
もし人が新しい言語・数字を学習するとしたら数万個も同じ文字の例を探さずに、正解の文字をしっかり学習する
- 人間の場合
人間は、生まれてからずーっと絶えず学習しています。もし、人間が新しくサンスクリット語を覚えるとしても、学習し始めた1時間の成果ではなく、これまでの生涯を通して得てきた最強(?)の特徴量の抽出を使って太刀打ちします。
- 機械学習の場合
機械学習は問題の枠をずいぶん絞りますが、データをこねくり回して力業で特徴量の抽出を数時間や数日、数週間オーダーで行います。生後数週間の人間にこれができない(仮に理解できたとしても、とてもまともなアウトプットはできませんが…)を考えれば、これはこれですごいことだと思います。
気になって少し調べたところ、こういうようなことをquoraで見つけましたので参考までに。
要旨)
Madhulika Mukherjeeさん
- 人間は(新しく見せられた動物などの写真)1,2枚の写真で学習しているわけではなく、生まれてきてから学習してきた成果を使って学習している。
- 動物の写真を見て、まず「動物だな」、その後に「猫だな」のような分類処理をミリ秒単位で行っている
- 人間の脳は10憶のノードと接続からなるスーパーコンピュータみたいなもので、高次元な特徴抽出をスマートにやっている
Menzel-Meisterさん
- 意識していないだけで、認識や想像をする中で人間は信じられないほどの情報量をさばいている
- 一度見た何かを将来見つけた時に、正しく評価するためにたくさんの仕分けデータが必要なのは人間も機械も同じ
- 猫を猫と評価するのに人間は、「ふわふわな毛があって、四本足で、目が合って、色が…(個体差)」のような「猫性」を抽出して理解している
投稿2018/01/08 22:25
編集2018/01/08 22:38
退会済みユーザー
総合スコア0
0
ベストアンサー
概ねslashさんの意見に同意です。
人は新しく何かを学習する時、過去に学習したデータを利用します。
転移学習のモチベーションに近いです。
https://qiita.com/icoxfog417/items/48cbf087dd22f1f8c6f4
(追記:書いてから気づいたのですが、転移学習ってサンプル数を減らすための取り組みなのでは…)
別の考え方もしてみます。
大量にあるデータから取り除いても学習結果があまり変化しないものを取り除く方法はあります。
逆に取り除くことによって精度が上がるケースもあります。
RANSACなどのアルゴリズムのモチベーションになります。
https://qiita.com/smurakami/items/14202a83bd13e55d4c09
学習というのは、何かを知ることであります。が、本質的には、ありえるカテゴリ間の違いを知ることです。
深層学習は非常に高度なマッチング問題として捉えることができます。
これを最も古典的な方法でやるのがテンプレートマッチングです。
正解だけからの距離を測ると、カテゴリ間の距離に不均衡が現れます。
1と7の違いと1と8の違いは明らかに後者の方が遠いが、同じか違うかといわれると、ともに違うことになります。
すると精度として前者が低くなることが予想されます。
システムの精度というのはワーストケースで測るべきなので、最も区別しにくいものに引っ張られてしまいます。
深層学習では畳み込みやプーリングを使って射影を行います。
そして学習時に、ワーストケースが悪くなりすぎないようにフィードバックが自然にかかります。
深層学習でやっていることは、入力データを粗視化して正解テンプレートに変換してマッチングしていると見ることが可能です。
このテンプレートを人間にわかりやすいようにではなく、定量的な指標を持って求めることが学習の目的となっています。
そこでテンプレートマッチングで精度を上げる方法を考えてみると、教師画像の枚数を増やすことが最適です。
テンプレートマッチングでは枚数を増やすと教師データ数に対して線形に計算時間がかかるようになります。
深層学習では教師データを増やしても、1枚のテンプレートに判定に有利な特徴だけを追加していると考えれば、データを用意すればするほど精度が上がる仕組みが出来上がります。
以上のことを考えると深層学習でサンプル数を減らすのはデータを集められないとき以外メリットがないのです。
逆にRandomForest、SVMなどと比べた時にサンプル数を無限に増やしても計算量が発散しないことが強みだと捉えるべきのように思います。
投稿2018/01/09 01:19
編集2018/01/09 11:04総合スコア8562
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
こんにちは。
IBMのWatsonを、業務の都合で半年ぐらい使っている、素人じゃないけどプロじゃないものです。
企業秘密的なところもあり詳しくはいえないのでご参考までですが、(初回)学習というより追加学習で、どういうサンプルを食わせるかで大きな差が出るということはあります。
要するに、そのAI(DL)が、どういう誤答をするかをよく見極めたうえで、追加学習させるデータを作ると、少ない「学習」でも精度が大きく改善するということです。人間も、どこが「苦手」かをよく見極めて、それを克服するように「学習」するのがよいわけで、それと同じことだと思いますね。
ご質問の趣旨に合うかどうかはわかりませんが、ご参考まで。
投稿2018/01/10 00:07
総合スコア37
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/09 12:04