最初のステップ:目標/理由を定義する
これが主な要因だと思います。次のうちどれがあなたにぴったりですか?(1つだけ選択してください)
- 楽しくてやりがいのあるコーディングタスクを楽しみたい
- 非常に優れたチェスエンジンを作りたい
- チェスエンジンの仕組みについて学びたい
- コーディングスキルを習得/実践したい
- コンピュータサイエンスの概念/理論(機械学習など)を学習/実装したい
- (その他)
IMO 2以外の場合は、「コインを投げる」ことは問題ありません。他のすべてについては、MLを選択するかハードコーディングを選択するかにかかわらず、目標を達成できます。ただし、選択するための選択肢の比較が必要な場合があります。
ハードコーディングの場合
(人間として)チェスをすることは論理的な思考を伴います。あなたとあなたの対戦相手が取ることができる可能な行動の空間を探索します。これにより、ゲーム全般を分析するための理論的枠組みを含むゲーム理論と呼ばれる分野が生まれました。
あなたが詳細に取り組み、具体的で物事について推論することを楽しむなら、これはあなたのためにうまくいくかもしれません。それに比べて、機械学習には、ファジーで不透明な「ブラックボックス」アルゴリズムが多く含まれています。何が起こっているのか正確にはわかりません。
また、機械学習ではなくハードコーディングの方法を採用すれば、「自分で設定する」のが楽になると思います。あなたが完全に理解していないコピーペーストの少ないもの。
機械学習の事例
創造物を産み、それがそれ自身の生活を引き継ぐのを見るのはエキサイティングです。ハードコーディングは精度と詳細がすべてですが、機械学習は柔軟です。いくつかのニューロンを取り除くと、結果はおそらく同様になります。
ハードコーディングとは、チェスを勉強することです。機械学習とは、作成したクリーチャーを研究することです。
もちろん、機械学習は非常にホットなトピックです。
ハードコーディングの言語選択
「他のCベースの言語」とはどういう意味かわかりません。C ++は、Cに似た唯一の主流言語です。C/ C ++の利点は、それらが高速であることです。他の言語は長年にわたって追いついてきましたが、C ++は依然としてお金を稼ぐことができます。
C ++は簡単ではありません。Rust、Golang、Swiftなどの最新のコンパイル言語から優れたパフォーマンスが得られます。しかし、JIT言語を使用する場合は、それほど悪くないはずです。すなわち、CPythonインタープリターを使用しません。IronPythonまたはJython、またはNode、またはC#またはJavaを使用します。
GPUプログラミングには別のアプローチが必要であり、この時点でこれに反対することをお勧めします。
機械学習の言語選択
TensorFlowの問題は、非常に低レベルであるということです。機械学習専用のインターフェイスというよりも、数値演算アルゴリズム(並列ハードウェアに組み込むことができる)の作成についてです。
もちろん、それは素晴らしい学習体験になる可能性があります!そして、確かに今日は非常に学ぶ価値があります。ただし、KerasまたはPyTorchから始めることをお勧めします。