データサイエンス

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

2
サポートベクターマシンはまだニッチで「最先端」と見なされていますか?
この質問は、別の質問で私が見たコメントへの回答です。 コメントはCourseraの機械学習コースシラバスに関するもので、「SVMは今ではあまり使用されていません」と書かれています。 関連する講義を自分で終えたばかりであり、SVMの理解は、それらが分類のための堅牢で効率的な学習アルゴリズムであり、カーネルを使用する場合、おそらく10から1000までの機能をカバーする「ニッチ​​」トレーニングサンプルの数は、おそらく100〜10,000です。トレーニングサンプルの制限は、コアアルゴリズムが、元の特徴の数ではなく、トレーニングサンプルの数に基づく次元を持つ正方行列から生成された結果の最適化を中心に展開するためです。 それで、私が見たコメントは、コースが行われてからの実際の変更について言及しています。もしそうなら、その変更は何ですか:SVMの「スイートスポット」をカバーする新しいアルゴリズム、SVMの計算上の利点を意味するより良いCPU ?それとも、コメント者の意見や個人的な経験でしょうか? たとえば、「サポートベクターマシンは時代遅れです」などの検索を試みましたが、他の何かを支持してドロップされたことを示唆するものは何も見つかりませんでした。 そしてウィキペディアにはこれがあります:http : //en.wikipedia.org/wiki/Support_vector_machine#Issues。。。主な問題点は、モデルの解釈の難しさのようです。ブラックボックス予測エンジンではSVMは問題ありませんが、洞察の生成にはあまり適していません。私はそれを大きな問題として見ていません。仕事に適したツールを選ぶ際に考慮すべきもう一つの小さなことです(トレーニングデータや学習タスクなどの性質とともに)。


5
モデルが適切でないのはいつですか?
ロジックは、モデルを適切に適合させないことで、一般化する能力が向上するとしばしば述べています。とはいえ、明らかに、ある時点でモデルを不十分に適合させると、データの複雑さに関係なくモデルが悪化します。 モデルが適切なバランスを取り、モデル化しようとするデータを十分に満たしていないことをどのように確認しますか? 注:これは、「なぜオーバーフィットが悪いのか」という私の質問へのフォローアップです。

4
1x1畳み込みは、完全に接続されたレイヤーとどのように同じですか?
最近、1x1畳み込みに関するYan LeCunsのコメントを読みました。 畳み込みネットでは、「完全に接続されたレイヤー」などはありません。1x1畳み込みカーネルと完全な接続テーブルを持つ畳み込み層のみがあります。 ConvNetsが固定サイズの入力を必要としないことは、あまりにもまれな事実です。単一の出力ベクトル(空間範囲なし)を生成する入力でそれらをトレーニングし、それらを大きな画像に適用できます。単一の出力ベクトルの代わりに、出力ベクトルの空間マップを取得します。各ベクトルは、入力上の異なる位置にある入力ウィンドウを認識します。 そのシナリオでは、「完全に接続されたレイヤー」は実際には1x1の畳み込みとして機能します。 これの簡単な例を見てみたい。 例 完全に接続されたネットワークがあると仮定します。入力レイヤーと出力レイヤーのみがあります。入力層には3つのノードがあり、出力層には2つのノードがあります。このネットワークが有する3⋅2=63⋅2=63 \cdot 2 = 6のパラメータを。さらに具体的にするために、出力レイヤーとウェイトマトリックスにReLUアクティベーション関数があるとしましょう。 Wb=(021315)∈R2×3=(813)∈R2W=(011235)∈R2×3b=(813)∈R2 \begin{align} W &= \begin{pmatrix} 0 & 1 & 1\\ 2 & 3 & 5\\ \end{pmatrix} \in \mathbb{R}^{2 \times 3}\\ b &= \begin{pmatrix}8\\ 13\end{pmatrix} \in \mathbb{R}^2 \end{align} ように、ネットワークは、f(x)=ReLU(W⋅x+b)f(x)=ReLU(W⋅x+b)f(x) = ReLU(W \cdot x + b)とx∈R3x∈R3x \in \mathbb{R}^3。 たたみ込み層はどのように見える必要がありますか?LeCunは「フル接続テーブル」とはどういう意味ですか? 同等のCNNを取得するには、まったく同じ数のパラメーターが必要です。上記からMLPが有する2⋅3+2=82⋅3+2=82 …

3
RNN対CNNの高レベル
リカレントニューラルネットワーク(RNN)とその種類、畳み込みニューラルネットワーク(CNN)とその種類について考えてきました。 これらの2つの点は言うに公平でしょうか。 CNNを使用して、コンポーネント(画像など)をサブコンポーネント(画像内のオブジェクトの輪郭など、画像内のオブジェクトなど)に分割します。 RNNを使用して、サブコンポーネントの組み合わせ(画像キャプション、テキスト生成、言語翻訳など)を作成します。 これらの記述の不正確さを指摘したい方がいれば幸いです。ここでの私の目標は、CNNとRNNの使用に関するより明確な基盤を得ることです。

8
インターネット企業がデータサイエンティストの仕事にJava / Pythonを好むのはなぜですか?
Python / Javaの経験を求め、Rを無視するデータサイエンティストの職務記述書を何度も参照します。以下は、linkinを通じて応募した会社のチーフデータサイエンティストから受け取った個人メールです。 X、関心を示してくれてありがとう。優れた分析スキルがあります。しかし、私たちはインターネット/モバイル組織であり、すべてがオンラインであるため、すべてのデータサイエンティストはJava / Pythonの優れたプログラミングスキルを持っている必要があります。 チーフデータサイエンティストの決定を尊重しますが、RができないPythonが実行できるタスクについて明確に把握することはできません。誰でも手入れを気にかけることができますか?私は実際にPython / Javaをもっと学びたいと思っています。 編集:Quoraで興味深い議論を見つけました。 Pythonがデータサイエンティストにとって最適な言語であるのはなぜですか? Edit2:機械学習のための言語とライブラリに関するUdacityのブログ

2
均一な初期化で通常の初期化(HeまたはGlorot)を使用する場合 また、バッチ正規化の影響は何ですか?
Residual Network(ResNet)により、彼は通常の初期化が一般的になったことを知っていました。ResNetでは、He通常の初期化が使用されますが、最初の層はHeの初期化を使用します。 ResNetペーパーと「Delving Deep into Rectifiers」ペーパー(He初期化ペーパー)を調べましたが、通常の初期化と均一な初期化についての言及はありません。 また: バッチ正規化により、はるかに高い学習率を使用でき、初期化にあまり注意を払う必要がなくなります。 Batch Normalization論文の要約では、Batch Normalizationを使用すると、初期化にあまり注意を払わなくて済むと言われています。 ResNet自体は、通常の初期化と均一な初期化のどちらを使用するか(均一な初期化ではなく)を常に考慮しています。 そう: 均一な初期化ではなく、(HeまたはGlorot)正規分布初期化を使用する場合 バッチ正規化による正規分布初期化効果とは何ですか? 脇のメモ: Batch Normalizationで通常のinitを使用することは韻を踏んでいますが、この事実を裏付ける論文は見つかりませんでした。 Resnetは、Glorot initよりもHe initを使用することを知っていました。なぜなら、彼はinitが深いネットワークでより良い結果をもたらすからです。 Glorot init対He initについて理解しました。 私の質問は、Normal vs Uniform initについてです。

8
地理的位置座標のクラスタリング(緯度、経度のペア)
位置情報クラスタリングの正しいアプローチとクラスタリングアルゴリズムは何ですか? 次のコードを使用して、地理位置座標をクラスター化しています。 import numpy as np import matplotlib.pyplot as plt from scipy.cluster.vq import kmeans2, whiten coordinates= np.array([ [lat, long], [lat, long], ... [lat, long] ]) x, y = kmeans2(whiten(coordinates), 3, iter = 20) plt.scatter(coordinates[:,0], coordinates[:,1], c=y); plt.show() 距離関数としてHaversine式ではなくユークリッド距離を使用するため、地理位置情報クラスタリングにK-meansを使用するのは正しいですか?

9
Pythonを使用した再現可能なデータサイエンスのためのツールとプロトコル
Pythonを使用したデータサイエンスプロジェクトに取り組んでいます。プロジェクトにはいくつかの段階があります。各ステージは、データセットの取得、Pythonスクリプト、補助データ、構成およびパラメーターの使用、および別のデータセットの作成で構成されます。コードをgitに保存し、その部分をカバーします。私は聞いてみたい: データバージョン管理のためのツール。 ステージと実験を再現できるツール。 そのようなプロジェクトのプロトコルおよび推奨ディレクトリ構造。 自動化されたビルド/実行ツール。

3
ディープニューラルネットでアンダーフィッティングと戦う方法
人工ニューラルネットワーク(NN)で始めたとき、私は主な問題として過剰適合と戦わなければならないと思いました。しかし実際には、NNに20%のエラー率の障壁を通過させることさえできません。ランダムフォレストでスコアを打つことさえできません! 私は、NNがデータの傾向を把握し始めるために何をすべきかについて、非常に一般的なまたはそれほど一般的でないアドバイスを求めています。 NNの実装には、MNISTデータセットの分類に優れた(エラー率5%未満)チュートリアルからのコードで Theano Stacked Auto Encoderを使用します。これは多層パーセプトロンで、上部にソフトマックス層があり、隠された各層は後でオートエンコーダーとして事前トレーニングされます(チュートリアル 8章で詳しく説明します)。最大50個の入力機能と最大10個の出力クラスがあります。NNにはシグモイドニューロンがあり、すべてのデータは[0,1]に正規化されます。さまざまな構成を試しました:隠れ層とその中のニューロンの数(100-> 100-> 100、60-> 60-> 60、60-> 30-> 15など)、異なる学習と事前訓練料金など そして、私が得ることができる最高のものは、検証セットで20%のエラー率とテストセットで40%のエラー率です。 一方、(scikit-learnから)Random Forestを使用しようとすると、検証セットで12%、テストセットで25%(!)のエラー率が簡単に得られます。 事前トレーニングを受けた私のディープNNの動作が非常に悪いのはどうしてですか?何を試せばいいですか?

4
潜在ディリクレ配分対階層ディリクレ過程
潜在ディリクレ割り当て(LDA)と階層ディリクレプロセス(HDP)は、両方ともトピックモデリングプロセスです。主な違いは、LDAではトピックの数を指定する必要がありますが、HDPでは指定しないことです。どうしてこんなことに?そして、両方のトピックモデリング方法の違い、長所、短所は何ですか?
49 nlp  topic-model  lda 

8
機械学習で過剰適合が悪いのはなぜですか?
ロジックは、モデルを過剰適合させると、一般化する能力が制限されることをしばしば述べていますが、これは、過剰適合は、特定の複雑さの後にモデルの改善を止めることを意味するにすぎません。過剰適合は、データの複雑さに関係なく、モデルを悪化させますか?もしそうなら、なぜそうなのですか? 関連:上記の質問「モデルはいつ適合しませんか?」のフォローアップ

4
ニューラルネットワーク:使用するコスト関数?
主にニューラルネットワークを使用した実験にTensorFlowを使用しています。かなりの実験(XOR-Problem、MNIST、いくつかのリグレッションなど)を行っていますが、全体的に初心者と見なされる可能性があるため、特定の問題に対して「正しい」コスト関数を選択するのに苦労しています。 TensorFlowに来る前に、PythonとNumPyを使用して、完全に接続されたMLPとリカレントネットワークをいくつかコーディングしましたが、ほとんどの場合、単純な2乗誤差と単純な勾配不足で十分な問題がありました。 ただし、TensorFlowはカスタムコスト関数を作成するだけでなく、かなり多くのコスト関数を提供するので、ニューラルネットワークのコスト関数専用のチュートリアルがあるかどうか知りたいのですが?(私はすでに公式のTensorFlowチュートリアルの半分のように実行しましたが、特定のコスト関数または学習者が特定の問題に使用される理由を実際には説明していません-少なくとも初心者には) いくつか例を挙げます: cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_output, y_train)) 1つのベクトルの合計が1になるように、両方の入力にsoftmax関数を適用すると思いますが、ロジットとのクロスエントロピーは正確には何ですか?私はそれが値を合計し、クロスエントロピーを計算すると思った...だからメトリック測定?!出力を正規化し、合計して二乗誤差を取ると、これは非常に同じではないでしょうか?さらに、なぜこれがMNISTなどに使用されるのですか(またはさらに難しい問題)?私は10または多分1000のクラスのように分類したい場合は、に関する情報破棄完全に値を合計しません。これは、実際の出力はクラスでしたの? cost = tf.nn.l2_loss(vector) これは何のため?l2の損失はほぼ二乗誤差であると考えましたが、TensorFlowのAPIは、入力が1つのテンソルに過ぎないことを示しています。まったく考えがつかないのですか?! 加えて、クロスエントロピーについてこれをかなり頻繁に見ました: cross_entropy = -tf.reduce_sum(y_train * tf.log(y_output)) ...しかし、なぜこれが使用されるのですか?数学的にクロスエントロピーの損失ではありません: -1/n * sum(y_train * log(y_output) + (1 - y_train) * log(1 - y_output)) (1 - y_train) * log(1 - y_output)ほとんどのTensorFlowの例の一部はどこにありますか?不足していませんか? 回答:この質問は非常に開かれていることは知っていますが、すべての問題/コスト関数が詳細にリストされている10ページほどになるとは思いません。どのコスト関数を使用するかについての簡単な要約(一般的にもTensorFlowでも、私にとっては重要ではありません)と、このトピックに関する説明が必要です。および/または初心者向けのソース;)

9
ベイジアンネットワークがニューラルネットワークよりも優れているドメインはありますか?
ニューラルネットワークは、コンピュータービジョンタスクで最高の結果を得ます(MNIST、ILSVRC、Kaggle Galaxy Challengeを参照)。コンピュータービジョンの他のすべてのアプローチよりも優れているようです。しかし、他のタスクもあります: Kaggle分子活動チャレンジ 回帰:Kaggle Rain予測、2位 把握して持ち上げる2位も3位 -脳波記録から手の動きを特定する ASR(自動音声認識)と機械翻訳についてはあまりよくわかりませんが、(リカレント)ニューラルネットワーク(他のアプローチよりも優れている)も聞いたことがあると思います。 現在、ベイジアンネットワークについて学んでいますが、これらのモデルは通常どのような場合に適用されるのでしょうか。だから私の質問は: 最先端技術がベイジアンネットワークまたは少なくとも非常に類似したモデルである挑戦/(Kaggle)競争はありますか? (サイドノート:私も見てきた決定木、2、3、4、5、6、7、いくつかの最近のKaggleの挑戦で勝利を)

9
R言語はビッグデータに適していますか
Rには、データ分析(JAGS、BUGS、ARULESなど)を目的とした多くのライブラリがあり、J.Krusche、Doing Bayesian Data Analysisなどの一般的な教科書で言及されています。B.ランツ、「Rによる機械学習」。 データセットをビッグデータと見なすための5TBのガイドラインを見てきました。 私の質問は次のとおりです。Rはビッグデータの問題で一般的に見られるデータ量に適していますか?このサイズのデータ​​セットでRを使用するときに使用する戦略はありますか?
48 bigdata  r 

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