Computer science a whirlwind tour
Download
1 / 81

computer science: - PowerPoint PPT Presentation


  • 229 Views
  • Updated On :

Computer Science: A Whirlwind Tour. Jacob Whitehill ( [email protected] ) Machine Perception Laboratory, http://mplab.ucsd.edu UCSD. Goals of This Talk. Introduce you to the science of computers & computation. Give a super-fast tour of various sub-areas of computer science.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'computer science:' - Philip


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Computer science a whirlwind tour l.jpg
Computer Science:A Whirlwind Tour

  • Jacob Whitehill ([email protected])

  • Machine Perception Laboratory,http://mplab.ucsd.edu

  • UCSD


Goals of this talk l.jpg
Goals of This Talk

  • Introduce you to the science of computers & computation.

  • Give a super-fast tour of various sub-areas of computer science.

  • Tell you a little about our lab’s research.

  • Show some demos.


Finding the science in computer science l.jpg
Finding the science in Computer Science


Computer science misconceptions l.jpg
Computer Science: Misconceptions

  • Computer science is related to, but distinct from, the following fields:

    • Information Technology (IT).

    • Computer & network management

    • Computer programming


Computer science misconceptions5 l.jpg
Computer Science: Misconceptions

  • Information Technology (IT):

    • The study, development, and management of information systems - computer & software systems that manage large amounts of information.

      • Example: design an efficient database for Verizon to handle billing information for 100 million customers.


Computer science misconceptions6 l.jpg
Computer Science: Misconceptions

  • Computer & network management - set up and maintain computers & computer networks

    • Example: figure out why the Internet is not accessible from a particular school classroom, and fix the problem.


Computer science misconceptions7 l.jpg
Computer Science: Misconceptions

  • Computer programming - create software for a computer to execute to perform a useful task.

    • Example: write software to automatically download music by your favorite artist on iTunes.


My definition of computer science l.jpg
My definition of Computer Science

  • My definition: the development of new techniques using computers & computation to solve problems that were fundamentally not solvable before.

  • Contrast with IT: there are no fundamental challenges in setting up a billing system for Verizon that have not yet been solved - it’s clear that it’s achievable.

  • Contrast with programming: though programming is by no means trivial, it is usually clear at the onset that the program can be written.


My definition of computer science9 l.jpg
My definition of Computer Science

  • Computer programming represents the means by which (empirical) computer science research is conducted.

    • Analogous to conducting an assay, using a microscope, staining DNA, etc.


Computer science l.jpg
Computer Science

  • Computer science is (for the most part) an engineering science:

    • We have a task we’d like to accomplish.

    • We don’t know if it’s solvable, let alone how to solve it.

    • We (try to ) find computational methods to accomplish our task.


Computer science11 l.jpg
Computer Science

  • Contrast with the natural sciences (e.g., biology, chemistry, physics, mathematics):

    • We are interested in discovering how the world works, without necessarily accomplishing a concrete task.



Computer vision l.jpg
Computer Vision

  • Google Earth - How do you “stitch together” satellite photographs taken above the Earth into a navigable 3-D “world” (Google Earth)?


Graphics l.jpg
Graphics

  • Pixar - How do you animate a graphical video character (e.g., Shrek) so that it looks alive?


Cryptography and security l.jpg
Cryptography and Security

  • How do you encrypt a message so that only the “intended persons” can read it and eavesdroppers cannot?

  • How do you prevent people from copying movies & music illegally?


Networking l.jpg
Networking

  • How can you transmit data reliably and at high-speed using ordinary power-line cables?(this is important in developing countries without telephone infrastructure)


Machine learning l.jpg
Machine Learning

  • Can computers learn to recognize the same kinds of patterns in nature that humans can?

  • Example: where are the faces in the video?


Bioinformatics and computational biology l.jpg
Bioinformatics and Computational Biology

  • How can we analyze human DNA sequences to determine the risk factors of certain diseases?


Complexity theory l.jpg
Complexity Theory

  • How can we use quantum computers to solve mathematical problems more quickly than with conventional machines?


Computer science sub areas many l.jpg
Computer Science:Sub-areas (many)

  • These are all the ones I can think of off-hand:

  • GraphicsVisionMachine learningDatabasesCompilersNetworkingOperating systemsDistributed systemsSoftware engineeringRoboticsNumerical computingHuman-computer interactionGraphicsComputer architectureSecurityCryptographyAlgorithmsImage & video processingBioinformaticsComplexity theoryComputational geometry

  • By the way - some of these areas also fit into Electrical Engineering (EE).

Some of these are mostly empirical, some are mostly theoretical, and some are both.


Theoretical vs empirical research l.jpg
Theoretical vs. Empirical Research

  • Theoretical research - use mathematics/logical reasoning to prove what you are saying is definitely true.

  • Empirical research - research through observation - run many experiments to show that what you are saying is probably true.


Theoretical vs empirical research22 l.jpg
Theoretical vs. Empirical Research

  • Example:

    • Theoretical proof that a particular casino gambling strategy will give you the highest possible winnings.

    • Demonstration over many experiments that a particular strategy works better than others.

  • Important: It’s not always easy/possible to prove something mathematically.



Algorithms l.jpg
Algorithms

  • The notion of algorithm is fundamental to all of computer science.

  • An algorithm is a step-by-step procedure (“recipe”) for how to complete a particular task.

  • Computers can perform tasks very quickly, but they require a very precise description of what to do.


Algorithms25 l.jpg
Algorithms

  • Example:

    • INPUT: flour, eggs, milk, butter, baking powder, salt, chocolate chips

    • PROCEDURE:

      • Beat eggs.

      • Add all other ingredients.

      • Stir everything until smooth.

      • Drop in 5” circles on hot frying pan.

      • Fry on both sides until brown.


Algorithms26 l.jpg
Algorithms

  • Example (continued):

    • OUTPUT: chocolate chip pancakes


Algorithms27 l.jpg
Algorithms

  • More interesting algorithms:

    • If you type a phrase into Google, what is the fastest way of finding all of the webpages (on the whole Internet!) that contain that phrase?

    • How do you automatically find the faces in a digital video?

    • How do you animate Shrek’s mouth to match his speech?


Algorithms28 l.jpg
Algorithms

  • Algorithm descriptions are typically written in a computer programming language (e.g., C, Java, Python). (This is where programming comes in.)

  • Algorithm descriptions are called code.

  • They are then converted (by a compiler or interpreter) into machine language (the computer’s native language, written in 0’s and 1’s).


Algorithms29 l.jpg
Algorithms

  • Example: counting from 1 to 100.

  • PROCEDURE (in English):

    • Start with the number 1.

    • Print the number.

    • Add 1 to the number.

    • Go back to Step (2) until we’ve reached 100.


Algorithms30 l.jpg
Algorithms

  • Example: counting from 1 to 100.

  • PROCEDURE (in C, a programming language):

    • int number = 1;while (number <= 100) {printf(“%d\n”, number);number += 1;}


Algorithms31 l.jpg
Algorithms

  • Example: counting from 1 to 100.

  • PROCEDURE (in PowerPC G5 machine language, binary):

    • 111111101110110111111010110011100000000000000000000000000001001000000000000000000000000000001010000000000000000000000000000000100000000000000000000000000000101000000000000000000000010000010100000000000000000000000000100001010000000000000000000000000000000100000000000000000000000000111000010111110101111101010000010000010100011101000101010110100100010101010010010011110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000...


Algorithms32 l.jpg
Algorithms

  • Several sub-areas of computer science study the science of algorithms:

    • Algorithm design

      • Come up with new fundamental algorithms.

    • Complexity & computability theory

      • Study the kinds of algorithms that can be written, and how fast they are.


Computability theory l.jpg
Computability Theory

  • There are some tasks which are fundamentally impossible to solve.

  • One of the most famous is the “halting problem”.

    • It is possible to write a program that never ends. Consider:

      • Print out “hello”.

      • Go back to step 1.


The halting problem l.jpg
The “Halting Problem”

  • It would be useful to know whether a particular computer program will ever finish.

  • What we would like is the following:

    • INPUT: any computer program.

    • OUTPUT: either Yes or No according to whether the specified computer program will (eventually) come to an end.


The halting problem35 l.jpg
The “Halting Problem”

  • It is provably impossible to create such an algorithm.

  • Hence, no such algorithm can ever be created, no matter how sophisticated computers ever become.

  • This research result comes from the field of computability theory.

  • Determining whether any computer program will terminate is incomputable.


Complexity theory36 l.jpg
Complexity Theory

  • Some computer science tasks, even if there exists algorithms to solve them, may take prohibitively long to finish - for instance, a google-google-google years (this is a long time).

  • Other algorithms may finish their work in less than a second.

  • Which tasks can be solved quickly, and which take more time?

  • The amount of time that an algorithm takes to finish is called the complexity of that algorithm.


Two algorithms which takes longer to finish l.jpg
Two Algorithms -Which takes longer to finish?

  • “Stable Marriage”: How can we pair n men with n women so that divorces their spouse for someone else?

  • “Graph 3-Coloring”: How can we color the circles in a graph so that connected circles have different colors?


Stable marriage algorithm l.jpg
Stable Marriage Algorithm

  • Suppose we have 10 men and 10 women who wish to marry each other (heterosexual).

  • Each person ranks all 10 persons of the opposite gender in order of preference.

  • We want to pair people so that no one will divorce their current spouse to marry someone else. Show on board.


Graph 3 coloring l.jpg
Graph 3-Coloring

  • A “graph” has circles and lines.

  • Some circles are connected to others by lines.

  • If two circles are connected by a line, then the circles cannot have the same color.

  • Can we color all the circles in the graph using just 3 different colors?


Algorithmic complexity l.jpg
Algorithmic Complexity

  • Which problem is harder? “Stable Marriage”, or “Graph 3-Coloring”?

  • These algorithms may seem contrived, but they actually find many uses in computer science.


Algorithmic complexity41 l.jpg
Algorithmic Complexity

  • It turns out that the problem of “Stable Marriage” has a very efficient algorithm.

  • Finding marriages for, say, 1000 people will take a fraction of a second.

  • Graph 3-Coloring is a hard problem - no known efficient algorithm exists (although slow ones do exist).

  • For a graph with 1000 circles, finding a 3-coloring will take longer than the universe will continue to exist!


Algorithmic complexity42 l.jpg
Algorithmic Complexity

  • Let n describe the “size” of the problem.

    • n men/women who wish to marry.

    • n circles in the graph we wish to color.

  • The Stable Marriage algorithm is quadratic in n.

  • The best known Graph 3-coloring algorithm is exponential in n.



My research machine learning l.jpg
My Research:Machine Learning

  • “Machine learning” - the study of algorithms that enable computers to “learn” the same things that humans can do easily (and not so easily).

  • Machine learning is similar to pattern recognition.


My research machine learning45 l.jpg
My Research:Machine Learning

  • Examples:

    • How to hear & understand speech.

    • How to see & recognize people.

    • How to determine whether an email contains a virus.

  • The science involved in machine learning is coming up with ways to perform such tasks (or to improve their performance).


My research machine learning46 l.jpg
My Research:Machine Learning

  • My work:

    • Automatic facial expression recognition (and other kinds of face processing).

    • Automated teaching systems.


Automatic facial expression recognition l.jpg
Automatic Facial Expression Recognition

  • INPUT: an image/video containing faces.

  • OUTPUT: the locations of all faces in the image, along with their facial expressions.

  • PROCEDURE: unknown (but we’re working on it)


Automatic facial expression recognition48 l.jpg
Automatic Facial Expression Recognition

  • Let’s define “facial expression” more clearly:

    • One definition is the emotion - happy, sad, angry, etc.

    • Another definition (ours) is the kinds of facial muscle movements that occur in the face.


Facial muscle movements l.jpg
Facial Muscle Movements

  • There are 46 independent muscle groups in the face. Here are a few examples:

Source: http://www.cs.cmu.edu/afs/cs/project/face/www/facs.htm


Automatic facial expression recognition50 l.jpg
Automatic Facial Expression Recognition

  • Why would we want to recognize facial muscle movements?

    • Psychological research - how do people respond to certain stimuli?

    • Computer games - make the game responsive to how the user is feeling.

    • Lie detection.

    • Perceptual computer interfaces (more later).

    • Remote control using the face (more later).


Automatic facial expression recognition51 l.jpg
Automatic Facial Expression Recognition

  • The basic flow of how things work:

    • Find all the faces in the image (face detection).

    • For each face you find, determine its facial expression (expression recognition).


Face detection l.jpg
Face Detection

  • Contrast face detection and face recognition.

    • Detection - where are the faces in the image?

    • Recognition - whose face is that?


Face detection53 l.jpg
Face Detection

  • In 2001, Paul Viola and Michael Jones (from Mitsubishi Electric Research Labs) revolutionized the field of face detection.

  • Their design is now called the Viola-Jones Face Detector.

  • PROCEDURE:

    • Divide the image into thousands of different square regions.

    • For each square region, check if it contains a face. (illustrate on board)


Does the region contain a face l.jpg
Does the region contain a face?

  • We must classify each square region as either a face, or a non-face. This is performed by a classifier.

  • Classifiers: examines a square region of an image, and outputs either 1 (“face”) or 0 (“non-face”).

    • Must operate extremely quickly!


Classifying a region as face non face l.jpg
Classifying a region as face/non-face

  • We must “train” a face classifier using many “training examples”.

    • ~10,000 examples of faces.

    • ~1,000,000,000 examples of non-faces.

  • The classifier training algorithm compares the faces to the non-faces and finds the image properties which distinguish these two kinds of images. (illustrate on board)


Classifying a region as face non face56 l.jpg
Classifying a region as face/non-face

  • The classifier training algorithm automatically finds “features” of the image that distinguish faces from non-faces.

  • Once trained, the classifier can decide (very quickly) whether the square region contains a face.


Expression recognition l.jpg
Expression Recognition

  • Now that we’ve found the faces, we must determine their facial expressions.

  • We examine each facial muscle movement separately:

    • Is the person wrinkling their nose? Yes/No.

    • Is the person smiling? Yes/No.

    • Is the person blinking? Yes/No.

    • ...


Expression recognition58 l.jpg
Expression Recognition

  • To detect expressions, we use a similar approach as for face detection:

    • Train a classifier to distinguish between smile/non-smile, frown/non-frown, etc.

    • For each classifier, we need many examples for both the presence, and the absence, of the expression.

    • The classifier examines the face and determines whether a particular expression occurred or not.


Our system l.jpg
Our System

  • Our lab (MPLab) has developed a state-of-the-art facial expression recognition system.

  • “CERT” = Computer Expression Recognition Toolbox.

  • CERT rates each expression in terms of intensity(e.g., not smiling at all ==> very smiley).

  • Demo.


Unexpected application art exhibit l.jpg
Unexpected Application: Art Exhibit

  • We deployed CERT’s smile detector to “force” people to smile for 1.5 hours.

  • Whenever the people stopped smiling, CERT would beep at them.



Automated teaching systems l.jpg
Automated Teaching Systems

  • Facial expression recognition (and other forms of “machine perception”) have many applications.

  • In my research, I’m interested in one particular application: automated teaching systems.

  • I define automated teaching systems very generally - any machine that teaches, or helps to teach, a human.


Automated teaching systems63 l.jpg
Automated Teaching Systems

  • Why would we want to do this?

    • There are many parts of the world in which good teachers (especially in specialized subjects) are scarce.

    • The current model of education is one teacher for many students. Automated teaching systems could help reduce this imbalance.


Automated teaching systems64 l.jpg
Automated Teaching Systems

  • Some aspects of teaching (e.g., drilling of key concepts) are highly repetitive and could be automated.

  • (My research): Online learning has become very popular in higher education; students watch pre-recorded lectures on video streamed over the Internet. Can we make these video lectures more responsive to the individual student?

    • Facial expression recognition may be useful here.


Automated teaching systems65 l.jpg
Automated Teaching Systems

  • “Smart Video Lecture Player” - the basic idea:

    • Some parts of a lecture are already familiar to you, or easy to understand. You can watch these faster than normal and still follow.

    • Other parts are harder to understand; slow these down!

    • We want to adjust the playback speed automatically using facial expression.


Smart lecture video player l.jpg
Smart Lecture Video Player

  • Why not just control the speed manually (with the keyboard)?

    • The student may be taking notes with his/her hands.

    • May be more natural or convenient to use the face, similarly to how students interact (subconsciously) with their teacher.


Smart lecture video player experiment l.jpg
Smart Lecture Video Player: Experiment

  • Question/hypothesis: Does the student’s facial expression tell us how difficult he/she finds the lecture to be?

  • Experimental procedure:

    • Each student watched a short video lecture (3 mins). He/she could adjust the speed (1-10) with the keyboard.

    • Each student’s facial expressions were recorded in real-time using the CERT software.

    • Quiz.

    • Each student then watched the video again, this time giving his/her assessment of how easy/difficult (1-10) the lecture was to understand at each moment in time.


Smart lecture video player experiment68 l.jpg
Smart Lecture Video Player: Experiment

  • Experimental procedure:

    • We employed statistical regression algorithms to convert the student’s facial expressions into: The preferred viewing speed of the student. The perceived difficulty of the lecture.(Note: the true “computer science” research in this project is developing the algorithm to map from facial expression to Difficulty and Preferred Viewing Speed.)


Smart lecture video player experiment69 l.jpg
Smart Lecture Video Player: Experiment

  • Question:

    • How accurately can our automated computer algorithm predict Difficulty and Preferred Viewing Speed from the facial expression information?

      • We already collected this data, so we can determine this quantitatively.


Smart lecture video player experiment70 l.jpg
Smart Lecture Video Player: Experiment

Difficulty prediction: 0.42 mean Pearson correlation (validation).

Speed prediction: 0.29 mean Pearson correlation (validation).


Results in english l.jpg
Results (in English):

  • Using automatic facial expression recognition, we can get an approximate sense of how Easy/Difficult the student finds the lecture to be.

  • Can also infer how Fast/Slow the student wants to watch the video.

  • Applications:

    • Smart Video Lecture Player (as intended).

    • Robotic teachers (we have one).



Other work on automated teaching systems at our lab l.jpg
Other Work on Automated Teaching Systems at Our Lab

  • The RUBI project: deploy a robot among pre-school children at UCSD’s Early Childhood Education Center.

  • Children are between 18-24 months old.

  • Teach them basic shapes, letters, vocabulary (English, Finnish).


Rubi in action l.jpg
RUBI in action

RUBI 1.0

RUBI 2.0



Quick blurb about me l.jpg
Quick Blurb About Me

  • Graduated from Stanford (2001); majored in computer science.

  • Worked as a software engineer (two years) and college lecturer (two years) after finishing college.

  • Been working at UCSD as a researcher & graduate student since 2005.

  • Aim to finish my PhD in computer science by 2011.

  • Hope to eventually become a college professor.


Scientific research my personal perspective l.jpg
Scientific Research: My Personal Perspective

  • In research, you will never stop learning, by definition.

  • Usually lots of freedom: the emphasis is on getting results.

  • You will expand the frontiers of human knowledge (but usually only in small ways).

  • You will become an “expert” in something.


Scientific research my personal perspective78 l.jpg
Scientific Research: My Personal Perspective

  • Greed for money is replaced by greed for prestige.

  • Research can be lonely - you will (often) spend lots of time in the lab.

  • You won’t get rich (unless you start a company).


From high schooler to researcher l.jpg
From High Schooler to Researcher

  • Attending a prestigious research university (e.g., MIT, Harvard) is always helpful.

  • BUT - going to a lesser known school by no means shuts you out. You just have to take more initiative to get involved in research projects during college.

  • UC schools are all excellent (in certain fields) and are much cheaper (for CA residents) than private schools.


From high schooler to researcher80 l.jpg
From High Schooler to Researcher

  • In my opinion, the #1 most important thing to do in college is: GET TO KNOW YOUR PROFESSORS.

    • Go to office hours.

    • Ask them questions.

    • Ask them about their research.

    • Ask them how you can get involved in one of their research projects.

  • Professors are the reason why famous schools are famous.

  • A strong letter of recommendation from a professor is worth its weight in platinum.



ad