質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

3回答

13949閲覧

深層学習でのサンプル数について

chun1182

総合スコア8

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

6グッド

6クリップ

投稿2018/01/08 13:45

###サンプル数を少なくする工夫について

最近機械学習を始めて、MNIST等の精度を上げるためにいろいろ調べました。
そこでふと思ったのですが、サンプル数を少なくする方法は研究とかは行われるのでしょうか。

もし人が新しい言語・数字を学習するとしたら数万個も同じ文字の例を探さずに、
正解の文字をしっかり学習することから始めるかと思いますが、機械学習はその逆を行っているように感じるので。

そういう研究・論文をどこかで見かけたことはあるでしょうか。

mtdsnsk, senko, cesolution, umyu, omochi_123👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

とても面白い質問ですね。

サンプル数を少なくする方法

私は聞いたことがありません。実際問題として、少ないサンプルであっても特徴を抽出するために内部では無理やり水増しして学習させるのが常套手段です。元のデータを少なくすれば少なくしただけ、結局内部でデータを増やすことになります。これは「サンプル数を少なくする方法」ではありますが、結局内部でサンプル数を増やしているだけなので、答えになっているかどうか微妙です。

もし人が新しい言語・数字を学習するとしたら数万個も同じ文字の例を探さずに、正解の文字をしっかり学習する

  • 人間の場合

人間は、生まれてからずーっと絶えず学習しています。もし、人間が新しくサンスクリット語を覚えるとしても、学習し始めた1時間の成果ではなく、これまでの生涯を通して得てきた最強(?)の特徴量の抽出を使って太刀打ちします。

  • 機械学習の場合

機械学習は問題の枠をずいぶん絞りますが、データをこねくり回して力業で特徴量の抽出を数時間や数日、数週間オーダーで行います。生後数週間の人間にこれができない(仮に理解できたとしても、とてもまともなアウトプットはできませんが…)を考えれば、これはこれですごいことだと思います。


気になって少し調べたところ、こういうようなことをquoraで見つけましたので参考までに。

要旨)
Madhulika Mukherjeeさん

  • 人間は(新しく見せられた動物などの写真)1,2枚の写真で学習しているわけではなく、生まれてきてから学習してきた成果を使って学習している。
  • 動物の写真を見て、まず「動物だな」、その後に「猫だな」のような分類処理をミリ秒単位で行っている
  • 人間の脳は10憶のノードと接続からなるスーパーコンピュータみたいなもので、高次元な特徴抽出をスマートにやっている

Menzel-Meisterさん

  • 意識していないだけで、認識や想像をする中で人間は信じられないほどの情報量をさばいている
  • 一度見た何かを将来見つけた時に、正しく評価するためにたくさんの仕分けデータが必要なのは人間も機械も同じ
  • 猫を猫と評価するのに人間は、「ふわふわな毛があって、四本足で、目が合って、色が…(個体差)」のような「猫性」を抽出して理解している

投稿2018/01/08 22:25

編集2018/01/08 22:38
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chun1182

2018/01/09 12:04

回答ありがとうございます。 QUORAは知らなかったので登録しました。 おっしゃる通り、個人的な考えとしては「サンプルを少なくするためには水増しは必須と考えます。」 これもまた人間の例ですが、私たちは色んな角度からも見れますし、どの位置に書いてあっても文字を認識するので。 ただ角度を変えすぎると別な文字になるので難しいところでもあります。 難しいのは人間が生涯を通して得ている(文字を認識するのに使う一般的な)特徴量をどう覚えさせるかですね、 深層学習でやたら多い画像を必要とするのは文字を覚えるというより、その前の「線の形」の概念を覚えるのに必要なのかなと思いました。
guest

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
mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chun1182

2018/01/09 13:18

テンプレートマッチング、正解画像が問題画像のどこにあるかを調べる手法と認識しています。 深層学習も最後にラベルの確率を出すことから、やってることはかなり近いと思います。 ここでサンプルとは正解画像を導き出すのに使うもので、サンプル数を増やすことでその正解画像のロバスト性を高めていると考えます。 転移学習・DCGANを使って少ないサンプルを元に自分でロバスト性を高めてくれないかなと思っています。 初めのリンクから辿ったone-shot learningがまさに探していたものでした。 リンクを教えていただきありがとうございます。 サンプル数の多さがAI導入の大きな壁となっています。ビックデータを扱うレベルの団体ならば簡単に用意できますが、 個人・中小ではこのような少ない情報を元にした個性あるAIが進むのかなとも感じています。
mkgrei

2018/01/09 13:36

なるほど、そのような意識での問いなのですね。 サンプルを少なくしていく、というふうに誤解していました。 深層学習というのは比較的に統計的な手法だと考えているので、サンプル数が少ない、サンプル数を多く取れない、といったケースでは不利であることが多い印象です。 取り組みたい問題に対する事前知識があれば改善するのはどの手法でも同じかもしれません。 Krigingのような手法で位相空間内でサンプリングすべき点を挙げることによって少ないサンプリングで精度を上げる方法もありますが、今回の話題とは少々質が異なる話かもしれません。
guest

0

こんにちは。
IBMのWatsonを、業務の都合で半年ぐらい使っている、素人じゃないけどプロじゃないものです。

企業秘密的なところもあり詳しくはいえないのでご参考までですが、(初回)学習というより追加学習で、どういうサンプルを食わせるかで大きな差が出るということはあります。
要するに、そのAI(DL)が、どういう誤答をするかをよく見極めたうえで、追加学習させるデータを作ると、少ない「学習」でも精度が大きく改善するということです。人間も、どこが「苦手」かをよく見極めて、それを克服するように「学習」するのがよいわけで、それと同じことだと思いますね。

ご質問の趣旨に合うかどうかはわかりませんが、ご参考まで。

投稿2018/01/10 00:07

webappbeginner

総合スコア37

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chun1182

2018/01/10 13:56

これは確かにそう思います。 理想としては機械側が少ないサンプルから学習して分類をある程度してから、 「こことここの間のこの答えを教えてほしい」と聞いて来るのがよいと思いました。 これは「a」か「d」か、「6」か「0」か。のホント微妙なところだけ教えるだけでよいというのがいいですね。 回答とは関係ないですが、書き順の概念も文字認識では重要かもなとふと思いました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問