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

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

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

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

1回答

1364閲覧

機械学習 層数を多くするとは何を意味するのか知りたいです。

watchdogs

総合スコア54

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2021/01/26 10:36

機械学習 層数を多くするとは何を意味するのか知りたいです。

機械学習初心者です。
ニューラルネットワークで層数をと精度がどの様な関係にあるのか
活性化関数を使わずに実験を行なっていました。

そうすると、
2層から4層までは精度は上昇していましたが、
0.数%程度でしか変わりません。

これは活性化関数を含んでいないことから
何層を重ねても線形処理されることが、原因だと思っています。

具体的に層を重ねるとどの様に線形のプロットが変化するのか知りたいです。
現状MNISTで実験を行なっています。
MNISTではどの様に中で処理されているのか具体的にイメージしたいです。

ざっくりした質問で恐縮ですが、
何かアドバイスまたは参考になるサイトや文献がありましたら
教えていただけると助かります。

よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

おっしゃる通り、活性化関数を含まなければ線形関数のままなので、層をいくら増やしても表現力は変わりません。パラメータ数が増えた分、学習が大変になるだけで、結局はただのロジスティック回帰を行っているようなものです。理論的には十分学習した後に得られる関数は層数に限らず一緒です。つまるところ、ニューラルネットワークを利用する意味がないです。

ニューラルネットワークにおいて重要なのは、活性化関数による非線形変換で、シグモイド関数を利用した隠れ層が1層だけのニューラルネットワークでも、理論上は任意の関数を任意の精度で近似できることが知られています。ただし、隠れ層のノード数は膨大になることがあります。
(興味があれば普遍性定理あたりでググってみてください。詳しい理論的な部分は私も把握していません。)

一般には、活性化関数を絡めた場合、一つの層のノード数を増やしまくるよりは、ある程度層を深くするほうが、表現力が柔軟になりやすく、うまく学習ができるとされています。ただ、ここらへんの話は理論というよりは、経験則に基づくものだと感じています。

投稿2021/01/26 11:13

Amakaze

総合スコア313

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

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

watchdogs

2021/01/26 14:04

ご回答ありがとうございます。 普遍性定理のヒントありがとうございます! 一点追加でお伺いしたいのですが、 >活性化関数を含まなければ線形関数のままなので、層をいくら増やしても表現力は変わりません。 ここで、層を増やすことによって線形の形、傾きなどは変化するのでしょうか、、、 よくわかっていなくて、 もしよろしければ教えてください。
Amakaze

2021/01/26 14:42

あくまで私の認識なので、間違っていたら申し訳ないのですが、基本的には特徴空間上で線形分類器をクラス数だけ作ることになるので、最適となる超平面は変わらないと思います。 ただ、実際は学習アルゴリズムなどにより、若干のずれは生じると思います。
watchdogs

2021/01/27 10:16

わかりました。 追加でまた申し訳ございませんが、 活性化関数をつけない限り線形になる 活性化関数を加えることで非線形になる この仕組みもわかっていません。何kあ参考になるものがありましたらご教授願います。 よろしくお願い致します。
watchdogs

2021/01/28 06:49

ご丁寧にありがとうございます。 頂いた記事を見てみます!
toast-uz

2021/01/30 08:19

横から失礼して少し解説します。 線形変換はy=ax+bといった形で表されますが、さらにz=cy+dと変換しても、結局AとBをうまく取ると、z=Ax+Bと表されます。これが、線形変換を重ねても線形変換にしかならない、ということです。 一方、ReLUというマイナスは0、プラスはそのまま、と変換する活性化関数を当てはめると、y=ax+bという直線は、マイナス部分が0になります。その後、右下がりとなる直線であるz=-cy+d、さらにReLUを作用させると、三角形のパルス型になります。(イメージできますか?) これを半分ずつずらして足し合わせると、台形のパルス型になります。この台形パルスは高さも幅も、両サイドの傾きも思いのままです。すると、両サイドの傾きが無限大近く切り立ち、幅が無限小近く狭いパルスを、たくさん集めることで、任意の曲線が表現できてしまいます。すなわち、活性化を通すことで、非線形の任意の変換が可能になったわけです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問