質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

4回答

1740閲覧

なぜ深層学習に行列が用いられるのか

Mori-Yukito

総合スコア24

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

3クリップ

投稿2018/08/06 10:02

いま「ゼロから作るDeep Learning」で深層学習の勉強をしていて、コードは組めるようになったものの、「なぜ行列の掛け算で特徴が抽出できるのか」で悩んでおります。
「そういうもの」にしておくのは納得がいかないんです...
線形代数は趣味で多少かじった(まだ高校生です)ぐらいですが、何方かご教授お願いします(._.)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

行列が最も簡単な関数の形だからでしょうか?
多次元になっていますが、所詮一次方程式です。

高校ならば微分積分をもうやったか、これからやるのかもしれませんが、一次関数の微分積分は非常に容易です。


結局何かよくわからない関数を表現することが深層学習の目的です。

そして、その関数を決めるためのパラメータを決定するために微分を計算できればいいことが知られています。

ならば、1番簡単な一次方程式(線形方程式)から始めよう、というだけのことです。


例えば、二次方程式の解の数は複雑です。
最大で2までありえます。
そのようなものを自動的に計算するのは大変なのです。


線形近似についても調べて見ると良いかもしれません。
テイラー展開して、一次までを取り出すと線形方程式になります。

投稿2018/08/06 10:48

編集2018/08/06 10:49
mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mori-Yukito

2018/08/06 13:01

微分が容易である事のメリットとはなんでしょう?逆伝播するのに都合が良いということでしょうか? “よく分からない関数のパラメーターを決定する”、なるほど合点がいきました。 深層学習というのは、ある値が与えられて、“よく分からない関数”のある値付近での挙動を、一次関数で近似する、その一次関数のパラメーターを決定する手法という訳ですか?
Mori-Yukito

2018/08/06 13:06

すいません。さらに質問を重ねますが、 私が知らないだけで、深層学習に積分を用いる手法などがあるのでしょうか? 微分は逆伝播に、では積分は?
mkgrei

2018/08/06 22:34

逆伝搬しやすいという認識であっています。 逐次的に目的関数を得るために最も基礎的な最急降下法について理解しておくとわかりやすいかと。 〉深層学習というのは、ある値が与えられて、“よく分からない関数”のある値付近での挙動を、一次関数で近似する、その一次関数のパラメーターを決定する手法という訳ですか? ではないです。 紛らわしい書き方になってしまいました。 行列をたくさん利用したい場面が他にも色々あるということを言いたかったです。 ただResNetなどを見ると逐次近似の片鱗が見て取れます。 ずっと複雑ですが。 積分をあからさまに利用するようなことはあまりわからないです。 何かあるかもしれませんが。 積分が積の和を取ることだと考えるのであれば、畳み込みは一種の積分ではありますが。
guest

0

知りたいのはこの話?
https://nnadl-ja.github.io/nnadl_site_ja/chap4.html

ただ、「ニューラルネットワーク 表現力」で検索しただけだけど。

投稿2018/08/06 16:29

編集2018/08/06 16:35
kiichi54321

総合スコア1984

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

参考情報

  • 機械学習・AIに必要な数学の分野って?

https://www.capa.co.jp/archives/18629

...
AIと機械学習に必要な分野として「線形代数」「微分積分」「統計」という3つの分野を挙げることができます。線形代数は、複数の値を一つの式で扱うときに使い、機械学習の中で最も必要な数学の分野といえるでしょう。微分・積分は、機械学習で特に学習に用いられます。この分野では、数多くあるデータを分ける線を作りその線から分類分けをすることや未来のデータの値を予測するときに使われます。統計学は、目標(今までのデータを基にあるものを予測すること)を設定するのに用いられます。機械学習が統計学の手法を用いて予測を行うこともしばしばあります。
...

現状のコンピュータでの機械学習ライブラリーでは 多次元の特徴点 -> 多次元データの変換のように処理しているので、自然と行列演算が必要となっているのだと思います。

投稿2018/08/06 22:26

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ゼロから作るDeep Learningはとてもよくできた書籍で冒頭から順に読みながらコードを書き、計算結果の中身を観察するとDeep Learningの基本的事項が理解できるようになっています。したがって、ご質問のような疑問がでるということは2章あたりの理解が不十分なような気がします。2章が理解できていないと3章の理解は難しく、最終的にはご質問の部分に該当する7章が腑に落ちないのは仕方がない気がします。
改めて、最初から読んでみて納得のいかない部分を確認してはいかがでしょうか

投稿2018/08/06 14:08

R.Shigemori

総合スコア3376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問