「 関数とは何か。」 がわからない人に向けて
↑ きれいに装飾したもの(AIにきれいにしてもらいました)
関数とは
関数。
数学で見たy = xみたいなやつ。
今回はこれについて考える。
そもそも関数とは何だろうか?
関数は、変換する装置のことをいう。
例えば、同じ値段の商品を2個買ったらいくらになるかを知りたいとする。
2ko_nedanという関数を作る。
2ko_nedanに100円と入れると、200円が返ってくる。
これを
払う金額 = 2ko_nedan(値段)
と表記することにする。
払う金額には200が入っていてほしい。
たぶん、中身はy = 2xなのだろうが、中身はどのように定義されていてもいい。
(払う値段 = 2 × 値段 )
意図したものが返ってくればいいわけだから。
なので、4X / 2 + 100 - 100
みたいな中身でも問題ない。
効率的ではないけれど。
.
.
.
え??
2個だけとか限定的すぎるって??
だったら、掛け算という関数を作ろう。
わかりやすいように
kakezan(値段 , 個数);
とする。
中身はどうなる??
y = 値段×個数;
だろう。
ここで強調しておきたいのは、関数は変換してくれれば、その中身が何であれ別に問題がないということである。
そして、関数はその中身をみえないようにして、理解しやすいようにする機能を持っている。
一度中身を作ってしまえば、あとは、その関数に渡したら、値が返ってくる。
ここで、以下の同じ値を返す関数を考える。
pi()
円周率を返す関数だ。
渡す値はない。
いったん中身を考えず、この関数を呼び出したとする。
すると1が返ってきた。
円周率は3.14なので、全然違う。
なので、この関数に円周率がもう少し大きいことを教えてあげる。
そうすると次は3が返ってくる。
もう少し大きいよ。
と教えると、次は4が返ってきた。
少し小さくしてというと、3.5が返ってきた。
こんな感じで、関数の中身を自動的に変更してくれるものをAIと呼ぶ。
この過程は、学習と呼ばれ、目標値との違いをもとに、値を変化させる機構を言う。
まとめ
関数は、変換装置。
関数と実際の中身は分離できる。
関数の中身をいい感じに変更してくれるのがAI。
ここから先は、読みたい人だけ
ちょっと深く掘る
kakezan(値段, 個数)
y = 値段 × 個数
掛け算の関数を作ったけれど、掛け算は足し算の組み合わせです。
なので
kakezan(
合計を記録するものを用意し、
合計に 値段 を 個数 分だけ、足したものを返す関数と定義する
)
が正しいわけです。
足し算もまた、関数なので、1 + 1 の場合2になるとか、1+2の場合は3になるとかが決まっています。
足し算の関数を呼び出すことで計算をしています。
関数の中身は、たいていの場合、より小さな関数の集まりによってかかれることが多いです。
関数は、渡す値と、返してほしい値を決め、返される値を信用することで、
高度な処理を実現するというものです。
Discussion