関数は「y = f(x)」そのもの
最初のレッスンで、AIの仕組みを y=f(x) と表せると説明し、次のようなコードを見ました。
def f(x):
return x * 2 + 1
y = f(3) # y は 7 になる
これが 関数 です。defで関数を定義し、returnで結果を返します。ここで使われている用語を整理しておきましょう。
xのように、関数が受け取る値を 引数(ひきすう) と呼びます
returnで返す値を 戻り値(もどりち) と呼びます
fのような関数の名前を呼び出すことを 関数を呼び出す(呼ぶ) と言います
関数を使う最大のメリットは、「一度書いた処理を、名前を付けて何度でも使い回せる」ことです。f(3)と書けばx=3のときの結果、f(10)と書けばx=10のときの結果を、同じコードを書き直さずに得られます。
機械学習で作る「モデル」も、突き詰めればこの関数と同じ考え方です。学習によってfの中身(処理内容)が決まり、そのfを新しいデータに対して何度も呼び出すことで予測を行います。
複数の引数とデフォルト値
関数は、複数の引数を受け取ることもできます。
def calc_price(price, tax_rate):
return price * (1 + tax_rate)
total = calc_price(1000, 0.1) # 1100.0
また、引数には デフォルト値(初期値) を設定できます。デフォルト値を設定しておくと、その引数を省略して呼び出すことができます。
def calc_price(price, tax_rate=0.1):
return price * (1 + tax_rate)
calc_price(1000) # tax_rateを省略 → 1100.0
calc_price(1000, 0.08) # tax_rateを指定 → 1080.0
この「複数の引数」「デフォルト値」という考え方は、この後の単元で登場するscikit-learnやPyTorchのようなライブラリを使うときに、必ずと言っていいほど出てきます。例えば「学習の繰り返し回数」や「学習の進み方の速さ」といった設定値は、多くの場合デフォルト値付きの引数として用意されており、必要なところだけを指定して使います。今のうちに「引数・デフォルト値」という言葉に慣れておきましょう。