#### Web Development

Siddhant Midha

Vedang Asgaonkar

4-5

Why does one do machine learning? You can write a program for a lot of complex things - from some sorting algorithm to the fast fourier transform. What if one asks you to write a program which when given a picture, tells you whether your friend is in it or not. Difficult. There are some things we do which we do not know how we do - enter ML.

Information is physical, and so is computation. You know very well how bits are used for computations. These are classical entities, manipulated using classical logic gates (AND, NOT, NAND and so on). These form a basis for computing things. We can also do the with quantum mechanics as the underlying physical theory. That is, instead of "bits", we use "quantum-bits". Interest arose in this area with the development of quantum mechanics, and lead to the field of quantum computation and information. Then questions such as "are quantum computers better than classical ones" arose.

Now, quantum computing can be used as a way to do ML. As a simple example, you may be aware of how parallel computing is done via vectorized-computation. Quantum mechanics possesses the property of superposition, which leads to the power of "quantum-parallelism". Many papers have exploited this principle to produce quantum versions of ML algorithms.

In this project, we shall first learn the basics of Quantum Computing and implement algorithms like QFT and Grover search using libraries such as IBM's Qiskit. We shall then move on to machine learning and implement a few toy models in python using numpy and sklearn. Finally, we move on to Quantum Machine Learning using libraries such as Pennylane and Tensorflow quantum. After learning the basics, we will aim to implement a paper such as clustering or SVMs using quantum computing.

Prerequisite: While there are no strict prerequisites, you need to be aware that the project will be mathematically involved and will need implementation skills too. So, have a good handle on that. Being thorough with linear algebra and basic QM helps. Familiarity with Python is encouraged.

Week | Work |
---|---|

Week 1- 3 | Learn ML. Spend time learning the theory of artificial neural networks, SVM, Clustering Algorithms. Implement some of these from scratch using numpy. References include Ng's Intro to ML, and if time permits some theoretical reading. |

Week 3-7 | Learn QC. Read some traditional QC texts such as Nielson and Chuang, Preskil Notes etc. Will Implement some algorithms in Qiskit (more libraries to be explored if needed). Learning about the existing libraries, basic principles and conclude with implementing some papers on application of QC to ML like for clustering, SVM etc. |