俺人〜OREGIN〜俺、バカだから人工知能に代わりに頑張ってもらうまでのお話

俺って、おバカさんなので、とっても優秀な人工知能を作って代わりに頑張ってもらうことにしました。世界の端っこでおバカな俺が夢の達成に向けてチマチマ頑張る、そんな小さなお話です。現在はG検定、E資格に合格し、KaggleやProbSpaceのコンペに参画しながら、Pythonや機械学習、統計学、Dockerなどの勉強中です。学習したことをブログにアウトプットすることで、自分の身に着けていきたいと思います。まだまだ道半ばですが、お時間がありましたら見て行ってください。

E資格対策振り返り(応用数学-対数関数)

E資格(JDLA Deep Learning for ENGINEER 2019 #2)対策として、今回は、応用数学の分野のうち、対数関数を振り返ります。

高校時代にならったわかったようで、よくわからない関数ですが、深層学習では必要不可欠な関数なので、今一度、定義と法則を振り返っていきたいと思います。

対数関数

1.対数関数とは

対数関数は、「指数関数の逆関数である。」と言われますが、ピンとこないので、掘り下げてみていきたいと思います。

まずは、指数関数は以下で定義されます。

f:id:kanriyou_h004:20190924152400p:plain

この関数の意味としては「aをx乗すると何でしょうか?」になるということになります。

逆関数ということは、ひっくり返して「yは、aの何乗でしょうか?」を求めることになります。これを表現した式が以下になります。

f:id:kanriyou_h004:20190924153051p:plain

この式が、「対数関数」になります。

数式だとわかりにくいですが、実例をみるとわかりやすいと思います。

例)以下の指数関数を考える。

f:id:kanriyou_h004:20190924153432p:plain

この時、xが入力、yが出力になります。

x=3 のとき

f:id:kanriyou_h004:20190924153717p:plain

となり、4が入力、81が出力になります。

(3の4乗は何でしょうか?→81です。)

対数関数は、この逆だったので、81を入力として、4が出力となります。

f:id:kanriyou_h004:20190924154126p:plain

(81は、3の何乗でしょうか?→4乗です。)

入力81をx、出力4をyとおけば以下の対数関数が得られます。

f:id:kanriyou_h004:20190924154601p:plain

2.対数関数の加算の処理

対数関数には、いろいろな性質がありますが、ディープラーニングで一番重要なのは以下の処理になります。

f:id:kanriyou_h004:20190924154846p:plain

この式は、左辺の1項目をx(Mがaのx乗)、2項目をy(Nがaのy乗)、右辺をz(MNがaのz乗)とおくと以下の式より、x+y=zが自明なため、上記の式が成り立ちます。この式は丸暗記でもよいと思います。

f:id:kanriyou_h004:20190924160058p:plain

3.対数関数の減算の処理

加算時と同様に減算も処理できます。減算するときは割り算になるになるのは、負の乗数は、割り算になると考えればわかりやすいと思います。

f:id:kanriyou_h004:20190924161140p:plain

 

4.対数関数の指数の処理

f:id:kanriyou_h004:20190924160554p:plain

対数関数の入力が、bのc乗であった場合、その指数cは、外にでて掛け算になります。

以下と定義すると

f:id:kanriyou_h004:20190924161558p:plain

 対数の定義より、bはaのZ乗になるので

f:id:kanriyou_h004:20190924161708p:plain

両辺をc乗すると

f:id:kanriyou_h004:20190924161856p:plain

両辺の対数をとって

f:id:kanriyou_h004:20190924162034p:plain

Zをもとの式に戻すと、最初の定義の式が得られます。

 

 5.底の変換公式

あと、よく使う公式として底(上記で出てきたlogの右下にいる「a」に当たる数字)を 変換する以下の公式があります。

f:id:kanriyou_h004:20190924162700p:plain

この式は、対数の定義から、aを何乗したらbになるかの「何乗」の部分が左辺になるので、aの左辺乗がbになり、以下となります。

f:id:kanriyou_h004:20190924163128p:plain

両辺を底がcの対数をとると以下の通りになります。

f:id:kanriyou_h004:20190924163335p:plain

「4.対数関数の指数の処理」を使うと、左辺は以下に変換できます。

f:id:kanriyou_h004:20190924163618p:plain

両辺をf:id:kanriyou_h004:20190924163736p:plainで割ると以下の定義式が得られます。

結構トリッキーな処理ですが、たどり着けるとなかなか面白い処理だと思います。

f:id:kanriyou_h004:20190924162700p:plain

以上、対数関数の振り返りでした。

対数は、高校時代にならってから使う機会もなく、いろいろと忘れてしまっていましたが、こうや って振り返ってみると、ほかの関数と違った性質がたくさんあり、面白いなと感じました。

次回以降は、前回の「確率」と合わせて情報理論についての振り返りを実施していきたいと思います。

 

2019年3月31日(土)にE資格を受験して、合格しました!

E資格対策として勉強の進め方や、参考書などをまとめました。

これから受験される方がいらっしゃいましたらご参考まで。

oregin-ai.hatenablog.com 

 

 2019年3月9日(土)にG検定を受験し、見事合格できました!

受験の体験記や勉強法などを別のブログにまとめました。

これから受験される方がいらっしゃいましたらご参考まで。

g-kentei.hatenablog.com

 【E資格対策に使った参考書】