Pythonとは
基本的な使い方
・
IDLE
・
Jupyter Notebook
・
Markdown
・
コマンドプロンプトで実行
・
仮想環境の構築
・
仮想環境でIDLEを実行
ライブラリのインストール
・
pipの使い方
・
numpy , matplotlib等
・
graphviz
・
pytorch
・
Mecab
Pythonの関数:
一覧
共通関数
・
append , extend
・
class
・
copy
・
csv.reader
・
csv.writer
・
def , return
・
dict , defaultdict
・
enumerate
・
exit
・
for
・
if
・
import
・
in
・
input
・
lambda
・
len
・
list
・
min/max
・
OrderedDict
・
open/close
・
os
・
pickle
・
print
・
range
・
re.split
・
read/readline
・
round/floor/ceil
・
split
・
sys.argv
・
time
・
while
・
write
・
zip
・特殊メソッド
・
__name__
・
__iter__ , __next__
・
正規表現、メタ文字
・
データの型の種類
・
四則演算 (+ , - , * , /)
・
コメントアウト (# , ''')
numpy
・
append
・
arange
・
argmax/argmin
・
array
・
asfarray
・
astype , dtype
・
digitize
・
dot
・
hstack/vstack
・
linalg.solve
・
linspace
・
max,min
・
mean
・
meshgrid
・
mgrid
・
ndim
・
ndmin
・
pad
・
poly1d
・
polyfit
・
prod
・
random
・
reshape
・
savetxt/loadtxt
・
shape
・
std
・
transpose
・
where
・
zeros/zeros_like
scipy
・
expit
・
imread
・
interpolate
・
signal.square, sawtooth
matplotlib
・
contour
・
imshow
・
figure
・
pcolormesh
・
plot
・
quiver
・
scatter
scikit-learn
・
GaussianNB
・
KMeans
・
KNeighborsClassifier
・
SVC
・
tree
chaospy
keras
chainer
chainerrl
pandas
・
データ抽出
・
concat
・
DataFrame
・
read_excel
pytorch
・
BCELoss , MSELoss
・
Embedding
・
device
・
Sequential
・
Dataset, Dataloader
・
RNN, LSTM
OpenAI gym
・
Blackjack-v0
・
CartPole-v0
seaborn
・
pairplot
tkinter
・
frame, grid
・
画像表示
・
画像を切り取り表示
・
画像を保存
目的別
・
ステップ関数
・
矩形波, 三角波
・
1 of K 符号化法
・
線形補間
・
配列に番号をつける
・
ベクトル場を描く
・
線形回帰, 多項式回帰
■説明
カード(トランプ)ゲームのブラックジャックを行います。強化学習の例題としてよく用いられます。
ブラックジャックとは自分(プレイヤー)とディーラーの1vs1で行うゲームであり、お互いに配られたカードのポイントの合計が21に近い方が勝ちとなります。
トランプの数とポイントの関係は、2から10まではトランプの数=ポイントですが、絵札(ジャック、クイーン、キング)はポイント10、エースは1か11ポイントを選択できます。
<ゲーム手順>
・ 自分(プレイヤー)とディーラーに2枚ずつカードを配る。
・ 自分の手札は2枚ともオモテ(数が見える方)にし、ディーラーの手札は1枚だけオモテにする。
<自分の番>
・ 手札の合計値を鑑み、追加でカードを1枚引くか否かを選択。カードを引いても21に届かない場合、再びカードを引く事が可能。
・ カードの合計値が21を超えた場合、"バースト"といって自分の負け。(ディーラーの番なし)
・ 合計値が21に届かなくても、これ以上カードを引くとバーストすると判断したら、"ステイ"といってカードを引くのを止める。
<ディーラーの番>
・ ウラにしていたカードをオモテにし、合計値が17以下の場合は18以上になるまで1枚ずつカードを引く。
・ 合計値が21を超えるとバーストとなり、自分の勝ち。
・ 合計値が18以上21以下になったら、自分のカードの合計値と比較し、21に近い方が勝ち。
・ 両者の合計値が等しい場合は引き分け。
■具体例
以下は単純な例です。下記ではカードを引くか否かはランダムですが、その判断を強化学習に行わせることで、勝率を上げる事ができます。
強化学習を用いた実装例はこちら 。
>> import gym
>> env = gym.make('Blackjack-v0') # ブラックジャックを実施
>> state = env.reset() # 初めてカードを配る
>> state
(17, 2, True)
# 17:自分の手札の合計値、2:ディーラーのオモテ側の値、True:自分にエースがあり、11ポイントとして扱う
>> while True:
action = env.action_space.sample() # カードを引くか否か(1 or 0)をランダムで選択
state, reward, done, info = env.step(action) # 勝負がついた場合、done=true
if done:
break
>> state
(15, 2, False)
# ディーラーの値は最終合計値ではない。ディーラーの最終合計値は不明。
True→Falseになったのはエースを1ポイントとして扱っている。
>> reward
-1 # 負けたので-1、勝っていたら+1
サブチャンネルあります。⇒ 何かのお役に立てればと
Pythonとは
基本的な使い方
・
IDLE
・
Jupyter Notebook
・
Markdown
・
コマンドプロンプトで実行
・
仮想環境の構築
・
仮想環境でIDLEを実行
ライブラリのインストール
・
pipの使い方
・
numpy , matplotlib等
・
graphviz
・
pytorch
・
Mecab
Pythonの関数:
一覧
共通関数
・
append , extend
・
class
・
copy
・
csv.reader
・
csv.writer
・
def , return
・
dict , defaultdict
・
enumerate
・
exit
・
for
・
if
・
import
・
in
・
input
・
lambda
・
len
・
list
・
min/max
・
OrderedDict
・
open/close
・
os
・
pickle
・
print
・
range
・
re.split
・
read/readline
・
round/floor/ceil
・
split
・
sys.argv
・
time
・
while
・
write
・
zip
・特殊メソッド
・
__name__
・
__iter__ , __next__
・
正規表現、メタ文字
・
データの型の種類
・
四則演算 (+ , - , * , /)
・
コメントアウト (# , ''')
numpy
・
append
・
arange
・
argmax/argmin
・
array
・
asfarray
・
astype , dtype
・
digitize
・
dot
・
hstack/vstack
・
linalg.solve
・
linspace
・
max,min
・
mean
・
meshgrid
・
mgrid
・
ndim
・
ndmin
・
pad
・
poly1d
・
polyfit
・
prod
・
random
・
reshape
・
savetxt/loadtxt
・
shape
・
std
・
transpose
・
where
・
zeros/zeros_like
scipy
・
expit
・
imread
・
interpolate
・
signal.square, sawtooth
matplotlib
・
contour
・
imshow
・
figure
・
pcolormesh
・
plot
・
quiver
・
scatter
scikit-learn
・
GaussianNB
・
KMeans
・
KNeighborsClassifier
・
SVC
・
tree
chaospy
keras
chainer
chainerrl
pandas
・
データ抽出
・
concat
・
DataFrame
・
read_excel
pytorch
・
BCELoss , MSELoss
・
Embedding
・
device
・
Sequential
・
Dataset, Dataloader
・
RNN, LSTM
OpenAI gym
・
Blackjack-v0
・
CartPole-v0
seaborn
・
pairplot
tkinter
・
frame, grid
・
画像表示
・
画像を切り取り表示
・
画像を保存
目的別
・
ステップ関数
・
矩形波, 三角波
・
1 of K 符号化法
・
線形補間
・
配列に番号をつける
・
ベクトル場を描く
・
線形回帰, 多項式回帰