matplotlibとは
こんにちはchihiroです。
ディープラーニングを学習をしていると、ほぼ必ず目につく「損失関数」。
活性化関数はだいたい直線ではなく、数がぐにゃぐにゃと曲がった連続した関数なので、容易に最小値を求めるのは難しいです。
だったらせめて自分で作った損失関数はグラフにしてみれたらいいよねと思い、今回は関数をグラフに出力するmatplotlibを紹介させていただきます。
matplotlibの公式ページです。
簡単な使用方法、APIドキュメントが載っています
https://matplotlib.org/
準備
pythonを入れている方ならターミナルでpipを使えばすぐインストールできます。
pip install matplotlib
インストールできない場合はpipのバーションが古い可能性があるので、以下のコマンドを入力して最新のバージョンに変えて、先ほどのインストールのコマンドを実行してみてください。
python -m pip install --upgrade pip
matplotlibを使用する際は、import文がいるので、ファイルの頭にimport文を入れておきます
import matplotlib.pylab as plt
ただvscodeでインポートを書いても下の画像みたいに黄色線が出ますね。。。
もしかしたらmatplotlib自体とpythonのバージョンに問題があるのかもしれません。
今の所matplotlibは問題なく使えています。
グラフを書いてみる
基本的にグラフを出力するまでに
- 関数の定義
- 引数の変数を用意して代入
- グラフの縦横のラベルをつける
- matplotlibへプロット
- 出力
の工程があります。簡単なグラフを出力してみましょう。
import numpy as np#NumPyの利用
import matplotlib.pylab as plt
def function_1(x):
return 0.1*x**2 + x #f(x) = 0.1x^2 + x
x = np.arange(0.0, 10.0, 0.1) #0から10まで0.1刻み
y = function_1(x) #代入
plt.xlabel("x") #xラベル
plt.ylabel("f(x)") #yラベル
plt.plot(x, y) #プロット
plt.show() #グラフ表示
ここでは行列を利用できるNumPyをインポートしています。これはmatplotlibとは別にインストール(ターミナルで pip install numpy)が必要です。
引数が一つの定数だけだと、f(x)の値も一つしか出てこないので、np.arange(0.0, 10,0, 0,1)で引数を100個錬成しています。
まとめ
例が簡単なグラフでしたが、実際にディープラーニングで使う損失関数となると、そもそも最小値がありそうな位置がどこなのか分からんわという関数もあると思うので、教材で出た関数の答え合わせみたいなものに使うのもいいですね。
参考文献