첫 단계 : 목표 / 이유 정의
이것이 가장 큰 요인이라고 생각합니다. 이 중 가장 적합한 것은 무엇입니까? ( 하나만 선택 )
- 재미 있고 도전적인 코딩 작업을 즐기고 싶습니다.
- 아주 좋은 체스 엔진을 만들고 싶습니다
- 체스 엔진의 작동 방식에 대해 배우고 싶습니다
- 코딩 기술을 배우고 연습하고 싶다
- 컴퓨터 과학 개념 / 이론을 배우고 / 구현하고 싶습니다 (예 : 기계 학습).
- (다른)
IMO 2를 제외한 모든 것을 위해 "동전 던지기"를하는 것은 좋습니다. 그러나 결정에 도움이되도록 선택 사항을 비교하고 싶을 것입니다.
하드 코딩의 경우
체스를 인간으로하는 것은 논리적 사고와 관련이 있습니다. 당신은 당신과 상대방이 취할 수있는 행동의 공간을 탐구합니다. 이것은 일반적으로 게임을 분석하기위한 이론적 프레임 워크를 포함하는 게임 이론 이라는 분야를 낳았습니다 .
세부 사항을 다루고 구체적이고 사물에 대해 추론하는 것을 즐긴다면 이것이 잘 작동 할 수 있습니다. 이에 비해 머신 러닝에는 퍼지 및 불투명 한 훨씬 더 많은 "블랙 박스"알고리즘이 포함됩니다. 당신은 무슨 일이 일어나고 있는지 정확히 모른다.
또한 기계 학습이 아닌 하드 코딩 경로를 사용하는 경우 "자신이 직접 그림을 작성하는"시간이 더 쉬울 것입니다. 완전히 이해하지 못하는 복사 붙여 넣기가 적습니다.
머신 러닝 사례
창조물을 낳고 자신의 삶을 사는 것을 보는 것은 흥미로울 수 있습니다. 하드 코딩은 정밀성과 세부 사항에 관한 것이지만 머신 러닝은 유연합니다. 일부 뉴런을 제거하면 결과가 비슷할 것입니다.
하드 코딩은 체스 공부에 관한 것입니다. 기계 학습은 당신이 창조 한 생물을 연구하는 것입니다.
그리고 머신 러닝은 물론 매우 화제가되는 주제입니다.
하드 코딩을위한 언어 선택
"다른 C 기반 언어"의 의미를 잘 모르겠습니다. C ++는 C와 같은 유일한 주류 언어입니다. C / C ++의 장점은 속도 가 빠르다는 것 입니다. 다른 언어는 수년에 걸쳐 잡혔지만 C ++은 여전히 돈을 벌 수 있습니다.
C ++은 쉽지 않습니다. Rust, Golang 또는 Swift와 같은 최신 컴파일 언어에서 뛰어난 성능을 얻을 수 있습니다. 그러나 JIT 언어를 사용한다면 더 나쁘지 않아야합니다. 즉 CPython 인터프리터를 사용하지 마십시오 . IronPython 또는 Jython, Node 또는 C # 또는 Java를 사용하십시오.
GPU 프로그래밍에는 다른 접근 방식이 필요하므로이 시점에서 이에 대해 조언합니다.
기계 학습을위한 언어 선택
TensorFlow의 문제점은 레벨이 매우 낮다는 것입니다. 머신 러닝 전용 인터페이스보다는 병렬 하드웨어로 팜을 생성 할 수있는 수 처리 알고리즘을 작성하는 것입니다.
물론, 그것은 훌륭한 학습 경험이 될 수 있습니다! 그리고 오늘 배울 가치가 있습니다. 그러나 Keras 또는 PyTorch로 시작할 수 있습니다.