自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用「最好的語言」PHP,做一個機(jī)器學(xué)習(xí)數(shù)據(jù)集

開發(fā) 前端
如果想構(gòu)建一個類似人類的 AI 象棋游戲,首要問題就是創(chuàng)建一個數(shù)據(jù)庫,并且該數(shù)據(jù)庫需要盡可能多的包含象棋大師玩游戲的數(shù)據(jù)。

 [[409882]]

機(jī)器學(xué)習(xí)是一門通過數(shù)據(jù)來教計算機(jī)解決問題的科學(xué),而不是編寫序列算法,讓指令逐個執(zhí)行。

一般來說,數(shù)據(jù)準(zhǔn)備是機(jī)器學(xué)習(xí)的首要任務(wù),通常包括兩個子步驟:創(chuàng)建數(shù)據(jù)集和轉(zhuǎn)換數(shù)據(jù)。

如果想構(gòu)建一個類似人類的 AI 象棋游戲,首要問題就是創(chuàng)建一個數(shù)據(jù)庫,并且該數(shù)據(jù)庫需要盡可能多的包含象棋大師玩游戲的數(shù)據(jù)。通常情況下,大多數(shù)人使用 Python 構(gòu)建數(shù)據(jù)集,并且在一定程度上認(rèn)為 Python 是數(shù)據(jù)科學(xué)的唯一編程語言。

但是,項目作者 Jordi Bassaganas 打破流行觀點(diǎn)(該觀點(diǎn)認(rèn)為 Python 是世界上唯一用于數(shù)據(jù)科學(xué)的編程語言),不使用 Python,而是在構(gòu)建數(shù)據(jù)中使用了 MySQL、PHP 和 Rubix ML,其中 Rubix ML 是一個高級機(jī)器學(xué)習(xí)庫,可構(gòu)建使用 PHP 語言從數(shù)據(jù)中學(xué)習(xí)的程序。

用「最好的語言」PHP,做一個機(jī)器學(xué)習(xí)數(shù)據(jù)集

項目地址:https://github.com/programarivm/chess-data

項目介紹

該項目是一組命令行界面(Command-Line Interface,CLI)工具,可幫助管理 PGN 游戲中的象棋數(shù)據(jù)庫,此外,該工具還可以進(jìn)行數(shù)據(jù)準(zhǔn)備、可視化數(shù)據(jù)和使用 Rubix ML 訓(xùn)練監(jiān)督模型。

[[409883]]

所謂的 PGN 就是「可移植式棋局記號法」(Portable Game Notation),是一種以 ASCII 文本文件表示國際象棋棋局?jǐn)?shù)據(jù)的標(biāo)準(zhǔn)設(shè)定。PGN 設(shè)計成使人們很容易進(jìn)行閱讀和編寫,電腦程序很容易進(jìn)行解析和產(chǎn)生。定義和傳播 PGN 的目的,是為了促進(jìn)公開對局?jǐn)?shù)據(jù)的共享交流,包括來自全世界的棋手 (不管有無組織)、出版人和電腦國際象棋研究的。

接下來真正的問題是:應(yīng)該給計算機(jī)提供哪些示例以使機(jī)器學(xué)習(xí)變得更容易?

這個數(shù)據(jù)準(zhǔn)備存儲庫主要任務(wù)是將數(shù)百萬個象棋游戲加載到 SQL 數(shù)據(jù)庫中。作者從 PGN Mentor 中下載了 PGN 文件,PGN Mentor 是一個用于國際象棋研究的軟件應(yīng)用程序,同時還提供了一個包含數(shù)百萬個游戲的文件集合,并將這些文件復(fù)制到 programarivm/chess-data/data/players 文件夾中。

其實(shí)使用 PHP 為機(jī)器學(xué)習(xí)準(zhǔn)備數(shù)據(jù)集并沒有什么簡單方法。但實(shí)現(xiàn)過程涉及到不同的技術(shù),這是關(guān)于對處理問題的理解、收集和過濾數(shù)據(jù)的最好實(shí)踐過程。

例如,當(dāng)涉及國際象棋時,首先你需要過濾和驗(yàn)證游戲,這意味著要刪除那些語法上無效或包含錯誤的游戲。cli/pgn-validate.php 命令查找 PGN 文件中錯誤,這條命令在將信息加載到數(shù)據(jù)庫時會被廣泛使用。

示例展示

下面展示了使用該項目設(shè)置和運(yùn)行 MySQL 國際象棋數(shù)據(jù)庫,第一步是創(chuàng)建如下所示的象棋數(shù)據(jù)庫:

  1. $ php cli/db-create.php 

然后,按照下面的描述,games 表將被植入有效數(shù)據(jù)。

  1. $ time php cli/db-seed.php data/players 
  2. ✗ 15 games did not pass the validation. 
  3. ✓ 3234 games out of a total of 3249 are OK. 
  4. ✓ 1353 games out of a total of 1353 are OK. 
  5. ✓ 1900 games out of a total of 1900 are OK. 
  6. ✓ 776 games out of a total of 776 are OK. 
  7. ✗ 1 games did not pass the validation. 
  8. ✓ 1660 games out of a total of 1661 are OK. 
  9. ✗ 4 games did not pass the validation. 
  10. ... 
  11. ✓ 1124 games out of a total of 1124 are OK. 
  12. ✓ 265 games out of a total of 265 are OK. 
  13. ✗ 1 games did not pass the validation. 
  14. ✓ 2099 games out of a total of 2100 are OK. 

cli/db-seed.php 命令需要大約 40 分鐘才能加載大約 400,000 個游戲。

  1. mysql> select count(*) from games; 
  2. +----------+ 
  3. | count(*) | 
  4. +----------+ 
  5. 402658 | 
  6. +----------+ 
  7. 1 row in set (0,23 sec) 

值得一提的是,所有這些都是用 PHP 語言實(shí)現(xiàn)的!

建立好國際象棋數(shù)據(jù)庫后,就可以為機(jī)器學(xué)習(xí)算法準(zhǔn)備數(shù)據(jù)。在接下來的文章中,項目作者將詳細(xì)說明如何通過使用多層感知器分類器和該數(shù)據(jù)庫,進(jìn)行國際象棋防守、戰(zhàn)術(shù)等的開發(fā)。

 

責(zé)任編輯:張燕妮 來源: 機(jī)器之心Pro
相關(guān)推薦

2016-08-31 07:30:03

數(shù)據(jù)科學(xué)機(jī)器學(xué)習(xí)API

2020-07-20 10:00:52

Python翻譯工具命令行

2017-01-10 09:48:58

PHP語言Perl

2021-12-01 07:02:55

Python 記錄器按鍵

2020-07-15 13:51:48

TensorFlow數(shù)據(jù)機(jī)器學(xué)習(xí)

2020-08-12 09:46:46

TensorFlow數(shù)據(jù)機(jī)器學(xué)習(xí)

2015-07-03 11:27:30

程序員自己神器

2019-04-19 14:40:15

代碼Python機(jī)器人

2009-10-01 09:19:45

PHP框架ZendFramewoCake

2020-10-14 14:18:33

機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)架構(gòu)人工智能

2022-03-30 15:11:26

Python房價工具

2016-11-03 09:19:04

Python機(jī)器學(xué)習(xí)庫

2024-05-06 08:34:17

GolangGo程序

2018-01-04 16:04:35

圓環(huán)放大動畫

2018-12-17 09:10:52

機(jī)器學(xué)習(xí)TensorFlow容器

2024-04-10 12:39:08

機(jī)器學(xué)習(xí)python

2023-05-27 21:13:34

FlaskURL裝飾器

2021-12-30 06:59:27

視頻通話網(wǎng)頁

2017-06-30 15:18:24

對賬系統(tǒng)互聯(lián)網(wǎng)

2012-12-17 12:58:18

WebjQuery重構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號