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

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

新規登録して質問してみよう
ただいま回答率
85.46%
機械学習

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

Q&A

解決済

2回答

1642閲覧

なぜ∂(交差エントロピー誤差)/∂(重み)=0の解が誤差を最小にするのか

a_boy

総合スコア54

機械学習

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

0グッド

0クリップ

投稿2021/03/26 12:53

編集2021/03/26 12:53

現在、「はじめてのパターン認識」を読んでいるのですが、タイトルにも示した通り、∂(交差エントロピー誤差)/∂(重み)=0の解(重み)がなぜ交差エントロピー誤差を最小にする重みとなると言ってよいのかがわかりません。
(書籍には「解析的に解を求めることはできないので、最急降下法やニュートン・ラフソン法などで数値的に解を求める」と書かれています。)

交差エントロピー誤差関数の式を見る限り、重みを変数として見た場合2次関数のように下向きに凸の形を取らず、「極小値をとる点で傾きが0になる」という考えを当てはめることはできないように思えます。

ご回答宜しくお願い致します。

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

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

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

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

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

guest

回答2

0

ベストアンサー

二値分類、教師ラベル=1の項だけ見るとして、交差エントロピー誤差関数はざっくり書けば-log y(ここでyは単一の予測値)となります。微分すれば-1/yです。

ここだけ見ると、y=0なら傾きは-∞、y=1で-1ですが。これは、∂E/∂yです。

活性化関数の入力をzと置いて、活性化関数はsigmoidとして∂y/∂z=(1-y)y、∂z/∂wi = xi

よって、∂E/∂wi = ∂E/∂y ・ ∂y/∂z ・ ∂z/∂wi = -(1-y)xi

y=1が誤差最小であり、そのときちゃんと∂E/∂wi=0です。教師ラベル=0の項を足したりマルチラベルにしたりしても(その場合はsigmoidの一般化のsoftmaxでやってください)基本的には同じです。

投稿2021/03/26 14:40

編集2021/03/26 14:51
hayataka2049

総合スコア30933

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

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

a_boy

2021/03/26 15:08

ご回答いただきありがとうございます。 では、3次関数などの極小値を求める際によく使われるような「極小値をとる点で傾きが0になる」という特性を生かして重みを求めようとしているのではなく、あくまでも結果的に「wiが交差エントロピーを最小にするとき∂E/∂wi=0となる必要がある」という必要条件が生じるといったかんじですかね。
hayataka2049

2021/03/27 13:31

すみません、返信が遅くなりました。 一方向に降りてゆく関数ですから、∂E/∂wi=0なら「収束した」と捉えて良いのかと思います。 (現実的には収束まで持っていったらオーバーフィッティングな可能性はあり)
jbpb0

2021/03/30 07:38 編集

> 「極小値をとる点で傾きが0になる」という特性を生かして重みを求めようとしているのではなく 「極小値をとる点で傾きが0になる」という特性を活かしてパラメータ最適値を求めてますよ 特性の活かし方が、多項式のように解析的に解ける場合と違うだけで http://arduinopid.web.fc2.com/N40.html
a_boy

2021/03/30 08:03

皆様ご回答頂きありがとうございます。 皆様の回答も含め、半分自己解決的にはなるのですが、交差エントロピー誤差関数が下に凸であるということが証明でき、また予測値yの値を考慮せず関数をプロットしたところ二次関数のような形になることが確認できたため、単に極小値をとる点で傾きが0となる条件を述べているだけだということが理解できました。
guest

0

式を用いずに説明すれば、内積の最少はマイナスまで行きます。つまり下向きの凸の頂点の真の垂直方向のベクトルにたどり着いたときに最小になります。ここにたどり着くために活性化する訳です。

投稿2021/03/30 07:43

seastar3

総合スコア2285

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問