‫リシェイプとトランスポーズについて説明しましたが､ トランスポーズを使うのはどんなときだろうと思われるかもしれません｡
‫軸を反転させるだけです｡
‫それはどんなときに役立つのでしょうか？
‫さて､ このビデオで取り上げるのはそれです｡
‫そして､ 行列の転置の主な使用例として､ DOT積があります｡
‫今､ 考えているのは､ ドットプロダクトかもしれません｡
‫DOT製品って一体なんだろう？
‫まあ､ やることはやっておこう｡
‫ドット積､ ナムパイ......練習していることなので､ 研究してみましょう｡
‫さあ､ どうぞ｡
‫Num py dot.
‫2 つの配列の内積｡
‫あ､ それじゃあまり参考にならないですね｡
‫ドキュメントの中に出てくることもありますよ｡
‫何が起こるか､ ごく簡単に説明してくれます｡
‫具体的にはAとBの両方がワンダフルであれば､ ベクトルの内積となる｡
‫さて､ ここでドットプロダクトが実際にどのようなものであるかについて､ いくつかのテキストによる説明がありますが､ ここではコードに焦点を当てましょう｡
‫ノートに戻ろう｡
‫まずはコードを書いてみて､ 実際に製品が何をするのか､ 少し見てみましょう｡
‫doc製品で覚えておいてほしいのは､ これは2つの異なる数字のセットの間のパターンを見つける別の方法に過ぎないということです｡
‫では､ まずランダムシードから始めてみましょう｡
‫例として､ あと2つ行列を作ります｡
‫こちらはrand intにしたい｡
‫5号と3号のサイズにしよう､ マットは美しくしたい｡
‫同じものにすればいいんです｡
‫Random rand int ten size equals five three.
‫そして今､ 私たちは以前ランドを見たことがあります｡
‫この2行のコードが何をするのかわかりますか？
‫では､ 見てみましょう｡
‫注意点としては､ シフトタブができることです｡
‫低から高までのランダムな整数を返す｡
‫美しい｡
‫これらを実際に見てみましょう｡
‫マット
‫1､ 素晴らしい｡
‫マット
‫2つです｡
‫さらにもっと
‫素晴らしい｡
‫それから､ 私たちも見たいと思っています｡
‫形はもうわかっているのですが､ とにかくやってみましょう｡
‫そこで､ ここにシェイプするための図形を用意しました｡
‫素晴らしい｡
‫さて､ 以前のビデオでは､ このように行列に対して算術を行う方法をいくつか見てきました｡
‫そのひとつが掛け算でした｡
‫だから､ マットの1回､ マットに行くんです｡
‫コードを大きく表示するために､ ズームインしたままにしておきたいので､ これらを表示できるように下げましょう｡
‫これでよしとしよう｡
‫マップ1
‫マップ2
‫素晴らしい｡
‫この下のエリアは､ この2つを要素数分乗算したものになります｡
‫5×6は30ゼロ｡
‫7倍するとゼロになる｡
‫しかし､ これは､ 要素ワイズ乗算の前に少しトリッキーな言葉を言ってしまいました｡
‫名称はいくつかありますが､ ほとんどがエレメントワイズハードのIMADE品と呼ばれています｡
‫確かスペルはthat's that's how you spell itだったはずです｡
‫それでは､ ハードモッズの商品名パイをご覧ください｡
‫それが､ 私たちの目指すところです｡
‫エレメントワイズの入手方法
‫そうですね｡
‫MPマルチプル､ これはこの小さな星のマークを使っているのと同じです｡
‫これが要素yの乗算ですね｡
‫2つの行列の掛け算や積のもう一つの形式として､ DOT積があります｡
‫では､ そのDOTの製品を見てみましょう｡
‫実際にドキュメントに戻ると､ ドットプロダクトを行うための公式はNP dotです｡
‫アンパイヤを使うことができます｡ アンパイヤのNPをインポートしましたので､ NPドットを行い､ マット1､ マット2､
‫つまり作った2つのマトリックスだけを実行したいのです｡
‫では､ これを実行してみましょう｡
‫あ､ これダメだった｡
‫-- it.
‫私たちの価値観の誤差は､ 5､ 3､ 5､ 3｡
‫整列していない｡
‫3､ Tim 1は5にはならない｡
‫なるほど｡
‫私たちは､ 行列の形､ その両方の形を見るために､ 上に戻ります｡
‫5､ 3､ 5､ 3
‫そして､ これは5､ 3､ 5､ 3が揃わない形状を言っているのです｡
‫まあ､ ドットプロダクトとエレメントワイズの違いですね｡
‫だから､ 私たちは以前にもエレメントワイズを見たことがあるのです｡
‫比較的単純なことです｡
‫この左上のマスにEが入る回があるんです｡
‫A タイムズF いやぁ､ 残念｡
‫B times f シンプルに設定しただけなのに､ ここで台無しにしてしまった｡
‫B タイムズF でも､ それを繰り返していたら､ 最終的にこのマトリックスに行き着くんですよね｡
‫でも､ DOTの製品はちょっと違うんです｡
‫例えば､ ここに3×3の行列があり､ ここに3×2の行列があり､ この行列にこの行列で点を呼び出すのです｡
‫そして今､ 何が起こっているのか？
‫その結果､ 行列は3×2になり､ A×Jがあります｡ さて､
‫それに従って､ B×L＋OC､ C×Nがあります｡
‫つまり､ この一番上の行と一番下の列を掛け合わせて､ 合計しているのです｡
‫そして今度は､ DOT製品のカラフルなデモをもう少し見てみましょう｡
‫そこで､ ここでは文字行列を用意しました｡
‫ここに戻れば｡
‫ここと同じものを入手しました｡
‫これで､ 色が付きましたね｡
‫これは､ 行列の一番上の行と､ 左の行列の列を掛け合わせたものが､ この左上の正方形に等しいということです｡
‫そして､ それを繰り返していくと､ 最終的にここにあるような結果のマトリックスになるのです｡
‫しかし､ DOT製品ではいくつかのルールがあるんだ｡
‫しかし､ 内側の数字は一致させなければなりません｡
‫つまり､ 2つの行列の間で内積が起こるには､ その次元を､ 横に並べればいいわけです｡
‫この3つが一致するわけです｡
‫つまり､ この行列は3行で､ この行列も同様です｡
‫そして今､ 出来上がった行列は外数の大きさになっています｡
‫つまり､ この2つの行列の外側の数値は3と2なので､ ここでの次元はこの結果の行列の3×2です｡
‫なるほど､ そういうことだったんですね｡
‫ドットプロダクトを実現するためには､ 中の数字が一致する必要があります｡
‫では､ 実際に記入された数字で見てみましょう｡
‫503468があり､ この行列とこの行列の間でDOTを呼んでいます｡
‫というわけで､ 5人になりました｡
‫こっちに来るんですよ｡
‫Bを4倍したもの｡
‫それは20に等しい｡
‫ええ､ 5つの4がありますね｡
‫これは8回J今度は0回6回です｡
‫0の6乗です｡
‫こちらはB times L ええ､ ありますよ｡
‫今､ それを足しているところです｡
‫3×8を確保した｡
‫これはCのn倍､ 大丈夫です｡
‫そして､ それが24歳｡
‫そして､ この3つの数字を足し合わせると
‫だから､ JプラスBの8倍､ LプラスCの8倍､ Nの8倍 うん､ 美しい｡
‫44となり､ 結果の配列の左上の四角が埋まることになります｡
‫さて､ この2つの行列を数字でいっぱいにして､ この文字行列と同じ手順を踏むと､
‫次のようなものになります｡
‫しかし､ これは静的なデモです｡
‫それでは､ この小さな美しいリソースをご覧ください｡ これはインタラクティブなデモです｡
‫つまり､ これは行列の掛け算で､ z､ zです｡
‫これをウォーターフォール手法という｡
‫このデモで何をするかというと､ この数字を変えて､ ここにあるものと同じようなものにしたり､
‫何が起こっているのかの過程を見ることができるのです｡
‫つまり､ 乗算をクリックすると､ 右側にあった行列を上に持ってくるのです｡
‫そこで登場するのがウォーターフォールプロセスです｡
‫今度は下に流れます｡
‫つまり､ この列から6 1は､ 以前はここに列として存在していたのです｡
‫そして､ これらを足し合わせると､ 掛け算になる｡
‫左上で15を取得｡
‫これは､ このステップをそのまま再現したものです｡
‫左上を確保しました｡
‫あとは､ それを貫き通せば｡
‫なるほど｡
‫右上と左中が手に入る｡
‫そして､ 中段右と下段左を取得します｡
‫そして､ 最後に右下の数字で仕上げる｡
‫だから､ これで遊んでみてください｡
‫チェックしたら､ そのままスルーしていいんです｡
‫DOT製品を理解するには､ 少し練習が必要です｡
‫ノートに戻ろう｡
‫そして､ DOTの製品について少しわかったので､ ルールもわかった｡
‫内側の数字は一致しなければならず､ 外側の数字を取るので､ 出来上がった行列の新しいサイズは3×2である｡
‫これをどうやって実現するか？
‫当社のマトリックス1とマトリックス2で｡
‫その内部形状が5と3､ 5と3であった場合｡
‫うーん｡
‫そうですね......トランスポーズを使えばいいのかもしれません｡
‫試してみよう｡
‫私たちのトランスポーズマップ1｡
‫だって､ トランスポーズって何をするんだろう｡
‫軸を反転させるのです｡
‫では､ 1つのドットTをマッピングしてみましょう｡
‫それはどのようなものですか？
‫うーん｡
‫なるほど｡
‫見てみるのもいいかもしれませんね｡
‫うまくいくかもしれないけど､ 本当に確認しようよ､ マット｡
‫T字型が1つ｡
‫3つです｡
‫5つです｡
‫それが私たちに必要なことなのでしょうか？
‫そう､ 反転させる必要があるんだ｡
‫だから､ その2つのドットの形があれば｡
‫美しい｡
‫では､ 次に内側の形状です｡
‫もし､ マット1をマッチング転置するとしたら､ こうしてみましょう｡
‫実はマット1の輸入をする前なんです｡
‫マット2
‫さて､ 上で得たものと整合性を保つために､ MattをMatt one shapeに､ Mattをtに移し替えるといいかもしれない｡
‫Matt threeをnpe dot matt oneに等しくして､ Mattをtにしたいので､ シェイプを揃えるとうまくいくはずです｡
‫マット3
‫美しい｡
‫そして今､ マップ3があったとして､ マット3の形はどうなっているのでしょうか？
‫はい｡
‫素晴らしい｡
‫さて､ これでトランスポーズが活躍しそうな場所が見えてきましたね｡
‫2つの行列の内積を求めるとき､ 最初の試行では形状が正しくなかった場合､ 軸を反転させることがあります｡
‫もちろん､ リシェイプでも同様のことができます｡
‫しかし､ これはあくまでDOT製品のようなものを演奏する際にトランスポーズが活躍する便利な例です｡
‫これで､ Matrix 3の出来上がりの形が､ 外側の数字と同じであることがわかると思います｡
‫素晴らしい｡
‫さて､ 初めて製品に出会ったとき､ 実際にどのように進めていけばいいのか理解するのに少し時間がかかりました｡
‫素晴らしい練習は､ 手で行列を書き出して､ それを掛け合わせて､ こんな風に何かを考えたり､ 行列の掛け算､
‫x､ y､ zのようなデモを使ったりすることでした｡
‫DOT製品から得られる主なものは､ これまで見てきたように､ 2つの異なる数字の配列の間のパターンを見つけるための道具の1つに過ぎないということだ｡
‫さて､ 次のセクションでは､ DOT製品が実際にどのような場面で使われるかを見ていきます｡
‫それでは､ いくつかの行列を作成し､ それらを転置し､ DOT積ができるかどうか練習してみてください｡