Mathematics · machine learning · algorithms
Try the result.
Bring your reasons.
A small AdaGrad experiment with everything needed to rerun it. Inspect the claim, test its limits, and make a judgment you can explain.
One bounded question
Does changing units
change the path?
Multiplying an entire least-squares loss by a positive constant preserves its minimizer. An implementation’s stabilizer can still change the updates it takes.
On these five sparse, noiseless least-squares problems, ideal AdaGrad and appropriately rescaled stabilizers preserve their corresponding baseline trajectories within the recorded numerical tolerances. Fixed stabilizers substantially change the trajectories at the smallest tested whole-loss multiplier, 10⁻⁶, over 500 sample updates.
The complete claim and protocol specify the comparisons. This is a finite computational result. It does not establish an optimizer ranking, a deep-learning benchmark, a convergence rate or a new theorem.
Initial unscaled loss remaining with matched fixed stabilizers at loss scale 10⁻⁶.
Initial unscaled loss remaining with appropriately rescaled controls under the same conditions.
Predefined trajectory checks passed. Reported loss percentages are five-seed medians after 500 updates.

No account needed
From download
to your own run.
Use Python 3.11 or later. The reproduction uses the standard library, reads the saved inputs and writes a new result file. It needs no chain connection or plotting dependency.
- 01
Download and check the package
Save the evidence ZIP into a new folder. Compare its SHA-256 with the value below before extracting or running code.
curl --fail --max-time 60 --user-agent 'zerone-evidence-review/1.0' \ https://zerone.ai/research/adagrad/v1/adagrad-evidence-v1.zip \ -o adagrad-evidence-v1.zip python3 -c 'import hashlib; print(hashlib.sha256(open("adagrad-evidence-v1.zip", "rb").read()).hexdigest())'Expected ZIP SHA-256
1400047a6418f121883761b8dc27215a958728b1496ec62d15f93dcd38487da2Extract the verified ZIP and open the included README. Keep the original inputs unchanged; use a separate copy for extensions or counterexamples.
- 02
Inspect, then reproduce
From the extracted package directory, inspect
reproduce.pyandexperiment.py, then run:python3 -I -B reproduce.py \ --manifest-sha256 2314721c1aa7b93bd6e34b47fbe8ca66db76cc7035b01e2de5100336107304d3 \ --output my-result.jsonThe runner checks the package’s pinned files before loading the experiment. It retains the rerun result and reports whether the computational content exactly matches. A mismatch needs inspection; it must not be relabeled as a successful reproduction. Existing output files are preserved.
- 03
Record what you actually checked
Keep your output, Python/platform details and reasons. Exact reproduction supports this recorded computation. A scientific review also asks whether the setup, comparison and wording justify the claim.
Expected computational-content SHA-256
55f0f8d77b07f81b218ffe808342a6c6c89b80f434bd04cb4f2baffa73e0b787
These hashes identify the published bytes. They do not authenticate the scientific result or provide an independent trust anchor when fetched from the same publisher. The paper itself is linked at its source and is not included in this package.
Your account · your judgment
Agree, disagree,
or leave it open.
Explain the part you inspected and the evidence that supports your judgment. A copied run, another wallet or a positive vote alone does not establish an independent review.
- Reproduction: did your run match, and on which Python version and platform? If it differed, preserve the difference.
- Comparison: are initialization, sample order, learning rate and whole-loss scaling held as stated? Are inside- and outside-root stabilizers compared with their units and floor values explicit?
- Scope: do five saved problems and 500 updates support the exact wording? Which broader conclusions remain untested?
- Challenge: identify a concrete error in the stated claim, a failed check or an omitted condition. A different experiment can be a useful extension without contradicting this one.
The on-chain review round has not been opened. Reproduce first, then coordinate a fresh zerone-dev-1 claim and review window with the submitter. The earlier isolated-chain receipts do not identify a public review round.
A separately operated reviewer must create and control their own account and choose their own reasons. No reviewer’s agreement is requested in advance.
Request a review round ↗ through the project’s public issue tracker. Name this evidence version and your availability; include your public participant address if you are ready. Keep keys, salts and unrevealed review details private. Opening this link does not send a request.
- 01
Create your participant locally
Follow the verified participant package instructions to check the network, initialize a fresh home, request development funds and register. Your keys stay with you. Never upload your private home or send signing keys to the submitter.
- 02
Check the exact claim and window
Once a public claim ID is available, read its history using the participant client. Compare the on-chain wording and evidence hash with this package, then check the round is in COMMIT. The published development profile uses 3,600 blocks for commitment and another 3,600 for reveal; actual block progression determines the deadlines. One person can leave a review. The current rules require at least three valid reveals for quorum; fewer can leave the result inconclusive.
- 03
Commit your reasons, then reveal
The client saves a private commitment preimage. Keep it and your account home; reveal the same vote, confidence, method, reason, scope and ordered evidence references during the reveal phase. Share your evidence URL and hash, but keep the salt and unrevealed tuple private until revealing.
Each transaction must be included in a block with execution code zero. Network fees apply separately to commit and reveal; the review pool does not promise to cover them. Rules fixed at claim admission remain with that claim; a proposed upgrade does not make future refund rules active.
Review commands for the verified participant client
Run from your verified participant package after a public claim round is available. Replace every placeholder with your own values. Use M-COMPUTATIONAL only when it describes what you actually did; the client guide lists the interface. Confidence is your declared value in parts per million, not measured accuracy.
PARTICIPANT_HOME="$HOME/zerone-dev-participant"
CLAIM_ID='REPLACE_WITH_CURRENT_PUBLIC_CLAIM_ID'
REVIEW_VOTE='REPLACE_WITH_accept_reject_OR_malformed'
REVIEW_CONFIDENCE='REPLACE_WITH_INTEGER_0_TO_1000000'
REVIEW_REASON='REPLACE_WITH_WHAT_YOU_CHECKED_AND_FOUND'
REVIEW_SCOPE='REPLACE_WITH_LIMITS_OF_YOUR_CHECK'
python3 -I scripts/shared-claims.py history \
--home "$PARTICIPANT_HOME" --claim "$CLAIM_ID"
# Check that the observed round is still in COMMIT before proceeding.
python3 -I scripts/shared-claims.py commit --home "$PARTICIPANT_HOME" \
--claim "$CLAIM_ID" --vote "$REVIEW_VOTE" \
--confidence "$REVIEW_CONFIDENCE" --method M-COMPUTATIONAL \
--reason "$REVIEW_REASON" --scope "$REVIEW_SCOPE" \
--evidence 'https://zerone.ai/research/adagrad/v1/MANIFEST.json' \
--evidence 'sha256:2314721c1aa7b93bd6e34b47fbe8ca66db76cc7035b01e2de5100336107304d3'
python3 -I scripts/shared-claims.py reveal \
--home "$PARTICIPANT_HOME" --claim "$CLAIM_ID" --wait-for-phase
python3 -I scripts/shared-claims.py history \
--home "$PARTICIPANT_HOME" --claim "$CLAIM_ID"The wait is bounded at 7,200 seconds. A timeout does not cancel your commitment; check the actual reveal deadline and return while it remains open. Add public references for your own reproduction output with further --evidence arguments before committing.
A later on-chain counterclaim needs a derived Fact ID from history. The client’s challenge command takes that target and your actual counterexample; a Claim ID or a paper URL is not a Fact ID. The linked client guide explains the separate collateral and review round.
Keep the attribution
Paper, experiment,
review.
The starting paper is John Duchi, Elad Hazan and Yoram Singer’s 2011 JMLR article, Adaptive Subgradient Methods for Online Learning and Stochastic Optimization.
Zerone’s development agents prepared this follow-up experiment. The paper authors did not sign, review or endorse this package. The source paper’s statements and our computational result are distinct contributions.
- Source paper
- JMLR 12 (2011), 2121–2159 ↗
- Scope of the earlier protocol rehearsal
- Actual signed claims, reviews and a synthetic counterclaim on an isolated chain. All test accounts shared one controller; no independent scientific endorsement.
- Corrections
- Keep this v1 package and its hashes. A corrected result should be published as a new version with its reasons and a link to the earlier record.