Semester | Mand. | Option | Filières |
BA3 | x |
Lecture | 2 weekly |
Exercises | 2 weekly |
Study plan | Semester | Mand. | Option | Filières |
Informatique 2022-23 | BA3 | x | ||
Systèmes de communication 2022-23 | BA3 | x |
Cursus | Sem. | Type |
---|---|---|
Communication systems | BA3 | Opt. |
Computer science | BA3 | Opt. |
This course provides a first introduction to the field of numerical analysis with a strong focus on visual computing and machine learning applications. Using examples from computer graphics, deep neural networks, geometry processing, computer vision, and computational photography, students will gain hands-on experience with a range of essential numerical algorithms.
The course will begin with a review of floating point arithmetic and error propagation in numerical computations. Following this, we will study and experiment with several techniques that solve systems of linear and non-linear equations and perform dimensionality reduction. Since many interesting problems cannot be solved exactly, numerical optimization techniques constitute the second major topic of this course. We will take an extensive look at automatic differentiation, the mechanism underlying popular deep learning frameworks such as PyTorch and Tensorflow. The course concludes with a review of numerical methods that introduce randomness to solve problems that would otherwise be intractable.
Students will have the opportunity to gain practical experience with the discussed methods using programming assignments based on Scientific Python.
Visual computing, machine learning, numerical linear algebra, numerical analysis, optimization, scientific computing
MATH-101 (Analysis I) and MATH-111 (Linear Algebra).
Students are expected to have good familiarity with at least one programming language (e.g. C/C++, Java, Scala, Python, R, Ruby...). The course itself will rely on Python, but this is straightforward to learn while taking the course.
During the first weeks of the semester, there will be tutorial sessions on using Python and Scientific Python.
Lectures, interactive demos, theory and programming exercises
Students are expected to study the provided reading material and actively participate in class and in exercise sessions. They will be given both theoretical exercises and a set of hands-on programming assignments.
1. Continuous assessment during the semester via project assignments (35%)
2. Final exam (65%)
Slides and other resource will be provided in class.
The course textbook is
Numerical Algorithms: Methods for Computer Vision, Machine Learning, and Graphics by Justin Solomon (freely available at the following link: http://people.csail.mit.edu/jsolomon/share/book/numerical_book.pdf)
An optional reference is
Scientific Computing: An Introductory Survey (2nd edition) by Michael Heath
Although it is not a strict prerequisite, this course is highly recommended for students who wish to pursue studies in the area of Visual Computing, in particular: CS-341 (Introduction to computer graphics), CS-440 (Advanced computer graphics), CS-442 (Computer vision), CS-413 (Computational Photography), CS-444 (Virtual Reality), and CS-445 (Digital 3D geometry processing)
optionnel
optionnel
Cours
Lecture
Heure(s) hebdo x 14 semaines
Hour(s) per week x 14 weeks
H hebdo
H hebdo
Exercices
Exercises
Heure(s) hebdo x 14 semaines
Hour(s) per week x 14 weeks
H hebdo
H hebdo
Ecrit
Written
Session hiver
Session winter
HIV
HIV
optionnel
optionnel
Cours
Lecture
Heure(s) hebdo x 14 semaines
Hour(s) per week x 14 weeks
H hebdo
H hebdo
Exercices
Exercises
Heure(s) hebdo x 14 semaines
Hour(s) per week x 14 weeks
H hebdo
H hebdo
Ecrit
Written
Session hiver
Session winter
HIV
HIV
BALISES_TEXTES
BOOLEAN_Symbol
BaliseJS_debut
BaliseJS_fin
Balise_debut
Balise_fin
FO_debut
FO_fin
HTML_debut
HTML_fin
JS_debut
JS_fin
BALISE_BOLD
BOOLEAN_Symbol
BaliseJS_debut
\x5bb\x5d
BaliseJS_fin
\x5b\x2fb\x5d
Balise_debut
[b]
Balise_fin
[/b]
FO_debut
font-weight=bold
FO_fin
font-weight=normal
HTML_debut
<b>
HTML_fin
</b>
JS_debut
\x3cb\x3e
JS_fin
\x3c\x2fb\x3e
BALISE_ITALIC
BOOLEAN_Symbol
BaliseJS_debut
\x5bi\x5d
BaliseJS_fin
\x5b\x2fi\x5d
Balise_debut
[i]
Balise_fin
[/i]
FO_debut
font-style=italic
FO_fin
font-style=normal
HTML_debut
<i>
HTML_fin
</i>
JS_debut
\x3ci\x3e
JS_fin
\x3c\x2fi\x3e
BALISE_RED
BOOLEAN_Symbol
BaliseJS_debut
\x5bred\x5d
BaliseJS_fin
\x5b\x2fred\x5d
Balise_debut
[red]
Balise_fin
[/red]
FO_debut
color=#990033
FO_fin
color=black
HTML_debut
<span style="color:#990033;">
HTML_fin
</span>
JS_debut
\x3cspan style="color:#990033;"\x3e
JS_fin
\x3c\x2fspan\x3e
BALISE_TAB
BOOLEAN_Symbol
BaliseJS_debut
\x5btab\x5d
BaliseJS_fin
Balise_debut
[tab]
Balise_fin
FO_debut
[inline]=        
FO_fin
HTML_debut
<img src="/images/gestacplus/base/pixel.gif" width="40" height="1"/>
HTML_fin
JS_debut
\x3cimg src="\x2fimages\x2fgestacplus\x2fbase\x2fpixel.gif" width="40" height="1"\x2f\x3e
JS_fin
BALISE_LIST
BOOLEAN_Symbol
BaliseJS_debut
\x5bli\x5d
BaliseJS_fin
Balise_debut
[li]
Balise_fin
FO_debut
[inline]=•  
FO_fin
HTML_debut
•  
HTML_fin
JS_debut
\x26#x2022;\x26#160;\x26#160;
JS_fin
CODE5045487
BOOLEAN_Symbol
BaliseJS_debut
\x5b\x5d
BaliseJS_fin
Balise_debut
[]
Balise_fin
FO_debut
[inline]= 
FO_fin
HTML_debut
 
HTML_fin
JS_debut
\x26#160;
JS_fin
BALISE_GREEN
BOOLEAN_Symbol
BaliseJS_debut
\x5bgreen\x5d
BaliseJS_fin
\x5b\x2fgreen\x5d
Balise_debut
[green]
Balise_fin
[/green]
FO_debut
color=#008000
FO_fin
color=black
HTML_debut
<span style="color:#008000;">
HTML_fin
</span>
JS_debut
\x3cspan style="color:#008000;"\x3e
JS_fin
\x3c\x2fspan\x3e
CODE7508550
BOOLEAN_Symbol
BaliseJS_debut
\x5bblue\x5d
BaliseJS_fin
\x5b\x2fblue\x5d
Balise_debut
[blue]
Balise_fin
[/blue]
FO_debut
color=#0080FF
FO_fin
color=black
HTML_debut
<span style="color:#0080FF;">
HTML_fin
</span>
JS_debut
\x3cspan style="color:#0080FF;"\x3e
JS_fin
\x3c\x2fspan\x3e
BALISE_COURIER
BOOLEAN_Symbol
BaliseJS_debut
\x5bcourier\x5d
BaliseJS_fin
\x5b\x2fcourier\x5d
Balise_debut
[courier]
Balise_fin
[/courier]
FO_debut
font-family=Courier
FO_fin
font-family=
HTML_debut
<font style="font-family:Courier;">
HTML_fin
</font>
JS_debut
\x3cfont style="font-family:Courier;"\x3e
JS_fin
\x3c\x2ffont\x3e
BALISE_SIZE20
BOOLEAN_Symbol
BaliseJS_debut
\x5b20\x5d
BaliseJS_fin
\x5b\x2f20\x5d
Balise_debut
[20]
Balise_fin
[/20]
FO_debut
font-size=20pt
FO_fin
font-size=
HTML_debut
<font style="font-size:20pt;">
HTML_fin
</font>
JS_debut
\x3cfont style="font-size:20pt;"\x3e
JS_fin
\x3c\x2ffont\x3e
BALISE_SIZE16
BOOLEAN_Symbol
BaliseJS_debut
\x5b16\x5d
BaliseJS_fin
\x5b\x2f16\x5d
Balise_debut
[16]
Balise_fin
[/16]
FO_debut
font-size=16pt
FO_fin
font-size=
HTML_debut
<font style="font-size:16pt;">
HTML_fin
</font>
JS_debut
\x3cfont style="font-size:16pt;"\x3e
JS_fin
\x3c\x2ffont\x3e
BALISE_SIZE12
BOOLEAN_Symbol
BaliseJS_debut
\x5b12\x5d
BaliseJS_fin
\x5b\x2f12\x5d
Balise_debut
[12]
Balise_fin
[/12]
FO_debut
font-size=12pt
FO_fin
font-size=
HTML_debut
<font style="font-size:12pt;">
HTML_fin
</font>
JS_debut
\x3cfont style="font-size:12pt;"\x3e
JS_fin
\x3c\x2ffont\x3e
BALISE_SIZE8
BOOLEAN_Symbol
BaliseJS_debut
\x5b8\x5d
BaliseJS_fin
\x5b\x2f8\x5d
Balise_debut
[8]
Balise_fin
[/8]
FO_debut
font-size=8pt
FO_fin
font-size=
HTML_debut
<font style="font-size:8pt;">
HTML_fin
</font>
JS_debut
\x3cfont style="font-size:8pt;"\x3e
JS_fin
\x3c\x2ffont\x3e
BALISE_BLACKBACK
BOOLEAN_Symbol
BaliseJS_debut
\x5bblackback\x5d
BaliseJS_fin
\x5b\x2fblackback\x5d
Balise_debut
[blackback]
Balise_fin
[/blackback]
FO_debut
background-color=black
FO_fin
background-color=white
HTML_debut
<span style="background-color:black;">
HTML_fin
</span>
JS_debut
\x3cspan style="background-color:black;"\x3e
JS_fin
\x3c\x2fspan\x3e
BALISE_WHITE
BOOLEAN_Symbol
BaliseJS_debut
\x5bwhite\x5d
BaliseJS_fin
\x5b\x2fwhite\x5d
Balise_debut
[white]
Balise_fin
[/white]
FO_debut
color=white
FO_fin
color=black
HTML_debut
<span style="color:white;">
HTML_fin
</span>
JS_debut
\x3cspan style="color:white;"\x3e
JS_fin
\x3c\x2fspan\x3e
CODE47534071
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bbeta\x5d
BaliseJS_fin
Balise_debut
[beta]
Balise_fin
FO_debut
[inline]=β
FO_fin
HTML_debut
β
HTML_fin
JS_debut
\x26#946;
JS_fin
CODE47534435
BOOLEAN_Symbol
1
BaliseJS_debut
\x5balpha\x5d
BaliseJS_fin
Balise_debut
[alpha]
Balise_fin
FO_debut
[inline]=α
FO_fin
HTML_debut
α
HTML_fin
JS_debut
\x26#945;
JS_fin
CODE47551722
BOOLEAN_Symbol
BaliseJS_debut
\x5bsub\x5d
BaliseJS_fin
\x5b\x2fsub\x5d
Balise_debut
[sub]
Balise_fin
[/sub]
FO_debut
vertical-align=sub
FO_fin
vertical-align=baseline
HTML_debut
<sub>
HTML_fin
</sub>
JS_debut
\x3csub\x3e
JS_fin
\x3c\x2fsub\x3e
CODE48535424
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bLAMBDA\x5d
BaliseJS_fin
Balise_debut
[LAMBDA]
Balise_fin
FO_debut
[inline]=Λ
FO_fin
HTML_debut
Λ
HTML_fin
JS_debut
\x26#923;
JS_fin
CODE48535666
BOOLEAN_Symbol
1
BaliseJS_debut
\x5blambda\x5d
BaliseJS_fin
Balise_debut
[lambda]
Balise_fin
FO_debut
[inline]=λ
FO_fin
HTML_debut
λ
HTML_fin
JS_debut
\x26#955;
JS_fin
CODE47551793
BOOLEAN_Symbol
BaliseJS_debut
\x5bsup\x5d
BaliseJS_fin
\x5b\x2fsup\x5d
Balise_debut
[sup]
Balise_fin
[/sup]
FO_debut
vertical-align=super
FO_fin
vertical-align=baseline
HTML_debut
<sup>
HTML_fin
</sup>
JS_debut
\x3csup\x3e
JS_fin
\x3c\x2fsup\x3e
CODE56031535
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bdelta\x5d
BaliseJS_fin
Balise_debut
[delta]
Balise_fin
FO_debut
[inline]=δ
FO_fin
HTML_debut
δ
HTML_fin
JS_debut
\x26#948;
JS_fin
CODE56073309
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bpi\x5d
BaliseJS_fin
Balise_debut
[pi]
Balise_fin
FO_debut
[inline]=π
FO_fin
HTML_debut
π
HTML_fin
JS_debut
\x26#960;
JS_fin
CODE56074095
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bDELTA\x5d
BaliseJS_fin
Balise_debut
[DELTA]
Balise_fin
FO_debut
[inline]=Δ
FO_fin
HTML_debut
Δ
HTML_fin
JS_debut
\x26#916;
JS_fin
CODE56074172
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bMU\x5d
BaliseJS_fin
Balise_debut
[MU]
Balise_fin
FO_debut
[inline]=Μ
FO_fin
HTML_debut
Μ
HTML_fin
JS_debut
\x26#924;
JS_fin
CODE56074264
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bPI\x5d
BaliseJS_fin
Balise_debut
[PI]
Balise_fin
FO_debut
[inline]=Π
FO_fin
HTML_debut
Π
HTML_fin
JS_debut
\x26#928;
JS_fin
CODE56074328
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bSIGMA\x5d
BaliseJS_fin
Balise_debut
[SIGMA]
Balise_fin
FO_debut
[inline]=Σ
FO_fin
HTML_debut
Σ
HTML_fin
JS_debut
\x26#931;
JS_fin
CODE56075056
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bALPHA\x5d
BaliseJS_fin
Balise_debut
[ALPHA]
Balise_fin
FO_debut
[inline]=Α
FO_fin
HTML_debut
Α
HTML_fin
JS_debut
\x26#913;
JS_fin
CODE56075186
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bBETA\x5d
BaliseJS_fin
Balise_debut
[BETA]
Balise_fin
FO_debut
[inline]=Β
FO_fin
HTML_debut
Β
HTML_fin
JS_debut
\x26#914;
JS_fin
BALISE_SYMBOL
BOOLEAN_Symbol
BaliseJS_debut
\x5bsymbol\x5d
BaliseJS_fin
\x5b\x2fsymbol\x5d
Balise_debut
[symbol]
Balise_fin
[/symbol]
FO_debut
font-family=Symbol
FO_fin
font-family=
HTML_debut
<font style="font-family:Symbol;">
HTML_fin
</font>
JS_debut
\x3cfont style="font-family:Symbol;"\x3e
JS_fin
\x3c\x2ffont\x3e
CODE56072935
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bmu\x5d
BaliseJS_fin
Balise_debut
[mu]
Balise_fin
FO_debut
[inline]=μ
FO_fin
HTML_debut
μ
HTML_fin
JS_debut
\x26#956;
JS_fin
CODE56073842
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bsigma\x5d
BaliseJS_fin
Balise_debut
[sigma]
Balise_fin
FO_debut
[inline]=σ
FO_fin
HTML_debut
σ
HTML_fin
JS_debut
\x26#963;
JS_fin
CODE68199232
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bphi\x5d
BaliseJS_fin
Balise_debut
[phi]
Balise_fin
FO_debut
[inline]=φ
FO_fin
HTML_debut
φ
HTML_fin
JS_debut
\x26#966;
JS_fin
CODE68199285
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bPHI\x5d
BaliseJS_fin
Balise_debut
[PHI]
Balise_fin
FO_debut
[inline]=Φ
FO_fin
HTML_debut
Φ
HTML_fin
JS_debut
\x26#934;
JS_fin
CODE68199991
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bgamma\x5d
BaliseJS_fin
Balise_debut
[gamma]
Balise_fin
FO_debut
[inline]=γ
FO_fin
HTML_debut
γ
HTML_fin
JS_debut
\x26#947;
JS_fin
CODE68200031
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bGAMMA\x5d
BaliseJS_fin
Balise_debut
[GAMMA]
Balise_fin
FO_debut
[inline]=Γ
FO_fin
HTML_debut
Γ
HTML_fin
JS_debut
\x26#915;
JS_fin
CODE68200077
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bomega\x5d
BaliseJS_fin
Balise_debut
[omega]
Balise_fin
FO_debut
[inline]=ω
FO_fin
HTML_debut
ω
HTML_fin
JS_debut
\x26#969;
JS_fin
CODE68200150
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bOMEGA\x5d
BaliseJS_fin
Balise_debut
[OMEGA]
Balise_fin
FO_debut
[inline]=Ω
FO_fin
HTML_debut
Ω
HTML_fin
JS_debut
\x26#937;
JS_fin
CODE72092691
BOOLEAN_Symbol
BaliseJS_debut
\x5beta\x5d
BaliseJS_fin
Balise_debut
[eta]
Balise_fin
FO_debut
[inline]=η
FO_fin
HTML_debut
η
HTML_fin
JS_debut
\x26#951;
JS_fin
CODE72092805
BOOLEAN_Symbol
BaliseJS_debut
\x5bETA\x5d
BaliseJS_fin
Balise_debut
[ETA]
Balise_fin
FO_debut
[inline]=Η
FO_fin
HTML_debut
Η
HTML_fin
JS_debut
\x26#919;
JS_fin
BALISE_SOULIGNER
BOOLEAN_Symbol
BaliseJS_debut
\x5bu\x5d
BaliseJS_fin
\x5b\x2fu\x5d
Balise_debut
[u]
Balise_fin
[/u]
FO_debut
text-decoration=underline
FO_fin
text-decoration=none
HTML_debut
<u>
HTML_fin
</u>
JS_debut
\x3cu\x3e
JS_fin
\x3c\x2fu\x3e
CODE72092388
BOOLEAN_Symbol
BaliseJS_debut
\x5bpsi\x5d
BaliseJS_fin
Balise_debut
[psi]
Balise_fin
FO_debut
[inline]=ψ
FO_fin
HTML_debut
ψ
HTML_fin
JS_debut
\x26#968;
JS_fin
CODE72092541
BOOLEAN_Symbol
BaliseJS_debut
\x5bPSI\x5d
BaliseJS_fin
Balise_debut
[PSI]
Balise_fin
FO_debut
[inline]=Ψ
FO_fin
HTML_debut
Ψ
HTML_fin
JS_debut
\x26#936;
JS_fin
CODE140502511
BOOLEAN_Symbol
1
BaliseJS_debut
\x5brho\x5d
BaliseJS_fin
Balise_debut
[rho]
Balise_fin
FO_debut
[inline]=ρ
FO_fin
HTML_debut
ρ
HTML_fin
JS_debut
\x26#961;
JS_fin
CODE140504636
BOOLEAN_Symbol
1
BaliseJS_debut
\x5bRHO\x5d
BaliseJS_fin
Balise_debut
[RHO]
Balise_fin
FO_debut
[inline]=Ρ
FO_fin
HTML_debut
Ρ
HTML_fin
JS_debut
\x26#929;
JS_fin
CODE148292791
BOOLEAN_Symbol
BaliseJS_debut
\x5bepsilon\x5d
BaliseJS_fin
Balise_debut
[epsilon]
Balise_fin
FO_debut
[inline]=ε
FO_fin
HTML_debut
ε
HTML_fin
JS_debut
\x26#949;
JS_fin
CODE169976220
BOOLEAN_Symbol
BaliseJS_debut
\x5blig\x5d
BaliseJS_fin
Balise_debut
[lig]
Balise_fin
FO_debut
[inline]=›  
FO_fin
HTML_debut
›  
HTML_fin
JS_debut
\x26#x203A;\x26#160;\x26#160;
JS_fin
CODE148292899
BOOLEAN_Symbol
BaliseJS_debut
\x5bEPSILON\x5d
BaliseJS_fin
Balise_debut
[EPSILON]
Balise_fin
FO_debut
[inline]=Ε
FO_fin
HTML_debut
Ε
HTML_fin
JS_debut
\x26#917;
JS_fin
BALISETXT_SAUT
BOOLEAN_Symbol
BaliseJS_debut
\x5bbr\x2f\x5d
BaliseJS_fin
Balise_debut
[br/]
Balise_fin
FO_debut
FO_fin
HTML_debut
<br/>
HTML_fin
JS_debut
\x3cbr\x2f\x3e
JS_fin