일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 오목 AI
- PYTHON
- object detection
- CV
- tf.keras.layers.lambda
- cv2
- Jupyter Notebook
- nlp
- yolov8 커스텀 학습
- 프로그래머스데브코스
- yolo webcam
- 강화학습
- yolov8 load weights
- 오목
- will not use cuDNN kernels
- 바둑판 만들기
- AI 오목
- Lambda Activation
- 코딩부트캠프
- yolov8
- TensorFlow lambda
- 강화 학습 적용
- pygame
- reinforcement learning
- YOLO
- SentenceBERT
- Actor Critic
- Image Cosine Similarity
- cuDNN WARNING
- 국비지원교육
- Today
- Total
목록Project/AI Gomoku (11)
Silinu's AI Study
환경 : Window, Python 3.9, Jupyter notebook(Anaconda 설치된 상태), GPU 환경 1. 지난 글 요약 및 현황 지난 글 이후로 NaN 값이 나올 수 있는 것을 방지하면서 게임을 이길 수 있는 방법을 모색하는 실험을 진행했다. 우선 그 이후로 실험할 때 NaN 값은 안 나왔으며, 게임은 4할의 비율로 이기고 있다. 그러나 학습하는 데 있어 또 다른 문제점이 발생하였다. 바로 시간과 학습 안됨이었다. 1.1 시간 문제 현재 세워진 모델로 한번의 착수를 하는데 0.07초가 걸린다. 이때 한 번의 대국에서 착수 횟수가 대략 110 ~ 190회 이므로 대강 12초 정도의 시간이 걸린다는 점이다. 이전까지는 적어도 10000번의 학습을 하였기 때문에 이번 모델도 그렇게 진행하려..
환경 : Window, Python 3.9, Jupyter notebook(Anaconda 설치된 상태), GPU 환경 1. 지난 요약 지난 글에서 다뤘던 최대 문제점은 Agent가 이미 돌이 착수 된 곳에 두어 실험이 끝나는 경우가 99.96%였다. 따라서 다음과 같은 실험을 진행했다. Agent가 이미 돌이 착수된 곳의 Action 확률을 최소화 하여 그 자리를 뽑지 않게 한다. 하지만 위 실험에도 위와 비슷한 확률로 Agent가 이미 돌이 착수 된 곳에 두어 가설을 세웠다. Policy Network에서 예측한 Action 확률의 모든 값이 min 값일 것이다. 현재 진행하는 방식이 잘못되었을 것이다. 2. 가설 확인 Policy Network에서 예측한 Action 확률의 모든 값이 min 값일 ..
환경 : Window, Python 3.9, Jupyter notebook(Anaconda 설치된 상태), GPU 환경 현재 진행 중인 학습의 생각 정리를 해보자. 1. 시도 방식 목적: 각 오목 상황에 맞게 착수 둘 곳을 self-learning 방식으로 학습하자. 사용 모델: Actor Critic 방식 모델 사용 이유: AlphaGo와 비슷한 방식으로 Policy Network와 Value Network를 학습해보자. 차이점: 몬테카를로 트리 탐색을 사용하지 않음. 오목과 바둑의 룰이 다르므로 불필요하게 생각되는 space는 제거함. reward가 다름. 2. 문제점 및 시도 1. Epoch 10000번을 실행했을 때, 이미 돌이 착수 된 곳에 둬서 episode가 끝나는 경우가 9996번 정도이다..

환경 : Window, Python 3.9, Jupyter notebook(Anaconda 설치된 상태), GPU 환경 아래는 현재 강화 학습이 되고 있는 모습이다. 현재 문제점으로는 계속적으로 학습을 진행하고 있으나, nan 값이 나와 학습 중단이 되는 경우가 빈번히 발생한다. Actor Critic 방법 외에 다른 방법을 찾거나 모델을 다른 방식으로 진행해야 할 필요가 있을 듯 하다.
환경 : Window, Python 3.9, Jupyter notebook(Anaconda 설치된 상태), GPU 환경 AlphaGo를 참고했을 때, 네트워크 구성으로 Policy network와 Value network로 이루어진 것을 확인했다. 이 글에서는 AlphaGo와 학습하는 방식은 조금 다르지만, 위 두 네트워크를 가진 Actor Critic 기법을 사용하여 self learning 하기로 했다. 간단하게 용어 정리하면 다음과 같다. Policy network: agent가 어떤 상황에 놓여져 있을 때 어떠한 행동을 할 확률을 출력 값으로 내보낸다. 이때 하나의 상황에서 여러 행동을 선택할 수 있다면, 각각의 행동을 할 확률이 출력 값이 된다. Value network: agent가 어떤 상황..

환경 : Window, Python 3.9, Jupyter notebook(Anaconda 설치된 상태), GPU 환경 지난 과정 바둑판 만들기 5목을 두면 승리하기 흑돌이 44, 장목을 두지 못하게 하기 흑돌이 33을 두지 못하게 하기 앞의 과정을 거쳐 오목 프로그램을 만들면 다음과 같이 실행되는 것을 확인할 수 있다. 짧게 지나가서 잘 안보일 지도 모르지만, 33을 두려고 할 때, 상단에 "금수입니다. 그 곳에 둘 수 없습니다." 메세지가 뜨는 것을 확인할 수 있다.
환경 : Window, Python 3.9, Jupyter notebook(Anaconda 설치된 상태), GPU 환경 지난 글에 이어 이번에는 33일 때 흑돌이 둘 수 없게 코드를 구현하였다. 44의 경우 현재 흑돌이 입력된 위치에서 상하좌우 5칸씩 떨어진 곳을 기준으로 가로, 세로, 양쪽의 대각선이 3개를 가지고 있으면서 백돌이 막혀져 있는지 여부를 확인한다. ok는 33일 경우 True, 아니면 False이다. def check_33(x,y,board): ok = False # 33이면 ok = True로 바뀜 # x, y 중심으로 board 가져오기 player_1 = np.array([[0,1,1,0,0],[0,1,0,1,0],[0,0,1,1,0]]) num1 = player_1.shape[1]..
환경 : Window, Python 3.9, Jupyter notebook(Anaconda 설치된 상태), GPU 환경 지난 글에 이어 이번에는 장목, 44일 때 흑돌은 둘 수 없게 코드를 구현하였다. 33룰은 다음 글에 마저 올리도록 하겠다. 장목의 경우 저번 글의 check_win 함수에서 num 값을 입력 받아 num개가 연속으로 나란히 있는 것을 확인하는 코드를 만든다. 장목 함수 코드는 다음과 같다. def check(num, board): player_1 = [[0,0],[0,2],[2,0],[2,2]] for i in range(4): for j in range(num): player_1[i].insert(1,1) player_1 = np.array(player_1) player_2 = np..
환경 : Window, Python 3.9, Jupyter notebook(Anaconda 설치된 상태), GPU 환경 오목 룰 중에서 다른 룰은 다음 글에 작성하기로 하고, 이 글에서는 5개가 연속으로 나란히 있을 때 승리인 조건으로 한다. 코드는 다음과 같다. import sys import pygame import numpy as np 아래 함수는 어느 플레이어가 이겼는지, 이기지 않았는지 확인하는 함수이다. 각각 가로, 세로, 대각선으로 나눠 확인한다. def check_win(board): player_1 = np.array([1,1,1,1,1]) player_2 = np.array([2,2,2,2,2]) winner = 0 # 가로(-) for i in range(board.shape[0]):..

환경 : Window, Python 3.9, Jupyter notebook(Anaconda 설치된 상태), GPU 환경 바둑판 만들기 pygame 모듈 설치하기 pygame을 활용한 바둑판 만들기 1. pygame install conda install pygame 위 코드로 Anaconda 가상 환경에서 설치하려고 시도했을 때 아예 깔리지 않았다. conda install -c conda-forge pygame 위 코드를 사용하여 Anaconda 가상 환경에서 깔려고 시도했을 때 설치하는 시간이 오래 걸리고, 현재 환경과 충돌이 일어났다는 메세지를 받았다. 그리고 jupyter notebook 환경에서 import가 되지 않았다. pip install pygame 결국 3번을 Anaconda 가상 환경..