機械学習のための数学基礎の基礎まとめ【数列】

最近激アツな人工知能、機械学習、ディープラーニングを勉強しよう!!!

でも、結局数学の知識が足りず、数式の意味が分からず付いていけなくなり妥協してしまった。。。。

 

今回は、このような方のために機械学習のための数学の基礎の基礎である数列についてまとめました。

 

この記事を書いている僕はシステムエンジニア6年目

 

普段はJavaでWebアプリを作ったりSQL書いたり・・・、

なので最近流行りのPython、数学、人工知能、デープラーニングができる人には正直憧れています。。。。

 

 

自分も一から勉強してこの辺りできるようになりたい、、画像認識モデルを作ったりして、アプリに組み込みたい!

これが機械学習、深層学習の勉強を始めたきっかけでした。

 

 

体系的に、この分野の基礎から学ぼうとJDLAのG検定の勉強をして合格するところまでいきました。

次のステップとして、

実際にPythonでコードを書きながら機械学習や深層学習の知識を深めようと考え、これら買って勉強してみたのですが、、、

 

 

学生時代に勉強したはずの数学を忘れてしまっていて、機械学習の勉強以前にでつまずきました。。。

 

今回は、機械学習とディープラーニングの勉強をしていて、

復習が必要と感じた部分、抑えておくべきと感じた数学の基礎である数列についてまとめてみました。

 

数列

 

いきなりですが、以下の例を見てください。

 

$$2, 5, 8, 11, 14, 17, 20, 23, ・・・・$$

 

数列とは上のように数が並んだものです。

特に、数学や人工知能では規則を持って並んだものを扱うことがほとんどです。

 

また、数列を作る一つ一つの数をといい、\(a_1, a_2, a_3, ・・・,a_{n-1}, a_n \)と数列が表されていたら、

\(a_1 \)を第\(1 \)項、\(a_2 \)を第\(2 \)項、\(a_n \)を第\(n \)項といい、

特に第\(1 \)項を初項、第\(n \)項を末項といいます。

 

 

等差数列

以下の数列を見てください。

 

$$2, 5, 8, 11, 14, 17, 20, 23, ・・・・$$

 

この数列の特徴は、どの項を見ても、1つ前の項に比べ3増えています。

(数式で表すと\(a_{n+1} = a_n + 3\))

 

このように隣接する項の差が一定である数列を等差数列といい、その差のことを公差といいます。

なので、上の例の公差は3です。

 

等差数列の一般項(数列の第\(n \)項を数式で表したもの)は次のようになります。

【公式】等差数列の一般項

初項を\(a \)、公差を\(d \)とするとき、等差数列の第\(n \)項\(a_n \)は以下のように表される。

 

$$a_n = a + (n-1)d$$

 

上の例で挙げた数列は

初項が\(2 \)、公差\(3 \)がなので、一般項は、\(a_n = 2 + (n – 1) \times 3 = 3n – 1 \)となります。

 

 

等差数列の和

次に等差数列の和を求めていきます。

 

例えば、初項が\(2 \)で公差\(3 \)、項数が\(7 \)、末項が\(20 \)である数列の全ての項の和\(S \)を求めます。

その場合、以下のように、数列を逆に並べたものを書き、上下を足します。

 

$$\begin{array}{rcccccc}
S &= &2 &+ &5 &+ &8 &+ &11 &+ &14 &+ &17 &+ &20 \\
S &= &20 &+ &17 &+ &14 &+ &11 &+ &8 &+ &5 &+ &2 \\
\hline
2S &= &22 &+ &22 &+ &22 &+ &22 &+ &22 &+ &22 &+ &22
\end{array}$$

 

すると、左辺が\(2S \)、右辺は初項と末項を足したものが項の数だけできました。

右辺は\((初項2 + 末項20) \times 項数7\)なので\((2 + 20) \times 7 = 154\)となります。

左辺は\(2S \)なので和\(S \)を求めるために両辺を\(2 \)で割って、

 

\(S = \frac{154}{2} = 77\)と求められます。

以上を一般化すると等差数列の和の公式は、

【公式】等差数列の和

初項を\(a \)、末項を\(l \)、項数を\(n \)、初項から末項までの和を\(S \)とする。

 

$$S = \frac{1}{2}n(a + l)$$

 

 

等比数列

次は等比数列です。以下の数列を見てください。

 

$$3,6,12,24,48,96,192,・・・・$$

 

この数列の特徴は、どの項を見ても、1つ前の項に比べ2倍に増えています。

(数式で表すと\(a_{n+1} = 2a_n\))

 

このように隣接する項の比が一定である数列を等比数列といい、その比を公比といいます。

上の例では公比は2です。

等比数列の一般項は以下のようになります。

【公式】等比数列の一般項

初項を\(a \)、公比を\(r \)とするとき、等比数列の第\(n \)項\(a_n \)は以下のように表される。

 

$$a_n = ar^{n-1}$$

上の例の数列だと、\(a_{n} = 3 \times 2^{n-1}\)となります。

 

等比数列の和

次に等比数列の和を求めていきます。

 

例えば、初項が\(3 \)で公比\(2 \)、項数が\(5 \)、末項が\(48 \)である数列の全ての項の和\(S \)を求めます。

今回は、以下のように、各項を公比倍したものを上下に並べて、両辺について上式から下式を引きます。

 

$$\begin{array}{rcccccc}
S &= &3 &+ &6 &+ &12 &+ &24 &+ &48 \\
S &= & & &3 \times 2 &+ &6 \times 2 &+ &12 \times 2 &+ &24 \times 2 &+ &48 \times 2 \\
\hline
(1-2)S &= &3 & & & & & & & & &- &48 \times 2
\end{array}$$

 

すると、初項と、末項に2をかけたものが残って、

\((1 – 公比の2) \times S = (初項の3) – (末項 \times 公比の2)\)となります。

上の例だと、

\(-S = 3 – (48\times 2) \)となります。

両辺にマイナスを掛けて、\(S = 93 \)

以上を一般化すると等比数列の和の公式は、

【公式】等比数列の和

初項を\(a \)、公比を\(r \)、初項から第\(n \)項までの和を\(S_n \)とする。

 

(1)\(r \neq 1のとき\) \(S_n = \frac{a(1 -r^{n})}{1 – r} = \frac{a(r^{n} – 1)}{r – 1}\)

 

(2)\(r \neq 1のとき\) \(S_n = na\)

(1)の公式は形が2つありますが、

\(r\)が1より小さい時に真ん中の式、大きい時に右の式を使うと計算しやすいです。

 

 

\(\Sigma\)(シグマ)と\(\Pi\)(パイ)

次は\(\Sigma\)(シグマ)と\(\Pi\)(パイ)について見ていきましょう。

 

まず\(\Sigma\)(シグマ)について、

これは総和(全てを足し合わせたもの)を表します。

 

例えば、ある数列の和\(a_1 + a_2 + a_3 + ・・・・+ a_{n-1} + a_n\)

を\(\displaystyle \sum_{ k = 1 }^{ n } a_k\)と表します。つまり、\(\Sigma\)は数列の和を表す記号です。

 

数列の和の公式には以下のようなものがあります。

【公式】数列の和

(1)\(\displaystyle \sum_{ k = 1 }^{ n } k = \frac{1}{2}n(n + 1)\)

 

(2)\(\displaystyle \sum_{ k = 1 }^{ n } k^2 = \frac{1}{6}n(n + 1)(2n + 1)\)

 

(3)\(\displaystyle \sum_{ k = 1 }^{ n } k^3 = {\frac{1}{2}n(n + 1)}^2\)

 

(4)\(\displaystyle \sum_{ k = 1 }^{ n } c = nc\)(ただし\(c\)は定数)

 

また\(\Sigma\)には、以下のような性質もあります。

【公式】\(\Sigma\)の性質

(1)\(\displaystyle \sum_{ k = 1 }^{ n } (a_k + b_k) = \displaystyle \sum_{ k = 1 }^{ n } (a_k) + \displaystyle \sum_{ k = 1 }^{ n } (b_k)\)

 

(2)\(\displaystyle \sum_{ k = 1 }^{ n } pa_k = p\displaystyle \sum_{ k = 1 }^{ n } (a_k)\) (ただしpは定数)

 

 

次は\(\Pi\)(パイ)についてです。これは\(\Sigma\)が掛け算になったものです。

 

例えば、ある数列の積\(a_1 \times a_2 \times a_3 \times ・・・・\times a_{n-1} \times a_n\)

を\(\displaystyle \prod_{ k = 1 }^n k_i\)と表します。つまり、\(\Pi\)は数列の積を表す記号です。

 

数列の積には特に重要な公式はありません。

 

数列の計算練習

それでは復習を兼ねて数列の計算練習をしてみましょう。

 

❶等差数列\( 1, 3, 5, 7, 9, ・・・\)の一般項を求める

 

数列から初項と公差を見つけます。

 

初項:1、公差:2

 

等差数列の一般項の公式を使って

 

\(a_n = 1 + (n-1)\times 2 = 1 + 2n -2 = 2n – 1\)

 

A.\( 2n – 1 \)

 

❷初項が2、公差が-2、項数が10の等差数列の和を求める

 

等差数列の一般項の公式を使って、まず末項を求めます。

 

\(a_n = 2 + (n-1)\times (-2) \)

 

項数は10項なので

 

\(a_{10} = 2 + (10 – 1)\times (-2) = -16 \)

 

初項:2、項数:10、末項:-16なので、等差数列の和の公式を使って

 

\(S = \frac{1}{2} \times 10 \times (2 – 16) = \frac{1}{2} \times 10 \times (-14) = -70 \)

 

A.\( -70 \)

 

❸等比数列\( 3, 9, 27, 81, 243, ・・・\)の一般項を求める

 

数列から初項と公比を見つけます。

 

初項:3、公差:3

 

等比数列の一般項の公式を使って

 

\(a_n = 3 \times 3^{n-1} = 3^n\)

 

A.\( 3^n \)

 

❹初項が2、公比が2、項数が6の等比数列の和を求める

 

等比数列の和の公式(公比が1より大きいので右の公式)を使って

 

\(S_6 = \frac{2(2^{6} – 1)}{2- 1} = 2 \times 2^{6} – 2 = 128 – 2 = 126\)

 

A.\( 126 \)

 

❺\(\displaystyle \sum_{ k = 1 }^{ n } (2k^2 + k + 1)\)を求める

 

\(\Sigma\)の性質を使って

 

\(= 2\displaystyle \sum_{ k = 1 }^{ n } (k^2) + \displaystyle \sum_{ k = 1 }^{ n } (k) + \displaystyle \sum_{ k = 1 }^{ n } (1)\)

 

数列の和の公式を使って

 

\(= 2(\frac{1}{6}n(n + 1)(2n + 1)) + \frac{1}{2}n(n + 1) + n\)

 

\(= \frac{2}{3}n^3 + \frac{3}{2}n^2 + \frac{11}{6}n \)

 

 

A.\( \frac{2}{3}n^3 + \frac{3}{2}n^2 + \frac{11}{6}n \)

 

 

まとめ

 

ということで、今回は数列について確認しました。

特に、最低限以下は抑えておきましょう。

  • \(\Sigma\)は数列の和を表す。
  • \(\Pi\)は数列の積を表す。

 

機械学習やディープラーニングの教材に出てくる数式には、

\(\Sigma\)や\(\Pi\)は頻繁に出てきます。

 

これらの意味がわからないと、

数式を見てもが何を意味しているのかさっぱり分からないと思います。。。

 

機械学習やディープラーニングを勉強する前に、

数列の\(\Sigma\)や\(\Pi\)についてマスターしておきましょう!

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください