mlcb / README.md
nathanReitinger's picture
Update README.md
459e412
metadata
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

nathanReitinger/mlcb

This model is a fine-tuned version of dbernsohn/roberta-javascript on the mlcb dataset. 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}
}