Title: Computer Science: A Whirlwind Tour
1Computer ScienceA Whirlwind Tour
- Jacob Whitehill (jake_at_mplab.ucsd.edu)
- Machine Perception Laboratory,http//mplab.ucsd.e
du - UCSD
2Goals 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 labs research.
- Show some demos.
3Finding the science in Computer Science
4Computer Science Misconceptions
- Computer science is related to, but distinct
from, the following fields - Information Technology (IT).
- Computer network management
- Computer programming
5Computer 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.
6Computer 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.
7Computer 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.
8My 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 - its
clear that its achievable. - Contrast with programming though programming is
by no means trivial, it is usually clear at the
onset that the program can be written.
9My 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.
10Computer Science
- Computer science is (for the most part) an
engineering science - We have a task wed like to accomplish.
- We dont know if its solvable, let alone how to
solve it. - We (try to ) find computational methods to
accomplish our task.
11Computer 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.
12Sample of Various Computer Science Research
Problems
13Computer Vision
- Google Earth - How do you stitch together
satellite photographs taken above the Earth into
a navigable 3-D world (Google Earth)?
14Graphics
- Pixar - How do you animate a graphical video
character (e.g., Shrek) so that it looks alive?
15Cryptography 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?
16Networking
- How can you transmit data reliably and at
high-speed using ordinary power-line
cables?(this is important in developing
countries without telephone infrastructure)
17Machine Learning
- Can computers learn to recognize the same kinds
of patterns in nature that humans can? - Example where are the faces in the video?
18Bioinformatics and Computational Biology
- How can we analyze human DNA sequences to
determine the risk factors of certain diseases?
19Complexity Theory
- How can we use quantum computers to solve
mathematical problems more quickly than with
conventional machines?
20Computer ScienceSub-areas (many)
- These are all the ones I can think of off-hand
- GraphicsVisionMachine learningDatabasesCompile
rsNetworkingOperating systemsDistributed
systemsSoftware engineeringRoboticsNumerical
computingHuman-computer interactionGraphicsComp
uter architectureSecurityCryptographyAlgorithms
Image video processingBioinformaticsComplexit
y 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.
21Theoretical 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.
22Theoretical 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 Its not always easy/possible to prove
something mathematically.
23Algorithms - the foundation of computer science
24Algorithms
- 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.
25Algorithms
- 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.
26Algorithms
- Example (continued)
- OUTPUT chocolate chip pancakes
27Algorithms
- 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 Shreks mouth to match his
speech?
28Algorithms
- 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
computers native language, written in 0s and
1s).
29Algorithms
- 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 weve reached 100.
30Algorithms
- Example counting from 1 to 100.
- PROCEDURE (in C, a programming language)
- int number 1while (number printf(d\n, number) number 1
31Algorithms
- Example counting from 1 to 100.
- PROCEDURE (in PowerPC G5 machine language,
binary) - 11111110111011011111101011001110000000000000000000
00000000010010000000000000000000000000000010100000
00000000000000000000000000100000000000000000000000
00000010100000000000000000000001000001010000000000
00000000000000001000010100000000000000000000000000
00000100000000000000000000000000111000010111110101
11110101000001000001010001110100010101011010010001
01010100100100111100000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000100000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00010000000000000000...
32Algorithms
- 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.
33Computability 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.
34The 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.
35The 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.
36Complexity 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.
37Two 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?
38Stable 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.
39Graph 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?
40Algorithmic 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.
41Algorithmic 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!
42Algorithmic 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.
43Machine Learning
44My ResearchMachine 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.
45My ResearchMachine 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).
46My ResearchMachine Learning
- My work
- Automatic facial expression recognition (and
other kinds of face processing). - Automated teaching systems.
47Automatic 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 were working on it)
48Automatic Facial Expression Recognition
- Lets 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.
49Facial 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
50Automatic 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).
51Automatic 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).
52Face Detection
- Contrast face detection and face recognition.
- Detection - where are the faces in the image?
- Recognition - whose face is that?
53Face 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)
54Does 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!
55Classifying 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)
56Classifying 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.
57Expression Recognition
- Now that weve 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.
- ...
58Expression 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.
59Our 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.
60Unexpected Application Art Exhibit
- We deployed CERTs smile detector to force
people to smile for 1.5 hours. - Whenever the people stopped smiling, CERT would
beep at them.
61Unexpected Application Art Exhibit
62Automated Teaching Systems
- Facial expression recognition (and other forms of
machine perception) have many applications. - In my research, Im 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.
63Automated 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.
64Automated 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.
65Automated 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.
66Smart 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.
67Smart Lecture Video Player Experiment
- Question/hypothesis Does the students 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 students 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.
68Smart Lecture Video Player Experiment
- Experimental procedure
- We employed statistical regression algorithms to
convert the students 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.)
69Smart 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.
70Smart Lecture Video Player Experiment
Difficulty prediction 0.42 mean Pearson
correlation (validation). Speed prediction 0.29
mean Pearson correlation (validation).
71Results (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).
72Smart Video Lecture Player
73Other Work on Automated Teaching Systems at Our
Lab
- The RUBI project deploy a robot among pre-school
children at UCSDs Early Childhood Education
Center. - Children are between 18-24 months old.
- Teach them basic shapes, letters, vocabulary
(English, Finnish).
74RUBI in action
RUBI 1.0
RUBI 2.0
75Science as a Career
76Quick 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.
77Scientific 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.
78Scientific 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 wont get rich (unless you start a company).
79From 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.
80From 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.
81The End