E資格(JDLA Deep Learning for ENGINEER 2019 #2)対策として、今回は、応用数学の分野のうち、対数関数を振り返ります。
高校時代にならったわかったようで、よくわからない関数ですが、深層学習では必要不可欠な関数なので、今一度、定義と法則を振り返っていきたいと思います。
対数関数
1.対数関数とは
対数関数は、「指数関数の逆関数である。」と言われますが、ピンとこないので、掘り下げてみていきたいと思います。
まずは、指数関数は以下で定義されます。
この関数の意味としては「aをx乗すると何でしょうか?」になるということになります。
逆関数ということは、ひっくり返して「yは、aの何乗でしょうか?」を求めることになります。これを表現した式が以下になります。
この式が、「対数関数」になります。
数式だとわかりにくいですが、実例をみるとわかりやすいと思います。
例)以下の指数関数を考える。
この時、xが入力、yが出力になります。
x=3 のとき
となり、4が入力、81が出力になります。
(3の4乗は何でしょうか?→81です。)
対数関数は、この逆だったので、81を入力として、4が出力となります。
(81は、3の何乗でしょうか?→4乗です。)
入力81をx、出力4をyとおけば以下の対数関数が得られます。
2.対数関数の加算の処理
対数関数には、いろいろな性質がありますが、ディープラーニングで一番重要なのは以下の処理になります。
この式は、左辺の1項目をx(Mがaのx乗)、2項目をy(Nがaのy乗)、右辺をz(MNがaのz乗)とおくと以下の式より、x+y=zが自明なため、上記の式が成り立ちます。この式は丸暗記でもよいと思います。
3.対数関数の減算の処理
加算時と同様に減算も処理できます。減算するときは割り算になるになるのは、負の乗数は、割り算になると考えればわかりやすいと思います。
4.対数関数の指数の処理
対数関数の入力が、bのc乗であった場合、その指数cは、外にでて掛け算になります。
以下と定義すると
対数の定義より、bはaのZ乗になるので
両辺をc乗すると
両辺の対数をとって
Zをもとの式に戻すと、最初の定義の式が得られます。
5.底の変換公式
あと、よく使う公式として底(上記で出てきたlogの右下にいる「a」に当たる数字)を 変換する以下の公式があります。
この式は、対数の定義から、aを何乗したらbになるかの「何乗」の部分が左辺になるので、aの左辺乗がbになり、以下となります。
両辺を底がcの対数をとると以下の通りになります。
「4.対数関数の指数の処理」を使うと、左辺は以下に変換できます。
両辺をで割ると以下の定義式が得られます。
結構トリッキーな処理ですが、たどり着けるとなかなか面白い処理だと思います。
以上、対数関数の振り返りでした。
対数は、高校時代にならってから使う機会もなく、いろいろと忘れてしまっていましたが、こうや って振り返ってみると、ほかの関数と違った性質がたくさんあり、面白いなと感じました。
次回以降は、前回の「確率」と合わせて情報理論についての振り返りを実施していきたいと思います。
2019年3月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エンジニアのための機械学習理論入門 [ 中井悦司 ]