PHYDISCOVER V4 IDEA #6
coolguy173
started this conversation in
Ideas
Replies: 1 comment
|
working on it! |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
V3 is still mostly symbolic regression. V4 should move toward an actual hypothesis-discovery system.
Instead of mainly searching:
A = f(x, y)
V4 should search for implicit relationships:
F(x, y, z, A, B) ≈ 0
For example, it could discover:
A / (x*y) - 2.75 ≈ 0
without choosing A beforehand.
If it finds:
A / (x*y) ≈ 2.7498
V4 should recognize:
2.7498 ≈ 2.75
and report:
A ≈ 2.75xy
It should distinguish learned constants from constants already present in the grammar.
Give it:
x
y
z
A
B
C
and let it transform variables:
x²
sqrt(x)
log(x)
1/x
x/y
x*y
x²/y
...
Then search combinations of those transformed quantities.
This is important because many interesting relationships aren't obvious in their original coordinates.
V4 should specifically look for:
Y
∝
X
n
and automatically estimate
n
.
For example, if the hidden data follows:
Y
7.3
X
1.73
it should be able to discover something like:
Y ∝ X^1.73
rather than only finding a complicated tree approximating it.
This would be one of the biggest upgrades.
If variables have dimensions, V4 can search combinations such as:
A * B^2 / C
and ask whether they are approximately constant.
That lets it find relationships that are independent of units.
For physics-style discovery, this is extremely useful.
Instead of one dataset:
experiment_1
V4 should accept:
experiment_1
experiment_2
experiment_3
...
and reward hypotheses that work across all experiments.
A relationship that only works in one dataset should be heavily penalized.
This helps prevent overfitting.
Real measurements won't be perfect.
V4 should use:
robust loss
median error
outlier resistance
bootstrap validation
train/test/validation datasets
So something like:
Y = 3.0002*x² + noise
can still result in:
Y ≈ 3x²
rather than producing an enormous ugly expression to fit every noisy point.
This is very important.
V4 should understand that these are basically the same discovery:
A = BC
A/B = C
A/(BC) = 1
A - B*C = 0
V3 mostly sees different expression trees.
V4 should normalize them into the same underlying relationship.
The archive should classify discoveries:
KNOWN
DERIVED
REDUNDANT
NOVEL
For example:
A = x*y
A/x = y
→ REDUNDANT
But:
C = sqrt(x)*z
→ NOVEL
This prevents the archive from filling with hundreds of algebraically equivalent equations.
Every hypothesis could receive:
Accuracy 0.97
Simplicity 0.91
Generality 0.88
Novelty 0.94
Robustness 0.96
Interestingness 0.93
Then V4 can prioritize the most interesting discoveries instead of simply the lowest numerical error.
This is where V4 starts getting really interesting.
After finding:
Y ≈ 3X^1.7
the system should ask:
"What new measurements would best distinguish this hypothesis from competing hypotheses?"
It could propose:
X = 0.5
X = 1
X = 2
X = 5
X = 10
and determine which experiment would provide the most information.
That turns it from:
data → equation
into:
data → hypothesis → experiment → new data → improved hypothesis
V4 should have a proper benchmark.
You secretly generate data from laws such as:
Y = 4.7x^1.83z
or:
Y = sqrt(x)*z^2 / 3.2
or:
Y = (x*y)/(z+2)
Then V4 receives only the observations.
At the end you compare:
TRUE LAW
↓
V4 DISCOVERY
↓
ERROR
↓
SIMPLICITY
↓
GENERALIZATION
This gives us an objective way to measure whether the system is actually improving.
The big V4 architecture
I'd make it roughly:
VARIABLE TRANSFORMS DIMENSION ANALYZER
│ │
└─────────┬─────────┘
▼
HYPOTHESIS ENGINE
│
┌─────────┼─────────┐
▼ ▼ ▼
GP SEARCH POWER LAW INVARIANTS
│ │ │
└─────────┼─────────┘
▼
EQUIVALENCE
DETECTION
│
▼
ROBUST TESTING
│
▼
NOVELTY ANALYZER
│
▼
DISCOVERY ARCHIVE
│
▼
EXPERIMENT DESIGN
│
▼
NEW DATA
And most importantly:
V4 should not know that the answer is supposed to be physics.
It should be capable of discovering arbitrary mathematical structure.
Give it:
x1 x2 x3 y1 y2 y3 ...
and its job is simply:
Find simple, accurate, robust, non-redundant mathematical relationships hidden in the observations.
Then physics becomes one application of the engine rather than something hardcoded into it.
@Sam3360
All reactions