Sebastien
commited on
Commit
·
94fa7ee
1
Parent(s):
1d9e20c
update readme with Hugging Face config
Browse files
README.md
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
title: Sudoku Deeplearning 100% accurate Sudoku solving with deep learning algorithm
|
3 |
+
emoji: 🖊️🎲🎯
|
4 |
+
colorFrom: blue
|
5 |
+
colorTo: purple
|
6 |
+
sdk: streamlit
|
7 |
+
sdk_version: "1.41.0"
|
8 |
+
app_file: app.py
|
9 |
+
pinned: true
|
10 |
+
---
|
Readme.md
DELETED
@@ -1,77 +0,0 @@
|
|
1 |
-
## metrics to track
|
2 |
-
- loss per epoch per model boost layer
|
3 |
-
- number of error per epoch model boost layer
|
4 |
-
- number of resolved puzzles per epochs
|
5 |
-
- threshold per epochs per model layer
|
6 |
-
- number of filled digits per model boost layer per epoch for both pis ans abs
|
7 |
-
|
8 |
-
## TODO
|
9 |
-
- jupyter notebook to python file
|
10 |
-
- threshold compute on test set (with adding a gap) each epoch. and training threshold initialised with test thresholds that evolve each error during training.
|
11 |
-
|
12 |
-
## Possible way
|
13 |
-
- it might be smart to store the intermitent states as boost layereds "buffers". at the end the first X go to the model layer 0 let write it as puseudo code
|
14 |
-
|
15 |
-
### Method threshold
|
16 |
-
```
|
17 |
-
global init
|
18 |
-
th -> -10
|
19 |
-
training step
|
20 |
-
init
|
21 |
-
pass
|
22 |
-
training loop
|
23 |
-
keep th behind the error limit
|
24 |
-
validation step
|
25 |
-
init
|
26 |
-
compute_th =-10
|
27 |
-
validation loop
|
28 |
-
keep compute_th behind error limit + marge
|
29 |
-
but use th
|
30 |
-
end
|
31 |
-
th= compute_th
|
32 |
-
```
|
33 |
-
|
34 |
-
### Method training
|
35 |
-
```
|
36 |
-
Xs -> the x initial batch vector
|
37 |
-
Y -> the y batch vector
|
38 |
-
Xs' = M0(Xs)
|
39 |
-
then we filter Xs'=Y -> resolved sudokus
|
40 |
-
Xs'==Xs -> we add the rows to X1 buffer
|
41 |
-
and the remaning Xs' is added to X0 buffer.
|
42 |
-
```
|
43 |
-
|
44 |
-
then we look at each buffers X0 to Xn and we process each of them that are => batch size.
|
45 |
-
|
46 |
-
When every buffer are smaller than batch size the process is finished.
|
47 |
-
|
48 |
-
object
|
49 |
-
```
|
50 |
-
Buffers
|
51 |
-
get_batch(limit_batch_size=True) -> idx, Xb # Xb could be none. (Xb should be a shuffled sample of the batch)
|
52 |
-
add_batch(Xp, idx)
|
53 |
-
```
|
54 |
-
|
55 |
-
|
56 |
-
### Loss optimisation
|
57 |
-
Both 0 and 1 target are different in the way we should gradient descend them.
|
58 |
-
y==0 point is something easy: it should be as low as possible I thing we can use the usual log loss function on it.
|
59 |
-
y==1 is different: there is different case possible:
|
60 |
-
- the point could be "unpredictable" in that case the gradient descend should be tuned to low, we expect the predictive function to have a low score.
|
61 |
-
- the point could be well predicted in that case we hope the value is prety hight and we would like to the the gradient descend more heavely.
|
62 |
-
This could be applied by using a sigmoid centered on the threshold
|
63 |
-
|
64 |
-
|
65 |
-
### Paper writing
|
66 |
-
|
67 |
-
Les niveaux supérieurs font appel à divers types de chaînes :
|
68 |
-
|
69 |
-
11.6 Dynamic + Dynamic Forcing Chains (145-192 nodes) Cell Forcing Chains
|
70 |
-
11.7 Dynamic + Dynamic Forcing Chains (193-288 nodes) Double Forcing Chains
|
71 |
-
Ces Dynamic Forcing Chains sont une forme d’essais et erreurs.
|
72 |
-
|
73 |
-
### Trial and error solving technique
|
74 |
-
We applied trial and error solving technique to reach 100% accuracy over sudoku. The resoning is simple we find the best digit/position to test and produce 2 children grid one with the number the other without. the we process each grid until one of them break sudoku's rules .
|
75 |
-
|
76 |
-
The V1 of this algorithm should only stopped at 1 trail and error test (no binary tree search) it should be simpler and feasible and if not : we will se an improve and try the next step.
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|