İlk adım: Hedeflerinizi / nedenlerinizi tanımlayın
Bence bu baskın faktör. Bunlardan hangisi size en uygun? ( Yalnızca birini seçin )
- Eğlenceli, zorlu bir kodlama görevinin tadını çıkarmak istiyorsunuz
- Son derece iyi bir satranç motoru yaratmak istiyorsun
- Satranç motorlarının nasıl çalıştığını öğrenmek istiyorsunuz
- Kodlama becerilerini öğrenmek / uygulamak istiyorsunuz
- Bilgisayar bilimi kavramlarını / teorisini öğrenmek / uygulamak istiyorsunuz (örn. Makine öğrenimi)
- (Diğer)
IMO 2 dışında herhangi bir şey için "bozuk para atmak" sorun değil. Tüm diğerleri için, ister ML ister sabit kodlama seçin hedefinize ulaşacak. Ancak muhtemelen karar vermenize yardımcı olacak seçenekler arasında bir karşılaştırma yapmak istersiniz.
Sabit kodlama davası
Satranç oynamak (insan olarak) mantıklı düşünmeyi içerir. Siz ve rakibin gerçekleştirebileceği olası eylemlerin alanını keşfedersiniz. Bu, genel olarak oyunları analiz etmek için teorik çerçeveler içeren oyun teorisi adı verilen bir alan yaratmıştır .
Eğer ayrıntılarla çalışmaktan ve bir şeyler hakkında spesifik olmaktan ve mantıklı olmaktan hoşlanıyorsanız, bu sizin için iyi sonuç verebilir. Buna karşılık, makine öğrenimi bulanık ve opak olan çok daha fazla "kara kutu" algoritması içerir. Ne olduğunu tam olarak bilmiyorsun.
Ayrıca, makine öğreniminden ziyade zor kodlama yoluna giderseniz "kendi başınıza çözmeyi" kolaylaştıracağınızı düşünürüm. Tam olarak anlamadığınız daha az kopya yapıştırma.
Makine öğrenimi davası
Bir yaratılış doğurmak ve kendi başına bir hayat sürmesini izlemek heyecan verici olabilir. Sabit kodlama tamamen hassasiyet ve ayrıntıyla ilgili olsa da, makine öğrenimi esnektir. Bazı nöronları alın ve sonuç muhtemelen benzer olacaktır.
Zor kodlama satranç okumakla ilgilidir. Makine öğrenimi, yarattığınız canlıyı incelemekle ilgilidir.
Makine öğrenimi elbette çok sıcak bir konudur.
Sabit kodlanmış dil seçimi
"Diğer C tabanlı diller" ile ne demek istediğinden emin değilim. C ++, C gibi bir şey olan tek ana dildir. C / C ++ 'nın avantajı hızlı olmalarıdır . Diğer diller yıllar boyunca yetişmiş olsa da, C ++ hala paraları için koşturuyor.
C ++ kolay değildir. Rust, Golang veya Swift gibi daha modern derlenmiş dillerde mükemmel performans elde edeceksiniz. Ancak bir JIT dili seçerseniz çok daha kötü olmamalı. Yani CPython tercüman kullanmayın ; IronPython veya Jython veya Düğüm veya C # veya Java kullanın.
GPU programlama farklı bir yaklaşım gerektirir ve bu noktada buna karşı tavsiyede bulunacağım.
Makine öğrenimi için dil seçimi
TensorFlow ile ilgili sorun çok düşük seviyeli olmasıdır. Sayı öğrenme algoritmaları (paralel donanıma ekilebilir) yazmak, makine öğrenmeye adanmış bir arabirimden çok daha fazlasıdır.
Tabii ki, bu harika bir öğrenme deneyimi olabilir! Ve bugün öğrenmeye kesinlikle değer. Ancak, Keras veya PyTorch ile başlamak isteyebilirsiniz.