本文へスキップ
ひもとくAI

関数

レッスン 3/5

関数は「y = f(x)」そのもの

最初のレッスンで、AIの仕組みを y=f(x)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のようなライブラリを使うときに、必ずと言っていいほど出てきます。例えば「学習の繰り返し回数」や「学習の進み方の速さ」といった設定値は、多くの場合デフォルト値付きの引数として用意されており、必要なところだけを指定して使います。今のうちに「引数・デフォルト値」という言葉に慣れておきましょう。

演習

演習を読み込んでいます…