TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

第5回世界将棋AI電竜戦 結果報告

11/30、12/1に開催された文部科学大臣杯第5回世界将棋AI電竜戦にdlshogiとして参加しました。 結果 予選を1位で通過し、決勝リーグでは、1位と0.8勝差で準優勝という結果になりました。dlshogiは、第2回から4年連続準優勝です。 今大会の感想 優勝した氷彗が…

Gumbel AlphaZeroの論文を読む その4

前回の続き 探索の内部処理 探索の処理は、searchに書かれている。 引数 params: ルートおよび再帰関数に渡されるパラメータ。 rng_key: 乱数生成器の状態。 root: ルートノードの初期状態で、事前確率、価値、埋め込みを含む。 recurrent_fn: 葉ノードおよ…

Gumbel AlphaZeroの論文を読む その3

前回に続き、examples/visualization_demo.py のソースを解説する。 探索 探索の処理は、gumbel_muzero_policyに書かれている。引数は、以下の通り。 params: ルートおよび再帰関数に渡されるパラメータ。 rng_key: 乱数生成器の状態。 root: (prior_logits,…

Gumbel AlphaZeroの論文を読む その2

前回、Gumbel AlphaZeroの論文の概要と、公式実装の環境構築について記載した。今回は、公式実装のサンプルプログラム examples/visualization_demo.py のソースを調べながらGumbel AlphaZeroのアルゴリズムを理解する。 visualization_demo.pyの概要 visual…

Gumbel AlphaZeroの論文を読む

dlshogiにGumbel AlphaZeroの強化学習を導入したいと思って、Gumbel AlphaZeroの論文を読んでいるが、理論がなかなか難しいため公式実装を確認しながら理解する。 Gumbel AlphaZero AlphaZeroの強化学習は、自己対局でUCTで探索した際の訪問回数を目標の確率…

【dlshogi】方策のみで指した場合のfloodgateでのレーティング

前回、dlshogiの最新モデルで方策のみで連続対局した場合の強さを測定した。 結果、第2回世界将棋AI電竜戦エキシビジョンバージョンと比べて方策がR+395.1だけ強くなっていることわかった。今回は、floodgateに放流して、レーティングを測定した。 測定条件 …

【dlshogi】最新モデルが公開バージョンからどれくらい強くなっているか

前回書いた通り、方策の強さを手軽に測定できるようになったので、公開している第2回世界将棋AI電竜戦エキシビジョンバージョンから最新モデルがどれくらい強くなっているか測定した。以前に、WCSC32版dlshogiと探索ありで比較したときは、互角局面集を使用…

【dlshogi】ラージカーネル+TransformerモデルのPolicy Elo

先日学習したラージカーネル+Transformerモデルの方策のみの強さ(Policy Elo)を測定した。これまで、同一持ち時間や固定ノード数で計測も行ったが、方策のみの連続対局を行うことで、短時間で直接方策の強さを測ることができる。floodgateのテストデータでの…

【読書ノート】Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems

「Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems」を読んだので内容をまとめる。以下の内容は、ほとんどClaude3.5 Sonnet v2を使用して作成している。この書籍は、ソフトウェアやハードウェアの…

【dlshogi】ラージカーネル+Transformerモデルの学習

以前に検証したラージカーネルのモデルにTransformerを組み合わせたモデルの学習を行った。実験段階では20ブロック256フィルタのモデルを使用したが、今回は11月末に行われる電竜戦向けに40ブロック512フィルタのモデルを学習した。 モデル構造 20ブロック25…

Rectified Flowで画像生成する その4(CIFAR-10とFID)

前回まではMNISTデータセットでRectified Flowを学習したが、今回はCIFAR-10データセットで学習する。 後で、Stable Diffusion 3で使われている時刻サンプラーの効果を測りたいため、基準としてFIDを計測する。 CIFAR-10 CIFAR-10は、10クラスの32x32のカラ…

Rectified Flowで画像生成する その3(テキスト条件付け)

前回、Rectified Flowをスクラッチで実装してMNISTデータセットの学習を試した。 画像生成は条件を指定しないで生成していたため、0から9の文字がランダムに出力されていた。今回は、0から9を表す1文字を条件として与えて、条件付けされた画像が生成できるか…

Rectified Flowで画像生成する その2(スクラッチ実装でMNISTを学習)

前回、Rectified Flowの公式実装で、CIFAR10の学習を試した。今回は、公式実装を参考に、基本的な部分のみをスクラッチで実装して、MNISTデータセットの学習を試す。 実装の全体像 実装は、以下の3つパートに分かれる。1. Conditional U-Netの実装 2. Rectif…

Rectified Flowで画像生成する

画像生成モデルは、Stable Diffusionが出てきた頃は、Diffusionモデルが主流であったが、最近のStable Diffusion 3やFlux.1では、Flow Machingのモデルが使用されている。Flow Machingにもいくつかの訓練方法がある。 Rectified Flowは比較的シンプルでスケ…

【Tips】ChatGPT 4oで日本語の数式を含む文書画像をOCRしてMarkdownで出力する

ChatGPTに日本語を含むの画像を添付して、例えば「画像からテキストを抽出し、Markdown形式で出力」のような指示でテキスト化しようとすると、 It seems that the required Japanese language data for optical character recognition (OCR) is not availabl…

【読書ノート】深層ニューラルネットワークの高速化

書籍「深層ニューラルネットワークの高速化」を読んだので内容をまとめる。以下の内容は、ほとんどClaude3.5 Sonnetを使用して作成している。目次 第1章 はじめに 1.1 高速化の意義 1.2 高速化の理論的背景 1.3 用語の整理 第2章 高速化手法の概要 2.1 量子…

【読書ノート】意識の脳科学 「デジタル不老不死」の扉を開く

書籍「意識の脳科学 「デジタル不老不死」の扉を開く」を読んだので内容をまとめる。意識のアップロードについて研究されている渡辺正峰先生の著書である。 前著「脳の意識 機械の意識 脳神経科学の挑戦」と重複する内容も多いが、最近のChatGPTの話題につい…

【dlshogi】位置エンコーディング(その2 入玉局面)

前回、ResNetベースのモデルにおける位置エンコーディングの効果について測定した。 結果、位置エンコーディング有無による差は、ほぼなかった。入玉の局面においては、差がある可能性があるため、追加で検証した。 実験条件 評価データとして、 NNUE系1000…

【dlshogi】位置エンコーディング

Ryfamateが採用しているモデル構造の工夫の一つである位置エンコーディングについて検証する。 位置エンコーディング 畳み込みニューラルネットワークは、位置不変性という特性を持っており、画像の位置をずらした場合でも同じように認識される。 将棋では、…

【dlshogi】ラージカーネルの効果 その4(位置情報 続き)

前回、Ryfamateと同様の9x1と1x9カーネルを並列にしたブロックは、位置情報が失われているという仮説を立てて、1x1カーネルを加えることで精度を向上できるか検証した。結果、精度が上がることが確かめられたが、単にパラメータ数が増えた効果なのか、位置情…

【dlshogi】ラージカーネルの効果 その3(位置情報)

前回、Ryfamateと同様の9x1と1x9カーネルを並列にしたブロックが、精度と推論速度の両方でメリットがあることを実験で確認した。【dlshogi】ラージカーネルの効果 - TadaoYamaokaの開発日記 【dlshogi】ラージカーネルの効果 その2(推論速度) - TadaoYama…

【dlshogi】ラージカーネルの効果 その2(推論速度)

前回、dlshogiにおけるラージカーネルの精度と訓練速度を測定した。推論については、測定していなかったので、追加で測定した。dlshogiで、Ryfamate Cross Network (RyfcNet)の実験をしていただいたようです。C-Layerは、paddingを行わず、通常のConvolution…

【dlshogi】ラージカーネルの効果

dlshogiは昨年はほぼ定跡の自動生成しか行っておらず、モデルの改善は後回しにしていた。 定跡の自動生成については、手法がほぼ確立できたので、最近はモデルの改善を行っている。学習データの質と量を増やして、モデルサイズを大きくすれば強くなっていく…

【読書ノート】The Singularity Is Nearer

レイ・カーツワイルの新刊「The Singularity Is Nearer」を読んだので内容をまとめる。著者のレイ・カーツワイルは、技術的特異点が近い将来に到来し、それが人類の進化や生活に革命的な変化をもたらすと主張している。この書籍は、技術の急速な進歩がどのよ…

【読書ノート】ブルー・オーシャン戦略

競争を避けながら持続的な成長を実現するビジネス戦略に関する名著「ブルー・オーシャン戦略」を読んだので内容をまとめる。以下の内容は、ほとんどClaude3.5 Sonnetを使用して作成している。目次 第1部 ブルー・オーシャン戦略とは 第1章 ブルー・オーシ…

【読書ノート】Designing Interfaces: Patterns for Effective Interaction Design

インターフェースデザインのベストプラクティスとパターンをまとめた「Designing Interfaces: Patterns for Effective Interaction Design」を読んだので内容をまとめる。Jenifer Tidwell著のこの書籍は、効果的なインタラクションデザインを実現するための…

【読書ノート】生成AI時代のプロダクトマネジメント

「生成AI時代のプロダクトマネジメント 勝てる事業の原則から戦略、デザイン、成功事例まで」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。目次 第Ⅰ部 生成AIの全体像を俯瞰する 第1章 AI革命の基礎知識 第2章 …

【読書ノート】The Design of Everyday Things

日常的な物のデザインに関する基本的な原則を説明した名著「The Design of Everyday Things」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。目次 1. The Psychopathology of Everyday Things 2. The Psychology …

【読書ノート】Don't Make Me Think

ユーザビリティの基本原則をシンプルに説明した名著「Don't Make Me Think」を読んだので内容をまとめる。 以下の内容は、ほとんどClaude3 Opusを使用して作成している。目次 Introduction: Read me first Guiding Principles Chapter 1. Don’t make me thin…

【dlshogi】40ブロック512フィルタモデルの学習

dlshogiは直近では1年近く定跡生成に取り組んでいたため、モデルの大きな改善はなかった。 定跡生成が一段落したので、最近はモデルの改善に取り組んでいる。 終盤の読み抜け対策 ディープラーニング系のモデルには、終盤で読み抜けが比較的起こりやすいとい…