0% found this document useful (0 votes)
55 views

Research in Computer Science

This document provides a high-level overview of the field of computer science by: 1) Defining computer science as the development of new techniques using computers and computation to solve problems; 2) Briefly introducing several subfields of computer science like computer vision, graphics, cryptography, and machine learning; 3) Describing theoretical computer science areas like algorithms and complexity theory that study how to most efficiently solve problems.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views

Research in Computer Science

This document provides a high-level overview of the field of computer science by: 1) Defining computer science as the development of new techniques using computers and computation to solve problems; 2) Briefly introducing several subfields of computer science like computer vision, graphics, cryptography, and machine learning; 3) Describing theoretical computer science areas like algorithms and complexity theory that study how to most efficiently solve problems.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 43

Computer Science:

A Whirlwind Tour
Goals of This Talk

1. Introduce you to the science of computers


& computation.
2. Give a super-fast tour of various sub-areas
of computer science.
3. Tell you a little about our lab’s research.
Finding the science in
Computer Science
My definition of Computer
Science

• My definition: the development of new techniques using


computers & computation to solve problems that were
fundamentally not solvable before.
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.
Sample of Various
Computer Science
Research Problems
Computer Vision

• Google Earth - How do you “stitch


together” satellite photographs
taken above the Earth into a
navigable 3-D “world” (Google
Earth)?
Graphics

• Pixar - How do you


animate a graphical
video character (e.g.,
Shrek) so that it looks
alive?
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

• 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

• 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

• How can we analyze human DNA


sequences to determine the risk
factors of certain diseases?
Complexity Theory

• How can we use quantum


computers to solve
mathematical problems
more quickly than with
conventional machines?
Computer Science:
Sub-areas (many)
• These are all the ones I can think of off-hand:
• Graphics
Vision
Machine learning
Databases
Compilers
Networking
Operating systems Some of these are mostly
Distributed systems
Software engineering empirical, some are
Robotics
Numerical computing mostly theoretical, and
Human-computer interaction
Graphics some are both.
Computer architecture
Security
Cryptography
Algorithms
Image & video processing
Bioinformatics
Complexity theory
Computational geometry
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
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 - the
foundation of computer
science
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.
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?
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).
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.
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?

• “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?
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.
Machine Learning
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.
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).
Machine Learning

• Example:
• Automatic facial expression recognition
(and other kinds of face processing).
• Automated teaching systems.
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
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
• 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
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
Recognition

• The basic flow of how things work:


1. Find all the faces in the image (face
detection).
2. For each face you find, determine its facial
expression (expression recognition).
Face Detection

• Contrast face detection and face recognition.


• Detection - where are the faces in the image?
• Recognition - whose face is that?
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:
1. Divide the image into thousands of different square
regions.
2. For each square region, check if it contains a face.
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
• 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.
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
• 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 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.
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 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).


The End

You might also like