Analyzing Software using Deep Learning Introduction

Similar documents
CS Machine Learning

System Implementation for SemEval-2017 Task 4 Subtask A Based on Interpolated Deep Neural Networks

CS 1103 Computer Science I Honors. Fall Instructor Muller. Syllabus

CS 101 Computer Science I Fall Instructor Muller. Syllabus

Learning Methods for Fuzzy Systems

Word Segmentation of Off-line Handwritten Documents

Circuit Simulators: A Revolutionary E-Learning Platform

DIGITAL GAMING & INTERACTIVE MEDIA BACHELOR S DEGREE. Junior Year. Summer (Bridge Quarter) Fall Winter Spring GAME Credits.

A Neural Network GUI Tested on Text-To-Phoneme Mapping

Top US Tech Talent for the Top China Tech Company

Test Effort Estimation Using Neural Network

Learning to Schedule Straight-Line Code

Python Machine Learning

ENEE 302h: Digital Electronics, Fall 2005 Prof. Bruce Jacob

QuickStroke: An Incremental On-line Chinese Handwriting Recognition System

Radius STEM Readiness TM

Computer Organization I (Tietokoneen toiminta)

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

Module 12. Machine Learning. Version 2 CSE IIT, Kharagpur

GACE Computer Science Assessment Test at a Glance

CS Course Missive

Testing A Moving Target: How Do We Test Machine Learning Systems? Peter Varhol Technology Strategy Research, USA

Laboratorio di Intelligenza Artificiale e Robotica

Introduction to Ensemble Learning Featuring Successes in the Netflix Prize Competition

Generating Test Cases From Use Cases

CS 446: Machine Learning

CS177 Python Programming

Developing a TT-MCTAG for German with an RCG-based Parser

ReinForest: Multi-Domain Dialogue Management Using Hierarchical Policies and Knowledge Ontology

On-Line Data Analytics

Problems of the Arabic OCR: New Attitudes

How to read a Paper ISMLL. Dr. Josif Grabocka, Carlotta Schatten

Data Structures and Algorithms

MASTER OF SCIENCE (M.S.) MAJOR IN COMPUTER SCIENCE

Lecture 1: Basic Concepts of Machine Learning

An OO Framework for building Intelligence and Learning properties in Software Agents

Introduction to Modeling and Simulation. Conceptual Modeling. OSMAN BALCI Professor

Getting Started with Deliberate Practice

CS 3516: Computer Networks

OPTIMIZATINON OF TRAINING SETS FOR HEBBIAN-LEARNING- BASED CLASSIFIERS

Computerized Adaptive Psychological Testing A Personalisation Perspective

Machine Learning and Data Mining. Ensembles of Learners. Prof. Alexander Ihler

Laboratorio di Intelligenza Artificiale e Robotica

ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY DOWNLOAD EBOOK : ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY PDF

Advanced Multiprocessor Programming

Objectives. Chapter 2: The Representation of Knowledge. Expert Systems: Principles and Programming, Fourth Edition

Organizational Knowledge Distribution: An Experimental Evaluation

Software Maintenance

(Sub)Gradient Descent

Predicting Student Attrition in MOOCs using Sentiment Analysis and Neural Networks

INTERMEDIATE ALGEBRA Course Syllabus

A Case Study: News Classification Based on Term Frequency

We are strong in research and particularly noted in software engineering, information security and privacy, and humane gaming.

The Moodle and joule 2 Teacher Toolkit

Visit us at:

Automating the E-learning Personalization

Deep search. Enhancing a search bar using machine learning. Ilgün Ilgün & Cedric Reichenbach

Rule Learning With Negation: Issues Regarding Effectiveness

Specification and Evaluation of Machine Translation Toy Systems - Criteria for laboratory assignments

UniConnect: A Hosted Collaboration Platform for the Support of Teaching and Research in Universities

USER ADAPTATION IN E-LEARNING ENVIRONMENTS

WSU Five-Year Program Review Self-Study Cover Page

Generative models and adversarial training

Specification of the Verity Learning Companion and Self-Assessment Tool

Longest Common Subsequence: A Method for Automatic Evaluation of Handwritten Essays

Advanced Multiprocessor Programming

Computer Science. Embedded systems today. Microcontroller MCR

University of Groningen. Systemen, planning, netwerken Bosman, Aart

content First Introductory book to cover CAPM First to differentiate expected and required returns First to discuss the intrinsic value of stocks

CS 100: Principles of Computing

Class Numbers: & Personal Financial Management. Sections: RVCC & RVDC. Summer 2008 FIN Fully Online

Seminar - Organic Computing

White Paper. The Art of Learning

SINGLE DOCUMENT AUTOMATIC TEXT SUMMARIZATION USING TERM FREQUENCY-INVERSE DOCUMENT FREQUENCY (TF-IDF)

Guidelines for Project I Delivery and Assessment Department of Industrial and Mechanical Engineering Lebanese American University

The 9 th International Scientific Conference elearning and software for Education Bucharest, April 25-26, / X

Computer Science 141: Computing Hardware Course Information Fall 2012

CREATING SHARABLE LEARNING OBJECTS FROM EXISTING DIGITAL COURSE CONTENT

Applying Learn Team Coaching to an Introductory Programming Course

MYP personal project guide 2011 overview of objectives

Knowledge Transfer in Deep Convolutional Neural Nets

Teaching Reproducible Research Inspiring New Researchers to Do More Robust and Reliable Science

GEOCODING LOCATIONS OF HISTORIC RECLAMATION RESEARCH SITES USING GOOGLE EARTH

November 17, 2017 ARIZONA STATE UNIVERSITY. ADDENDUM 3 RFP Digital Integrated Enrollment Support for Students

Artificial Neural Networks written examination

Patterns for Adaptive Web-based Educational Systems

A SURVEY OF FUZZY COGNITIVE MAP LEARNING METHODS

Writing Research Articles

BSM 2801, Sport Marketing Course Syllabus. Course Description. Course Textbook. Course Learning Outcomes. Credits.

Introduction, Organization Overview of NLP, Main Issues

Training a Neural Network to Answer 8th Grade Science Questions Steven Hewitt, An Ju, Katherine Stasaski

Planning a Webcast. Steps You Need to Master When

Reducing Features to Improve Bug Prediction

FUZZY EXPERT. Dr. Kasim M. Al-Aubidy. Philadelphia University. Computer Eng. Dept February 2002 University of Damascus-Syria

IAT 888: Metacreation Machines endowed with creative behavior. Philippe Pasquier Office 565 (floor 14)

Rule Learning with Negation: Issues Regarding Effectiveness

Java Programming. Specialized Certificate

Knowledge-Based - Systems

COMPUTER-ASSISTED INDEPENDENT STUDY IN MULTIVARIATE CALCULUS

Unsupervised Learning of Word Semantic Embedding using the Deep Structured Semantic Model

Transcription:

Analyzing Software using Deep Learning Introduction Subscribe to the course via Piazza: piazza.com/tu-darmstadt.de/summer2017/20000999iv Prof. Dr. Michael Pradel Software Lab, TU Darmstadt 1

About Me Michael Pradel At TU Darmstadt since 2014 Before joining TUDA Master-level studies in Dresden and Paris Master thesis at EPFL, Switzerland PhD at ETH Zurich, Switzerland Postdoctoral researcher at UC Berkeley, USA 2

About the Software Lab My research group since 2014 Focus: Tools and techniques for building reliable, efficient, and secure software Program analysis Test generation Thesis and job opportunities 3

Plan for Today Introduction What the course is about Why it is interesting How it can help you Organization Lectures and final exam Course project Basics Program analysis Deep learning 4

What is Program Analysis? Automated analysis of program behavior, e.g., to find programming errors optimize performance find security vulnerabilities Input Program Output 5

What is Program Analysis? Automated analysis of program behavior, e.g., to find programming errors optimize performance find security vulnerabilities Input Program Output Additional information 5

What is Program Analysis? Automated analysis of program behavior, e.g., to find programming errors optimize performance find security vulnerabilities Input Input Input Program Output Output Output Additional information 5

Why Do We Need It? Basis for various tools that make developers productive Compilers Bug finding tools Performance profilers Code completion Automated testing Code summarization/documentation 6

Traditional Approaches Analysis has built-in knowledge about the problem to solve Significant human effort to create a program analysis Conceptual challenges Implementation effort Analyze a single program at a time 7

Learning from Existing Data Huge amount of existing code ( big code ) Programs are regular and repetitive Machine learning: Extract knowledge and apply in new contexts Learn how to.... complete partial code.. use an API.. fix programming errors.. create inputs for testing 8

Deep Learning Class of machine learning algorithms Neural network architectures Deep = multiple layers Features and representation of inputs are extracted automatically Revolutionizes entire areas 9

This Course Intersection of program analysis and deep learning Some of the basics: E.g., program representations, neural network architectures Recent research results: Based on recent research papers Hands-on experience: Coding project 10

Not This Course What this course is not about Detailed coverage of program analysis Detailed coverage of machine learning Programming tutorial for TensorFlow Check out related courses E.g., Program Testing and Analysis (winter semester) 11

Plan for Today Introduction What the course is about Why it is interesting How it can help you Organization Lectures and final exam Course project Basics Program analysis Deep learning 12

Organization Weekly meetings 6 lectures 4 Q&A sessions for course project Reading material 2nd half of semester (from June 12): Course project July 27: Submission of project Aug 16: Written exam 13

Grading 50% written exam Content of lectures and reading material Open book, one hour Will test your understanding, not your memory 50% course project Effectiveness of your implementation Documentation and code quality 14

Piazza Platform for discussions, in-class quizzes, and sharing additional material Please register and enroll for the class Use it for all questions related to the course Messages sent to all students go via Piazza (not TUCaN!) Subscribe to the course via Piazza: piazza.com/tu-darmstadt.de/summer2017/20000999iv 15

Learning Material There is no script or single book that covers everything Slides and hand-written nodes: Available after lecture Pointers to papers, book chapters, and web resources 16

Course Project Individual project Same task for everybody Implement and evaluate a neural network that predicts/generates code Based on existing tools TensorFlow library for machine learning Python More details on June 12 17

Plan for Today Introduction What the course is about Why it is interesting How it can help you Organization Lectures and final exam Course project Basics Program analysis Deep learning 18

Program Analysis Many ways to represent (parts of) a program Sequence of characters Sequence of tokens Abstract syntax tree Control flow graph Call graph etc. 19

Program Analysis Many ways to represent (parts of) a program Sequence of characters Sequence of tokens Abstract syntax tree Control flow graph Call graph etc. 19

Tokens Tokenizer (or lexer) Part of compiler Splits sequence of characters into subsequences called tokens E.g., for Java, six kinds of tokens: Identifiers, e.g., MyClass Keywords, e.g., if Separators, e.g.,. or { Operators, e.g., * or ++ Literals, e.g., 23 or "hi" Comments, e.g., /* bla */ 20

16

Abstract Syntax Tree Tree representation of source code Abstract because some details of syntax omitted E.g., { in Java Nodes: Construct in source code Edges: Parent-child relationship Check out Esprima for obtaining ASTs of Javascript: http://esprima.org/demo 22

17

Deep Learning: Example Example: Handwriting recognition Goal: Recognize digits 0..9 Easy for a human but challenging for a computer Idea: Learn from a large number of training examples Deep learning: > 99% accuracy Following slides based on Chapter 1 of neuralnetworksanddeeplearning.com 24

18

19

20

21

Universal Computation Networks of NAND perceptrons can simulate every circuit containing only NAND gates Can express arbitrary computations! 29

Example: Adding Two Bits NAND gate: Network of perceptrons: 30

Challenge: Set Weights and Biases More complex networks can perform arbitrary computations How to decide on the weights and biases? Option 1: Hand-tune them Infeasible for complex networks Option 2: Learn them Key idea behind machine learning with neural networks 31

22

23

24

25

26

27

28