File size: 4,360 Bytes
4dbc1bc
 
 
 
 
 
a2bab59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
942f4a9
 
 
 
 
4dbc1bc
 
 
 
 
 
 
7b93610
4dbc1bc
a82f2f3
 
f9aeb54
a82f2f3
4dbc1bc
 
 
7b93610
4dbc1bc
 
 
 
 
 
4a99b7e
4dbc1bc
 
 
 
 
 
4a99b7e
ce18173
8a74461
f9aeb54
a82f2f3
4dbc1bc
 
 
 
 
 
 
 
7b93610
 
459e412
7b93610
 
 
 
 
 
 
 
 
459e412
7b93610
459e412
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
---
tags:
- generated_from_keras_callback
model-index:
- name: nathanReitinger/mlcb
  results: []
widget:
- text: "window._wpemojiSettings = {'baseUrl':'http:\/\/s.w.org\/images\/core\/emoji\/72x72\/','ext':'.png','source':{'concatemoji':'http:\/\/basho.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.2.2'}}; !function(a,b,c){function d(a){var c=b.createElement('canvas'),d=c.getContext&&c.getContext('2d');return d&&d.fillText?(d.textBaseline='top',d.font='600 32px Arial','flag'===a?(d.fillText(String.fromCharCode(55356,56812,55356,56807),0,0),c.toDataURL().length>3e3):(d.fillText(String.fromCharCode(55357,56835),0,0),0!==d.getImageData(16,16,1,1).data[0])):!1}function e(a){var c=b.createElement('script');c.src=a,c.type='text/javascript',b.getElementsByTagName('head')[0].appendChild(c)}var f,g;c.supports={simple:d('simple'),flag:d('flag')},c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.simple&&c.supports.flag||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener('DOMContentLoaded',g,!1),a.addEventListener('load',g,!1)):(a.attachEvent('onload',g),b.attachEvent('onreadystatechange',function(){'complete'===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);"
  example_title: "Word Press Emoji False Positive"
- text: "var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d');
    var txt = 'i9asdm..$#po((^@KbXrww!~cz';
    ctx.textBaseline = 'top';
    ctx.font = '16px 'Arial'';
    ctx.textBaseline = 'alphabetic';
    ctx.rotate(.05);
    ctx.fillStyle = '#f60';
    ctx.fillRect(125,1,62,20);
    ctx.fillStyle = '#069';
    ctx.fillText(txt, 2, 15);
    ctx.fillStyle = 'rgba(102, 200, 0, 0.7)';
    ctx.fillText(txt, 4, 17);
    ctx.shadowBlur=10;
    ctx.shadowColor='blue';
    ctx.fillRect(-20,10,234,5);
    var strng=canvas.toDataURL();"
  example_title: "Canvas Fingerprinting Canonical Example"
  inference:
    parameters:
      wait_for_model: true
      use_cache: false
      temperature: 0
---

<!-- This model card has been generated automatically according to the information Keras had access to. You should
probably proofread and complete it, then remove this comment. -->

# nathanReitinger/mlcb

This model is a fine-tuned version of [dbernsohn/roberta-javascript](https://huggingface.co/dbernsohn/roberta-javascript) on the [mlcb dataset](https://huggingface.co/datasets/nathanReitinger/mlcb).
It achieves the following results on the evaluation set:
- Train Loss: 0.0463
- Validation Loss: 0.0930
- Train Accuracy: 0.9708
- Epoch: 4

## Intended uses & limitations

The model can be used to identify whether a JavaScript program is engaging in canvas fingerprinting. 

## Training and evaluation data

### Training hyperparameters

The following hyperparameters were used during training:
- optimizer: {'name': 'Adam', 'weight_decay': None, 'clipnorm': None, 'global_clipnorm': None, 'clipvalue': None, 'use_ema': False, 'ema_momentum': 0.99, 'ema_overwrite_frequency': None, 'jit_compile': False, 'is_legacy_optimizer': False, 'learning_rate': {'class_name': 'PolynomialDecay', 'config': {'initial_learning_rate': 2e-05, 'decay_steps': 910, 'end_learning_rate': 0.0, 'power': 1.0, 'cycle': False, 'name': None}}, 'beta_1': 0.9, 'beta_2': 0.999, 'epsilon': 1e-08, 'amsgrad': False}
- training_precision: float32

### Training results

| Train Loss | Validation Loss | Train Accuracy | Epoch |
|:----------:|:---------------:|:--------------:|:-----:|
| 0.1291     | 0.1235          | 0.9693         | 0     |
| 0.0874     | 0.1073          | 0.9662         | 1     |
| 0.0720     | 0.1026          | 0.9677         | 2     |
| 0.0588     | 0.0950          | 0.9708         | 3     |
| 0.0463     | 0.0930          | 0.9708         | 4     |


### Framework versions

- Transformers 4.30.2
- TensorFlow 2.11.0
- Datasets 2.13.2
- Tokenizers 0.13.3

# Citation 
```
@inproceedings{reitinger2021ml,
  title={ML-CB: Machine Learning Canvas Block.},
  author={Nathan Reitinger and Michelle L Mazurek},
  journal={Proc.\ PETS},
  volume={2021},
  number={3},
  pages={453--473},
  year={2021}
}
```

- [OSF](https://osf.io/shbe7/)
- [GitHub](https://github.com/SP2-MC2/ML-CB)
- [Data](https://dataverse.harvard.edu/dataverse/ml-cb)