인공지능 삼목게임(tic-tac-toe) 학습
본 자료는 5페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
해당 자료는 5페이지 까지만 미리보기를 제공합니다.
5페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

인공지능 삼목게임(tic-tac-toe) 학습에 대한 보고서 자료입니다.

목차

1. 삼목게임 학습 ------------------------------- 1
- 서론 (문제설명) ------------------------------ 1
- 본론 (코드내용 설명) ------------------------ 2
- 실험결과 (화면 덤프 및 결과 분석 설명) - 11

2. 부록 ----------------------------------------- 13

본문내용

값이 줄어 0에 가까워지고, accuracy값이 늘어 1에 가까워졌음을 확인한다.
학습 과정에서의 loss 값 변화를 그래프로 확인한다.
모델이 2층 신경망(2뉴런 출력층)임을 확인한다.
훈련 데이터의 loss: 0.0014, accuracy: 0.9986이고,
테스트 데이터의 loss: 0.214, accuracy: 0.9792 임을 확인한다.
마지막으로 훈련데이터를 통해 계산한 컨퓨전 행렬 C를 확인한다.
텐서보드에서 확인하기 위해 명령창에 tensorboard logdir c:\\tmp\\logs\\project를 입력한다.
http://localhost:6006 에 들어가서 확인한다.
텐서보드에서 정확도, 손실에 대한 그래프와 모델의 그래프 구조를 확인한다.
2. 부록
[1] 삼목게임 소스 코드
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
def load_tictactoe(shuffle=False):
label={\'o\':0, \'x\':1, \'b\':2}
result = {\'true\':1, \'false\':0}
data = np.loadtxt(\"tic-tac-toe.csv\", skiprows=1, delimiter=\',\',
converters={0: lambda name: label[name.decode()],
1: lambda name: label[name.decode()],
2: lambda name: label[name.decode()],
3: lambda name: label[name.decode()],
4: lambda name: label[name.decode()],
5: lambda name: label[name.decode()],
6: lambda name: label[name.decode()],
7: lambda name: label[name.decode()],
8: lambda name: label[name.decode()],
9: lambda resultname: result[resultname.decode()]})
if shuffle:
np.random.shuffle(data)
return data
def train_test_data_set(tictactoe_data, test_rate=0.25): # train: 0.75, test: 0.25
n = int(tictactoe_data.shape[0]*(1-test_rate))
x_train = tictactoe_data[:n,:-1]
y_train = tictactoe_data[:n, -1]
x_test = tictactoe_data[n:,:-1]
y_test = tictactoe_data[n:,-1]
return (x_train, y_train), (x_test, y_test)
tictactoe_data = load_tictactoe(shuffle=True)
(x_train, y_train), (x_test, y_test) = train_test_data_set(tictactoe_data, test_rate=0.25)
print(\"x_train.shape:\", x_train.shape)
print(\"y_train.shape:\", y_train.shape)
print(\"x_test.shape:\", x_test.shape)
print(\"y_test.shape:\", y_test.shape)
# one-hot encoding: \'mse\', \'categorical_crossentropy\'
y_train = tf.keras.utils.to_categorical(y_train)
y_test = tf.keras.utils.to_categorical(y_test)
print(\"y_train=\", y_train)
print(\"y_test=\", y_test)
n = 15 # number of neurons in a hidden layer 은닉층의 뉴런 갯수
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(units=n, input_dim=9, activation=\'sigmoid\')) # 입력 9개
model.add(tf.keras.layers.Dense(units=2, activation=\'softmax\')) # 출력 2개
model.summary()
opt = tf.keras.optimizers.RMSprop(learning_rate=0.1)
model.compile(optimizer=opt, loss= \'MSE\', metrics=[\'accuracy\'])
import os
path = \"C:/tmp/logs/\"
if not os.path.isdir(path):
os.mkdir(path)
logdir = path + \"project\"
callback = tf.keras.callbacks.TensorBoard(log_dir=logdir, update_freq=\'epoch\',
histogram_freq=2, write_images=True)
ret = model.fit(x_train, y_train, epochs=100, verbose=2, callbacks=[callback])
print(\"len(model.layers):\", len(model.layers))
loss = ret.history[\'loss\']
plt.plot(loss)
plt.xlabel(\'epochs\')
plt.ylabel(\'loss\')
plt.show()
train_loss, train_acc = model.evaluate(x_train, y_train, verbose=2)
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
y_pred = model.predict(x_train)
y_label = np.argmax(y_pred, axis = 1)
C = tf.math.confusion_matrix(np.argmax(y_train, axis = 1), y_label)
print(\"confusion_matrix(C):\", C)

키워드

  • 가격4,500
  • 페이지수16페이지
  • 등록일2022.08.05
  • 저작시기2021.11
  • 파일형식한글(hwp)
  • 자료번호#1175969
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니