Code Monkey home page Code Monkey logo

fedlsr's Introduction

FedLSR

This repository is the official Pytorch implementation DEMO of FedLSR framework in this paper:

Towards Federated Learning against Noisy Labels via Local Self-Regularization (CIKM 2022 full paper track)

The slides for the oral presentation link is here.

Note: For researchers who are interested to adopt this as a baseline, please take care of the difference between FedLSR and FedLSR+ (which is given in the discussion section). The key motivation to append an entropy regularization term (to devise FedLSR+) is to further make the model more robust to extreme noisy labels. For experiments on clothing1M, it is suggested to raise the learning rate to 0.1 for FedLSR's implementation.


Main Baselines


Requirements

  • Python: 3.8
  • Pytorch: 1.7.1
  • torchvision: 0.8.2
  • Other dependencies

Special Thanks

  • Girum & IAMjmj give some valuable comments in the Github Issue part, and I just clarify some missed points of this paper. Please visit there for more information.

Citing this work

 @inproceedings{jiang2022towards,
  title={Towards federated learning against noisy labels via local self-regularization},
  author={Jiang, Xuefeng and Sun, Sheng and Wang, Yuwei and Liu, Min},
  booktitle={Proceedings of the 31st ACM International Conference on Information \& Knowledge Management},
  pages={862--873},
  year={2022}
}

fedlsr's People

Contributors

sprinter1999 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

fedlsr's Issues

Replicate the experiment

Hello, in the process of reproduction, I found that there was a problem when the cifar-10 experiment was reproduced. I reproduced 66.02%, Symmetric=30%. What steps did I miss? My other parameters are the same as your code. Thank you for your answer.

Hi Sprinter, thank for your code, i have some questions as follows.

  1. The L_e in the code i think is the Loss_reg = πΏπ‘œπ‘ π‘ π‘Ÿπ‘’π‘” = 𝐽𝑆 (π‘ž1, π‘ž2) =1/2(𝐾𝐿(π‘ž1 βˆ₯π‘ˆ ) + 𝐾𝐿(π‘ž2 βˆ₯π‘ˆ )).* But when i read the code, i find it is calculated by**" L_e = - (torch.mean(torch.sum(sm(logits1) * lsm(logits1), dim=1)) + torch.mean(torch.sum(sm(logits1) * lsm(logits1), dim=1))) * 0.5 "**. It seems ignore the " -sum(q1logU)+sum(q2logU)"???

Clarification on some parameters

Hello and thank your for your research and code.
I have some question on the notebook provided here.

  1. Under the 'Client' cell, inside model training to get logits1 and logits2 outputs from the model are multiplied by 3, can you comment on that?
  2. The self entropy regularization L_e is it mentioned on the paper? and maybe a typo logits1 is used in both sum operations.

Thanks :)

Question about using Cifar100's dataset

I used your code for training on Cifar100 data and I also replicated your code myself for training on Cifar100. I find that both converge very slowly. I am guessing that there is something wrong with my hyperparameter settings, do you have any suggestions? Also if possible I would like to know your hyperparameter settings with Clothing1M.

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.