E資格(JDLA Deep Learning for ENGINEER 2019 #2)対策として学習した応用数学の分野のうち、今回は、情報理論-クロスエントロピーを振り返ります。
深層学習では、以下の4つが既知のものとして登場してきます。
今回はこれらのうち、4つ目のクロスエントロピーについて、振り返っていきます。
クロスエントロピー
1.クロスエントロピーとは何か
クロスエントロピーとは、ある分布p(x)を調整してq(x)にしたい場合に、誤差を最小化する時に利用する関数となります。
実際のp(x)とq(x)の誤差は、前回振り返ったカルバック・ライブラー情報量(KLダイバージェンス)となるのですが、誤差を最小化するという観点では、p(x)を調整する事で変動する部分だけを最小化すれば良く、p(x)を調整しても変動しない部分は、考慮しなくて良い事になります。
この カルバック・ライブラー情報量(KLダイバージェンス)から、p(x)を調整しても、変動しない部分を除いたものが、クロスエントロピーとなります。
言葉だけでは伝わらない部分が多いかと思いますので、順を追って説明していきたいと思います。
2.カルバック・ライブラー情報量(KLダイバージェンス)を変形する
カルバック・ライブラー情報量(KLダイバージェンス)は以下の式となることは、前回の記事で振り返りました。
この式を、対数関数の減算の処理(減算<=>除算の変換)などを使って変換すると以下の通り変換できます。
上記の第1項は、p(x)を含まないので、p(x)を調整しても変動しない部分になります。ということは、第2項が、p(x)を調整することで変動させることができる部分となります。(なお、第1項は、q(x)のエントロピー(の符号を反転したもの)となります。)
よって、p(x)を調整して、p(x)とq(x)の誤差(カルバックライブラー情報量)を最小化するためには、第2項を最小化する事になります。
この第2項がクロスエントロピー(H(q,p))となり、以下の式となります。
このクロスエントロピーは、ニューラルネットワークの誤差関数として必須な関数となりますので、しっかり理解するように心がけました。
3.2値クロスエントロピー(binary cross entropy)
先ほど、振り返ったクロスエントロピーのうち、特に、2値で分類(例えばコインの裏表試行など)する際のクロスエントロピーとして片方の値が出る確率p、q(0<=p<=1、0<=q<=1)(例えばコインの表が出る実際の確率と、予測モデルでの表が出る確率)について、クロスエントロピーの式に当てはめると以下となります。
こちらも、頻出の式となるので、しっかり理解できるよう頑張りました。
以上で、E資格の情報理論で頻出の数式の4つを振り返ることができました。
途中、Kaggleなどのコンペにも参戦していたので、全部投稿し終えるのに期間がかかってしまいましたが、今後E資格を受験されるかたの参考にしていただければ幸いです。
今後も、E資格の振り返りや、Kaggleへの参戦記など、投稿していきたいと思います。
引き続き、宜しくお願い致します。
2019年8月31日(土)にE資格を受験して、合格しました!
E資格対策として勉強の進め方や、参考書などをまとめました。
これから受験される方がいらっしゃいましたらご参考まで。
2019年3月9日(土)にG検定を受験し、見事合格できました!
受験の体験記や勉強法などを別のブログにまとめました。
これから受験される方がいらっしゃいましたらご参考まで。
【E資格対策に使った参考書】
- 人工知能は人間を超えるか ディープラーニングの先にあるもの (角川EPUB選書) [ 松尾豊 ]
- 深層学習教科書 ディープラーニング G検定(ジェネラリスト) 公式テキスト (EXAMPRESS) [ 一般社団法人日本ディープラーニング協会 ]
- 徹底攻略ディープラーニングG検定ジェネラリスト問題集 [ 明松真司 ]
- 実践機械学習システム [ ウィリ・リチャート ]
- アルゴリズムクイックリファレンス 第2版 [ George T. Heineman ]
- 深層学習【電子書籍】[ 岩澤 有祐 ]
- 入門Python 3 [ ビル・ルバノビック ]
- PythonによるWebスクレイピング 第2版 [ Ryan Mitchell ]
- Think Stats第2版 プログラマのための統計入門 [ アレン・B.ダウニー ]
- 集合知プログラミング [ トビー・セガラン ]
- ITエンジニアのための機械学習理論入門 [ 中井悦司 ]