Maybaygiare.org

Blog Network

ディープラーニングのための基本的な線形代数

  • はじめに
  • 数学的オブジェクト
  • 計算ルール
  • 行列乗算プロパティ
  • 逆と転置
  • 要約
  • リソース

はじめに

線形代数は、数学の連続形式であり、それはあなたが自然現象をモデル化し、それらを効率的に計算することができますので、科学と工学全体に適用されます….. それは連続的で離散的ではない数学の一形態であるため、多くのコンピュータ科学者はそれについて多くの経験を持っていません。 線形代数は、幾何学や関数解析のような数学のほぼすべての分野の中心でもあります。 その概念は、特に深層学習アルゴリズムを使用している場合、機械学習の背後にある理論を理解するための重要な前提条件です。 機械学習を始める前に線形代数を理解する必要はありませんが、ある時点で、さまざまな機械学習アルゴリズムが実際にどのように機能するかを
これは、機械学習システムの開発中により良い意思決定を行うのに役立ちます。 あなたが本当にこの分野の専門家になりたいのであれば、機械学習にとって重要な線形代数の部分を習得する必要があります。 線形代数では、データは線形方程式で表され、行列とベクトルの形で表されます。 したがって、主にスカラーではなく行列とベクトルを扱っています(これらの用語については、次のセクションで説明します)。 Numpyのような適切なライブラリが自由に使用できる場合は、数行のコードで複雑な行列乗算を非常に簡単に計算できます。 (注: このブログ記事では、機械学習にとって重要ではない線形代数の概念を無視しています。H2>

スカラー

スカラーは単純に単一の数値です。 例えば24。

Vector

ベクトルは数値の順序付けられた配列であり、行または列にすることができます。 ベクトルには単一のインデックスがあり、ベクトル内の特定の値を指すことができます。 たとえば、V2は、上の図では-8であるベクトル内の2番目の値を参照します。

行列は数の順序付けられた2d配列であり、二つのインデックスを持っています。 最初の1つは行を指し、2番目の1つは列を指します。 たとえば、M23は、2行目と3列目の値を指し、上の黄色の図では8です。 行列には複数の行と列を含めることができます。 ベクトルは行列でもありますが、行または列が1つだけであることに注意してください。

黄色の図の例の行列は、2行3列の行列(行x列)でもあります。 以下では、その表記法と一緒に行列の別の例を見ることができます:

テンソル

テンソルは、可変数の軸を持つ通常のグリッド上に配置された数値の配列と考えることができます。 テンソルには3つのインデックスがあり、最初のインデックスは行を指し、2番目のインデックスは列を指し、3番目のインデックスは軸を指します。 たとえば、T232は、2番目の行、3番目の列、および2番目の軸を指します。 これは、下の図の右テンソルの値0を指します:ンソルは多次元配列であり、それが持つインデックスの数に応じてベクトルと行列になる可能性があるため、上記のこれらの概念のすべての最 たとえば、一次テンソルはベクトル(1インデックス)になります。 二次テンソルは行列(2つの添字)であり、三次テンソル(3つの添字)以上は高次テンソル(3つ以上の添字)と呼ばれる。

行列-スカラー演算

行列にスカラーを乗算、除算、減算、または追加する場合は、行列のすべての要素を使用して行います。 下の画像は、乗算のためにこれを完全に示しています。

行列-ベクトル乗算

行列にベクトルを乗算することは、行列の各行にベクトルの列を乗算することと考えることができます。 出力は、行列と同じ行数のベクトルになります。 以下の画像は、これがどのように機能するかを示しています。

コンセプトは、我々は第二の画像の計算を通過します。 結果のベクトル(16)の最初の値を取得するには、行列(1と5)で乗算したいベクトルの数を取り、行列の最初の行(1と3)の数で乗算します。 これは次のようになります:

1*1 + 3*5 = 16

行列の2行目の値についても同じことを行います。

4*1 + 0*5 = 4

そして再び行列の3番目の行のために:

2*1 + 1*5 = 7

ここに別の例があります:

And here is a kind of cheat sheet:

Matrix-Matrix Addition and Subtraction

Matrix-Matrix Addition and Subtraction is fairly easy and straightforward. 要件は、行列が同じ次元を持ち、結果が同じ次元を持つ行列であることです。 最初の行列の各値を2番目の行列の対応する値で加算または減算するだけです。 以下を参照してください:

行列-行列乗算

行列にベクトルを乗算する方法を知っていれば、2つの行列を一緒に乗算することはそれほど難しいことではありません。 最初の行列の列の数が2番目の行列の行の数と一致する場合にのみ、行列を乗算できることに注意してください。 結果は、最初の行列と同じ行数、2番目の行列と同じ列数の行列になります。 それは次のように動作します:

2番目の行列を列ベクトルに分割し、最初の行列にこれらのベクトルのそれぞれを別々に乗算します。 次に、結果を新しい行列に入れます(それらを追加せずに!). 以下の画像は、この手順を段階的に説明しています:

And here is again some kind of cheat sheet:

Matrix Multiplication Properties

Matrix Multiplication has several properties that allow us to bundle a lot of computation into one Matrix multiplication. We will discuss them one by one below. これらの概念をスカラーで説明し、次に行列で説明することから始めます。

可換ではありません

スカラー乗算は可換ですが、行列乗算は可換ではありません。 これは、スカラーを乗算しているとき、7*3は3*7と同じであることを意味します。 しかし、行列を互いに乗算すると、A*BはB*Aと同じではありません。

Associative

スカラーと行列の乗算は両方とも連想です。 これは、スカラー乗算3(5*3)が(3*5)3と同じであり、行列乗算A(B*C)が(A*B)Cと同じであることを意味します。

Distributive

スカラーと行列乗算も両方とも分配的です。 これは
3(5+3)と同じであることを意味します3*5 + 3*3 そして、そのA(B+C)はA*B+A*Cと同じです。

単位行列

単位行列は特別な種類の行列ですが、最初に、単位行列が何であるかを定義する必要があ あなたが1で乗算するすべてがそれ自身に等しいので、数1は恒等式です。 したがって、単位行列に乗算されたすべての行列は、それ自体に等しい。 たとえば、行列Aの単位行列はAに等しいです。

単位行列は、対角に沿って1があり、他のすべての値がゼロであるという事実によって見つけることができます。 これは、行数が列数と一致することを意味する「二乗行列」でもあります。/div>行列の乗算は可換ではないが、1つの例外、すなわち行列に単位行列を乗算する場合があることを議論した。 したがって、次の式が当てはまります。A*I=I*A=A

Inverse and Transpose

行列inverseと行列transposeは、2つの特殊な種類の行列プロパティです。 ここでも、これらの特性が実数とどのように関連しているか、そしてそれらが行列とどのように関連しているかを議論することから始めます。

まず第一に、逆とは何ですか? その逆数を掛けた数は1に等しい。 0以外のすべての数は逆数を持つことに注意してください。 行列にその逆行列を乗算すると、結果はその単位行列になります。 次の例は、スカラーの逆数がどのように見えるかを示しています:/div>行列には逆行列があります。 行列が「二乗行列」であり、逆行列がある場合は、行列の逆行列を計算できます。 どの行列が逆行列を持っているかを議論することは、残念ながらこの記事の範囲外です。なぜ逆行列が必要なのでしょうか?

行列を分割することはできないからです。 行列で割るという概念はありませんが、行列に逆行列を掛けることができ、本質的に同じことになります。

下の画像は、行列にその逆行列を掛けたもので、2行2列の単位行列になります。/div>numpyを使用して行列の逆行列を簡単に計算します(行列がある場合)。 ここには、ドキュメントへのリンクがあります:https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.linalg.inv.html。

Transpose

最後に、行列のTransposeプロパティについて説明します。 これは基本的に、45度の軸に沿った行列の鏡像です。 行列の転置を得るのはかなり簡単です。 その最初の列は行列転置の最初の行であり、2番目の列は行列転置の2番目の行です。 M*n行列は、n*m行列に変換されます。 また、AのAij要素はAji(転置)要素に等しくなります。 下の画像は、それを示しています:の記事では、機械学習で使用される線形代数の数学的オブジェクトについて学びました。 これらの数学的オブジェクトを乗算、除算、加算、減算する方法を学びました。 さらに、行列の最も重要な特性と、それらがなぜより効率的な計算を可能にするのかについて学びました。 その上で、逆行列と転置行列が何であるか、そしてそれらを使って何ができるかを学びました。 機械学習で使用される線形代数の他の部分もありますが、この記事では最も重要な概念を適切に紹介しました。

ディープラーニング(本)—Ian Goodfellow、Joshua Bengio、Aaron Courville

Linear Algebra for Machine Learning

CourseraのAndrew Ngの機械学習コース

https://en.wikipedia.org/wiki/Linear_algebra

https://en.wikipedia.org/wiki/Linear_algebra

https://en.wikipedia.org/wiki/Linear_algebra

https://en.wikipedia.org/wiki/Linear_algebra

https://en.wikipedia.org/wiki/Linear_algebra

iv id=”この投稿は最初に私のブログ(https://machinelearning-blog.com)で公開されました。

コメントを残す

メールアドレスが公開されることはありません。