Dawn Song, Professor

Open (1) Program synthesis using deep-learning

Open. Apprentices needed for the fall semester. Please do NOT contact faculty before September 11th (the start of the 4th week of classes)! Enter your application on the web beginning August 16th. The deadline to apply is Tuesday, August 29th at 8 AM.

Program synthesis aims to automatically generate programs from diverse set of inputs. It can be automatic translation between different programming languages, automatic formal proofs, generating programs from natural language descriptions, drawings, or user interactions, it can even be automatic generating HTML and other languages like SQL. During this project you will help building deep-learning networks for program synthesis.

Qualifications: solid background in math (probabilities) and machine learning, proficient in programming in Python and C++, ideally with background and experience in deep learning

Weekly Hours: more than 12 hrs

Open (2) New techniques and applications in deep-learning and machine learning for security

Open. Apprentices needed for the fall semester. Please do NOT contact faculty before September 11th (the start of the 4th week of classes)! Enter your application on the web beginning August 16th. The deadline to apply is Tuesday, August 29th at 8 AM.

Deep-learning has revolutionized AI, and achieves human-level accuracies in many tasks such as image recognition. Development on the optimization techniques and the availability of large amount of data make training a large architecture possible, which also opens up many intriguing problems to answer. In this project, we are interested in these deep learning problems in three general directions: (1) the mathematical property of deep learning models. For example, one important phenomenon discovered recently is that an attacker can manipulate very slightly the inputs to a deep learning classifier to make the prediction entirely wrong. We can study the robustness issue of deep learning systems against such adversarial manipulations. (2) applying deep learning techniques to novel application domains. For example, we will study program synthesis problems and security applications using deep learning. (3) The infrastructure to support large-scale deep learning. For example, we will study several existing efforts such as TensorFlow to design and develop new frameworks to make it easier for developers to build deep learning systems, architecture and applications. We are also open to other important and not well-understood deep learning related topics.

Moreover, machine learning techniques can be valuable in addressing security problems, e.g., identifying anomalous changes in behavior, clustering and classifying different behaviors/samples. We study how to apply machine learning techniques for a number of security applications including malware analysis and defense, social-network security analysis and defense.

Qualifications: solid background in math (probabilities) and machine learning, proficient in programming in Python and C++

Weekly Hours: more than 12 hrs

Open (3) Artificial Intelligence for Data Science

Open. Apprentices needed for the fall semester. Please do NOT contact faculty before September 11th (the start of the 4th week of classes)! Enter your application on the web beginning August 16th. The deadline to apply is Tuesday, August 29th at 8 AM.

More and more data is being collected in all areas ranging from business activities, smart homes, smart buildings, to smart cities, with the promise to help improve decision making and efficiency. However, data analytics today is still a labor-intensive process, requiring significant manual effort at almost every stage of the data science pipeline. As a result, huge volumes of collected data goes unutilized due to the lack of analyst resources. Can we make the data science pipeline more automated and reduce the mundane manual labor needed? Can we help analysts be more productive and help automatically extract insights from data?

In this project you will help explore new approaches for automated data exploration, model building, and insight extraction, while leveraging limited guidance and feedback from human analysts. The project will employ various techniques including deep learning, reinforcement learning, program synthesis, meta learning, probabilistic programming, and interpretable machine learning. We aim to build a real-world system to be used by end users. Thus, you can also get an experience in learning how to build a real working system.

Qualifications: experience in system building (Python, JavaScript, web development, distributed systems) and/or solid background in math (probabilities) and machine learning, proficient in programming in Python and C++, ideally with background and experience in deep learning

Weekly Hours: more than 12 hrs

Open (4) Blockchain and smart contracts

Open. Apprentices needed for the fall semester. Please do NOT contact faculty before September 11th (the start of the 4th week of classes)! Enter your application on the web beginning August 16th. The deadline to apply is Tuesday, August 29th at 8 AM.

Blockchain is an example of a fast-rising decentralized, autonomous system. There are new the opportunities this new model of computing brings us, including smart contracts, decentralized applications, etc.

If you are interested in state-of-the-art solutions in this area, including secure decentralized systems, and new programming abstractions to make it easier to build such secure, decentralized systems, please apply.

Qualifications: Understanding of computer networking, both low-level and high-level aspects, experience in programming of distributed systems and/or user interfaces.

Weekly Hours: more than 12 hrs