表記を見直す -- ちょっと数学する

【 表記を見直す -- ちょっと数学する 】

このセッションでは、二つの点でこれまでの表記を見直します。

 ⚫️ ニューラル・ネットワーク表記の見直し。 
 ⚫️ ニューロンの状態を表す次の式の見直し。 Y = W・X^T + b^T    

これらの見直しは、Googleのフレームワーク TensorFlowの表記に準じたものです。

ニューラル・ネットワークのフレームワークには、TensorFlowやPyTorchやKeras等があるのですが、基本的な考え方は、皆同じです。

【 ニューラル・ネットワーク表記の見直しについて 】

これまで取り上げたニューラル・ネットワークは、「一つのニューロンに一つの入力を与える」「一つのニューロンに複数の入力を与える」「複数のニューロンからなる一つの層に複数の入力をあたえる」という、いずれも単純なものでした。

このセッションでは、入力層の後ろに二つの層があるニューラル・ネットワークを取り上げます。

ただ、各層のニューロンの数が増えると、一つのニューロンを丸で、ニューロンとニューロンの接続を線で表すこれまでのネットワークの表記では、複雑になりすぎることを具体的な例で示します。

ただ、どのような表記が複雑なネットワークの構造を簡潔に表現するかについては、次回のセッションで触れたいと思います。

【 ニューロンの状態を表す式の見直しについて 】

これまでは、ニューロンの状態を、式 Y = W・X^T + b^T   で表現してきた。X^Tは、XのT嬢ではなく、XをTranspose(転置)するという意味です。

ここで、 𝑋も bも行ベクトルなので、X^Tもb^Tも列ベクトルになります。この表記では、ニューロンの状態 Yは、列ベクトル表されています。

ここでの見直しの中心は、ニューロンの状態Yも、入力X, バイアス bと同様に、行ベクトルで表すことです。

結論を先に言えば、

 列ベクトル表示 Y = W・X^T + b^T は、
 行ベクトル表示 Y' = X・W' + b

 に変換できます。このセッションでは、そのことを見ていきます。

【 ちょっと数学する 】

ただ、少し数学的な準備が必要です。といっても、難しいことではありません。

まず、スカラーもベクトルも特殊な行列とみなせるという話をします。
m行n列の行列を、mxn の行列といいます。この時、

 ・スカラーは、1×1の行列
 ・m次元の行ベクトルは、1×mの行列
 ・n次元の列ベクトルは、n×1の行列

とみなせます。

行列の積についてですが、k x l の行列Aとm x nの行列Bの積が可能なのは、l = m の場合だけであるという大事な条件があります。行列Aの列の数 l と行列Bの行の数 m が等しいという条件です。

この条件が成り立つ時、行列Aと行列Bの積 C=AB が定義されて、行列Cは、k x n の行列になります。

行列のTranspose(転置)という操作についても、いくつかの基本的な関係が成り立ちます。それについては、スライドをご覧ください。

こうした数学的な整理は、ニューラル・ネットワークを理解する上でとても役に立つものです。ベクトルや行列に苦手意識を持っている人も多いと思いますが、この障壁はぜひ突破してもらいたいと思います。

-------------------------------------------------------

ビデオ「 表記を見直す -- ちょっと数学する 」を公開しました

https://youtu.be/OgPRBjPxuY8?list=PLQIrJ0f9gMcN8dalyOH9sjVK6CQkd7NJw

資料 pdf「 表記を見直す -- ちょっと数学する 」 

https://drive.google.com/file/d/1O-E1297nC1qWrUOnSoctljkX1AGF_LVu/view?usp=sharing

blog: 「表記を見直す -- ちょっと数学する 
https://maruyama097.blogspot.com/2023/08/blog-post_21.html

「ニューラルネットワークの基礎」まとめページ
https://www.marulabo.net/docs/neural-network/

「ニューラルネットワークの基礎」ビデオ再生リスト
https://www.youtube.com/playlist?list=PLQIrJ0f9gMcN8dalyOH9sjVK6CQkd7NJw

コメント

このブログの人気の投稿

マルレク・ネット「エントロピーと情報理論」公開しました。

初めにことばありき

宇宙の終わりと黒色矮星