ディープラーニングなどの機械学習では、たくさんのデータを処理する必要があるため、数の並びをシンプルに表せる数列は頻出のテーマになります。
そこで今回は、『数学ガールの秘密ノート/数列の広場』を参考に、等差数列と等比数列の一般項とその和の求め方について説明します。
数列は機械学習でどのように役立っているのか?
まずは数列が機械学習でどのように役立っているのか簡単に紹介します。
機械学習で注目されているアルゴリズムのひとつに「ニューラルネットワーク」があります。ニューラルネットワークは、人間の脳内にある神経細胞「ニューロン」とそのつながりを人工的に模したものです。
ニューロンに入力される値は、以下の図に示すように、「入力値」に「重み (\(w\))」をかけ、定数である「バイアス」を加えて足し合わせたものになります。
モデルによっては、この足し算が数百万回以上繰り返されることになるので、\(Σ\) を使って表現すると便利なんですよね。
そのためにも、数列を理解しておく必要があるのです。
等差数列の一般項と和の求め方
では早速、等差数列の一般項とその和の求め方について説明していきます。
数列とは、たとえば次のような数が並んだものです。なかでも、項が増えるごとにある一定の数が加算されていく数列のことを「等差数列」と呼びます。
$$2, \quad 5,\quad 8,\quad 11,\quad 14,\quad 17,\quad 20,\quad 23,\quad 26, \quad \cdots$$
この数列の場合、\(3\) ずつ増えていくので、\(n\) 番目の項 \(a_n\) は、
$$a_n = 2 + (n-1)\times 3$$
で表せます。初項(\(1\) 番目の項)を \(a\)、公差(増えていく数、先ほどの例では \(3\))を \(d\) とすると、\(n\) 番目の項 \(a_n\) は次の式で表せます。
$$a_n = a + (n-1)d$$
では、この等差数列の和はどのように求めればいいのでしょうか。
たとえば、先ほどの等差数列で \(17\) までの和 \(S\) を求めたい場合、すべてを足し合わせても求められますが、項が増えていくと面倒になるので以下のように式を変形します。
\begin{array}{rcccccc}
&S &= &2 &+ &5 &+ &8 &+ &11 &+ &14 &+ &17 \\
+ &S &= &17 &+ &14 &+ &11 &+ &8 &+ &5 &+ &2 \\
\hline
&2S &= &19 &+ &19 &+ &19 &+ &19 &+ &19 &+ &19
\end{array}
数列を逆に並べたものを足し合わせれば一定の数になるんですよね。初項 \(2\) と末項 \(17\) を足し合わせて、項数をかければ \(2S\) が求められることがわかります。
つまり、等差数列の和 \(S\) は、初項を \(a\)、末項を \(l\)、項数を \(n\) とすると、次の式で表せます。
$$S = \frac{1}{2}n(a+l)$$
先ほどの例だと、\(\frac{1}{2} \times 6 \times (2+17) =57\) と求められます。
等比数列の一般項と和の求め方
では次に、等比数列の一般項とその和の求め方について説明します。
等比数列とは、たとえば次のように項が増えるごとにある数が掛け合わされていく数列のことです。
$$2, \quad 6,\quad 18,\quad 54,\quad 162,\quad 486,\quad 1458, \quad \cdots$$
この数列の場合、\(3\) が掛け合わされていくので、\(n\) 番目の項 \(a_n\) は、
$$a_n = 2 \times 3^{n-1}$$
で表せます。初項(\(1\)番目の項)を \(a\)、公比(掛け合わされていく数、先ほどの例では \(3\))を \(r\) とすると、\(n\) 番目の項 \(a_n\) は次の式で表せます。
$$a_n = ar^{n-1}$$
では、この等比数列の和はどのように求めればいいのでしょうか。
たとえば、先ほどの等比数列で \(54\) までの和 \(S\) を求めたい場合、式を以下のように変形して求めやすくします。
\begin{array}{rcccccc}
&S &= &2 &+ &6 &+ &18 &+ &54 \\
– &3S &= & & &2 \times 3 &+ &6 \times 3 &+ &18 \times 3 &+ &54 \times 3\\
\hline
&-2S &= &2 & & & & & & &- &54 \times 3
\end{array}
数列に公比をかけたものを引けば、初項と公比倍した末項だけが残るんですよね。初項 \(2\) に末項 \(54\) を公比倍(\(-3\)倍)したものを足し合わせれば、\(-2S\)が求められることがわかります。
つまり、等比数列の和 \(S\) は、初項を \(a\)、公比を \(r\)、項数を \(n\)とすると、次の式で表せます。
$$r≠1\colon \quad S = \frac{a(1-r^n)}{1-r} = \frac{a(r^n-1)}{r-1}$$
$$r=1\colon \quad S = na$$
先ほどの例だと、\(2 \times (3^4-1) \div (3-1) =80\) と求められます。
\(1\) から \(n\) までの和の求め方
では最後に、\(1\) から \(n\) までの和を求めましょう。初項が \(1\) で公差も \(1\)、\(n\) 項までの等差数列の和なので、以下の式であらわせます。
$$\sum_{k=1}^{n} k = 1+2+3+\cdots+(n-1)+n=\frac{1}{2}n(n+1)$$
まとめ
今回は、等差数列と等比数列の一般項とその和の求め方について説明してきました。
ディープラーニングでは、このような数列と \(Σ\) を使った計算をすることがよくあるので、ぜひ理解しておきましょう。
コメント