データサイエンス

データサイエンスの専門家、機械学習の専門家、およびこの分野に関する知識が豊富な方へ

1
Kerasのfit関数のvalidation_splitパラメーターはどのように機能しますか?
Kerasシーケンシャルモデルフィット関数の検証分割は、https://keras.io/models/sequential/に次のように文書化されています。 validation_split:0から1の間で浮動します。検証データとして使用されるトレーニングデータの割合。モデルは、トレーニングデータのこの部分を分離し、トレーニングを行わず、各エポックの終わりにこのデータの損失とモデルメトリックを評価します。検証データは、シャッフルする前に、提供されたxおよびyデータの最後のサンプルから選択されます。 最後の行に注意してください: 検証データは、シャッフルする前に、提供されたxおよびyデータの最後のサンプルから選択されます。 検証データは常に固定され、メインデータセットの下部から取得されるということですか? メインデータセットから特定の割合のデータをランダムに選択する方法はありますか?

2
GELUアクティベーションとは何ですか?
GELU(x)= xP(X≤x)=xΦ(x)として方程式を述べる GELU(Gaussian Linear Linear Unit)を使用するBERTペーパーを調べました。0.5x (1 + tanh [\ sqrt {2 /π}(x + 0.044715x ^ 3)])に 相当します。方程式を単純化し、どのように承認されたかを説明してください。GELU(x)=xP(X≤x)=xΦ(x).GELU(x)=xP(X≤x)=xΦ(x). GELU(x) = xP(X ≤ x) = xΦ(x).0.5x(1+tanh[2/π−−−√(x+0.044715x3)])0.5x(1+tanh[2/π(x+0.044715x3)])0.5x(1 + tanh[\sqrt{ 2/π}(x + 0.044715x^3)])

2
検証セットとテストセットの両方を使用する理由
ニューラルネットワークについて考えます。 特定のデータセットについて、トレーニング、検証、テストセットに分割します。古典的な60:20:20の比率でそれを行うと仮定し、検証セットでチェックすることによりネットワークを検証することにより、過剰適合を防ぎます。次に、パフォーマンスを確認するためにテストセットでテストする必要はありますか? ネットワークの場合、検証セットと同じように見えないデータであり、両方の数も同じであるため、テストセットのエラーは検証セットと同じではありませんか? 代わりに、テストセットをマージしてトレーニングセットを増やし、トレーニングデータを増やしてネットワークトレーニングを改善し、検証セットを使用してオーバーフィットを防ぐことはできませんか?なぜこれをしないのですか?

3
深層学習モデルをトレーニングする際のミニバッチメモリの影響を計算する方法は?
Andrej Karphatyの次のメモに基づいて、モデルをトレーニングするためにGPUに必要なメモリ量を計算しようとしています:http ://cs231n.github.io/convolutional-networks/#computational-considerations 私のネットワークには、532,752のアクティベーションと19,072,984のパラメーター(重みとバイアス)があります。これらはすべて32ビットのfloat値であるため、それぞれが4バイトのメモリを消費します。 私の入力画像は180x50x1(幅x高さx奥行き)= 9,000 float 32値です。私は画像増強を使用しないので、その他のメモリはミニバッチサイズにのみ関連すると思います。128個の画像のミニバッチサイズを使用しています。 Andrejの推奨に基づいて、次のメモリサイズを取得します。 アクティベーション: 532,752 * 4 /(1024 ^ 2)= 2.03 MB パラメーター: 19,072,984 * 4 /(1024 ^ 2)* 3 = 218.27 MB その他: 128 * 9,000 * 4 /(1024 ^ 2)= 4.39 MB したがって、このネットワークをトレーニングするための合計メモリは224,69 MBになります。 TensorFlowを使用していますが、何かが足りないと思います。私はまだトレーニングを実行していませんが、(過去の経験に基づいて)使用中のメモリが計算した値よりもはるかに大きいことを確信しています。 ミニバッチの各画像について、TensorFlowが勾配を保持して、単一の重み/バイアス更新ステップで後で正規化できる場合、メモリは別の532,752 * 128の値を考慮する必要があると思います(各画像の勾配ミニバッチ)。その場合、128個のイメージ/ミニバッチでこのモデルをトレーニングするには、260.13 MBがさらに必要になります。 ディープラーニングモデルをトレーニングするためのメモリに関する考慮事項を理解するのに役立ちますか?上記の考慮事項は正しいですか?

1
ディープニューラルネットワーク-ReLUによる逆伝播
ReLUで逆伝播を導き出すのに多少の困難があり、いくつかの作業を行いましたが、正しい軌道に乗っているかどうかはわかりません。 コスト関数:ここで、は実数値で、は予測値です。また、 > 0は常に仮定します。 Y X12(y− y^)212(y−y^)2\frac{1}{2}(y-\hat y)^2yyyy^y^\hat yバツバツx 1層ReLU、1番目の層の重みはw1w1w_1 dCdw1= dCdRdRdw1dCdw1=dCdRdRdw1\frac{dC}{dw_1}=\frac{dC}{dR}\frac{dR}{dw_1} dCw1= (y−R e L U(w1x ))(x )dCw1=(y−ReLうん(w1バツ))(バツ)\frac{dC}{w_1}=(y-ReLU(w_1x))(x) 2層の番目の層の重みはで、2番目の層は、1番目の層を更新したかったw2w2w_2w1w1w_1w2w2w_2 dCdw2=dCdRdRdw2dCdw2=dCdRdRdw2\frac{dC}{dw_2}=\frac{dC}{dR}\frac{dR}{dw_2} dCw2= (y− R e LU(w1∗ R e LU(w2x ))(w1x )dCw2=(y−ReLうん(w1∗ReLうん(w2バツ))(w1バツ)\frac{dC}{w_2}=(y-ReLU(w_1*ReLU(w_2x))(w_1x) 以降R e L U(w1∗ R e LU(w2x ))= w1w2バツReLうん(w1∗ReLうん(w2バツ))=w1w2バツReLU(w_1*ReLU(w_2x))=w_1w_2x 3層ReLU、1番目の層の重みは番目の層および3番目の層w3w3w_3w2w2w_2w1w1w_1 dCdw3= dCdRdRdw3dCdw3=dCdRdRdw3\frac{dC}{dw_3}=\frac{dC}{dR}\frac{dR}{dw_3} dCw3= (y− R e L U(w1* R …

4
tfrecordファイルをシャードに分割する利点は何ですか?
私はTensorflowで音声認識に取り組んでおり、LSTM NNを大規模なウェーブデータセットでトレーニングする予定です。パフォーマンスが向上するため、tfrecordsを使用する予定です。tfrecordsファイルが断片に分割されるインターネット(例:Inception)にはいくつかの例があります。私の質問は、tfrecordsファイルをシャードに入れることの利点は何ですか?この分割によりパフォーマンスが向上しますか?

5
機械学習で疎データと密データを結合してパフォーマンスを改善する
予測可能なスパースな特徴があり、また予測的ないくつかの濃い特徴があります。これらの機能を組み合わせて、分類器の全体的なパフォーマンスを改善する必要があります。 今、これらを一緒にしようとすると、密な特徴が疎な特徴よりも支配する傾向があるため、密な特徴のみのモデルと比較してAUCが1%しか改善されません。 誰かが同様の問題に遭遇しましたか?入力を本当に感謝します。私はすでに多くの異なる分類器、分類器の組み合わせ、特徴変換、異なるアルゴリズムでの処理を試しました。 助けてくれてありがとう。 編集: 私はすでにコメントに記載されている提案を試しました。私が観察したのは、データのほぼ45%でスパースフィーチャが非常によく機能し、スパースフィーチャのみで約0.9のAUCが得られることですが、残りのものでは約0.75のAUCで密なフィーチャが良好に機能します。これらのデータセットを分離しようとしましたが、AUCが0.6になるため、モデルを単純にトレーニングして使用する機能を決定することはできません。 コードスニペットに関して、私は非常に多くのことを試しましたので、何を正確に共有すべきかわかりません:(

2
テストデータにも正規化を適用する必要がありますか?
著者識別問題に関するプロジェクトを行っています。データのトレーニングにtf-idf正規化を適用し、そのデータでsvmをトレーニングしました。 分類子を使用する場合、テストデータも正規化する必要があります。正規化の基本的な目的は、学習中に、学習アルゴリズムがより重要な機能により重点を置くようにすることだと感じています。そのため、トレーニングが完了すると、どの機能が重要であり、どれが重要ではないかをすでに知っています。正規化をテストデータにも適用する必要はありますか? この分野は初めてです。質問が愚かに見える場合は無視してください?


3
時系列での異常検出に適したパッケージを探しています
時系列の異常検出に使用できる包括的なオープンソースパッケージ(できればpythonまたはR)はありますか? scikit-learnには1つのクラスのSVMパッケージがありますが、時系列データ用ではありません。たとえば、異常検出にベイジアンネットワークを使用する、より洗練されたパッケージを探しています。


9
PydotPlus内でインポートしたときにGraphVizが機能しない( `GraphVizの実行可能ファイルが見つかりません`)
私はこれらのパッケージをかなり長い間動作させるように努めてきましたが、成功しませんでした。基本的にエラーは: GraphViz's Executables not found 編集:私はlog元々エラーのある端末を投稿していませんでした。私はUbuntu今使用しているので、過去に取得したものとまったく同じエラーを再現することはできません(1年前、これまでははるかに遠い...)。ただし、現在の設定で同様のエラーが発生しています。で仮想環境を使用しているときでもpipenv。エラーは、@张乾元の回答に記載されている行に起因するようです: Traceback (most recent call last): File "example.py", line 49, in <module> Image(graph.create_png()) File "/home/philippe/.local/lib/python3.6/site-packages/pydotplus/graphviz.py", line 1797, in <lambda> lambda f=frmt, prog=self.prog: self.create(format=f, prog=prog) File "/home/philippe/.local/lib/python3.6/site-packages/pydotplus/graphviz.py", line 1960, in create 'GraphViz\'s executables not found') pydotplus.graphviz.InvocationException: GraphViz's executables not found 私がインストールしようとしたGraphViz2種類の方法を経由して:経由pip install graphvizとを通じて.msiパッケージ(ともインストールしようpydot、pydotplusとgraphviz多くの異なる順序で)。 私が実行しようとしているコードは、単にIris Datasetのdot-to-pngコンバーターです。 from …
17 python 

2
ワークフローのどこで欠落データを処理する必要がありますか?
私は(Pythonの使用、私の場合には、機械学習モデルを作成するためのワークフローを構築していますpandasし、sklearn非常に大規模なデータベースから引き出されたデータからパッケージ)(ここでは、にVerticaは、SQLとの方法によりpyodbc)、そのプロセスにおける重要なステップが含ま帰行方不明予測子の値。これは、単一の分析プラットフォームまたは統計プラットフォーム(Python、R、Stataなど)内では簡単ですが、マルチプラットフォームワークフローでこのステップを見つけるのに最適な場所が知りたいです。 sklearn.preprocessing.Imputerクラスで、pandas.DataFrame.fillnaメソッドを使用して、または手動で(使用される代入メソッドの複雑さに応じて)Pythonでこれを行うのは十分簡単です。しかし、私はこれを何億ものレコードの数十または数百の列に使用するので、事前にSQLを介して直接これを行うより効率的な方法があるのだろうかと思います。Verticaのような分散プラットフォームでこれを行う潜在的な効率は別として、これはテーブルの「完全な」バージョンを構築するための自動化されたパイプラインを作成できるという追加の利点があるので、新しいセットを記入する必要はありませんモデルを実行するたびに、ゼロから欠損値を取得します。 私はこれについて多くのガイダンスを見つけることができませんでしたが、私たちはできると思います: 不完全な列ごとに代替値の表(全体またはグループごとの平均/中央値/モードなど)を作成します 代替値テーブルを元のテーブルと結合して、各行と不完全な列に代替値を割り当てます 一連のcaseステートメントを使用して、使用可能な場合は元の値を取得し、それ以外の場合は代替値を取得します これはVertica / SQLで行うのが合理的なことですか、それともわずらわずPythonで処理するだけの正当な理由がありますか?後者の場合、スケルンではなくパンダでこれを行うための強力なケースがありますか、その逆ですか?ありがとう!

5
TensorFlowはkerasにさらに何を提供しますか?
kerasはTensorFlowの高レベルのインターフェイスとして機能することを知っています。 しかし、kerasは独自に多くの機能(データ入力、モデル作成、トレーニング、評価)を実行できるように思えます。 さらに、TensorFlowの機能の一部は、kerasに直接移植できます(たとえば、kerasでtfメトリックまたは損失関数を使用することができます)。 私の質問は、TensorFlowはケラでは再現できないものを提供していますか?
16 keras  tensorflow 

3
深層学習における重みとバイアスとは何ですか?
Tensorflow Webサイトから機械学習を学び始めています。ディープラーニングプログラムがたどる流れについて、非常に初歩的な理解を身に付けました(この方法は、本や大きな記事を読む代わりに、速く学ぶことができます)。 私が遭遇したいくつかの紛らわしいことがありますが、そのうちの2つは次のとおりです。 バイアス 重量 tensorflowウェブサイトに関するMNISTチュートリアルでは、画像内の特定のパターンの存在の証拠を見つけるためにバイアスと重みが必要であると述べています。私が理解できないのは、BiasとWeightの値がどこでどのように決定されるかです。 これらの値を提供する必要がありますか、それともTensorFlowライブラリはトレーニングデータセットに基づいてこれらの値を自動的に計算しますか? また、ディープラーニングで私のペースを加速する方法についていくつかの提案を提供できれば、それは素晴らしいことです! Tensorflow初心者向けチュートリアル

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.