Atlas

Atlas

Atlas(地図)というブログタイトルのとおり、読者のみなさまのキャリアや思考の道しるべとなる情報を発信していきます

講義ノート:Mathematics for Machine Learning – Linear Algebra / Coursera

最終更新日:2018年7月14日

f:id:raye4483:20180712115807p:plain

Mathematics for Machine Learning: Linear Algebra - Coursera [link]

概要

Specializationについて

このコースはMathematics for Machine Learning Specialization[link] の最初のコースである。

英国の有名大学Imperial College Londonによって提供されている。

機械学習とデータサイエンスの分野において、数学は極めて重要である。

しかしながら、基礎的な数学の知識を機械学習/データサイエンスの分野でどのように活用するのかについては、スムーズに理解できないことが多い

このSpecializationでは、その基礎と応用のギャップを埋め、数学の直感的理解を養うことを狙いとしている。

本Specializationに含まれるコースは以下の通りである。

1. Mathematics for Machine Learning: Linear Algebra [本講義]
2. Mathematics for Machine Learning: Multivariate Calculus [link]
3. Mathematics for Machine Learning: PCA [link]

登録を行うと、上記の3つのコースを受講することができる。

それぞれ線形代数、多変数解析学、主成分分析(PCA)について学ぶことができる。

機械学習・データサイエンスを始めたいけど何から始めたらいいか分からない、数学を忘れてしまった、という人には最適のコースかもしれない。

7日間の無料体験期間が終了すれば、月額5000円ほど支払う必要がある。

しかし、financial aidsの制度も存在するので、申請が通れば無料で受講することができる。

意外とfinancial aidsは通りやすいので、英語力に自信がある人は申し込んでみよう。

本講義について

本講義は線形代数の講義である。

線形代数とは何か、それがデータとどのように関連しているか、ベクトル・行列とは何か、ベクトル・行列の扱い方などについて学ぶことができる。

データドリブンを掲げており、講義で学んだアイデアをコーディングすることで理解を深めていく。

課題は、クイズ課題とJupyter Notebookを用いてのプログラミング課題の2種類がある。

本記事について

本記事は、私がこの講義で学んだことをまとめていく、講義ノートである。読者のみなさまの学習の指針になれば幸いである。

コードと解答はGitHubにまとめてある。ただし、解答を丸写しする行為は誰のためにもならないので、ご遠慮願いたい。

この記事を読んで興味が湧いたら、ぜひ実際に講義を受けてみて欲しい。

Week 1: Introduction to Linear Algebra and to Mathematics for Machine Learning

Welcome to this course

Introduction: Solving data science challenges with mathematics

コースの概要が紹介される。

スマートフォンでのブラウジング、交通機関の利用、エネルギー消費...etc。

この項では、エネルギーを例に挙げ、データを上手く取り扱うことでエネルギーの効率的な利用に繋がることを説明している。

ネットワーク(network)を用いることで、データモデリングと予測(prediction)を行うことができ、ネットワークを最適化するプロセスのことを機械学習(Machine Learning)と呼ぶ。

線形代数(Linear Algebra)では、ベクトルの規則に従う変数を行列に置き換え、方程式系の解を求める。この手続きが機械学習とデータサイエンスにおいて重要である。

f:id:raye4483:20180713141101p:plain

また、機械学習/データサイエンスにおける最適化を行う際は、最適化する対象が直前の状態からどのように変化したかを理解することが必要であり、これは多変数解析学(Multivariable Calculus)によって成し遂げられる。

f:id:raye4483:20180713141125p:plain

機械学習とデータサイエンスは、コンピュータサイエンスと数学に起源を持つ。

今では、エンジニアや物理学者、生物学者、医学者、社会学者にいたるまで、数学の利用が望まれる時代になっている。

ここでの問題は、機械学習とデータサイエンスに関する講義の大半が、受講者が線形代数と微積分学に精通していることを前提として組み立てられていることである。

しかしながら、ほとんどの人は線形代数・微積分学に関する知識を持っていないか、習っていても忘れてしまっている。

このコースの目的は、線形代数と微積分学の基礎を復習し、それらの知識が機械学習とデータサイエンスの世界にも応用できることを学ぶことである。

そして何より、数学的な直感を養うことを目的としている。

紙とペンを使って式変形と計算を行うスキルは、もはや有用なものだとはみなされなくなっている。

ほとんどの人間がコンピュータを持ち、それを利用することで全ての数学的操作を行うことができる。

本講義でも、数学的理解を深めるために、Pythonを用いたプログラミング課題が出題される。

線形代数は、ベクトル、ベクトル空間、そして、ベクトル空間の間の写像を扱う学問である。

線形代数は、連立一次方程式の解法を研究する過程で生み出され、行列とベクトルを用いて方程式の解を導けることが分かっている。

この講義では、まずベクトルとその操作を学び、次に行列について学ぶ。

最後の章では、それまでに学んだ知識を用いて、Webページのランク付けアルゴリズムを実装する。

The relationship between machine learning, linear algebra, and vectors and matrices

Motivations for linear algebra

本項では、どのようなタイプの問題が線形代数を用いて解くべきなのか解説される。

買い物に2回行き、リンゴとバナナを買ったとしよう。

1回目の買い物ではリンゴを2個、バナナを3個購入し、合計額は€8であった。

2回目においては、リンゴを10個、バナナを1個購入すると、合計額は€13だった。

リンゴとバナナのそれぞれの値段を求めるには、以下の連立一次方程式を解けばいい。

\begin{eqnarray}
2a + 3b &=& 8 \\
10a + b &=& 13\\
\end{eqnarray}

ここで、 aはリンゴの単価、 bはバナナの単価を表す。

上記のような単純な方程式の場合は、手計算でも簡単にそれぞれの単価を求めることができる。

しかし、実世界においては、求めるべき商品の単価および買い物の回数は莫大な量になり、手計算で解を求めることは難しくなる

コンピュータを用いて計算すれば良いのであるが、そこで線形代数が役に立つ。

係数2、3、10、1が変数a、bにかかって、アウトプットとして8、13が出てくると考えると、この連立方程式は行列とベクトルを用いることで、以下のように記述できる。

\begin{align}
\begin{pmatrix}
2 & 3 \\
10 & 1 \\
\end{pmatrix}
\begin{bmatrix}
a \\
b \\
\end{bmatrix}
=
\begin{bmatrix}
8 \\
13 \\
\end{bmatrix}
\end{align}

ここで角括弧で囲まれているものをベクトル(vector)と呼び、ベクトルをいくつか並べたもの(ここでは丸括弧で囲まれている)を行列(matrix)と呼ぶ。

この講義を通して、ベクトルと行列の意味、およびそれらの扱い方を学ぶ。上記の方程式の解き方も後ほど学ぶことになる。

私たちが注目するもう一つの問題は、方程式をデータに最適化することである。

例えば、以下のようなヒストグラム(histogram)に描かれたデータの分布を表現する方程式の最適パラメータを見つけることである。

これが実現できれば、実データをいちいち参照せずとも、方程式を見ればデータの分布がわかる。

今後は、この項で紹介された、(1)リンゴとバナナの単価を求める連立方程式、そして、(2)データの分布を説明するパラメータを見つける最適化問題、この2つの問題について取り扱っていく。

Practive Quiz: Solving some simultaneous equations

連立一次方程式を手計算で解く。中学時代を思い出そう。

Vectors in data science

To be continued...

Getting a handle on vectors
Practice Quiz: Exploring parameter space

Vectors

Operations with vectors
Practice Quiz: Doing some vector

Summary

Summary

Week 2: Vectors are objects that move around space

Introduction

Finding the size of a vector, its angle, and projection

Changing the reference frame

Doing some real-world vectors examples

Week 3: Matrices in Linear Algebra: Objects that operate on Vectors

Introduction to matrices

Matrices in linear algebra: operating on vectors

Matrix Inverses

Special matrices and Coding up some matrix operations

Week 4: Matrices make linear mappings

Matrices as objects that map one vector onto another; all tye types of matrices

Matrices transform into the new basis vector set

Making Multiple Mappings, deciding if these are reversible

Recognising mapping matrices and applying these to data

Week 5: Eigenvalues and Eigenvectors: Application to Data Problems

What are eigen-things?

Gettting into the detail of eigenproblems

When changing to the eigenbasis is really useful

Making the PageRank algorithm

Eigenvalues and Eigenvectors: Assessment