Перший крок: Визначте свої цілі / причини
Я думаю, що це головний фактор. Хто з них вам найбільше підходить? (Виберіть лише один )
- Ви хочете насолодитися цікавим завданням кодування
- Ви хочете створити надзвичайно хороший шаховий двигун
- Ви хочете дізнатися про те, як працюють шахові двигуни
- Ви хочете навчитися / практикувати навички кодування
- Ви хочете вивчити / впровадити поняття / теорію інформатики (наприклад, машинне навчання)
- (Інший)
ІМО добре «кинути монету» за будь-що, крім 2. Для всіх інших ви досягнете своєї мети, вибираєте ви ML або жорстке кодування. Однак ви, мабуть, хочете порівняння між варіантами, які допоможуть вам прийняти рішення.
Справа для жорсткого кодування
Гра в шахи (як людина) передбачає логічне мислення. Ви досліджуєте простір можливих дій, які ви та противник можете вчинити. Це породило поле під назвою теорія ігор, яке містить теоретичні рамки для аналізу ігор загалом.
Якщо вам подобається працювати з деталями та бути конкретним та міркувати про речі, то це може добре працювати для вас. Для порівняння, машинне навчання передбачає набагато більше алгоритмів "чорної скриньки", які нечіткі та непрозорі. Ви точно не знаєте, що відбувається.
Також я вважаю, що вам буде легше "розібратися самостійно", якщо ви будете їхати по жорсткому кодуванню, а не через машинне навчання. Менше копіювання матеріалів, які ви не повністю розумієте.
Справа для машинного навчання
Це може бути захоплюючим народити творіння і спостерігати за тим, як він бере своє життя. Хоча жорстке кодування стосується точності та деталізації, машинне навчання є гнучким. Забирайте кілька нейронів, і результат, ймовірно, буде подібним.
Жорстке кодування - це вивчення шахів. Машинне навчання - це вивчення створеної вами істоти.
А машинне навчання - це, звичайно, дуже гаряча тема.
Вибір мови для жорсткого кодування
Я не впевнений, що ви маєте на увазі під "іншими мовами на основі С". C ++ є єдиною основною мовою, що має щось подібне до C. Перевага C / C ++ полягає в тому, що вони швидкі . Незважаючи на те, що інші мови наздогнали впродовж багатьох років, C ++ все ще дає їм заробити свої гроші.
C ++ непростий. Ви отримаєте велику ефективність із більш сучасних мов компіляції, таких як Rust, Golang або Swift. Але це не має бути набагато гірше, якщо ви перейдете на мову JIT. Тобто не використовуйте інтерпретатора CPython ; використовуйте IronPython або Jython, або Node, або C # або Java.
Програмування графічного процесора вимагає іншого підходу, і я б радив цього проти цього.
Вибір мови для машинного навчання
Проблема TensorFlow полягає в тому, що він дуже низький. Йдеться скоріше про написання алгоритмів розбивання чисел (які можна вирішити на паралельному апаратному забезпеченні), ніж про інтерфейс, присвячений машинному навчанню.
Звичайно, це може бути чудовим досвідом навчання! І, безумовно, дуже варто сьогодні вчитися. Однак ви можете почати з Keras або PyTorch.