データサイエンス

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


1
ケラスを使用したマルチクラス分類で文字列ラベルを処理するにはどうすればよいですか?
私は機械学習とケラスの初心者であり、現在ケラスを使用してマルチクラスの画像分類問題に取り組んでいます。入力はタグ付き画像です。いくつかの前処理の後、トレーニングデータはPythonリストで次のように表されます。 [["dog", "path/to/dog/imageX.jpg"],["cat", "path/to/cat/imageX.jpg"], ["bird", "path/to/cat/imageX.jpg"]] 「犬」、「猫」、および「鳥」はクラスラベルです。この問題にはワンホットエンコーディングを使用する必要があると思いますが、これらの文字列ラベルの処理方法についてはあまり明確ではありません。私はこの方法でsklearnのLabelEncoder()を試しました: encoder = LabelEncoder() trafomed_label = encoder.fit_transform(["dog", "cat", "bird"]) print(trafomed_label) そして、出力は[2 1 0]であり、これは[[1,0,0]、[0,1,0]、[0,0,1]]のような気まぐれな出力とは異なります。いくつかのコーディングで行うことができますが、それに対処するための「標準」または「伝統的な」方法があるかどうか知りたいですか?


3
ニューラルネットワークをトレーニングするためのオプティマイザーを選択するためのガイドライン
私はしばらくの間ニューラルネットワークを使用しています。ただし、私が常に苦労しているのは、ネットワークをトレーニングするためのオプティマイザーの選択です(backpropを使用)。私が通常行うことは、1つ(例えば、標準SGD)から始めて、それから他のものをほぼランダムに試すことです。良いオプティマイザーを見つけるためのより良い(そしてそれほどランダムではない)アプローチがあるかどうか、例えばこのリストから疑問に思っていました: SGD(勢いのあるなしにかかわらず) アダデルタ AdaGrad RMSProp アダム 特に、訓練データに何らかの性質がある場合、たとえば、それがまばらであることを考えて、他のものよりも一つを選択する理論的な正当性があるかどうかに興味があります。また、特定のドメインでは、一部のオプティマイザが他のオプティマイザよりもうまく機能することを想像します。たとえば、畳み込みネットワークとフィードフォワードネットワーク、または分類と回帰をトレーニングする場合です。 オプティマイザーの選択方法に関する戦略や直感を開発している方がいれば、それを聞いてみたいと思います。さらに、あるものを別のものよりも選択するための理論的な正当性を提供する作業があれば、それはさらに良いでしょう。

2
Keras Convolution2d()で使用されるデフォルトのフィルターは何ですか?
私はニューラルネットワークにかなり慣れていますが、線形代数と畳み込みの数学をかなりよく理解しています。 MNISTデータを使用してKeras畳み込みNNをトレーニングして数字を認識するために、ネット上のさまざまな場所で見つけたサンプルコードを理解しようとしています。私の期待は、畳み込み層を作成するときに、入力に適用するフィルターまたはフィルターのセットを指定する必要があることです。しかし、私が見つけた3つのサンプルはすべて、次のような畳み込み層を作成します。 model.add(Convolution2D(nb_filter = 32, nb_row = 3, nb_col = 3, border_mode='valid', input_shape=input_shape)) これは、CNNによって処理された画像に合計32個の3x3フィルターを適用しているようです。しかし、それらのフィルターは何ですか?それらを数学的にどのように説明しますか?kerasのドキュメントは役に立ちません。 前もって感謝します、
18 convnet  keras 

4
Kerasを使用したLSTM-RNNのハイパーパラメーター検索(Python)
Keras RNNチュートリアルから:「RNNには注意が必要です。バッチサイズの選択が重要であり、損失とオプティマイザーの選択が重要です。いくつかの構成は収束しません。」 したがって、これはKeras上のLSTM-RNNのハイパーパラメーターのチューニングに関するより一般的な質問です。RNNに最適なパラメーターを見つけるためのアプローチについて知りたいです。 KerasのGithubでIMDBの例から始めました。 メインモデルは次のようになります。 (X_train, y_train), (X_test, y_test) = imdb.load_data(nb_words=max_features, test_split=0.2) max_features = 20000 maxlen = 100 # cut texts after this number of words (among top max_features most common words) batch_size = 32 model = Sequential() model.add(Embedding(max_features, 128, input_length=maxlen)) model.add(LSTM(128)) model.add(Dropout(0.5)) model.add(Dense(1)) model.add(Activation('sigmoid')) # try using different optimizers …

7
以前の時系列データに基づいてトラフィックを予測するにはどうすればよいですか?
小売店があり、毎分何人の人が私の店に入るかを測定し、そのデータにタイムスタンプを付ける方法がある場合、どうすれば将来の足のトラフィックを予測できますか? 機械学習アルゴリズムを検討しましたが、どのアルゴリズムを使用すべきかわかりません。私のテストデータでは、KNNのように(賢明なパラメーターと距離関数であると思う)他の試みと比較して、年ごとの傾向がより正確です。 これは、時系列データを扱う金融モデリングに似ているようです。何か案は?

3
Pythonでの画像の特徴抽出
私のクラスでは、2つの分類器を使用してアプリケーションを作成し、画像内のオブジェクトがポルフィラ門(seasponge)または他のオブジェクトの例であるかどうかを判断する必要があります。 しかし、Pythonでの特徴抽出技術に関しては、完全に失われています。私のアドバイザーは、クラスでカバーされていない画像を使用するように私を説得しました。 誰もが意味のある文書や読書を検討したり、検討する方法を提案したりできますか?

1
NLP-「なぜ」ストップワードなのですか?
トピックモデリングを実行する前にストップワードを削除しようとしています。いくつかの否定語(ない、決して、決してない、など)は通常ストップワードと見なされることに気付きました。たとえば、NLTK、spacy、sklearnのストップワードリストには「not」が含まれています。ただし、これらの文から「not」を削除すると、重要な意味が失われ、トピックモデリングやセンチメント分析にとって正確ではなくなります。 1). StackOverflow is helpful => StackOverflow helpful 2). StackOverflow is not helpful => StackOverflow helpful これらの否定語が通常ストップワードであると考えられる理由を説明してください。

4
膨大なデータのPythonでのt-sne実装の速度を改善する
それぞれ200次元のほぼ100万のベクトルで次元削減を行いたい(doc2vec)。モジュールのTSNE実装を使用していsklearn.manifoldますが、主な問題は時間の複雑さです。でもmethod = barnes_hut、計算速度はまだ遅いです。メモリー不足になることもあります。 130G RAMを搭載した48コアプロセッサで実行しています。並列に実行する方法や、プロセスを高速化するために豊富なリソースを使用する方法はありますか。

2
深層学習における局所最小点とvs点
Andrew Ng(残念ながらもう見つけられないビデオで)が、深層学習問題における局所的最小値の理解が、高次元の空間(ディープラーニング)クリティカルポイントは、ローカルミニマムではなくサドルポイントまたはプラトーになりやすい。 「すべてのローカルミニマムがグローバルミニマムである」という仮定を議論する論文(たとえば、これ)を見てきました。これらの仮定はすべてかなり技術的ですが、私が理解していることから、それらはニューラルネットワークに構造を課し、それをある程度線形にする傾向があります。 ディープラーニング(非線形アーキテクチャを含む)では、プラトーはローカルミニマムよりも可能性が高いという有効な主張ですか?もしそうなら、その背後に(おそらく数学的な)直感がありますか? ディープラーニングとサドルポイントに特別なことはありますか?

4
ニューラルネットワークにおけるシグモイド関数の役割導関数
ニューラルネットワークにおけるシグモイド関数の微分の役割を理解しようとします。 最初に、シグモイド関数と、Pythonを使用した定義からのすべてのポイントの導関数をプロットします。この派生物の役割は正確に何ですか? import numpy as np import matplotlib.pyplot as plt def sigmoid(x): return 1 / (1 + np.exp(-x)) def derivative(x, step): return (sigmoid(x+step) - sigmoid(x)) / step x = np.linspace(-10, 10, 1000) y1 = sigmoid(x) y2 = derivative(x, 0.0000000000001) plt.plot(x, y1, label='sigmoid') plt.plot(x, y2, label='derivative') plt.legend(loc='upper left') plt.show()

2
LSTMに異なる入力配列サイズを供給する方法は?
LSTMネットワークを作成し、さまざまな入力配列サイズでフィードしたい場合、どうすれば可能ですか? たとえば、音声メッセージやテキストメッセージを別の言語で取得して翻訳したいと考えています。したがって、最初の入力は「こんにちは」かもしれませんが、2番目の入力は「元気ですか」です。LSTMさまざまな入力配列サイズを処理できるをどのように設計できますか? のKeras実装を使用していますLSTM。
18 keras  lstm 


3
mAP @ [。5:.95]という表記はどういう意味ですか?
検出に関して、1つのオブジェクトの提案が正しいかどうかを判断する一般的な方法は、Intersection over Union(IoU、IU)です。これは、提案されたオブジェクトピクセルのセットと真のオブジェクトピクセルのセットを取り、以下を計算します。BAAABBB IoU(A,B)=A∩BA∪BIoU(A,B)=A∩BA∪BIoU(A, B) = \frac{A \cap B}{A \cup B} 一般的に、IoU> 0.5はヒットであったことを意味し、それ以外の場合は失敗でした。クラスごとに、 True Positive():クラスに対して提案が行われ、実際にクラスオブジェクトがありましたc cTP(c)TP(c)TP(c)cccccc 偽陽性():提案は、クラスのために作られたが、クラスのオブジェクトがないc cFP(c)FP(c)FP(c)cccccc クラス平均精度:#T P (c )ccc#TP(c)#TP(c)+#FP(c)#TP(c)#TP(c)+#FP(c)\frac{\#TP(c)}{\#TP(c) + \#FP(c)} mAP(平均精度)=1|classes|∑c∈classes#TP(c)#TP(c)+#FP(c)1|classes|∑c∈classes#TP(c)#TP(c)+#FP(c)\frac{1}{|classes|}\sum_{c \in classes} \frac{\#TP(c)}{\#TP(c) + \#FP(c)} より良い提案が必要な場合、IoUを0.5からより高い値(完全な1.0まで)に増やします。これは、mAP @ pで表すことができます。ここで、はIoUです。p∈(0,1)p∈(0,1)p \in (0, 1) しかし、mAP@[.5:.95](このペーパーで見られるように)どういう意味ですか?

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