質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

2回答

1469閲覧

テーブル系コンペのために機械学習用PCを作って高速化させたい

退会済みユーザー

退会済みユーザー

総合スコア0

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

1クリップ

投稿2019/07/14 16:20

私は以下のスペックの MacBook pro で kaggle のテーブルコンペに挑戦しています。

  • メモリ : 16GB
  • CPU : 2.7 GHz Intel Core i7

しかし、学習が丸一日たっても終わらないなど PC スペックによるハンデを痛感しており、自作PCを組んで高速化させようと考えております。とはいえ、テーブル系ではニューラルネットを組むことがなく、GPUによる恩恵はほとんどないと思っています。(sklernはGPUをサポートしてない。そもそも、最近のテーブルコンペで扱うようなアルゴリズムはブースティングがほとんどで並列化による高速化が見込めない。)
そのため、どこのPCパーツにお金をかければ効率良いアルゴリズムの高速化ができるかご教授いただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

前処理とか特徴量エンジニアリングとかが大切なのは他の回答者の方と同意見なのですが、その上で質問文のような前提に立つのであればマシンをどうするのか、という観点から回答すると。

  • CPU。アルゴリズムが並列計算をサポートしていなくても、どうせパラメータチューニングを並列で回すことになります。今買うならRyzenの12コアのやつとかかなぁ。
  • メモリ。pythonの並列はプロセス並列を使わされることが多いので、ないと困る。でも16GBだと苦しいけど32GBでたいてい足りると思う(足りなくなったときに買いに行ってもいいし)。あとは規格にも気を配りましょう(けっきょくメモリバウンドになるので、高速なメモリを使うに越したことはない)

あとストレージとかは適当に必要なものを。グラボは必要なくてもミドルレンジくらいのを積んでおいた方が、あとあとDNNをやりたくなったとき便利でしょう。

投稿2019/07/14 17:21

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/07/15 08:27

学習前のR&Dが大切なことは痛感しております。ですが、やはりそれでも時間がかかるなという実感があり質問させていただきました。 正直、クラウド課金も検討しているのですが、インフラの知識をつけるために自作PCを組んでも損はない、自作PC組んでドヤ顔したいなどの理由があり自作に踏切ました。 マシンの知識について参考になりました。ありがとうございます。
guest

0

結論から言えば、そりゃお金をかければ早くなるから、本当に高速化させたかったらめちゃくちゃ高スペックな計算機を借りるなり作るなりしてジョブ投げてくださいと言えばおしまいなのですが...汗

私は生粋のKagglerではないですが、前に取り組んでいた知り合いはアルゴリズムを高速化させることよりもうまくフィルタリングなどをして、どうやって良い特徴量を探すかに尽力してました。
私も様々なところで統計・機械学習を用いた解析などをしていますが、結局処理を回す前の工夫で9割決まると思います(特にNLPとかNLPとかNLPとか)。

それなりの期間データ分析をさせて頂いておりますが、結局データ分析はすごいアルゴリズムを作ることも重要ですが、翻訳や対話が重要だと痛感しています。例えば、今まで手動だったものを自動で判別するときに、今まで担当の方がどのように選別していたか(どの情報を重視していたか)、フローはどうなっているのか...で、それなりのアルゴリズムが完成したらそれを実際にリリース設計する時にどうシステムを構築して、リリースできたらどうやって効果検証するかなどなど...。結局、分析って対話だと思うんです。

長文になってご迷惑をお掛けしますが、個人としては前処理などそのほかで工夫できる部分を頑張って欲しいと思いました。確か、Kaggleでの処理時間の制限はテーブルなら2時間も絶対なかったはずなので...多分、分析する際の余計な情報量が多いのではないでしょうか。

余談)
ニューラルネットは使わないと仰ってましたが、私の友人は思いっきりディープ使ってたと思います。あと、私の愛用パソコンはメモリ4GBでHDD256GBの低スペックMacです。ローカルで数十万行のデータを何も考えずkernel Kmeansとかしたら一瞬でメモリが吹き飛びます。質問者さんのMacは十分なスペックだと思います。

投稿2019/07/14 17:12

bamboo-nova

総合スコア1408

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/07/15 08:30

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問