データが少ないとディープラーニングは使えないなんて誰が言ったのでしょうか?私はこのことについて責任を負わないよ!

データが少ないとディープラーニングは使えないなんて誰が言ったのでしょうか?私はこのことについて責任を負わないよ!

ある観点から見ると、激しい競争は業界の人気を示しています。

最近、人気のディープラーニングも論争を引き起こし始めています。

数日前、「Simply Stats」に非常に人気のある投稿がありました。そのブログ投稿で、著者の Jeff Leek はディープラーニングを厳しく批判しました。彼は、ディープラーニングが現在人気があり、人々がこの技術を使ってあらゆる問題を解決しようとしていることを語りました。 しかし、十分なデータが得られるケースは非常に稀なので、ディープラーニングはそれほど役に立ちません。

この投稿の元のタイトルは「ディープラーニングは使用しないでください。データはそれほど大きくありません」です。面白おかしく見るのが好きなら、検索してみるのもいいでしょう。

その投稿が公開されるやいなや、人々は大騒ぎになった。

我慢できずに対決を始める大物もいるぞ!

[[193520]]

ハーバード大学の生物医学情報学の博士研究員が、これに反論する記事を執筆しました。「データがそれほど大きくなくても、ディープラーニングを使用できる可能性は高い」。

データが少ないとディープラーニングは使えないと言った人は、単にそれを理解していないだけですよね?

(まあ、ディープラーニングは、私がこれについて責任を負わないと静かに言っています)

[[193521]]

まず、長所と短所を見てみましょう。

提案者:

元の投稿の意見: サンプル数が 100 未満の場合は、モデルが過剰適合し、結果が悪くなるため、ディープラーニングを使用しないことをお勧めします。

▌ 反対側:

モデルのパフォーマンスが低下するのは、過剰適合が原因ではありません。収束の失敗、またはトレーニングの困難さが原因である可能性が高いです。あなたがこの結論に達した理由は、実験自体に問題があったからです。この方法を正しく使用すれば、データが 100 ~ 1000 個しかない場合でも、ディープラーニング技術を使用して良好な結果を得ることができます。

(誰がナンセンスを言っているのか?この議論は意味があるのだろうか?誰の実験の方が意味があるのだろうか?コメント欄にコメントをお願いします)

以下、AI100が特別に反対派の見解と研究の全文をまとめました。少し長いですが、非常に興味深いです。視聴する準備はできていますか?出発する!

以下は反対内容の全訳です。

正直に言うと、私は元の記事のいくつかの見解に同意しますが、この記事では議論する必要があることがいくつかあります。

ジェフは手書きの数字 0 と 1 を識別する実験を行いました。データ ソースは有名な MNIST データ セットから取得しました。

この実験では、彼は2つの方法を使用しました。

  • 1 つの方法では、活性化関数が双曲正接関数である 5 層のニューラル ネットワーク モデルを使用します。

  • もう 1 つの方法は、Licasso 変数選択法を使用します。この方法の考え方は、最小の周辺 p 値を持つ 10 個のピクセルを選択することです (これらの値は回帰に使用できます)。

実験結果によると、サンプル数が少ない場合、Ligasso の方法はニューラル ネットワークよりも優れたパフォーマンスを発揮します。

次の図はパフォーマンスを示しています。

すごいですよね?

確かに!サンプル数が 100 未満の場合は、モデルが過剰適合して結果が悪くなるため、ディープラーニングを使用しないことをお勧めします。

これについてはもう少し注意深く検討する必要があると思います。ディープラーニング モデルは複雑であり、多くのトレーニング手法があります。 モデルのパフォーマンスが低いのは、過剰適合が原因ではなく、収束の失敗やトレーニングの難しさが原因である可能性が高いと思います。

ディープラーニング VS Leekasso Redux

最初に行う必要があるのは、MNIST データセットを使用して使用可能なディープラーニング モデルを構築することです。一般的に言えば、多層パーセプトロンと畳み込みニューラル ネットワークを使用します。 元の投稿が正しければ、少数のサンプルを使用してモデルをトレーニングすると、モデルは過剰適合することになります。

活性化関数として RELU を使用して、単純な多層パーセプトロンを構築しました。同時に、VGGに似た畳み込みニューラルネットワークも構築しました。これら 2 つのニューラル ネットワーク モデルのパフォーマンスを Leekasso モデルと比較します。コードはここから入手できます。夏期インターンのマイケル・チェンに心から感謝します。彼はほとんどの仕事をした。使用される言語は Python、ツールは Keras です。

コード取得アドレス:

https://github.com/beamandrew/deep_learning_works/blob/master/mnist.py

MLP は、次のコードに示すように標準モデルです。

CNNモデルのネットワーク構造は以下のとおりです(多くの人がご存知だと思います)

参考までに、MLP モデルには約 120,000 個のパラメーターがあり、CNN モデルには約 200,000 個のパラメーターがあります。元の投稿に含まれる仮定によれば、パラメータが非常に多く、サンプル サイズが小さい場合、モデルは実際に崩壊することになります。

私たちは、できる限り元の実験を再現しようとしています。5 分割クロス検証を使用しますが、評価には標準の MNIST テスト データセットを使用します (検証セット内の 0 と 1 の例の数は約 2000 です)。テストセットを 2 つの部分に分割しました。最初の部分はトレーニング手順の収束を評価するために使用され、データの 2 番目の部分はモデルの予測の精度を測定するために使用されます。モデルパラメータは調整しませんでした。ほとんどのパラメータについては、適切なデフォルトを使用します。

私たちは、元の投稿から Leekasso と MLP のコードを Python で書き直すために最善を尽くしました。ソースコードはここから入手できます。以下は、抽出されたサンプルに対する各モデルの精度です。下部の拡大グラフから、どのモデルのパフォーマンスが最も優れているかを簡単に確認できます。

すごいですよね?これは元の投稿の分析とはまったく異なっているようです。元の投稿で分析した MLP は、少数のデータセットでの実験では依然としてパフォーマンスが低かったです。しかし、私が設計したニューラル ネットワークは、使用されたサンプルでは非常に優れたパフォーマンスを発揮しました。そこで疑問が湧いてきます…

私たちの実験ではいったい何が起こったのでしょうか?

ご存知のとおり、ディープラーニング モデルのトレーニング プロセスは繊細な作業であり、ネットワークを「管理」する方法を知ることは重要なスキルです。パラメータが多すぎると、特定の問題が発生する可能性があります (特に SGD の場合)。また、適切に選択しないと、パフォーマンスが低下し、誤解を招く結果になる可能性があります。ディープラーニングに取り組むときは、次の点に留意する必要があります。

モデルの詳細は重要であり、deeplearning() のようなブラック ボックス呼び出しには注意する必要があります。

元の投稿の問題について私が推測した内容は次のとおりです。

  1. 活性化関数は非常に重要であり、活性化関数として tanh を使用するニューラル ネットワークはトレーニングが困難です。このため、Relu 関数をアクティベーション関数として使用すると、大きな改善が見られます。

  2. 確率的勾配降下法が収束することを確認します。元の実験制御では、著者は 20 ラウンドしかトレーニングしなかったため、トレーニング回数としては十分ではない可能性があります。サンプルは 10 個しかなく、トレーニング ラウンドは 20 回だけなので、結果として 200 回の勾配更新のみが実行されました。ただし、すべてのデータを完全にトレーニングするには、6000 回の勾配更新が必要です。数百または数千回のトレーニングを実施するのが普通です。約 1,000,000 回の勾配更新が行われます。勾配更新を 200 回だけ行う場合は、おそらく非常に大きな学習率が必要になります。そうしないと、モデルが収束する可能性が低くなります。 h2o.deeplearning() のデフォルトの学習率は 0.005 です。数回しか更新しない場合は、この学習率は小さすぎます。 200 ラウンドにわたってトレーニングされたモデルを使用しますが、最初の 50 ラウンドではサンプルに対するモデルの精度が大きく変動することがわかります。したがって、モデルの収束の欠如が、元の投稿で観察された違いの大部分を説明できると思います。

  3. パラメータのデフォルト値を常に確認してください。 Keras はこの目的に最適なツールです。 Keras は、現在のトレーニングに最適と思われるデフォルト値にパラメータを設定するためです。ただし、選択したパラメータの値が問題と一致していることを確認する必要があります。

  4. フレームワークが異なれば、結果も異なります。最終的な結果を得るために、元の R コードに戻ってみました。しかし、h2o.deeplearning() 関数から良い結果を得ることができません。理由は最適化プロセスに関連しているのではないかと思います。複数のノードで計算をスケジュールし、トレーニングを高速化する Elastic Averaging SGD を使用する場合があります。データ量が少ない場合にこのアプローチが機能しないかどうかはわかりません。ただこう推測するだけです。私は水についてあまり経験がありませんが、おそらく他の人がその理由を知っているでしょう。

幸いなことに、Rstudio の優秀なスタッフが Keras 用の R インターフェースをリリースしました。したがって、R に基づいて Python コードを作成できます。以前使用した MLP はこれに似ていましたが、今度はそれを R で実装します。

私はこのコードを Jeff の R コードに適合させ、元のグラフを再生成しました。 Leekasso コードも少し変更しました。元のコードでは lm() (線形回帰) が使用されていましたが、これはあまり良くないと思います。そこでglm()(ロジスティック回帰)に変更しました。新しいグラフは次のようになります。

[[193522]]

ディープラーニングが勝利!同様の現象は、Leekasso アルゴリズムの Python バージョンと R バージョン間の違いを示している可能性があります。ロジスティック回帰の Python バージョンは、liblinear を使用して実装されています。これは、R のデフォルトの実装よりも堅牢で堅牢になると思います。 Leekasso によって選択された変数は共線性が非常に高いため、これがより良いアプローチである可能性があります。

これはかなり興味深い質問です。最高の予測値のみを使用して Leekasso を再実行したところ、結果は完全な Leekasso と同一でした。実際、データを必要とせず、非常に高い精度を持つ分類器を作成できると思います。中心のピクセルを選択するだけで、それが黒であれば 1 と予測し、そうでなければ 0 と予測します。デビッド・ロビンソンは次のように指摘している。

また、David 氏は、ほとんどの数字のペアについては、それらを区別するために 1 つのピクセルだけを使用すればよいと考えています。したがって、その投稿に反映されている問題は、データがほとんどない状況を反映していないようです。彼の結論を鵜呑みにしないほうがいいだろう。

なぜディープラーニングは誤解を招くのでしょうか?

最後に、ジェフの元の投稿にある論点、特に次の記述をもう一度検討したいと思います。

問題は、データを取得してディープラーニング技術を使用して処理できる領域が限られていることです...しかし、単純なモデルの場合のディープラーニングの利点は、ディープラーニングが大量のデータと多くのパラメータを処理できることだと思います。

私はこの段落、特に最後の部分に同意しません。ディープラーニングは巨大なブラックボックスだと多くの人が考えています。このブラックボックスには膨大な数のパラメータがあり、十分なデータ(ここでの十分とは、データの量が 100 万からグラハム数までの範囲であることを意味します)を提供できれば、あらゆる関数を学習できます。ニューラル ネットワークが非常に柔軟であることは明らかであり、この柔軟性がニューラル ネットワークの成功の理由の 1 つです。しかし、それが唯一の理由ではないですよね?

結局のところ、統計学と機械学習は 70 年以上にわたって超柔軟なモデルを研究してきました。ニューラル ネットワークは、同じ複雑さの他のアルゴリズムよりも柔軟性が高いとは思いません。

ニューラル ネットワークが成功すると考える理由をいくつか挙げます。

1. あらゆる対策は、偏りと分散のバランスをとることです。

明確にしておくと、ジェフが実際に議論したかったのは、モデルの複雑さとバイアス/分散のバランスだと思います。データが十分にない場合は、複雑なモデルよりも単純なモデルの方が適している可能性があります (単純なモデルはバイアスが高く分散が低いことを意味し、複雑なモデルはバイアスが低く分散が高いことを意味します)。ほとんどの場合、それは客観的な良いアドバイスだと思います。しかし……

2. ニューラル ネットワークの過剰適合を回避する方法は多数あります。

ニューラル ネットワークには多くのパラメーターがあります。ジェフの意見では、これらのパラメータを推定するのに十分なデータがない場合、大きな変動が生じることになります。人々はこの問題をよく認識しており、ばらつきを減らすための多くの技術を開発してきました。ドロップアウトと確率的勾配降下法を組み合わせると、バギング アルゴリズムの役割を果たします。入力変数の代わりにネットワーク パラメータを使用するだけです。ドロップアウトなどの分散削減手法はトレーニング プロセスに固有のものであるため、他のモデルで使用するのは困難です。この方法により、大量のデータがなくても、巨大なモデル (120,000 個のパラメータを持つ MLP など) をトレーニングできます。

3. ディープラーニングでは、特定の問題の制約をモデルに簡単に入力できるため、バイアスを簡単に減らすことができます。

これが最も重要な部分だと思います。しかし、私たちはこの点をしばしば見落としています。ニューラル ネットワークはモジュール化されており、強力な制約 (または事前条件) を含めることができるため、モデルの分散を大幅に削減できます。その最良の例は畳み込みニューラル ネットワークです。 CNN では、画像の特徴をエンコードし、それをモデルに入力します。たとえば、3x3 畳み込みを使用する場合、実際に行っているのは、ローカルに相関するピクセルの小さなセットに有用な情報が含まれていることをネットワークに伝えることです。さらに、変換および回転されたが変更されていない画像をエンコードを通じてモデルへの入力として渡すこともできます。これにより、画像の特徴に対するモデルの偏りを減らすことができます。分散を大幅に削減し、モデルの予測能力を向上させることができます。

4. ディープラーニングを使用するには、Google のような大量のデータは必要ありません。

上記の方法を使用すると、一般の人であっても、100〜1000のデータしか持っていなくても、ディープラーニング技術を使用してその恩恵を受けることができます。これらの手法を使用することで、ニューラル ネットワークの柔軟性を低下させることなく分散を減らすことができます。転移学習を使用して、他のタスクのネットワークを構築することもできます。

まとめると、上記の理由は、ディープラーニングが実際に効果的である理由を説明するのに十分であると思います。多数のパラメータと膨大な量のデータがあるからこそ機能するのではありません。最後に、この記事はジェフの見解が間違っていると言っているわけではありません。この記事は単に彼の見解を別の観点から解釈しているだけです。この記事がお役に立てば幸いです。

元のURL

https://simplystatistics.org/2017/05/31/deeplearning-vs-leekasso/

追記:肯定的な見解については、以下をご覧ください。

詳しくはこちら

<<:  ディープラーニングはフロントエンド開発ツールになりました:UI設計図に基づいてコードを自動生成します

>>:  スマートイメージセンサー業界の過去と現在を1つの記事で理解する

ブログ    
ブログ    
ブログ    

推薦する

清華大学の光電子コンピューティングにおける新たなブレークスルー:チップの性能が1万倍向上、研究がネイチャー誌でトップに

各種の大規模モデルやディープニューラルネットワークの登場により、人工知能の発展に対応し、高い計算能力...

...

これらの不気味な「偽人間」は人工知能の新時代の到来を告げる

[51CTO.com クイック翻訳]唇の無精ひげ、額のしわ、皮膚の斑点がはっきりと見えますが、「彼」...

民間ドローンの産業応用シナリオに関する簡単な議論

[[357620]]科学技術の発展に伴い、人類は機械工学、材料科学、電子技術、自動制御、コンピュータ...

二足歩行ロボット「キャシー」が機械学習を使って5kmのジョギングを完走

ロボット工学の世界では 4 年というのは長い期間ですが、特にオレゴン州立大学 (OSU) が開発した...

知っておくべき人工知能アルゴリズム トップ 10

人工知能 (AI) 技術の人気が高まるにつれ、さまざまなアルゴリズムがこの分野の発展を促進する上で重...

人工知能を活用した診断・治療の現状と戦略に関する研究

1. はじめにわが国では毎年、さまざまな医療機関における診察や治療の総回数が70億回を超えており、医...

ソフトマックスを放棄した初の大規模線形アテンショントランスフォーマーモデル: 1750億のパラメータ、より優れた速度と精度

最近、上海人工知能研究所とOpenNLPLabの研究チームが、ソフトマックスベースの注意メカニズムを...

人工知能はターミネーターとなるのか?ぜひ見に来てください!

[[253100]]映画「ターミネーター」を見たことがある人は多いでしょう。実は、ターミネーターに似...

機械学習は株式市場を正確に予測できるのでしょうか?

株式市場が始まって以来、人々はシステムを悪用し、市場に勝とうとしてきました。長年にわたり、人々は何千...

新素材の画期的な進歩、AIの医療への参入…2021年はどんな新しい技術トレンドを迎えるのでしょうか?

2020年も終わりに近づいていますが、疫病は科学技術の進歩を止めることはなく、量子コンピューティン...

...

Transformer はコンピューター ビジョンの分野でどこまで進歩したのでしょうか?

[[400862]] Transformer モデルは、自然言語処理 (NLP) の分野における新...

AI投資は2025年までに2,320億ドルに達する

KPMGが最近発表したレポートによると、2025年までに人工知能(AI)、機械学習、ロボティック・プ...