어쨌든 딥 러닝은 블랙잭에서 더 잘할 수 있습니까?
어쨌든 딥 러닝은 블랙잭에서 더 잘할 수 있습니까?
지난번에 우리는 블랙잭을 재현하는 코드를 만들었습니다. 더욱이 이러한 재생산을 통해 우리는 도박 클럽의 이점에 대한 중요한 동인을 발견했습니다. 다음은 우리의 과거 발견에 대한 간략한 요약입니다. 에볼루션카지노 블랙잭
도박 클럽은 플레이어가 판매자보다 먼저 행동하도록(그리고 부적절한 데이터에 대한 후속 조치) 블랙잭 플레이어에게 유리한 위치를 차지합니다. 이것은 먼저 파산의 위험에 노출됩니다(따라서 공급업체가 행동할 기회를 찾기도 전에 모두 파산했을 수 있음).
플레이어는 12와 16의 범위에서 손을 모두 내밀고(다음 카드로 파열될 위험이 있음) 판매자가 높은 카드를 보여줄 때 특히 위험합니다
. 이러한 경우, 벤더가 높은 핸드 앱솔루트로 끝날 것이라는 가정이 있으므로 플레이어는 치거나 죽어야 합니다. 우리는 플레이어가 12와 16(절망의 계곡) 범위 어딘가에서 상자를 이기거나 동점할 가능성이 있는 방식으로 이것을 외적으로 볼 수 있습니다.
마침내 우리는 버스팅할 기회가 없을 때마다 때릴 수 있는 무고한 절차가 도박 클럽을 이길 가능성에 믿을 수 없을 정도로 효과가 있다는 것을 알게 되었습니다.
당신이 블랙잭 라운드를 처음 접한다고 가정할 때, 제 과거 게시물은 게임이 어떻게 진행되고 원리를 설명하는지 추가로 설명합니다.
어쨌든 딥 러닝이 더 잘할 수 있습니까?
이번 포스트의 목표는 무고한 것보다 선호하는 절차에 어떻게 나타날지 심도 있게 활용할 수 있느냐 하는 것입니다. 우리는:
지난 시간에 코딩한 블랙잭 테스트 시스템을 활용하여 정보를 생성합니다(계산 준비에 더 적합하도록 몇 가지 변경).
블랙잭을 플레이하도록 신경망을 코딩하고 훈련합니다(이상적으로는).
신경망이 처음이신 분들을 위해 이번 포스팅에서 자세하게 설명을 드렸습니다.(제가 가장 열심히 작업한 포스팅이니 별 무리가 없으시다면 확인 부탁드립니다.) 준비 주기로 넘어가기 전에, 우리는 이 상황에서 신경망을 사용할 때의 장점과 단점이 무엇인지 즉시 조사합니다. 신경망은 매우 적응력이 뛰어난 계산입니다. 섬세한 흙처럼 신경망은 거의 변화가 없어도 정보의 형태에 맞게 스스로를 변경합니다. 직선 재발과 같이 융통성이 없는 것을 불편하게 하는 정보는 신경망에 의해 효과적으로 처리됩니다. 또한 조직 내부의 계층과 뉴런은 정보에 존재할 수 있는 깊숙이 삽입된 비직접 연결에 능숙해집니다.
그럼에도 불구하고 이러한 유연성에는 몇 가지 중요한 함정이 있습니다. 신경망은 발견 모델입니다. 재발 계수를 자세히 살펴봄으로써 모델이 선택에 어떻게 정착하는지 알아낼 수 있는 재발과 달리 신경망에는 그러한 간단함이 없습니다. 마찬가지로, 신경망은 정보를 너무 잘 수용하고 나중에 테스트 정보를 잘 요약하지 못할 위험이 있습니다. 내가 생각하는 것처럼 이러한 약점은 최우선 순위 및 계획 방패로 가치가 있지만 신경망 사용을 피하려는 동기는 아닙니다.
교육 데이터 생성 블랙잭 게임방법
신경망을 준비하기 전에 먼저 준비 정보를 구조화하는 방법을 분류하여 작업하는 모델이 유용할 수 있도록 해야 합니다.
우리는 무엇을 기대하고 싶습니까? 내 생각에 우리의 목적 변수에는 두 가지 가능성이 있습니다.
게임에서 패배할 가능성. 주어진 상황에서 불행의 가능성을 알려주는 모델이 필요할 수 있습니다. 물론 이것은 블랙잭에서 할 수 없는 내기를 늘리거나 줄이면 도움이 될 수 있습니다.
오히려 우리는 적중하거나 남아 있는 올바른 활동을 구별하기 위해 신경망이 필요합니다. 따라서 우리의 객관적인 변수는 "올바른 움직임이 히트인지 남아 있는지 여부에 관계없이"여야 합니다.
이것을 설정하는 가장 효과적인 방법을 분류하는 데 정말 시간이 걸렸습니다. 그런데 여기서 제가 생각한 것이 있습니다.
우리는 주어진 움직임이 옳은지 여부를 신경망이 알 수 있는 방법을 원합니다. 안전하지 않아야 합니다. 대부분의 경우 맞아야 합니다. 따라서 주어진 이동이 올바른지 여부를 결정하기 위한 나의 기술은 블랙잭 라운드를 모방하는 것입니다. 플레이어와 판매자 모두에게 카드를 흥정하고, 누군가가 블랙잭을 가지고 있다고 가정하고, 한 가지 행동(적중 또는 남음)만 수행, 모방 게임을 종료하고 결과를 기록합니다. 재연된 플레이어는 고독한 선택에 만족하기 때문에 게임의 승패를 통해 그 선택의 본질을 조사할 수 있습니다.
플레이어가 히트하고 이기면 그 시점에서 히트(Y=1)가 올바른 선택이었습니다.
플레이어가 안타와 패배를 가정하면 그 시점에서 유지(Y=0)가 올바른 선택이었습니다.
플레이어가 남아서 이기면 그 시점에서 잔류(Y=0)가 올바른 선택이었습니다.
플레이어가 머물고 진다고 가정하면 그 시점에서 히트(Y=1)가 올바른 선택이었습니다.플레이어가 머물고 진다고 가정하면 그 시점에서 히트(Y=1)가 올바른 선택이었습니다.
이를 통해 결과가 히트할지 남아 있는지에 대한 예상이라는 목표로 모델을 준비할 수 있습니다. 코드는 지난 번과 같으므로 여기서 핵심 개요를 제공하지 않겠습니다(여기에서 내 GitHub에 있다고 생각할 수도 있습니다). 그러나 필수 요소는 다음과 같습니다.
판매자의 앞면 카드(다른 카드는 보이지 않는 곳에 보관됨).
플레이어의 절대적인 손 존중.
선수에게 프로가 있는지 없는지.
플레이어의 활동(적중 또는 남음).
더군다나 객관적인 변수는 위의 근거로 특징지어지는 올바른 선택입니다.
신경망 준비
우리는 신경망을 위해 Keras 라이브러리를 사용할 것입니다. 처음에는 가져오기를 이동해야 합니다.
keras.models에서 가져오기 순차
keras.layers에서 Dense, LSTM, Flatten, Dropout 가져오기
현재 신경 조직을 준비하기 위한 피드백 요소를 설정하는 것은 어떻습니까? 변수 feature_list는 이전에 기록했던 하이라이트(X 요소)의 섹션 이름이 포함된 요약입니다. model_df 데이터 프레임은 내가 실행한 블랙잭 레크리에이션의 모든 정보를 저장하는 곳입니다. 실제로 시작하고 신경망을 훈련시키는 코드 라인은 기본입니다. 기본(라인 1)은 신경망 레이어의 직접 배열인 연속 종류 신경망을 만듭니다. 1번째 줄 뒤에 있는 줄은 우리 모델에 레이어를 개별적으로 추가합니다(두께는 가장 복잡한 레이어 유형이며 뉴런의 수뿐입니다). 16, 128 등과 같은 숫자는 각 레이어의 뉴런 수를 결정합니다.
마지막으로 마지막 레이어는 정말로 제정 작품을 뽑고 싶습니다. 이것은 신경 조직의 조잡한 결과를 우리가 해석할 수 있는 것으로 개종합니다. 마지막 레이어에 대해 두 가지에 중점을 둡니다. 우선, 우리는 두 가지 잠재적인 결과(두 개의 클래스 문제) 사이를 예측하고 있기 때문에 단일 뉴런만 통합합니다. 또한 두 번째로, 우리는 신경망이 계산된 재발처럼 행동하고 올바른 움직임이 히트(Y=1) 또는 유지(Y=0)인지 예측해야 하기 때문에 시그모이드 제정을 활용합니다. 타격이 올바른 움직임일 가능성이 높습니다.
마지막 두 줄은 신경망 모델에 사용할 적자 용량을 알려주고(페어드 크로스 엔트로피는 확률을 산출하는 배열 모델에서 활용하는 부족한 작업임) 모델을 정보에 맞추었습니다. 나는 레이어나 뉴런의 양을 조정하는 데 과도한 양의 에너지를 투자하지 않았지만, 누군가가 어떻게든 내 코드를 엉망으로 만든 경우 개선을 위한 가능성이 있는 도로로 추천할 것입니다. 우리 모델의 성능 확인
우리 모델이 가치를 더하는지 여부를 확인하는 빠른 방법은 ROC 곡선을 활용하는 것입니다. ROC 곡선은 우리 모델이 이익(True Positive Rate)과 비용(False Positive Rate) 사이에서 얼마나 절충하는지 알려줍니다. 굴곡 아래의 영역이 더 주목할만할수록 모델이 더 좋습니다.
아래의 플롯은 신경망을 플레이하는 블랙잭의 ROC 곡선을 보여줍니다. 신경망은 모든 계정에서 우연히 추측하는 것보다 상당한 가치가 있는 합리적인 부분을 추가합니다(빨간색 실행 선). 굽힘 아래 영역(AUC) 0.73은 불규칙한 추측에 대한 AUC(0.50)보다 전체적으로 높습니다.
ROC 곡선을 그리기 위해 준비 정보를 활용했습니다. 일반적으로 우리는 승인 또는 테스트 정보를 사용하여 플롯해야 하지만 이 상황에서는 예제가 충분히 크면 그 시점에서 대중을 예시한다는 것을 깨닫습니다(우리가 계속해서 블랙잭을 플레이할 것으로 예상합니다. 유사한 지침). 게다가 우리는 우리의 모델이 잘 요약되어야 한다고 예상할 것입니다(모든 새로운 정보는 우리의 준비 정보와 유사한 기본 사실적 특성을 가질 것입니다).
놀 시간!
신경망이 공식적으로 베팅을 시작하기 전에 선택 지침을 제공하고자 합니다. Sigmoid 제정(마지막 신경망 계층에서)으로 인해 신경 조직이 올바른 움직임이 성공할 가능성이 있음을 기억하십시오. 우리는 선택 기준을 원합니다. 이러한 가능성이 주어지면 적중할 것인지 남을 것인지 선택합니다. 블랙잭사이트
나는 그것을 정확히 수행하기 위해 수반되는 용량을 구성했습니다. model_decision 작업은 신경망이 필요로 하는 요소를 취하고, 이러한 하이라이트를 활용하여 예측을 하고, 미리 정의된 가장자리에 대한 예상에 대해 생각하여 적중할지 여부를 선택합니다. 나는 버스팅이 블랙잭 플레이어에게 가장 큰 위험이라는 것을 지난 시간부터 확실히 알고 있다는 사실에 비추어 0.52를 사용합니다. 결과적으로 0.52를 적중 컷오프로 사용하면 우리 모델이 적중하려는 경향이 다소 줄어들고 따라서 버스트에 대해 다소 혐오감을 갖게 됩니다. 이제 우리는 적중 여부를 선택하는 위의 용량을 코드에 추가하기만 하면 됩니다(그렇지 않은 경우 너무 많은 문제가 있습니다. 이 부분을 코딩한 방법에 관심이 있는 경우 GitHub를 참조하세요.
Comments
Post a Comment