Coder Social home page Coder Social logo

greenabr's Introduction

GreenABR-MMSys22

GreenABR is an energy aware adaptive bitrate streaming model designed with deep reinforcement learning.

Power Model Training

Abstract

The proposed power model estimates the power consumption pattern for local playback component by using the normalized streaming attributes of videos. The details of the training methodology and model details are given in Section 3.1.3 of the paper.

Artifact Checklist

  • Algorithm:Linear Regression
  • Dataset:Collected power measurements during streaming sessions
  • Metrics:Root mean squared error(rmse)
  • How much time is needed to complete experiments (approximately)?:Three hours
  • DOI:10.5281/zenodo.6402904

Description

A linear regression model to estimate the power consumption between 0 and 1 as 1 is the highest.

How delivered.

The dataset for the power consumption measurements and the training code is available under "power_model" folder.

Software dependencies.

Below is the list of libraries needed for training and saving the model.

  • python version = 3.7.3
  • Keras version = 2.3.1
  • numpy version = 1.16.4
  • pandas version = 0.24.2
  • scikit-learn version = 0.21.2
  • joblib version = 1.0.1

Installation

To install the required libraries:

python setup.py

Experiment workflow

To train the power model, run the below command under "power_model" folder.

python train.py

The script trains the model, saves it and prints the evaluation results.

Evaluation and expected result

For the training dataset, the model performs rmse less than 0.01 and for evaluation dataset it produces rmse 0.036.

GreenABR

Abstract

GreenABR proposes an energy-aware ABR model designed by using deep reinforcement learning. The training method- ology and details of the model are explained in Section3.2.

Artifact Checklist

  • Algorithm:DQN
  • Dataset:Power attributes dataset and VMAF measurements
  • Metrics:QoE based on Equation 3.
  • How much time is needed to complete experiments (approximately)?:Eight hours
  • Code licenses (if publicly available)?:BSD-2-Clause
  • DOI:10.5281/zenodo.6402904

Description

GreenABR proposes energy aware ABR decisions for HTTP streaming. It requires the power model to be trained in advance. It uses the number of representations as the action space of the RL model, thus requires separate training for six and ten representations case.

How delivered.

All training and evaluation files and required measurement data are available under "GreenABR" folder. The training scripts are available for each representation set separately.

Software dependencies.

Below is the list of libraries needed for training and saving the model.

  • python version = 3.7.3
  • Keras version = 2.3.1
  • numpy version = 1.16.4
  • pandas version = 0.24.2
  • scikit-learn version = 0.21.2
  • joblib version = 1.0.1
  • matplotlib version = 3.1.0

Installation

To install the required libraries:

python setup.py

Experiment workflow

To train GreenABR, run the below command under "rep_6" and "rep_10" folders for the corresponding representation sets.

python GreenABR.py

The script trains the model, saves it for every 1000 iterations and logs the average reward at each iteration. We found 9000 iterations to be optimal with the hyperparameter values as learning rate($\alpha$) = 0.0001, discount factor($\gamma$) = 0.99, initial $\epsilon$ = 1.0, and $\epsilon$-decay = 0.9995 to satisfy enough exploration during training. We set the experience replay memory size to store the most recent 500000 steps while updating the target network at every 100 steps.

Evaluation and expected result

To evaluate GreenABR for any representation set, copy the pre-trained model of the same representation set along with the power model. All required source �les are provided under "evaluation" folder. To generate the streaming logs of the tested videos for GreenABR: python evaluate.py GreenABR is compared with several SOTA models and their streaming logs are generated by using their testing simulators, Sabre and Pensieve. Results are stored under "test_results" folder for all algorithms. To plot the graphs, run:

python create_summary_results.py
python plot_graphs.py

for each representation set under the corresponding folder.

C Standard QoE Model Training

Abstract

Comparing ABRs designed for di�erent goals are not trivial and may lead to misleading results in terms of real users per- ception. To enable fair comparisons, we designed a standard QoE model based on SQoE-III [ 17 ] dataset which is a large dataset with subjective scores of real users.

Artifact Checklist

  • Algorithm:Linear Regression
  • Dataset:SQoE-III [ 17 ]
  • Metrics:Spearman Correlation Score
  • How much time is needed to complete experiments (approximately)?:1 hours
  • DOI:10.5281/zenodo.6402904

Description

Our model uses five significant components described in existing quality of experience studies for video streaming. It uses a linear regression model to maximize the Spearman correlation score between the estimated QoE scores and the real users’ mean opinion scores.

How delivered.

The dataset files and the training code are available under "standard_qoe_model" folder.

Software dependencies.

Below is the list of libraries needed for training and saving the model.

  • python version = 3.7.3
  • numpy version = 1.16.4
  • pandas version = 0.24.2
  • scikit-learn version = 0.21.2

Installation

To install the required libraries:

python setup.py

Experiment workflow

To train the QoE model, and find the coefficients:

python train.py

The script trains the model and prints the coefficients along with the Spearman score of the model.

Evaluation and expected result

We compared our model with proposed QoE models in Pensieve, Comyco, and the sample model in the dataset. Our model provides the highest score with 0.7845.

To compare with other QoE models:

python compare_models.py

greenabr's People

Contributors

b4lt0 avatar bekiroguzhan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.