思うだけで学ばない日記 2.0

思うだけで学ばない日記から移転しました☆!よろしくお願いします。

2010-01-01から1年間の記事一覧

整いました!

AI

******* GAME STATUS ******* Players: -(W):test2 +(B):test1 * CSM TIME: -(W): 1 (clk= 2100 ms) +(B): 14 (clk= 14000 ms) * [4] To_Move:- R<:-3122GI R<:T434 *** <<相手着手完了>> *** FU(0), KY(0), KE(0), GI(0), KI(0), KA(1), HI(0), OU(0) 9 8 7 6 5 4 3 2 1 ------------------------</:-3122gi>…

n=3のケース

【主題】 次の関係式を満たす正の整数x,y,zは存在しない z^3 = x^3 + y^3 以下証明を企てる。 【トライ1】 xとyのG.G.M.をgとおくと、互いに素な正の整数p, qが存在して x = g*p y = g*q と書ける。すると x^3 + y^3 = (g^3) * (p^3 + q^3) = (g^3) * (p + q…

フェルマーの最終定理のnの下限が3だったのかどうか忘れたときの思い出し方

z^2 = x^2 + y^2を満足する正の整数z,x,yは無数にあるわけじゃん? 両辺にzを掛けるじゃん? z^3 = z*(x^2) + z*(y^2)になるわけじゃん? でもz≠xだしz≠yでもあるので、z*(x^2)もz*(y^2)も、素因数分解の一意性より、全ての素因数を3の倍数個含むことはあり…

オイラーの公式の左辺を忘れたときの思い出し方

cosθ+i*sinθをθで微分すると-sinθ+i*cosθ = -i*(cosθ+i*sinθ)じゃん? 微分したとき-i*f(θ)となるf(θ)ってe^(-iθ)ぐらいしか思いつかないじゃん? 少なくとも、f’(x)=f(x)であるf(x)はe^xしかないわけだしー。 だからe^(-iθ)が答え。

追記

>でもz≠xだしz≠yでもあるので、z*(x^2)もz*(y^2)も、素因数分解の一意性より、全ての素因数を3の倍数個含むことはあり得ないわけ。 いやちょっと待った、 z≠xというだけでは整数の積z*x^2の立方根が整数にならないと言う根拠にはならない。 なぜなら、zとxの…

【真実】 将棋 局面数 計算方法 【本当】

AI

いったい合法な将棋の局面は本当は正確にいくつあるのかいくつあるのか気になって気になって眠れないorz 局面は羊のかわりにならない 完全解決するべく、改めて基本に立ち返ってみれり 基本手順 数え上げ対象の集合をΩとしたときに、重複も漏れもない数え上…

将棋 局面数 計算方法

AI

エデンの園配置の除外とか考えずに、単純に可能な駒の配置を重複無く数え上げるには、次のように考えれば良い*1 【追記】コソーリ直させていただきましたorz そして補足が有ります(末尾の追記参照)。 【追記2】置駒の配置の数え上げの式がまちガッチョルorz修正範…

探索木の再帰性のひみつ

AI

今日わ絶好の探索日和ので局面を評価する手段について述べるのに適当な気のする、 ただ本当にそうしたときに局面の評価手段を「評価関数」という言葉で代表すると「局面を評価因子に分解して、ほにゃららして、足し合わせる」その他といった計算メカニズムの…

C#でマルチスレッド[補足およびおおよそ解決編]

いや上の問題(別のスレッドにデータを渡す)について世間的に行われている方法について基本的なのを2点忘れてた; 5. スレッド生成時にパラメータを渡すインターフェースが通常あるからそれを使ってXを渡す 6. スレッドに渡す直前にオブジェクトXを生成して…

C#でマルチスレッド

C#において、参照形の代入は、参照のコピーのみ行われ、それが指すオブジェクト実体のコピーを伴わない。このことは、マルチスレッドプログラミングの際めんどくさい問題を引き起こす。スレッドA内の変数aがあるオブジェクトXへの参照であるとして、aをスレ…

メモリバリアまとめ

Xbox 360 と Microsoft Windows でのロックレス プログラミングの考慮事項 Volatile 変数と順序変更 (中略) Visual C++ 2005 には、volatile 変数へのアクセスに関して、標準の C++ を補うために、マルチスレッドを想定したセマンティクスが定義されています…

例外問題まとめ(?)

だいたいわかった(本当カヨ;まず基本的想定として、オブジェクトの解体担当は、当のオブジェクトに限定して良い*1。 この前提は、オブジェクトをコレクションに登録してコレクションから解体トリガを与えるコレクションで管理する、と言う場合でも一般性を失…

C++コンストラクタの正しい書き方

【追記:中程に訂正箇所があります】 コンストラクタと例外に関して世間一般に流布する誤解(というものがあるとして)とは無関係に、次の2点は全くの真実だ。 C++のメリットを享受しようと思えば、コンストラクタ内で例外が発生する危険性をとうてい0にはで…

ostringstreamめっちゃ便利よ(1)

C言語プログラムでの文字列の扱いは悩ましいところだが、ある関数でちょっと動的にメッセージを生成して呼び出し元に戻したい、というとき、呼び出し元の方で明示的にバッファを用意するのが一般的だ そうでない次のような書き方は違法だ #include <stdio.h> static c</stdio.h>…

Anytime, Anywhere マルチスレッド

AI

春に書いたスレッドプールがアレな出来だったので書き直してみまくりんぐ、うれしげに貼る #include "stdafx.h" #include "dbg.h" #include "mythread_cfg.h" #include "MyThreadPool.h" namespace DbgMyThreadPool { /// 文字列を反復出力するサンプルスレ…

てst

AI

grave2将棋(仮称)はこれから高精度化を達成する予定であるところの評価関数の青天井な精度の高さだけを武器とするのであって詰み探索ルーチンなどという無粋なものは積まないので当然αβ ponderが詰みルーチンと同等の結果を返すことが要求されるる 評価関…

プログラミングの現代

AI

ギミック 実装 チェック 置換表 レ レ 末端の打ち切り評価 レ レ 指し手生成のコルーチン化 レ レ オーダリング レ レ R PIN レ レ チェックは素のαβ探索との結果比較で行った とわいえ、置換表かオーダリングをONにすると最善手*1が複数ある局面で手を違え…

I have a mistake, orz

AI

上に上げた実行例は、詰み証明とはイコールではなくて、(下手糞なやり方で)相手玉を追いかけ回して詰ました、という話。 探索(特に何手か先を見通す類の定理による枝狩りを含まない単純なやつ)が詰み証明とイコールになるのは、探索木が相手を詰ます手順…

追記

AI

置換表をONにしたαβ ponderと、素のαβ ponderとで評価値が一般に一致するはずねーじゃん…?!とクレームをつけてくるモンスター開発者がいないとも限らないので取り急ぎ補足 ここで実装した置換表は、多少の効率の低下と引き替えに、その手の誤差を一切生じ…

3週間クッキング

AI

ニューラルネットワークでニューロン数を固定せずに続々追加されるサンプルを全て学習し切る方法について考えを巡らせたが、ちょっと考えたらすぐ思いついた*1 シグモイド関数ベースのニューラルネットワークの場合、n次元のスカラー場における任意の「山」…

車輪の再発明のリバイバルのカバーのワゴンセール

AI

ニューラルネットワークに何かを学習させるとき、重みベクトルの系列{ w_i }の初期値と個数を適当に決めてあとばBPにまかせる、というのは全くの神頼み運頼みであって学習を完遂する保証がないという点で理性ある行為とは言えない希ガスすることは論をまたな…

おまけ:なぜR250の棋譜を集めてボナメソにかければR300ぐらいになるのか?

AI

われわれが観測するR250の指し筋は良手と悪手が混合したものの平均だが、T(x)の分解能を高めると悪手がフィルタされて学習結果の平均レベルが上がるため、と考えれば定性的に辻褄が合う(マテとりとめもなく終わる

神様なら考える必要がない

AI

なんで突如ロジスティック回帰やニューラルネットワークの話を始めたのかというと、前回エントリに書いた内容でそこそこ効率よくて調整フリーな無制限の探索ブートストラッピングが可能になったわけだが*1、別の場所にしわ寄せが来てて悩み中のため、 これが…

ロジスティック回帰がニューラルネットワークのパクリである件について

AI

式を見れば一目瞭然だる。 単一ニューロンi (i=1,2,...,m)の表式は、重みベクトルw_i=(w_i_1,w_i_2,w_i_3,...,w_i_n, b_i)(b_iは定数)、特徴ベクトルx=(x_1,x_2,x_3,...,x_n, 1)、^Tで転置を表すとして、 出力y_i(x) = φ(w_i・x^T) ここでφ()はシグモイド関…

ロジスティック回帰

AI

ロジスティック関数を使った使った2クラス識別を考える。 例えばn個の標本系列{ x_n }の内訳がM:Nの割合でクラスC_1とクラスC_2だったとしてそうなった隠れた前提がB(θ)だったとすると、{ x_n }が観測される確率は Pr( { x_n }が生起 | B(θ) ) = Pr( (C1がM…

最尤法の拡張(もしくは後退)

AI

ここは漏れの日記帳だ 将棋の局面は(膨大ではあるが)有限個なので、どういう切り口で確率を調べるにしても離散確率分布で記述可能な量しか現れないハズ。 ここでは将棋の局面や指し手やそのバックグラウンドにしか興味がないので、以下離散確率分布のみ考…

というわけで5月末までの完全決着は無理だがブートストラッピングの理屈だけは合意に至った(神様との

AI

(ry

【決定論的】評価関数の確率収束でないブートストラップ方法【多分確実】

AI

昨日の混乱は2つの探索S0とSの使い分けにあったとも言える。そもそも探索S0(ゲーム木全体を根から葉まで読み切るmin-max探索;いわば神の目)の評価関数が所与とする想定は現実的でないから、Sに統一しよう。すると話がうんと単純化して、概略として次の学習…

それはそうと、さらにその前のエントリでGMA0BNが得意になってさかんに言いたてていた「精度∞の評価関数構成法」について思ったより重篤な間違いがあったので修正してみた↓↓↓orz

「精度∞の評価関数構成法」の評価値操作で満たされるべき条件は約こんな感じ。 条件1:ゲーム木の根r0から葉まで読み切るmin-max探索S0の主経路上のORノードnから固定深さまでのmin-max探索Sを行うとき、探索Sの末端ノードのうち、nの子(ANDノード)dから到…

きた!定理きた!これで勝つる!

AI

(というエントリにするつもりでしたが予定を変更してお送りしますorz) 日曜あたりから主経路主経路言い出したが、これはprincipal variationの訳語(らしい)。 おそらく1回の探索における探索木の中の読み筋のことだと思う。 その前のエントリで言い出し…