반응형

다음 책을 읽으면서, 아이디어가 떠올랐다.

- 줄리안 토겔리우스의 '재미나는 생각, AI와 게임'(줄리안 토겔리우스, 에이콘)

  (원제: Playing Smart: On Games, Intelligence, and Artificial Intelligence, Julian Togelius)

 

딥러닝(DeepLearnng)과 진화 알고리즘(Evolutionary Algorithm)을 토대로,

2048을 Play하는 AI를 만들어보고자 한다.

순전히 재미와 호기심으로 시작하는 것이다.

 

책에 의하면, 게임은 AI를 연구, 발전, 테스트하는데 좋은 재료이고,

AI는 게임을 좀더 재밌고 풍성하게 만드는 기반이 될 수 있다.

 

AI 연구에 있어서 2048 게임의 장점은, 다음과 같은 것들이 있다.

  • 격자(grid)의 크기가 4*4이므로, 학습을 위한 입력 요소가 많지 않다.
  • 소스가 공개되어 있다.(https://github.com/gabrielecirulli/2048)
  • 수정과 재배포에 제한이 거의 없는 MIT 라이센스이다.
  • HTML 및 Javascript로 만들어졌다.(웹에서 실행하기에 적절함)

 

진화 알고리즘은, 100개 정도의 딥러닝 샘플 생성후,

각 샘플마다 게임을 끝까지 진행한 후에,

최종 결과(점수)를 기준으로 상위 50개를 선택하고,

선택된 샘플을 임의 변경한 50개를 추가해서 총 100개를 다시 만든 후에,

같은 과정을 반복한다.

 

특별히 짜여진 계획은 없지만,

다음과 같은 단계로 진행하는 게 좋을 것 같다.

  1. 2048 소스 다운로드 및 분석
  2. 2048 소스를 테스트 용도에 맞게 변경
  3. Javascript로 딥러닝 및 진화 알고리즘 구현
  4. 2048 소스와 알고리즘 결합
  5. 결과 보관소를 마련하고, 그곳에 결과가 잘 저장되도록 구현

 

현재 위와 같은 방법으로 구현되어, 테스트를 진행중이다.

GitHub

 

truemaxdh/2048-AI

AI playing 2048. Contribute to truemaxdh/2048-AI development by creating an account on GitHub.

github.com

 

RunningTest

 

https://truemaxdh.github.io/2048-AI/

 

truemaxdh.github.io

 

반응형

'머신러닝&인공지능' 카테고리의 다른 글

2048을 Play하는 AI 개발 - 3  (0) 2019.12.22
2048을 Play하는 AI 개발 - 2  (0) 2019.12.01
2048과 딥러닝  (0) 2016.08.13
ConvNetJS를 이용한 XOR 분류 테스트  (0) 2016.07.20
언어별 딥러닝 라이브러리  (0) 2016.07.15
반응형

이 책은, 현재 일본에서 딥러닝이 기업에서 어떻게 이용되고 있으며,

향후 어떻게 이용할 수 있는지를 취재하여 엮은 책이다.

그리고 앞부분에서는, 딥러닝 자체에 대해서도 소개하면서,

구글이 제공하는 여러가지 딥러닝 관련 API를 소개한다.

딥러닝에 대하여, 상당히 실용적인 내용이 담겨 있는 책이다.

 

사실, 딥러닝은 2016년 이세돌과 AI와의 바둑 대결을 통해 유명해졌고,

그 이후로 실생활에 점점 그 자리를 넓혀가고 있다.

하지만 아직 사람들에게는 막연한 개념이기도 하다.

앞으로 무궁무진하게 활용되리라는 것은 알지만,

현재, 그리고 지금 당장 어떻게 활용할 수 있는지는 잘 알지 못한다.

그치만 실제로는, 딥러닝은 이미 대중화될 준비가 되어 있으며,

그 선봉에는 구글이 있다.

이러한 구글의 노력이 집대성되어 있는 곳이 바로 GCP(Google Cloud Platform)이다.

구글이 제공하는 AI 관련 서비스는 크게 두가지 방향으로 갈라진다.

하나는 TensorFlow라는 라이브러리를 통해

딥러닝 및 머신러닝 자체를 직접 구현할 수 있도록 도와 준다.

또다른 하나는, Google Cloud API로써,

이미 머신러닝이 완료된 기능을 직접 이용할 수 있도록 제공된다.

Google Cloud API는 Vision, Speech, Natural Language, Translation 및 Dialogflow로 나누어진다.

이 책에서는 GCP 및 TensorFlow에 대해 설명하고,

일본 기업에서의 실제 적용사례를 소개하며,

적용할 마음은 있지만 아직 시작하지 않은 사람들을 위해

어떻게 접근하면 좋을지에 대한 방법론을 소개한다.

접근방법론을 요약하면, 쉬운 것부터, 비용과 관련된 것부터,

그리고 효과를 측정할 수 있는 것부터 시작하라는 것이다.

 

다분히 기업들을 위한 내용이지만,

관심 있는 개인들에게도 좋은 인사이트를 제공해 준다.

두껍지 않고 어렵지 않고 부담없이 읽을 수 있는 내용이면서도

아주 알찬 내용이 담겨 있다.

반응형
반응형
이 책도 머신러닝에 대해 알기 쉽게 설명한 책이다.

책에 수록된 예제는 다음 사이트에서 내려받을 수 있다.

깃허브:
 
한빛미디어: 
 
반응형
반응형

이 책은, python을 이용한 여러가지 예제를 통해,

딥러닝을 쉽게 배울 수 있는 책이다.

특이한 점은, python으로 만들어진 딥러닝 라이브러리에 의존하지 않고,

직접 딥러닝을 구현한다는 것이다.

대충 책 내용을 요약하면 다음과 같다.

  • 1장 - 헬로 파이썬
    • Python 기초
  • 2장 - 퍼셉트론
    • 퍼셉트론을 통한 AND, OR, XOR게이트 표현
    • XOR게이트는, 2층 퍼셉트론을 통해 표현할 수 있다.
    • 단층 퍼셉트론은 직선형 영역만 표현할 수 있는 반면, 다층 퍼셉트론은 비선형 영역도 표현할 수 있다.
    • 다층 퍼셉트론은 (이론상) 컴퓨터를 표현할 수 있다.
  • 3장 - 신경망
    • 기계학습 문제는 분류(classification)와 회귀(regression)로 나눌 수 있다.
      • 분류(classification) - 데이터가 어느 클래스(class)에 속하는지를 판단하는 것
      • 회귀(regression) - 입력데이터로부터 연속적인 수치를 예측하는 것
    • 소프트맥스(softmax) 함수
  • ...


또한 이 책에는, 참고할 만한 사이트나 서적에 관한

알찬 정보들이 담겨 있기도 하다. 


 * 이 책에 소개된 관련 사이트 혹은 서적들
  • Scipy 강의노트- http://www.turbare.net/transl/scipy-lecture-notes/index.html
    • 이 책의 1장에서는, python에 대해 다룬다, 그리고, python에서 많이 사용되는 Scipy 라이브러리에 대한 강의노트를 소개한다.
  • "The Elements of Computing Systems: Building a Modern Computer from First Principals"(The MIT Press, 2005)
    • "NAND에서 테트리스까지!"라는 구호 아래, 실제로 NAND로 테트리스가 작동하는 컴퓨터를 만드는 과정을 설명해 주는 책
    • 이 책("밑바닥부터 시작하는 딥러닝") 2장에서는, 퍼셉트론(perceptron)을 다룬다. 그리고 2장 마지막 부분에, 퍼셉트론과 NAND게이트와의 연관성을 절묘하게 설명하고, NAND게이트의 조합만으로, 즉 다층 퍼셉트론으로 컴퓨터를 만들 수 있다고 설명한다. 그것도, 2층 퍼셉트론이면 충분하다고 한다.
    • (NAND게이트는, AND 게이트 출력부에 반전(NOT)을 덧붙인 것이다.)


반응형
반응형

한빛출판사의 '신경망 첫걸음'이란 책을 읽었는데,

신경망에 대해서 알기 쉽게 설명하는 내용이었다.

'수포자도 이해하는 신경망 동작 원리와 딥러닝 기초'라는 부제가 붙은 책인 만큼,

신경망에 대해 최대한 알기 쉽게 설명하고 있다.

또한, 파이선을 가지고 MNIST 손글씨를 학습 및 분류하는 예제도 

단계별로 알기 쉽게 설명해가면서 제공된다.

어려운 내용을 쉽게 풀어쓰는 솜씨가 보통이 아닌 것 같다.

물론, 번역가의 탁월함도 한 몫 했을 것이다.

신경망을 처음 시작하려거나 제대로 이해하고자 하는 사람들에게

많은 도움이 될 만한 책이다.

 

작가의 블로그도 운영중이다.

 

Make Your Own Neural Network

 

makeyourownneuralnetwork.blogspot.com

 

그리고, 다음 주소에는 책에 수록된 예제들이 올라와 있다.

 

makeyourownneuralnetwork/makeyourownneuralnetwork

Code for the Make Your Own Neural Network book. Contribute to makeyourownneuralnetwork/makeyourownneuralnetwork development by creating an account on GitHub.

github.com

 

 

 
 

 

반응형
반응형

2048 게임을 즐기던 중에 문득,

딥러닝을 통해 컴퓨터가 2048 게임을 학습해서 실행해 보면 재밌겠다는 생각을 해 보았다.

딥러닝으로 바둑도 하고, ATARI의 벽돌깨기 게임도 하는 판에,

2048 게임을 못할 것도 없다는 생각에, 한번 시도해 볼까 하다가

혹시나 해서 인터넷을 검색해 보니,

역시나 벌써 누군가가 하고 있는 것을 발견했다.


YouTube

StackOverflow의 질문과 답변

GitHub에 올라온 소스


참고로, 다음 사이트에서는 

웹상에서 2048 게임을 할 수 있다.

Play 2048!


그리고 다음 블로그에는, 딥러닝은 아니지만 

AI를 통해 2048을 Play하는 내용의 글이 연재되어 있다.

An AI for 2048 

반응형

'머신러닝&인공지능' 카테고리의 다른 글

2048을 Play하는 AI 개발 - 2  (0) 2019.12.01
2048을 Play하는 AI 개발  (0) 2019.11.18
ConvNetJS를 이용한 XOR 분류 테스트  (0) 2016.07.20
언어별 딥러닝 라이브러리  (0) 2016.07.15
CodeOnWeb 소개  (0) 2016.07.14
반응형

머신러닝을 학습할 때 자주 등장하는 예제는 MNIST 분류일 것이다.

MNIST란, 숫자 필기 데이터 모음이며, 

머신러닝 기법간 정확도 비교를 위해 자주 사용된다.

자세한 정의는 다음 링크에 나와 있다.

MNIST database


또한, 딥러닝에 필요한 기능들을 구현해 둔 Library들이 있는데,

내가 찾아본 것은 다음의 몇가지들이다.


위에 열거한 Library들에 대한 Tutorial을 보면,

공통적으로 MNIST 데이터를 사용하는 예제들이 나온다.


Theano

TensorFlow



반응형

'머신러닝&인공지능' 카테고리의 다른 글

언어별 딥러닝 라이브러리  (0) 2016.07.15
CodeOnWeb 소개  (0) 2016.07.14
2-norm과 스칼라곱을 통한 distance 계산  (0) 2016.04.29
빅데이터  (0) 2016.04.28
인공지능 관심 사이트  (0) 2016.03.22

+ Recent posts