よって、$p_k$は「入力のクラスが$k$である確率」、$\mathbf{p}$は「$K$個のクラスの確率分布」として解釈できます。からっぽのしょこ」を参照してください。t_K)$から損失を求めます。ここでは、損失として交差エントロピー誤差を用います。$$$\mathbf{t}$について、$\mathbf{x}$のクラスが$k$のとき、$k$番目の要素$t_k$が1でそれ以外の要素は0です。このようにして正解のクラスを表す方式をone-hotベクトル(one-hot表現)と言います。p_k$は常に負の値になります。p_k$は常に正の値になります。p_k$が大きくなるので、この値を誤差として利用します。p_k$となりそれ以外の項は0になります。1$のとき)の誤差は0となり、低く予測する($p_k$の値が小さい)ほど誤差が大きくなります。ちなみに、積や総和の計算をせずに、正解のクラスに対応する$p_k$を取り出す操作によって$L$を求められます。$N$個のバッチデータの場合は、次の式になります。$$全てのデータの交差エントロピー誤差を足し合わせてデータ数$N$で割ることで平均を求めています。からっぽのしょこ」を参照してください。p_k$の計算を考えます。p_k$は、対数をとったSoftmax関数の計算と言えます。y$より、分母と分子を分解します。$$後の項は、$\mathbf{x}$に対して$\log$と$\sum$と$\exp$の計算をしています。この計算をLogSumExpと呼び、$\mathrm{LSE}(\mathbf{x})$で表すことにします。$$対数ソフトマックス関数は、$x_k$から$\mathrm{LSE}(\mathbf{x})$を引くことで求められるのが分かりました。続いて、$\mathrm{LSE}(\mathbf{x})$について考えます。$$は、指数関数$\exp(x)$の計算を含むため$x$が大きいとオーバーフローすることがあります。そこで、実装上は次のように計算(処理)します。x^m$より、$\exp(\cdot)$の項を分解します。$$$\exp(x_{\mathrm{max}})$は、$\sum_{k=1}^K$とは無関係なので$\sum$の外に出しました。(\cdot)$の項を分解します。x$の変形を行います。x_{\mathrm{max}})$をして、$x_{\mathrm{max}}$を加えることで求められるのが分かりました。x_{\mathrm{max}}$、最大値が0になるので、オーバーフローが起きにくくなります。LogSumExpの計算をDeZeroの関数logsumexp()としてutils.pyに実装します。最後に、バッチデータの場合を確認します。バッチデータに対する(オーバーフロー対策を行った)ソフトマックス関数と交差エントロピー誤差の計算をまとめると、次の式になります。$$また、各データ$\mathbf{x}_n$の正解クラスの要素を$x_{n,*}$で表すと、次の式でも表せます。$$(この2つの式と個別の式の中から分かりやすいと思う式と実装例を比べてください。)logsumexp()を用いて、ソフトマックス関数と交差エントロピー誤差をSoftmaxCrossEntropyクラスとしてfunctions.pyに実装します。$$の途中式がないもので、1は何?なぜ$\exp(b)$が消えて$b$に??と投げ出してしまいました。1$なだけ、と分かってスッキリしました。分かってしまうと、大したことではなかったなぁと感じるのもいつものこと。ところで、記事中の様に式変形と解説文を交互に入れるのと、あとがきの様に式変形ドン!各行の解説ドン!とするのはどちらの方が分かりやすい(読みやすい)ものなのでしょうか?私の場合は、数式を読むときと文字列を読むときとで使ってる脳のパーツ(あるいは意識)が違うのか、後者の方が好きです。これまでに書いた記事では、数式をまとめて書くことが多かったです。それと後々読み返すときに、数式だけで理解できるのかを確認できるように分けて書いています。ゼロつく関連の記事では、数式の塊を見るのがキツい人(初学者時の私)を想定して、それとどちらのパターンでも書けるようになるための練習として、分けて書くようにしています。解説ノートを作る際にいつも悩むことの1つ。あとは、レベル感とか文体とかどこまでくだけて書くかとか。投稿日の前日に公開された動画をどうぞ♪これは一体何のタイアップ?企画?なんだ??続報ぷりーず。『パターン認識と機械学習』の独学時のまとめです。『パターン認識と機械学習』の独学時のまとめです。00:04何かおかしな内容があれば、ご指摘いただけるととても嬉しいです。【R】円周の作図5.3:正射影ベクトルの導出【『スタンフォード線形代数入門』のノート】スポンサーリンクはてなブログをはじめよう!anemptyarchiveさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。