<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ctak, branch hybrid_rootstrap</title>
<subtitle>An implementation of Tak and a computer opponent in C</subtitle>
<id>https://git.l-3.space/ctak/atom/?h=hybrid_rootstrap</id>
<link rel='self' href='https://git.l-3.space/ctak/atom/?h=hybrid_rootstrap'/>
<link rel='alternate' type='text/html' href='https://git.l-3.space/ctak/'/>
<updated>2026-10-09T19:29:37Z</updated>
<entry>
<title>switch to orjson for faster loading</title>
<updated>2026-10-09T19:29:37Z</updated>
<author>
<name>tslil</name>
<email>tslil@posteo.de</email>
</author>
<published>2026-10-08T18:51:04Z</published>
<link rel='alternate' type='text/html' href='https://git.l-3.space/ctak/commit/?id=dfd6accd85cc56babb3ee7c6fac53d7d3cad3a07'/>
<id>urn:sha1:dfd6accd85cc56babb3ee7c6fac53d7d3cad3a07</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix plot labels</title>
<updated>2026-09-25T17:03:07Z</updated>
<author>
<name>tslil</name>
<email>tslil@posteo.de</email>
</author>
<published>2026-09-25T16:43:48Z</published>
<link rel='alternate' type='text/html' href='https://git.l-3.space/ctak/commit/?id=adf8dee63cf3a2b2fea7c74daf90f7efbe1e9017'/>
<id>urn:sha1:adf8dee63cf3a2b2fea7c74daf90f7efbe1e9017</id>
<content type='text'>
</content>
</entry>
<entry>
<title>factor out nn_train.py into a separate python project to make it more manageable, add plotting and offline strength fit</title>
<updated>2026-09-25T15:18:21Z</updated>
<author>
<name>tslil</name>
<email>tslil@posteo.de</email>
</author>
<published>2026-09-25T13:46:31Z</published>
<link rel='alternate' type='text/html' href='https://git.l-3.space/ctak/commit/?id=61e5b8949b2f5e8973c58f0dcc7c20c4bdade029'/>
<id>urn:sha1:61e5b8949b2f5e8973c58f0dcc7c20c4bdade029</id>
<content type='text'>
</content>
</entry>
<entry>
<title>try combining loops</title>
<updated>2026-09-20T07:29:22Z</updated>
<author>
<name>tslil</name>
<email>tslil@posteo.de</email>
</author>
<published>2026-09-20T07:28:09Z</published>
<link rel='alternate' type='text/html' href='https://git.l-3.space/ctak/commit/?id=6a2197328065fe38ac62d9e76e3e943fd297e73c'/>
<id>urn:sha1:6a2197328065fe38ac62d9e76e3e943fd297e73c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>transposing the weights gives ~2.5x speedup</title>
<updated>2026-09-19T19:32:46Z</updated>
<author>
<name>tslil</name>
<email>tslil@posteo.de</email>
</author>
<published>2026-09-19T19:24:08Z</published>
<link rel='alternate' type='text/html' href='https://git.l-3.space/ctak/commit/?id=9f5f953a95c8617cd2fdd24f7402af632c1b07c2'/>
<id>urn:sha1:9f5f953a95c8617cd2fdd24f7402af632c1b07c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>big refactor</title>
<updated>2026-09-19T18:23:34Z</updated>
<author>
<name>tslil</name>
<email>tslil@posteo.de</email>
</author>
<published>2026-09-19T08:59:29Z</published>
<link rel='alternate' type='text/html' href='https://git.l-3.space/ctak/commit/?id=fe7268110d93e2abe4d4b51ac64e83521a8d6382'/>
<id>urn:sha1:fe7268110d93e2abe4d4b51ac64e83521a8d6382</id>
<content type='text'>
* use elo
* optionally train on only diagonal
* train-inference nonlinearity alignment
</content>
</entry>
<entry>
<title>grid search</title>
<updated>2026-09-18T20:19:33Z</updated>
<author>
<name>tslil</name>
<email>tslil@posteo.de</email>
</author>
<published>2026-09-18T14:12:13Z</published>
<link rel='alternate' type='text/html' href='https://git.l-3.space/ctak/commit/?id=3f918be9b31026ae546f66c565b9494dab6d82a2'/>
<id>urn:sha1:3f918be9b31026ae546f66c565b9494dab6d82a2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>working towards hybrid rootstrap</title>
<updated>2026-09-18T14:12:19Z</updated>
<author>
<name>tslil</name>
<email>tslil@posteo.de</email>
</author>
<published>2026-09-17T06:01:29Z</published>
<link rel='alternate' type='text/html' href='https://git.l-3.space/ctak/commit/?id=0dba02072e9a89e35885d9078c0c8b58956448ce'/>
<id>urn:sha1:0dba02072e9a89e35885d9078c0c8b58956448ce</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix tt issue for non-self-play</title>
<updated>2026-09-16T20:02:53Z</updated>
<author>
<name>tslil</name>
<email>tslil@posteo.de</email>
</author>
<published>2026-09-16T19:10:33Z</published>
<link rel='alternate' type='text/html' href='https://git.l-3.space/ctak/commit/?id=1898add0142b70b3fef5af78a6f3d7399a3f2cd5'/>
<id>urn:sha1:1898add0142b70b3fef5af78a6f3d7399a3f2cd5</id>
<content type='text'>
A little subtle, but in non-self-play games sharing tt entries is incorrect. We must therefore key additionally on the evaulation function itself.
</content>
</entry>
<entry>
<title>move data generation into the epoch loop</title>
<updated>2026-09-13T19:15:31Z</updated>
<author>
<name>tslil</name>
<email>tslil@posteo.de</email>
</author>
<published>2026-09-12T18:37:56Z</published>
<link rel='alternate' type='text/html' href='https://git.l-3.space/ctak/commit/?id=7f1566fb21dfe8c99bc770885cc2cc4e478e16b4'/>
<id>urn:sha1:7f1566fb21dfe8c99bc770885cc2cc4e478e16b4</id>
<content type='text'>
Previously we would spend all of the training epochs on making the network a better predictor of the *initial* TD-leaf values that we computed before the start of the first epoch. There's definitely something stale about this, given that the TD-leaf training targets involved the net evaluation at PVs. I'm not overly confident that this makes sense, but as a kind of compromise between fully on-line TD-leaf and the fully stale version we had before, we now recompute the TD-leaf values in each epoch with the fine-tuned net instead of the epoch 0 net.

Perhaps we were just lucky, but this seems to train a strong network under the default setting.

More experimentation is required.
</content>
</entry>
</feed>
