├── ECCV.md ├── BMVC.md ├── Abstract.md ├── Personal_Semester.md └── README.md /ECCV.md: -------------------------------------------------------------------------------- 1 | # ECCV 20 Reading List: 2 | 3 | - [Improving Knowledge Distillation via Category Structure](http://www.ecva.net/papers/eccv_2020/papers_ECCV/html/6056_ECCV_2020_paper.php) 4 | - [Describing Textures using Natural Language](http://www.ecva.net/papers/eccv_2020/papers_ECCV/html/384_ECCV_2020_paper.php) 5 | - [Learning and Aggregating Deep Local Descriptors for Instance-level Recognition](http://www.ecva.net/papers/eccv_2020/papers_ECCV/html/1793_ECCV_2020_paper.php) 6 | - [Spatially Adaptive Inference with Stochastic Feature Sampling and Interpolation](http://www.ecva.net/papers/eccv_2020/papers_ECCV/html/2193_ECCV_2020_paper.php) 7 | - [Gradient Centralization: A New Optimization Technique for Deep Neural Networks](http://www.ecva.net/papers/eccv_2020/papers_ECCV/html/2471_ECCV_2020_paper.php) 8 | - [Diffraction Line Imaging](http://www.ecva.net/papers/eccv_2020/papers_ECCV/html/2825_ECCV_2020_paper.php) 9 | - [Self-Challenging Improves Cross-Domain Generalization](http://www.ecva.net/papers/eccv_2020/papers_ECCV/html/3018_ECCV_2020_paper.php) 10 | - [Multitask Learning Strengthens Adversarial Robustness](http://www.ecva.net/papers/eccv_2020/papers_ECCV/html/3047_ECCV_2020_paper.php) 11 | - [Volumetric Transformer Networks](http://www.ecva.net/papers/eccv_2020/papers_ECCV/html/6316_ECCV_2020_paper.php) 12 | - [Patch-wise Attack for Fooling Deep Neural Network](http://www.ecva.net/papers/eccv_2020/papers_ECCV/html/6114_ECCV_2020_paper.php) 13 | - [Supervised Edge Attention Network for Accurate Image Instance Segmentation](http://www.ecva.net/papers/eccv_2020/papers_ECCV/html/5884_ECCV_2020_paper.php) 14 | - [Layer-wise Conditioning Analysis in Exploring the Learning Dynamics of DNNs](http://www.ecva.net/papers/eccv_2020/papers_ECCV/html/3482_ECCV_2020_paper.php) 15 | - [Efficient Scale-Permuted Backbone with Learned Resource Distribution](http://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123680562.pdf) 16 | - [Rethinking Bottleneck Structure for Efficient Mobile Network Design](http://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123480681.pdf) 17 | -------------------------------------------------------------------------------- /BMVC.md: -------------------------------------------------------------------------------- 1 | # BMVC 2020 Reading List: 2 | 3 | - [Residual Likelihood Forests](https://www.bmvc2020-conference.com/conference/papers/paper_0191.html) 4 | - [Deep Sparse Light Field Refocusing](https://www.bmvc2020-conference.com/conference/papers/paper_0160.html) 5 | - [STQ-Nets: Unifying Network Binarization and Structured Pruning](https://www.bmvc2020-conference.com/conference/papers/paper_0113.html) 6 | - [Delving Deeper into Anti-aliasing in ConvNets](https://www.bmvc2020-conference.com/conference/papers/paper_0547.html) 7 | - [Contrastively-reinforced Attention Convolutional Neural Network for Fine-grained Image Recognition](https://www.bmvc2020-conference.com/conference/papers/paper_0656.html) 8 | - [Feature Binding with Category-Dependant MixUp for Semantic Segmentation and Adversarial Robustness](https://www.bmvc2020-conference.com/conference/papers/paper_0614.html) 9 | - [A Spherical Approach to Planar Semantic Segmentation](https://www.bmvc2020-conference.com/conference/papers/paper_0053.html) 10 | - [Accurate Parts Visualization for Explaining CNN Reasoning via Semantic Segmentation](https://www.bmvc2020-conference.com/conference/papers/paper_0754.html) 11 | - [Lifted Regression/Reconstruction Networks](https://www.bmvc2020-conference.com/conference/papers/paper_0662.html) 12 | - [Bayesian Geodesic Regression on Riemannian Manifolds](https://www.bmvc2020-conference.com/conference/papers/paper_0901.html) 13 | - [LaDDer: Latent Data Distribution Modelling with a Generative Prior](https://www.bmvc2020-conference.com/conference/papers/paper_0816.html) 14 | - [N2NSkip: Learning Highly Sparse Networks using Neuron-to-Neuron Skip Connections](https://www.bmvc2020-conference.com/conference/papers/paper_0097.html) 15 | - [Adversarial Concurrent Training: Optimizing Robustness and Accuracy Trade-off of Deep Neural Networks](https://www.bmvc2020-conference.com/conference/papers/paper_0859.html) 16 | 17 | Also, feel free to check out my paper at BMVC 2020: [Mish: A Self Regularized Non-Monotonic Activation Function](https://www.bmvc2020-conference.com/conference/papers/paper_0928.html) 18 | -------------------------------------------------------------------------------- /Abstract.md: -------------------------------------------------------------------------------- 1 | # Abstract Algebra/ Topology Library (Playlists + Books) (Follow order): 2 | 3 | 1. [Introduction to Abstract and Linear Algebra](https://nptel.ac.in/courses/111/105/111105112/) 4 | 2. [Introduction to Abstract Group Theory](https://nptel.ac.in/courses/111/106/111106113/) 5 | 3. [Advanced Abstract Algebra](https://nptel.ac.in/courses/111/102/111102009/) 6 | 4. [Abstract Algebra, Professor Benedict Gross, Havard](https://www.youtube.com/watch?v=VdLhQs_y_E8&list=PLelIK3uylPMGzHBuR3hLMHrYfMqWWsmx5&) 7 | 5. [Abstract Algebra, Bill Kinney](https://www.youtube.com/watch?v=lx3qJ-zjn5Y&list=PLmU0FIlJY-Mn3Pt-r5zQ_-Ar8mAnBZTf2) 8 | 6. [Abstract Algebra I](https://www.youtube.com/watch?v=qOoQOJcjD2E&list=PLg8ZEeSiXsjgoQJzRcq60GjK0UrkMsA3-) 9 | 7. [Introduction to Galois Theory](https://www.coursera.org/learn/galois) 10 | 8. [Contemporary Abstract Algebra](https://people.clas.ufl.edu/cmcyr/files/Abstract-Algebra-Text_Gallian-e8.pdf) 11 | 9. [Algebra, Artin](https://solisinvicti.com/books/TheOlympiad/Books/AlgebraArtin.pdf) 12 | 10. [Introduction to Algebraic Geometry and Commutative Algebra](https://www.youtube.com/playlist?list=PLgMDNELGJ1CZfN81L7R8oZfy6ewszjy4O) 13 | 11. [Algebraic Topology, NJ Wildberger](https://www.youtube.com/watch?v=Ap2c1dPyIVo&list=PL6763F57A61FE6FE8) 14 | 12. [Algebraic Topology - Pierre Albin](https://www.youtube.com/playlist?list=PLpRLWqLFLVTCL15U6N3o35g4uhMSBVA2b) 15 | 13. [Mathematics - An Introduction to Riemann Surfaces and Algebraic Curves](https://www.youtube.com/playlist?list=PLbMVogVj5nJSm4256vuITlsovUT1xVkUL) 16 | 14. [Lie Groups](https://www.youtube.com/playlist?list=PLelIK3uylPMG3iyQ_SJYqeyjmeNC2QC3L) 17 | 18 | Bonus: 19 | 20 | 1. [Principles of Riemannian Geometry in Neural Networks | TDLS](https://www.youtube.com/watch?v=IPrNIjA4AWE) 21 | 2. [Lectures on Geometrical Anatomy of Theoretical Physics](https://www.youtube.com/playlist?list=PLPH7f_7ZlzxTi6kS4vCmv4ZKm9u8g5yic) 22 | 3. [CPSC 5XX - First-Order Optimization Algorithms for Machine Learning (June, 2020)](https://www.cs.ubc.ca/~schmidtm/Courses/5XX-S20/) 23 | 4. [VISUAL QUESTION ANSWERING AND BEYOND](https://www.cc.gatech.edu/grads/a/aagrawal307/PhD_Dissertation_Aishwarya_Agrawal.pdf) 24 | -------------------------------------------------------------------------------- /Personal_Semester.md: -------------------------------------------------------------------------------- 1 | Semester - 1: 2 | 3 | 1. MIT 18.01 Single Variable Calculus - [Course](https://www.youtube.com/playlist?list=PL590CCC2BC5AF3BC1) 4 | 2. MIT 18.01C Homework Help for Single Variable Calculus - [Course](https://www.youtube.com/playlist?list=PL21BCE50ABFF029F1) 5 | 3. MIT 18.02 Multivariate Calculus - [Course](https://www.youtube.com/playlist?list=PL4C4C8A7D06566F38) 6 | 4. MIT 18.06 Linear Algebra - [Course](https://www.youtube.com/playlist?list=PLE7DDD91010BC51F8) 7 | 5. Learn Differential Equations: Up Close with Gilbert Strang and Cleve Moler - [Course](https://ocw.mit.edu/resources/res-18-009-learn-differential-equations-up-close-with-gilbert-strang-and-cleve-moler-fall-2015/) 8 | 6. Engineering Mathematics (UW ME564 and ME565) - [Course](https://www.youtube.com/playlist?list=PLMrJAkhIeNNR2W2sPWsYxfrxcASrUt_9j) 9 | 7. Differential & Integral Calculus, Math 31A, UCLA - [Course](https://www.youtube.com/playlist?list=PL1BE3027EF549C7D1) 10 | 8. MIT 18.650 Statistics for Applications, Fall 2016 - [Course](https://www.youtube.com/playlist?list=PLUl4u3cNGP60uVBMaoNERc6knT_MgPKS0) 11 | 9. Statistics 110: Probability - [Course](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uwwH80KTQ6ht66KWxbzTIo) 12 | 10. MIT 6.042J Mathematics for Computer Science, Fall 2010 - [Course](https://www.youtube.com/playlist?list=PLB7540DEDD482705B) 13 | 11. UC Berkeley Statistics - [Course](https://www.youtube.com/playlist?list=PL_onPhFCkVQh7R-7GWPwO6e5OPHkgoP-A) 14 | 15 | Semester - 2: 16 | 17 | 1. Deep Learning - IIT-M - [Course](https://www.youtube.com/playlist?list=PLyqSpQzTE6M9gCgajvQbc68Hk_JKGBAYT) 18 | 2. Deep Learning - IIT-M - Part 2 - [Course](https://www.youtube.com/playlist?list=PLyqSpQzTE6M-_1jAqrFCsgCcuTYm_2urp) 19 | 3. MIT 8.333 Statistical Mechanics I: Statistical Mechanics of Particles, Fall 2013 - [Course](https://www.youtube.com/playlist?list=PLUl4u3cNGP60gl3fdUTKRrt5t_GPx2sRg) 20 | 4. MIT 8.334 Statistical Mechanics II, Spring 2014 - [Course](https://www.youtube.com/playlist?list=PLUl4u3cNGP63HkEHvYaNJiO0UCUmY0Ts7) 21 | 5. Statistical Mechanics (Stanford Lectures) - [Course](https://www.youtube.com/playlist?list=PLXLSbKIMm0kjxyp45FIY62XNgHk4ywSaH) 22 | 6. Statistical Mechanics - IIT-M - [Course](https://www.youtube.com/playlist?list=PLyqSpQzTE6M9iXvWVCopr67kKt61ntzIl) 23 | 7. Random Matrices:Theory and Practice - [Course](https://www.youtube.com/playlist?list=PLyHAvCibkccQEFYXdM6r8WG4GQULRKmRA) 24 | 8. MIT 6.034 Artificial Intelligence, Fall 2010 - [Course](https://www.youtube.com/playlist?list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe_4hSi) 25 | 9. Stanford CS229: Machine Learning | Autumn 2018 - [Course](https://www.youtube.com/playlist?list=PLoROMvodv4rMiGQp3WXShtMGgzqpfVfbU) 26 | 10. Theoretical Deep Learning Course - [Course](https://www.youtube.com/playlist?list=PLt1IfGj6-_-dMa3Ff8mwjq1yOGijJ89Wa) (in Russian) 27 | 11. Machine Learning Theory - [Course](https://www.youtube.com/playlist?list=PLPW2keNyw-usgvmR7FTQ3ZRjfLs5jT4BO) 28 | 12. 2019 Mathematics of Machine Learning Summer School - [Course](https://www.youtube.com/playlist?list=PLTPQEx-31JXhguCush5J7OGnEORofoCW9) 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Library 2 | 3 | ### Deep Learning: 4 | 5 | - [LCA: Loss Change Allocation for Neural Network Training](https://arxiv.org/abs/1909.01440) 6 | - [Asymptotics of Wide Networks from Feynman Diagrams](https://arxiv.org/abs/1909.11304) 7 | - [Neural networks and physical systems with emergent collective computational abilities](https://www.pnas.org/content/79/8/2554) 8 | - [Provable Certificates for Adversarial Examples: Fitting a Ball in the Union of Polytopes](https://arxiv.org/abs/1903.08778) 9 | - [Adversarial Robustness Through Local Lipschitzness](https://arxiv.org/abs/2003.02460) 10 | - [Lagrangian Neural Networks](https://arxiv.org/abs/2003.04630) 11 | - [Inherent Weight Normalization in Stochastic Neural Networks](https://openreview.net/forum?id=H1xDPEBx8r) 12 | - [Neural Arithmetic Units](https://openreview.net/forum?id=H1gNOeHKPS) 13 | - [Information Theory, Inference and Learning Algorithms](https://books.google.co.in/books/about/Information_Theory_Inference_and_Learnin.html?id=AKuMj4PN_EMC&printsec=frontcover&source=kp_read_button&redir_esc=y#v=onepage&q&f=false) 14 | - [Intriguing properties of neural networks](https://arxiv.org/abs/1312.6199) 15 | - [An Effective and Efficient Initialization Scheme for Training Multi-layer Feedforward Neural Networks](https://arxiv.org/abs/2005.08027) 16 | - [Rigging the Lottery: Making All Tickets Winners](https://arxiv.org/abs/1911.11134) 17 | 18 | #### Mean Field Theory/ EOC/ Dynamic Isometry: 19 | 20 | - [Deep Information Propagation](https://arxiv.org/abs/1611.01232) 21 | - [Exponential expressivity in deep neural networks through transient chaos](https://arxiv.org/abs/1606.05340) 22 | - [Resurrecting the sigmoid in deep learning through dynamical isometry: theory and practice](https://arxiv.org/abs/1711.04735) 23 | - [Dynamical Isometry is Achieved in Residual Networks in a Universal Way for any Activation Function](https://arxiv.org/pdf/1809.08848v3.pdf) 24 | - [Mean Field Residual Networks: On the Edge of Chaos](https://arxiv.org/abs/1712.08969) 25 | - [Mean Field Theory of Activation Functions in Deep Neural Networks](https://arxiv.org/abs/1805.08786) 26 | - [Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,000-Layer Vanilla Convolutional Neural Networks](https://arxiv.org/abs/1806.05393) 27 | - [On the Impact of the Activation Function on Deep Neural Networks Training](https://arxiv.org/abs/1902.06853) 28 | - [Dynamical Isometry and a Mean Field Theory of RNNs: Gating Enables Signal Propagation in Recurrent Neural Networks](https://arxiv.org/abs/1806.05394) 29 | - [Disentangling trainability and generalization in deep learning](https://arxiv.org/abs/1912.13053) 30 | - [A Mean Field View of the Landscape of Two-Layers Neural Networks](https://arxiv.org/abs/1804.06561) 31 | - [A Mean Field Theory of Batch Normalization](https://openreview.net/forum?id=SyMDXnCcF7) 32 | - [Statistical field theory for neural networks](https://arxiv.org/abs/1901.10416) 33 | - [A Mean-field Analysis of Deep ResNet and Beyond: Towards Provable Optimization Via Overparameterization From Depth](https://arxiv.org/abs/2003.05508) 34 | - [Towards understanding the true loss surface of deep neural networks using random matrix theory and iterative spectral methods](https://openreview.net/forum?id=H1gza2NtwH) 35 | 36 | #### Optimization/ Line Search/ Wolfe's Theorem: 37 | 38 | - [Convergence guarantees for RMSProp and ADAM in non-convex optimization and an empirical comparison to Nesterov acceleration](https://arxiv.org/pdf/1807.06766.pdf) 39 | - [Stochastic Polyak Step-size for SGD: An Adaptive Learning Rate for Fast Convergence](https://arxiv.org/pdf/2002.10542.pdf) 40 | - [Painless Stochastic Gradient: Interpolation, Line-Search, and Convergence Rates](https://arxiv.org/pdf/1905.09997.pdf) 41 | - [Linear Convergence of Gradient and Proximal-Gradient Methods Under the Polyak- Lojasiewicz Condition](https://arxiv.org/pdf/1608.04636.pdf) 42 | - [On the distance between two neural networks and the stability of learning](https://arxiv.org/abs/2002.03432) 43 | - [The large learning rate phase of deep learning: the catapult mechanism](https://arxiv.org/pdf/2003.02218.pdf) 44 | - [Painless Stochastic Gradient: Interpolation, Line-Search, and Convergence Rates](https://papers.nips.cc/paper/8630-painless-stochastic-gradient-interpolation-line-search-and-convergence-rates.pdf) 45 | - [A Fine-Grained Spectral Perspective on Neural Networks](https://arxiv.org/abs/1907.10599) 46 | - [The Geometry of Sign Gradient Descent](https://arxiv.org/abs/2002.08056) 47 | - [The Break-Even Point on Optimization Trajectories of Deep Neural Networks](https://arxiv.org/abs/2002.09572) 48 | - [Quasi-hyperbolic momentum and Adam for deep learning](https://openreview.net/forum?id=S1fUpoR5FQ) 49 | - [A new regret analysis for Adam-type algorithms](http://arxiv-export-lb.library.cornell.edu/abs/2003.09729) 50 | - [Disentangling Adaptive Gradient Methods from Learning Rates](https://arxiv.org/abs/2002.11803) 51 | - [Stochastic Flows and Geometric Optimization on the Orthogonal Group](https://arxiv.org/abs/2003.13563) 52 | - [Adaptive Multi-level Hyper-gradient Descent](https://arxiv.org/abs/2008.07277) 53 | 54 | ##### Bonus: 55 | 56 | - [Convex optimization: Gradient Methods and Online Learning](https://sites.cs.ucsb.edu/~yuxiangw/classes/CS292A-2019Spring/) 57 | 58 | #### Non-Linear Dynamics: 59 | 60 | - [Regularizing activations in neural networks via distribution matching with the Wasserstein metric](https://openreview.net/pdf?id=rygwLgrYPB) 61 | - [Depth-Width Trade-offs for ReLU Networks via Sharkovsky's Theorem](https://arxiv.org/abs/1912.04378) 62 | - [Effect of Activation Functions on the Training of Overparametrized Neural Nets](https://arxiv.org/abs/1908.05660v4) 63 | - [Implicit Neural Representations with Periodic Activation Functions](https://arxiv.org/abs/2006.09661) 64 | - [Why ReLU networks yield high-confidence predictions far away from the training data and how to mitigate the problem](https://arxiv.org/pdf/1812.05720.pdf) 65 | - [Small nonlinearities in activation functions create bad local minima in neural networks](https://openreview.net/forum?id=rke_YiRct7) 66 | - [Tempered Sigmoid Activations for Deep Learning with Differential Privacy](https://arxiv.org/abs/2007.14191) 67 | - [Neural Networks Fail to Learn Periodic Functions and How to Fix It](https://arxiv.org/abs/2006.08195) 68 | 69 | ### Computer Vision: 70 | 71 | - [Making Convolutional Networks Shift-Invariant Again](https://arxiv.org/abs/1904.11486) 72 | - [GridDehazeNet: Attention-Based Multi-Scale Network for Image Dehazing](https://arxiv.org/abs/1908.03245) 73 | - [Butterfly Transform: An Efficient FFT Based Neural Architecture Design](https://arxiv.org/abs/1906.02256) 74 | - [ReXNet: Diminishing Representational Bottleneck on Convolutional Neural Network](https://arxiv.org/pdf/2007.00992.pdf) 75 | - [Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains](https://arxiv.org/abs/2006.10739) 76 | - [Learning One Convolutional Layer with Overlapping Patches](https://arxiv.org/abs/1802.02547) 77 | - [Batch-Shaping for Learning Conditional Channel Gated Networks](https://arxiv.org/abs/1907.06627) 78 | - [Convolutional Networks with Adaptive Inference Graphs](https://arxiv.org/abs/1711.11503) 79 | - [The Singular Values of Convolutional Layers](https://openreview.net/forum?id=rJevYoA9Fm) 80 | - [Rendering Natural Camera Bokeh Effect with Deep Learning](https://arxiv.org/abs/2006.05698) 81 | - [Towards Learning Convolutions from Scratch](https://arxiv.org/abs/2007.13657) 82 | - [Feature Products Yield Efficient Networks](https://arxiv.org/abs/2008.07930) 83 | 84 | ### Incremental Learning/ Continual Learning/ Lifelong Learning: 85 | 86 | - [Conditional Channel Gated Networks for Task-Aware Continual Learning](https://arxiv.org/abs/2004.00070) 87 | - [Supermasks in Superposition](https://arxiv.org/pdf/2006.14769.pdf) 88 | 89 | ### Mathematics (Mostly Abstract Algebra/ Topology/ Statistical Mechanics): 90 | 91 | - [Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning](https://www.cis.upenn.edu/~jean/math-deep.pdf) 92 | - [ALGEBRA](https://solisinvicti.com/books/TheOlympiad/Books/AlgebraArtin.pdf) 93 | - [Contemporary Abstract Algebra](https://people.clas.ufl.edu/cmcyr/files/Abstract-Algebra-Text_Gallian-e8.pdf) 94 | - [Statistical Mechanics of Deep Learning](https://www.annualreviews.org/doi/full/10.1146/annurev-conmatphys-031119-050745) 95 | - [Linear Algebra](http://joshua.smcvt.edu/linearalgebra/) 96 | - [Linear Algebra Done Right](https://link.springer.com/book/10.1007/978-3-319-11080-6) 97 | 98 | 99 | ### Immediate: 100 | 101 | - [A Simple Framework for Contrastive Learning of Visual Representations](https://arxiv.org/abs/2002.05709) 102 | - [Self-supervised Label Augmentation via Input Transformations](https://arxiv.org/abs/1910.05872) 103 | - [On the Loss Landscape of Adversarial Training: Identifying Challenges and How to Overcome Them](https://arxiv.org/abs/2006.08403) 104 | - [Structured Convolutions for Efficient Neural Network Design](https://deepai.org/publication/structured-convolutions-for-efficient-neural-network-design) 105 | - [Tensor Programs III: Neural Matrix Laws](https://arxiv.org/abs/2009.10685) 106 | - [An Investigation into Neural Net Optimization via Hessian Eigenvalue Density](https://arxiv.org/abs/1901.10159) 107 | - [The Hardware Lottery](https://arxiv.org/abs/2009.06489) 108 | - [Tensor Programs II: Neural Tangent Kernel for Any Architecture](https://arxiv.org/abs/2006.14548) 109 | - [PareCO: Pareto-aware Channel Optimization for Slimmable Neural Networks](https://arxiv.org/abs/2007.11752) 110 | - [Coupling-based Invertible Neural Networks Are Universal Diffeomorphism Approximators](https://arxiv.org/abs/2006.11469) 111 | - [Hypersolvers: Toward Fast Continuous-Depth Models](https://arxiv.org/abs/2007.09601) 112 | - [Residual Feature Distillation Network for Lightweight Image Super-Resolution](https://arxiv.org/abs/2009.11551) 113 | - [SSMBA: Self-Supervised Manifold Based Data Augmentation for Improving Out-of-Domain Robustness](https://arxiv.org/abs/2009.10195) 114 | - [HyperNetworks](https://arxiv.org/abs/1609.09106) 115 | - [Understanding the Role of Individual Units in a Deep Neural Network](https://arxiv.org/abs/2009.05041) 116 | --------------------------------------------------------------------------------