Last Updated on August 9, 2019
線形代数とは
線形代数は、機械学習を深く理解するための前提条件として誰もが認める数学の分野である。
線形代数は、多くの難解な理論や知見を持つ大きな分野ですが、この分野から取り出したコツコツとしたツールや表記は、機械学習の実務家にとって実用的なものとなっています。
このチュートリアルでは、機械学習の観点から線形代数とは一体何なのかを発見していきます。
ステップごとのチュートリアルとすべての例に対する Python ソース コード ファイルが含まれている私の新しい書籍 Linear Algebra for Machine Learning でプロジェクトをスタートさせましょう。
A Gentle Introduction to Linear Algebra
Photo by Steve Corey, some rights reserved.をご覧ください。
チュートリアルの概要
このチュートリアルは4つのパートに分かれています。
- 線形代数
- 数値線形代数
- 線形代数と統計
- 線形代数の応用
Need help with Linear Algebra for Machine Learning?
今すぐ 7 日間の無料メール クラッシュ コース (サンプル コード付き) を受講してください。
クリックしてサインアップし、コースの無料の PDF 電子書籍版も入手してください。
Download Your FREE Mini-Course
Linear Algebra
Linear algebra is a branch of mathematics, but the truth of it is the mathematical of data.線形代数は、データの数学である、というのがその真意です。 行列とベクトルはデータの言語である。
線形代数は線形結合についてである。 つまり、ベクトルと呼ばれる数の列や行列と呼ばれる数の配列に対して演算を行い、新しい数の列や配列を作ることである。 線形代数は、線形変換に必要な直線や平面、ベクトル空間、写像の研究です。
これは比較的若い研究分野で、最初は 1800 年代に線形方程式系で未知数を求めるために公式化されました。 線形方程式は、いくつかの項が未知である一連の項と数学的操作にすぎません。
1
|
y = 4 * x + 1
|
こんな方程式は2次元上の直線という意味で1線形であり、そのような線が描ける。次元のグラフです。 この線は、未知のxにさまざまな値を入れて、方程式やモデルがyの値に対してどのような影響を与えるかを調べることから生まれます。
同じ形の方程式を2つ以上の未知数で並べることができる;例えば。
1
2
3
4
|
y = 0.1 * x1 + 0.4 * x2
y = 0.3 * x1 + 0.9 * x2
y = 0.2 * x1 + 0.3 * x2
… |
y値の列は式からの出力列ベクトルとすることが可能です。 浮動小数点値の2列はデータ列、例えばa1、a2であり、行列Aと捉えることができる。 2 つの未知数値 x1 と x2 は方程式の係数とみなすことができ、合わせて解くべき未知数値 b のベクトルを形成します。 これを線形代数表記でコンパクトに書くと次のようになる。
1
|
y=A . b
|
この形式の問題は、解くべき方程式(ここでは3つ)よりも多くの未知数(ここでは2つ)があるため、一般的に難易度が高いです。 さらに、すべての方程式を間違いなく満たすような直線は1つもないことが多い。 私たちがしばしば興味を持つ問題 (線形回帰など) を記述する系は、無限の解を持つことができます。
これは、機械学習の実務家として興味を持つ線形代数のまさに中核を少し体験させてくれます。
Numerical Linear Algebra
コンピュータにおける線形代数のアプリケーションは、しばしば数値線形代数と呼ばれる。
“numerical” linear algebra is really applied linear algebra.
– Page ix, Numerical Linear Algebra, 1997.
それは、コード ライブラリにおける線形代数演算の実装にとどまらず、デジタル コンピュータの限られた浮動小数点精度で作業するなど、応用数学の問題を慎重に扱うことも含まれます。
コンピュータは線形代数演算の実行に優れており、ディープ ラーニングなどの最新の機械学習メソッドが GPU (Graphical Processing Unit) に依存しているのは、その線形代数演算を速く計算できる能力に起因しています。
ベクトルおよび行列演算の効率的な実装は、もともと 1970 年代および 1980 年代の FORTRAN プログラミング言語で実装されており、多くのコード、またはそれらの実装から移植されたコードが、Python などの現代のプログラミング言語を使って実行する線形代数の多くを支えています。
これらの機能を実装した 3 つの人気のあるオープン ソース数値線形代数ライブラリは、以下のとおりです。
- Linear Algebra Package, or LAPACK.
- Basic Linear Algebra Subprograms (BLAS) (線形代数ライブラリの標準).
- Automatically Tuned Linear Algebra Software (ATLAS).
あなたが直接または高次アルゴリズム経由で線形代数演算を行っているとき、多くの場合あなたのコードはこれらのいずれかまたは同様の線形代数ライブラリを使って下降していることが非常によくわかります。 これらの基礎となるライブラリの 1 つ以上の名前は、SciPy や NumPy などの Python の数値計算ライブラリをインストールまたはコンパイルしたことがあれば、なじみがあるかもしれません。
Linear Algebra and Statistics
線形代数は、数学の他の分野、特に統計学において貴重なツールです。
通常、統計を学ぶ学生は、学部レベルで線形代数 (または応用代数) を少なくとも 1 学期は勉強したものと見なされます。
– Page xv, Linear Algebra and Matrix Analysis for Statistics, 2014.
線形代数の影響は、両方の分野が応用機械学習の分野と基礎的な関係を持っていることを考えると、考えることが重要です。
Some clear fingerprint of linear algebra on statistics and statistical methods include:
- ベクトルと行列表記、特に多変数の統計で使用されました。
- 線形回帰などの最小二乗法および加重最小二乗法に対する解法。
- データ行列の平均および分散の推定。
おわかりのように、現代の統計学とデータ解析は、少なくとも機械学習の実務家の関心事である限り、線形代数の理解とツールに依存している。
Applications of Linear Algebra
As linear algebra is the mathematics of data, the tools of linear algebra are used in many domains.
Gilbert Strang の “Introduction to Linear Algebra” というトピックの古典的著書で、線形代数の応用に捧げた章が設けられています。 その中で、彼は線形代数に根ざした特定の数学的ツールを示している。 4423>
線形代数のもう一つの興味深いアプリケーションは、アルベルト・アインシュタインの相対性理論の一部で使用したタイプの数学であることです。 具体的にはテンソルやテンソル微積分です。 彼はまた、アインシュタイン表記法、またはアインシュタイン和算法と呼ばれる新しいタイプの線形代数表記法を物理学に導入しました。
Linear Algebra Tutorials
線形代数を始めるためにいくつかの助けを探しているなら、これらのチュートリアルのいくつかを見てみてください。
- Linear Algebra for Machine Learning (7 日間のミニ コース)
- Linear Algebra Cheat Sheet for Machine Learning
- Basics of Mathematical Notation for Machine Learning
Extensions
このセクションには、調査したいであろうチュートリアルを拡張するいくつかのアイディアの一覧を示します。
- 線形代数の分野を定義する5つの引用を本やウェブで検索してください。
- 確率と統計の分野で線形代数のさらなる応用や使用について調べ、リストしてください。
- 線形代数の説明で使用する10の用語について短い定義をリストし、書いてください。
これらの拡張のいずれかを探求した場合、ぜひ教えてください。
Further Reading
このセクションでは、さらに深く追求したい場合に、このトピックに関するより多くのリソースを提供します。
書籍
- Linear Algebra Introduction, 2016.
- Numerical Linear Algebra, 1997.
- Linear Algebra and Matrix Analysis for Statistics, 2014.
- 統計のための線形代数と行列解析, 2014.
記事
- 線形代数 on Wikipedia
- 線形代数 Category on Wikipedia
- 線形代数 List of Topics on Wikipedia
- LAPACK on Wikipedia
- 基本線形代数 Subprograms on Wikipedia
- 自動調整線形代数ソフトウェア(Wikipedia)
- アインシュタイン記法(Wikipedia)
- 一般相対性理論(Wikipedia)
- Linear Algebra for Machine Learning
概要
このチュートリアルで、私はこのようなことを学びました。 機械学習の観点から線形代数を優しく紹介しました。
具体的には、次のことを学びました:
- 線形代数はデータの数学である。
- 線形代数は、フーリエ級数やコンピュータグラフィックスなど、多くの実用的な数学的ツールの基礎となっています。
何か質問はありますか。
以下のコメント欄に質問を書き込んでください。
機械学習のための線形代数を使いこなす!
線形代数
の実務理解を身に付けることができます。
Linear Algebra for Machine Learning
この本は、以下のようなトピックに関する自習用チュートリアルを提供します:
Vector Norms, Matrix Multiplication, Tensors, Eigendecomposition, SVD, PCA and much more…
Final Understanding the Mathematics of Data
Skip the Academics.
中身を見る