問題タブ [deep-learning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2537 参照

machine-learning - Ada-Delta メソッドは、MSE 損失と ReLU アクティベーションを使用して Denoising AutoEncoder で使用すると収束しませんか?

独自のディープ ニューラル ネットワーク ライブラリにAdaDelta ( http://arxiv.org/abs/1212.5701 ) を実装しました。論文によると、AdaDelta を使用した SGD はハイパーパラメータに敏感ではなく、常に適切な場所に収束すると書かれています。(少なくとも、AdaDelta-SGD の出力再構成損失は、よく調整された Momentum 法のそれに匹敵します)

Denoising AutoEncoder の学習方法として AdaDelta-SGD を使用した場合、特定の設定で収束しましたが、常にではありませんでした。MSE を損失関数として使用し、Sigmoid を活性化関数として使用した場合、非常に迅速に収束し、100 エポックの反復の後、最終的な再構成損失は、単純な SGD、Momentum を使用した SGD、および AdaGrad のすべてよりも優れていました。

しかし、活性化関数として ReLU を使用すると、収束せずにスタック (振動) し続け、高い (悪い) 再構成損失が発生しました (学習率が非常に高いプレーンな SGD を使用した場合と同様)。それが積み重ねた再建損失の大きさは、モメンタム法で生成された最終的な再建損失よりも約10倍から20倍高かった。

論文では AdaDelta がちょうど良いと書かれているので、なぜそうなったのか、私にはよくわかりません。現象の背後にある理由と、それを回避する方法を教えてください。

0 投票する
4 に答える
279258 参照

python - pklファイルを解凍するには?

手書きの数字画像で構成される MNIST データセットの pkl ファイルがあります。

これらの数字の画像をそれぞれ見てみたいので、pkl ファイルを解凍する必要がありますが、方法がわかりません。

pkl ファイルを解凍/解凍する方法はありますか?

0 投票する
1 に答える
3599 参照

neural-network - 有名な畳み込みニューラル ネットの例では、プーリングとサブサンプリング後に次元を計算できませんでした

Yann LeCunによる知覚と推論の階層モデル

上の画像は、Yann LeCun による「Hierarchical Models Of Perception and Reasoning」というタイトルの pdf からのものです。

レイヤー 2 が 14X14 フィーチャー マップである方法を理解できませんか? 10X10 プーリングと 5X5 サブサンプリングを使用した 75X75 マトリックスは、どのようにして 14X14 マトリックスを生成できますか?

0 投票する
4 に答える
2227 参照

deep-learning - GPU 上に構築された theano モデルを CPU に変換しますか?

GPU 上に構築されたディープ ラーニング モデルのピクル ファイルがいくつかあります。それらを本番環境で使用しようとしています。しかし、サーバーでそれらを unpickle しようとすると、次のエラーが発生します。

トレースバック (最新の呼び出しが最後):
ファイル "score.py"、30 行目、
モデル内 = (cPickle.load(file))
ファイル "/usr/local/python2.7/lib/python2.7/site-packages/ Theano-0.6.0-py2.7.egg/theano/sandbox/cuda/type.py", line 485, in CudaNdarray_unpickler
return cuda.CudaNdarray(npa)
AttributeError: ("'NoneType' object has no attribute 'CudaNdarray'" 、、(array([[0.011515、0.01171047、0.10408644)、...、-
0.0343636、0.04944979、-0.06583775]、 [
-0.03771918、0.080524、-0.0609912、0.051912、0.051912、0.051912、0.051912、0.051912 、 、-0.07109226、-0.00932018、...、 0.04316209、0.02817888、0.05785328]、 ...、




[ 0.0703947 , -0.00172865, -0.05942701, ..., -0.00999349,
0.01624184, 0.09832744],
[-0.09029484, -0.11509365, -0.07193922, ..., 0.10658887,
0.17730837, 0.01104965],
[ 0.06659461, -0.02492988, 0.02271739, ..., -0.0646857 ,
0.03879852, 0.08779807]], dtype=float32),))

ローカル マシンでその cudaNdarray パッケージを確認しましたが、インストールされていませんが、それらを unpickle することはできます。しかし、サーバーではできません。GPU を搭載していないサーバーで実行するにはどうすればよいですか?

0 投票する
1 に答える
3499 参照

python - Theano チュートリアルの説明

Theano ドキュメントのホームページで提供されているこのチュートリアルを読んでいます

勾配降下セクションの下にあるコードについてはよくわかりません。

ここに画像の説明を入力

for loop について疑問があります

「 param_update」変数をゼロに初期化した場合。

次に、残りの 2 行でその値を更新します。

なぜそれが必要なのですか?

ここで何か間違っていると思います。助けてくれませんか!

0 投票する
1 に答える
686 参照

python - Linux よりも Windows で Theano が (かなり) 遅いのはなぜですか?

Theano を使用して再帰的な自動エンコーダーを実装し、Linux と Windows の両方でテストしました。Linux では 2.3G メモリで約 3 時間、Windows では 0.5G メモリで約 9 時間かかりました。config.allow_gc=両方のケースで True。

スレッドで説明されているように、Python の問題である可能性があります。

Theano に、Windows でも動作が遅くなる特定の設定はありますか?

ありがとう、

Y A

0 投票する
1 に答える
2257 参照

matlab - 深層学習ツールボックスのチュートリアル-matlab

マンモグラムの特徴抽出のために、積み重ねられたノイズ除去オートエンコーダーを matlab に実装する必要があります。現在、ディープ ラーニング ツールボックスによって既に提供されているコードをテストしていますが、いくつかのエラーが発生しており、それらを修正する方法がわかりません。ツールボックスの使用方法に関するチュートリアルをご存知ですか? 私はネットで検索しましたが、役立つものは何も見つかりませんでした。誰かが解決策を持っている場合に備えて、私が得ているエラーは次のとおりです。

どうもありがとう!:)

0 投票する
1 に答える
284 参照

neural-network - マルチクラス ターゲット検出: NX (1 対すべて) または 1 X (N 対すべて)?

ニューラルネットワークを使用してマルチクラス分類を行っています。10 個のターゲット クラスと 1 個の null (上記以外のターゲット) があるとします。上記の場合に 10 個の個別のニューラル ネットワークまたは 11 個の出力を持つニューラル ネットワーク (10 個のターゲット、他 1 人)? さまざまな論文で 2 つのアプローチのいずれかを使用している人々を見てきましたが、説明はありませんでしたが、ターゲット クラスごとに個別のネットワークを使用することに理論的な優位性はありますか? 計算上のオーバーヘッド コストは、代替アプローチに関する利益と利益に見合う価値がありますか?

前もって感謝します!

PS(1)もちろん、どちらのアプローチでも、トレーニング例の分布は非ターゲット(「その他」)クラスに大きく偏っており、(2)NNの出力層にはソフトマックスアクティベーションがあると想定されています。

0 投票する
1 に答える
2668 参照

pycuda - pycuda 対 theano 対 pylearn2

私は現在、機械学習アルゴリズムのパフォーマンスを向上させるために、GPU を使用したプログラミングを学習しています。最初に、純粋な c で cuda のプログラミングを学ぼうとしましたが、pycuda を見つけました。これは、cuda ライブラリのラッパーであり、theano と pylearn2 を見つけて少し混乱しました。

私はそれらを次のように理解しています。

  1. pycuda: cuda ライブラリの python ラッパー
  2. theano: numpy に似ていますが、GPU と CPU に対して透過的です
  3. pylearn2: theano 上に構築され、いくつかの機械学習/深層学習モデルを実装した深層学習パッケージ

私は GPU プログラミングに慣れていないので、C/C++ 実装から学習を開始する必要がありますか、それとも pycuda から開始するか、theano から開始しても十分ですか? たとえば、GPU プログラミングを学習した後、randomForest モデルを実装したいと考えています。よろしくお願いします。

0 投票する
0 に答える
2098 参照

machine-learning - Imagenet 2011 でトレーニングされた深い畳み込み NN で精度が低くなる

Imagenet2011 データセットをダウンロードし、こちらの手順に従ってCaffe imagenet ネットワークのトレーニングを試みました。トレーニングには約 50 万枚の画像を使用し、検証には 7 万枚の画像を使用しました。

実験用に ILSVRC 2012 検証セットもダウンロードしました。

結果は次のとおりです。

ILSVRC 2012 公式検証セット: 私のネットワーク: 46% の精度、元の Caffe Imagenet ネットワーク: 56% の精度。

私の検証セット:私のネットワーク: 53% の精度、元の Caffe Imagenet ネットワーク: 80% の精度。

MY トレーニング データ (オーバーフィッティングのチェック):私のネットワーク: 99% の精度、元の Caffe Imagenet ネットワーク: 70% の精度。

トレーニングに関するヘルプとヒントをいくつかお願いしたいと思います。

  1. 新しいネットワークが過剰適合しているように感じます。同意しますか?より多くの画像を使用する必要がありますか? データ拡張を使用して、トレーニング セットのサイズを機械的に増やしますか? それともドロップアウトパラメータを変更しますか?

  2. Krizhevsky らによる論文「深層畳み込みニューラル ネットワークによる Imagenet 分類」。1 著者はトレーニングに 120 万枚の画像を使用し、トレーニング データのサイズを 2048 倍に増加させるデータ拡張2を使用したと書かれています。ただし、データ拡張 (ランダム フリップを除く) は、イメージネットのトレーニング。データ拡張は本当に必要ないのですか?

  3. ImageNet データセットの約 100 クラスにのみ関心があります。合計 100K の画像を持つ 100 クラスのみで imagenet ネットワークを (ゼロから) トレーニングするとします。元の 1.2M 画像よりもはるかに少ないですが、クラスもはるかに少なくなっています。ネットワークはオーバーフィットするでしょうか、それとも 100 のカテゴリで優れたパフォーマンスを発揮するでしょうか? それとも、100 クラスだけに別のネット アーキテクチャを使用する必要がありますか? Imagenet ネットワークをトレーニングしてから、それらの 100 クラスを使用して微調整のみを行う方がよいでしょうか?

  4. 元の 1K カテゴリの場合、(1.2M ではなく) 500K の画像しかありません。より多くの画像を含むカテゴリを使用する必要がありますか? より多くのカテゴリ (および画像) を使用するのはどうですか?

前もって感謝します!

ギル

1 Krizhevsky、Alex、Ilya Sutskever、および Geoffrey E. Hinton。「深い畳み込みニューラル ネットワークによる Imagenet 分類」神経情報処理システムの進歩。2012年。</p>

2「データ拡張の最初の形式は、画像の平行移動と水平方向の反射を生成することです。これを行うには、256x256 の画像からランダムな 224 x 224 パッチ (およびそれらの水平方向の反射) を抽出し、これらの抽出されたパッチでネットワークをトレーニングします4。これにより、サイズが大きくなります。結果として得られるトレーニングの例は、もちろん相互依存性が高いですが、2048 倍の係数で設定されたトレーニング セットです。」