順序統計量
順序統計量
分布$F$に従う独立同分布な確率変数$X_1, X_2, \cdots, X_n$があるとする。
これらを値の小さいものから順に並べ、$i$番目のものを$X_{(i)}$と書くことにする。すなわち、
\begin{align} X_{(1)} \leq X_{(2)} \leq \cdots \leq X_{(n)} \end{align}
である。この時、$X_{(i)}$を第$i$順序統計量という。
$X_{(i)}$の密度関数
分布$F$が密度関数$f$を持つような場合を考え、第$i$順序統計量$X_{(i)}$の密度関数を求めてみよう。
$X_{(i)}$の累積分布関数を求め、微分すれば密度関数を求めることができる。
ここで、以下のような集合(事象)
\begin{align} B_j \left( x \right)= \left\{ X_1, X_2, \cdots, X_n \text{のうち}j\text{個が} x \text{以下} \right\} \end{align}
を考えると、$X_{(i)}$の累積分布関数は
\begin{align} F_{X_{(i)}}(x) = P \left( X_{(i)} \leq x \right) = \sum_{j=i}^{n} P \left( B_j \right) \end{align}
と書くことができる(累積分布関数、順序統計量の定義より、$X_1, X_2, \cdots, X_n$のうち与えられた$x$以下の値となるものが$i$個以上である確率を求めれば良いことからわかる)。
ここで、各$X_i$は分布$F$に従うので、累積分布関数の定義により
\begin{align} X_i \leq x \text{となる確率} & \Longrightarrow F(x) \\\ X_i \gt x \text{となる確率} & \Longrightarrow \text{確率} 1 - F (x) \end{align}
である。すなわち、事象$B_j$が起こる確率は、自由度$n$で成功確率$p = F (x)$の2項分布に従う確率変数が値$j$をとる確率に等しい。すなわち、
\begin{align} P \left( B_j \right) = \binom{n}{j} \left( F (x) \right)^{j} \left( 1 - F (x) \right)^{n-j} \end{align}
である。あとはこれを$x$で微分すれば求めたい密度関数が出てくる。
計算の前に少し準備をする。
$Y ~ Bin(m, p)$として、確率変数$Y$の確率関数を
\begin{align} P \left( Y = j \right) := p (j, m) \end{align}
と書くことにする。この時、2項分布の確率関数を成功確率$p$で微分すると、
\begin{align} \frac{d}{dp} \binom{n}{j} p^{j} \left( 1 - p \right)^{n-j} & = \frac{n!}{(j-1)!(n-j)!} p^{j-1} \left( 1 - p \right)^{n-j} - \frac{n!}{j! \left( n-j-1 \right) !} p^{j} \left( 1- p \right)^{n-j-1} \\\ &= n \left( p(j-1, n-1) - p(j, n-1) \right) \end{align}
とかける。以上より、合成関数の微分をすると、
\begin{align} f_{X_{(i)}} (x) &= \frac{d}{dx} F_{X_{(i)}} (x) \\\ &= \frac{d F(x)}{dx} \sum_{j=i}^{n} n \left( p(j-1, n-1) - p(j, n-1) \right) \\\ &= n f(x) p (i-1, n-1) \\\ &= n f(x) \binom{n-1}{i-1} \left( F(x) \right)^{i-1} \left( 1 - F (x) \right)^{n-i} \\\ &= \frac{n!}{(i-1)!(n-i)!} f(x) \left( F(x) \right)^{i-1} \left( 1 - F (x) \right)^{n-i} \end{align}
と求めることができた。
第$n$順序統計量の密度関数
第$n$順序統計量は$i=n$の場合に当たるので、
\begin{align} P \left( X_{(n)} \leq x \right) &= {F(x)}^{n} \\\ f_{X_{(i)}} (x) &= n f (x) \left( F (x) \right)^{n-1} \end{align}
第1順序統計量の密度関数
第1順序統計量は$i=1$の場合に当たるので、
\begin{align} P \left( X_{(1)} \leq x \right) &= 1 - \left( 1 - F(x) \right)^{n} \\\ f_{X_{(1)}} (x) &= n f(x) \left( 1 - F(x) \right)^{n-1} \end{align}
参考文献
ロジスティック回帰
ロジスティック回帰による2値分類について
与えられたデータを2つのクラスに分類するアルゴリズムとして、以前パーセプトロンアルゴリズムやADALINEの記事を書きました。
今回は、同じように2値分類アルゴリズムとして用いられるロジスティック回帰について概説します。
$d$次元の入力空間で与えられた$n$個のデータ$ \boldsymbol{x}^{(i)}$と対応する教師ラベル$y^{(i)}$を考えます($ i = 1, \cdots, n $)。ただし、各$ y^{(i)}$は 0 または 1 を取るものとしてクラスのラベル付けがされているとします。
以下のような関数$ f(\boldsymbol{x})$を考え、これらのデータを$ f(\boldsymbol{x}) = 0$で表される超平面($d=2$なら直線)で分類することを考えてみます。
$$ f(\boldsymbol{x}) = \boldsymbol{w}^{T} \boldsymbol{x} $$
この時、「入力空間の各点$ \boldsymbol{x}$が、$y=1$のクラスに分類される確率」を素朴に考えてみます。
ちょうど超平面上の点であれば、境界線上なので確率$1/2$であると考えられます。また、関数$ f(\boldsymbol{x})$の勾配、すなわち$ \nabla f (\boldsymbol{x}) = \boldsymbol{w}$ 方向(=関数$f(\boldsymbol{x})$の値が大きくなる方向)に離れれば離れるほど、$y=1$のクラスに分類される確率は高いと考えられます。逆の方向に離れれば、$y=1$に分類される確率は小さくなり、$y=0$に分類される確率が大きくなります。
上のことを表すと、入力データ$\boldsymbol{x}$が$y=1$に分類される確率$P$は、以下のように表すことができます。
$$ P = \phi \left( z \right) = \phi \left( \boldsymbol{w}^{T} \boldsymbol{x} \right) $$
ここで、$ \phi$はシグモイド関数と呼ばれる関数です。
$$ \phi (z ) = \frac{1}{1 + e^{-z}} $$
シグモイド関数は実数全体を0~1の区間に写す関数なので、これにより、$y=1$に分類される確率を表現しています。
最尤推定
与えられた$n$個の訓練データ$ \left( \boldsymbol{x}^{(i)}, y^{(i)} \right)$ $(i = 1, \cdots, n)$から、分類するのに最適な重み$ \boldsymbol{w}$を、最尤法により推定してみようと思います。
まず、尤度関数$ L ( \boldsymbol{w} )$を求めます。
ある1つの入力データと教師ラベルのペア$ \left( \boldsymbol{x}^{(i)}, y^{(i)} \right)$について、このデータが得られる確率は
\begin{align} y^{(i)} = 1 \text{の場合:}&\phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) \\\ y^{(i)} = 0 \text{の場合:}& 1 - \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) \end{align}
なので、まとめると以下のように書くことができます。
$$ \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right)^{y^{(i)}} \left( 1 - \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) \right)^{1 - y^{(i)}} $$
したがって、尤度関数は以下のようになります。
$$ L \left( \boldsymbol{w} \right) = \prod_{i=1}^{n} \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right)^{y^{(i)}} \left( 1 - \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) \right)^{1 - y^{(i)}} $$
対数尤度関数$l (\boldsymbol{w})$は以下のようになります。
\begin{align} l \left(\boldsymbol{w} \right) &= \log L \left( \boldsymbol{w} \right) \\\ &= \sum_{i=1}^{n} \left\{ y^{(i)} \log \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) + \left( 1 - y^{(i)} \right) \log \left( 1 - \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) \right) \right\} \end{align}
あとは、この尤度関数を最大化するように、重み$\boldsymbol{w}$を決定していけば良いことになります。
重みの更新:勾配降下法
まずは、ADALINEと同じように勾配降下法により重みの更新アルゴリズムを実装してみます。
この場合、最小化したいコスト関数$ J (\boldsymbol{w})$は、対数尤度関数にマイナスをかけたものになります。すなわち、
\begin{align} J \left( \boldsymbol{w} \right) = - \sum_{i=1}^{n} \left\{ y^{(i)} \log \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) + \left( 1 - y^{(i)} \right) \log \left( 1 - \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) \right) \right\} \end{align}
を最小化したいです。
勾配降下法では、コスト関数の勾配の逆向きに重みを更新していくのでした。したがって、$ \nabla J \left( \boldsymbol{w} \right)$を計算していきます。
\begin{align} \frac{d}{dz} \phi \left( z \right) &= \frac{d}{dz} \frac{1}{1+e^{-z}} \\\ &= \frac{e^{-z}}{\left( 1 + e^{-z} \right)^{2}} \\\ &= \phi (z) \left( 1 - \phi (z) \right) \end{align}
となります。よって、$ \nabla J \left( \boldsymbol{w} \right)$を順次計算していくと
\begin{align} \nabla J \left( \boldsymbol{w} \right) &= - \sum_{i=1}^{n} \left\{ y^{(i)} \frac{1}{\phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) } - \left( 1 - y^{(i)} \right) \frac{1}{1 - \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right)} \right\} \nabla \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) \\\ &= - \sum_{i=1}^{n} \left\{ y^{(i)} \frac{1}{\phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) } - \left( 1 - y^{(i)} \right) \frac{1}{1 - \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right)} \right\} \phi \left(\boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) \left( 1 - \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) \right) \boldsymbol{x}^{(i)} \\\ &= - \sum_{i=1}^{n} \left\{ y^{(i)} - \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) \right\} \boldsymbol{x}^{(i)} \end{align}
となります。以上より、勾配降下法による重みの更新は
\begin{align} \boldsymbol{w}^{\text{(new)}} = \boldsymbol{w}^{\text{(old)}} + \xi \sum_{i=1}^{n} \left\{ y^{(i)} - \phi \left( \boldsymbol{w}^{T} \boldsymbol{x}^{(i)} \right) \right\} \boldsymbol{x}^{(i)} \end{align}
となります($\xi$は学習率)。
実際に実装したものが以下です。
重みの更新:ニュートン・ラフソン法
工事中
scikit-learn による実装
工事中
参考文献
行間補足:「統計学への確率論、その先へ(第1版)」定理1.1.13の証明
定理1.1.13の証明の以下の記述について補足してみます〜
また, 任意の$ A \in \mathcal{A}$は区間の有限直和で表されるので、がいえる.
まず、は$ \mathcal{I}$を含む -加法族でした (ここでは最小性については興味ないので特に考えません)。
すると、$ \mathcal{I}$の元、つまり区間$ I_1, I_2$を考えると、が言えます。
よって、-加法族の性質により、となります。
これを繰り返すと、区間($ \mathcal{I}$の元)の和集合でかける集合は全ての元となります。
ところで、そもそも考えていた集合$ A$は、$ \mathcal{A}$の定義により、区間の有限直和、すなわち和集合で書かれていたので、が言えました。
引用文献
ADALINEの学習アルゴリズムについて
ADALINE とは
ADAptive LInear NEuron の略。以前、パーセプトロンについての簡単な記事を書きましたが、ADALINEはこちらを改良した分類アルゴリズムになります。
ADALINEの学習アルゴリズム
基本的な考え方はパーセプトロンと同じです。
大きく異なるところは、パーセプトロンがステップ関数に基づいて重みの学習・予測を行なっていたのに対し、ADALINEでは「線形活性化関数」に基づいて重みの学習を行うことです。なお、予測についてはADALINEでもステップ関数を用います。
それでは、具体的に重みの更新アルゴリズムを説明していきます。
ADALINEでは、以下のようなコスト関数を最小化することを目標に重み$ \boldsymbol{w}$を更新します。
\begin{align} \boldsymbol{J}(\boldsymbol{w}) = \frac{1}{2} \sum_{i} \left( y^{(i)} - \phi (z^{(i)}) \right)^2 \end{align}
ここで、$ y^{(i)}$は$i$番目の訓練データに対する教師ラベル、$ \phi$ は先ほど述べた線形活性化関数で、ADALINEの場合は恒等関数$ \phi (z^{(i)}) = z^{(i)}$です。$ z^{(i)}$は重みベクトルと$i$番目の訓練データによる総入力$ \boldsymbol{w}^{T} \boldsymbol{x}^{(i)}$です。
このコスト関数の最小化を目標に重みを更新する具体的アルゴリズムとして、勾配降下法(Gradient Descent)と呼ばれる方法があります。 簡単に言うと、「コスト関数の勾配の反対方向に重み更新したらコスト関数小さくなるやろ。だって、勾配ってその関数の値が大きくなる方向だし」です。
つまり、以下のように重みを更新していきます。
\begin{align} \boldsymbol{w}^{(new)} &= \boldsymbol{w}^{(old)} + \Delta \boldsymbol{w} \\\ \Delta \boldsymbol{w} &= - \xi \nabla \boldsymbol{J}(\boldsymbol{w}) \\\ &= \xi \sum_{i} \left( y^{(i)} - \phi (z^{(i)}) \right) \boldsymbol{x}^{(i)} \end{align}
ここで、$ \xi$は学習率と呼ばれる定数であり、学習の際に事前に決めておく定数です。勾配の逆方向にどの程度進んでいくかを決める定数であると理解できると思います。
上の重みの更新式において注意しておくべきなのは、$i$についての総和をとっていること、すなわち「一度の重みの更新のために、全ての入力データについて和を計算しなければいけない」ということです。 機械学習では何百万という入力データを扱うことも珍しくないため、これでは計算コストがかかってしまうことが容易に想像できます。このアルゴリズムを改良したものが、確率的勾配降下法と呼ばれるものですが、それはまた別の記事に回します。
ADALINE の実装
至ってシンプルな実装かと思います。 バイアス項の重みだけ少々更新式が見かけ上異なるので、そこだけ注意いただければと思います。
ADALINE implementation by Gradient Descent
参考文献
パーセプトロンの学習アルゴリズム(簡単な実装)
分類タスクの初歩的なアルゴリズムであるパーセプトロンアルゴリズムについて簡単にまとめてみようと思います。
パーセプトロン超概要
ラベル$ t = \pm 1$を持つデータを分類する(超)平面を見つける機械学習アルゴリズムの一つです。
例えば2次元のデータ(x, y座標で表されるようなデータですね)であれば、このデータを分類する直線を見つけ出すアルゴリズムです。
$n$次元の入力空間$ \boldsymbol{x}= (x_1, x_2, \cdots, x_n)$について、重みベクトルを$ \boldsymbol{w}$とすれば、この$n$次元空間における上のデータを分割するような超平面は以下の方程式で表すことができます($ \theta$はある実定数)。
\begin{align} f(x_1, x_2, \cdots x_n) = \boldsymbol{w}^{T} \boldsymbol{x} \\\ f(x_1, x_2, \cdots x_n) = \theta \end{align}
$ w_0 = - \theta$、$ x_0 = 1$とし、$(w_0, w_1, w_2, \cdots, w_n)$と$ (x_0, x_1, x_2, \cdots, x_n)$を改めて$ \boldsymbol{w}$, $ \boldsymbol{x}$とすれば、より簡潔に
\begin{align} f(\boldsymbol{x}) = \boldsymbol{w}^{T} \boldsymbol{x} \\\ f(\boldsymbol{x}) = 0 \end{align}
と表すことができます。
より具体的には、以下のルールでデータを分類します。
\begin{align} f(\boldsymbol{x}) > 0 & \Longrightarrow t = +1 \\ f(\boldsymbol{x}) < 0 & \Longrightarrow t = -1 \end{align}
重みベクトル$ \boldsymbol{w}$の更新
確率的勾配降下法というアルゴリズムに則って重みベクトル$ \boldsymbol{w}$を更新していきます(これも別記事でまとめようかな・・・)。
ある$ i$番目の訓練データ$ \boldsymbol{x}^{(i)}$について、対応する教師データを$ y^{(i)}$、その時の予測値を$ \hat{y}^{(i)}$とすると、重みは以下の式で更新する。
\begin{align} \boldsymbol{w}^{(new)} = \boldsymbol{w}^{(old)} + \xi ( y^{(i)} - \hat{y}^{(i)} ) \boldsymbol{x}^{(i)} \end{align}
ここで$ \xi$は学習率と呼ばれる定数であり、学習の際に決める定数である。
パーセプトロンの実装
オブジェクト指向らしく、クラスで実装したものがこちらです。
参考文献
相関係数の絶対値が1以下の証明(標本相関係数じゃないよ)
「相関係数の絶対値は1以下!」って記事を見ると、大抵標本についての相関係数にシュワルツの不等式を適用して「で〜きま〜した〜」と宣っていて、僕はなんとも言えない気持ちになりました。
期待値で定義している場合の相関係数についても同じことが言えることを簡単に備忘録として残しておこうと思います。
本当は機械学習のアウトプットに時間使いたいのに気になってしまったから書くよ。
まず相関係数を定義します。
$ X$,$ Y$を確率変数として、それぞれ期待値(平均)を$E[X]$, $E[Y]$とします。なお、期待値は適宜$X$,$Y$の同時確率や周辺確率で計算するものとします。
この時相関係数$ \rho_{XY}$は以下で定義されます:
$$ \rho_{XY} = \frac{E[ (X -E[X]) (Y -E[Y]) ]}{ \sqrt{E[(X -E[X])^{2}]} \sqrt{E[(Y -E[Y])^{2}]} } $$
$ X$, $ Y$の分散をそれぞれ$ \mathrm{Var}[X]$, $\mathrm{Var}[Y]$、共分散を$ \mathrm{Co}\mathrm{v}[X, Y]$と書くと
$$ \rho_{XY} = \frac{\mathrm{Co}\mathrm{v}[X, Y]}{ \sqrt{\mathrm{Var}[X]} \sqrt{\mathrm{Var}[Y]} } $$
と少しスッキリ書くことができます。
この相関係数について
$$ -1 \leq \rho_{XY} \leq 1 $$
が成り立つことを証明します。
離散分布の場合で示します。連続分布の場合もほとんど同じです(気が向いたらちゃんと書きます)。
確率変数$X$,$Y$がとりうる値の集合をそれぞれ$\{ x_i | i = 1, \cdots, n \}$, $\{ y_j | j = 1, \cdots, m \}$とします。
このとき、共分散は
\begin{align} \mathrm{Co}\mathrm{v}[X, Y] = \sum_{i=1}^{n} \sum_{j=1}^{m} ( x_i - \mu_X ) ( y_j - \mu_Y ) P ( X = x_i, Y = y_j ) \end{align}
とかけます。ただし$ \mu_X = E[X]$, $ \mu_Y = E[Y]$ とおきました。また、$ P ( X = x_i, Y = y_j )$は$X,Y$の同時確率関数です。
ここで
\begin{align} w_{ij}^{X} = ( x_i - \mu_X ) \sqrt{P ( X = x_i, Y = y_j )} \\\ w_{ij}^{Y} = ( y_j - \mu_Y ) \sqrt{P ( X = x_i, Y = y_j )} \end{align}
とおくと、共分散は
\begin{align} \mathrm{Co}\mathrm{v}[X, Y] = \sum_{i,j} w_{ij}^{X} w_{ij}^{Y} \end{align}
と書くことができます。
ここで、$ w_{ij}^{X,Y}$それぞれを全て縦に並べた列ベクトル$ \boldsymbol{w}^{X,Y}$を考えてみます。つまり、
\begin{align} \boldsymbol{w}^X = \left( \begin{array}{c} w_{11}^{X} \\ w_{12}^{X} \\ \vdots \\ w_{1m}^{X} \\ w_{21}^{X} \\ \vdots \\ w_{2m}^{X} \\ \vdots \\ w_{nm}^{X} \end{array} \right), \ \ \boldsymbol{w}^Y = \left( \begin{array}{c} w_{11}^{Y} \\ w_{12}^{Y} \\ \vdots \\ w_{1m}^{Y} \\ w_{21}^{Y} \\ \vdots \\ w_{2m}^{Y} \\ \vdots \\ w_{nm}^{Y} \end{array} \right) \end{align}
すると、共分散は以下のように数ベクトルの内積の形で書くことができます。
\begin{align} \mathrm{Co}\mathrm{v}[X, Y] = (\boldsymbol{w}^X, \boldsymbol{w}^Y) \end{align}
したがって、シュワルツの不等式より
\begin{align} \left| \mathrm{Co}\mathrm{v}[X, Y] \right| =& \left| (\boldsymbol{w}^X, \boldsymbol{w}^Y) \right| \leq \| \boldsymbol{w}^X \| \| \boldsymbol{w}^Y \| \end{align}
となります。また、上式の右辺については、
\begin{align} \| \boldsymbol{w}^X \| =& \sqrt{ \sum_{i=1}^{n} \sum_{j=1}^{m} (x_i - \mu_X)^2 P (X = x_i, Y = y_j ) } = \sqrt{ \mathrm{Var}[X] } \\\ \| \boldsymbol{w}^Y \| =& \sqrt{ \sum_{i=1}^{n} \sum_{j=1}^{m} (y_j - \mu_Y)^2 P (X = x_i, Y = y_j ) } = \sqrt{ \mathrm{Var}[Y] } \end{align}
と書けます。以上より、
\begin{align} \left| \frac{ \mathrm{Co}\mathrm{v}[X, Y] }{ \sqrt{ \mathrm{Var}[X] } \sqrt{ \mathrm{Var}[Y] } } \right| \leq 1 \end{align}
であるため、相関係数について$ -1 \leq \rho_{XY} \leq 1$ が成り立つことが示せました。
シュワルツの不等式がポイントになることは標本相関係数の場合と同じですね。
確率関数(密度関数)が出てくるあたりがほんの少し見た目に変化があるので、きちんと計算すると今回のような形になりました。
以上です〜。
内積の一般的な性質からシュワルツの不等式を証明する
数ベクトル空間$ \mathbb{R} ^{n}$でのシュワルツの不等式の証明はよく見かけますが、それと比べると例えば積分に関するシュワルツの不等式はあまり見かけない気がします。
どちらも計量ベクトル空間における内積の一般的な性質から証明できるものなので、まとめて取り扱ってみたいと思います。
なお、この記事では簡単のため実数体上のベクトル空間のみ考えることにします。
まず、$ \boldsymbol{V}$をベクトル空間とし、$ \boldsymbol{x}, \boldsymbol{y} \in \boldsymbol{V}$として、$ \boldsymbol{V} \times \boldsymbol{V} \rightarrow \mathbb{R}$という写像として定義される内積を$ (\boldsymbol{x}, \boldsymbol{y})$と書くことにする。
この時、内積は以下の性質を満たす:
(1)対称性 $$ (\boldsymbol{x}, \boldsymbol{y}) = (\boldsymbol{y}, \boldsymbol{x}) $$
(2)線形性 $$ (a \boldsymbol{x}, \boldsymbol{y}) = a (\boldsymbol{y}, \boldsymbol{x}) \ \ \ ( a \in \mathbb{R}) $$ $$ (\boldsymbol{x}, a \boldsymbol{y}) = a (\boldsymbol{y}, \boldsymbol{x}) \ \ \ ( a \in \mathbb{R}) $$ $$ (\boldsymbol{x} + \boldsymbol{y}, \boldsymbol{z}) = (\boldsymbol{x}, \boldsymbol{z}) + (\boldsymbol{y}, \boldsymbol{z}) $$ $$ (\boldsymbol{x}, \boldsymbol{y} + \boldsymbol{z}) = (\boldsymbol{x}, \boldsymbol{y}) + (\boldsymbol{x}, \boldsymbol{z}) $$
(3)正定値性 $$ (\boldsymbol{x}, \boldsymbol{x}) \geqq 0 $$ $$ (\boldsymbol{x}, \boldsymbol{x}) = 0 \Leftrightarrow \boldsymbol{x} = \boldsymbol{0} $$
以上の性質からシュワルツの不等式を証明する。
まず$ \boldsymbol{x}, \boldsymbol{y} \in \boldsymbol{V}$に対して、1変数函数$ F(t)$として $$ F (t) = (\boldsymbol{x} - t \boldsymbol{y}, \boldsymbol{x} - t \boldsymbol{y}) $$ を考える。内積の性質(3)正定値性より、任意の$ t \in \mathbb{R}$に対し$ F(t) \geqq 0$である。なお、$ \boldsymbol{x}, \boldsymbol{y}$のいずれかが零ベクトルの場合はシュワルツの不等式は明らかに成り立つため、以下では$ \boldsymbol{x} \neq \boldsymbol{0}$かつ$\boldsymbol{y} \neq \boldsymbol{0}$であるものとする。
線形性と対称性を使って計算していくと
\begin{align} F(t) =& (\boldsymbol{x}, \boldsymbol{x} - t \boldsymbol{y}) - t (\boldsymbol{y}, \boldsymbol{x} - t \boldsymbol{y}) \\\ =& (\boldsymbol{x}, \boldsymbol{x}) - 2 t (\boldsymbol{x}, \boldsymbol{y}) + t^{2} (\boldsymbol{y}, \boldsymbol{y})\\\ \end{align}
とかける。これを$t$についての2次関数とみると、$ F(t) \geqq 0$より判別式$D$が0以下でなければならない。すなわち、
\begin{align} D / 4 = (\boldsymbol{x}, \boldsymbol{y})^{2} - (\boldsymbol{x}, \boldsymbol{x}) (\boldsymbol{y}, \boldsymbol{y}) \leq 0 \\\ \Leftrightarrow \left| (\boldsymbol{x}, \boldsymbol{y}) \right| \leq \sqrt{(\boldsymbol{x}, \boldsymbol{x}) (\boldsymbol{y}, \boldsymbol{y})} \end{align}
となる。よく見慣れた形にするためにノルムを$\| \boldsymbol{x} \| = \sqrt{(\boldsymbol{x}, \boldsymbol{x})}$と書くと、
$$ \left| (\boldsymbol{x}, \boldsymbol{y}) \right| \leq \| \boldsymbol{x} \| \| \boldsymbol{y} \| $$ となり、シュワルツの不等式が証明できた。
以上の証明は、(実数体上という制限ありますが)具体的にどんなベクトル空間を考えているとか、どんな内積を入れているとかは気にしていないところがポイントですね。
考えたい実数体上のベクトル空間があり、そこに満たすべき性質を満たした内積を入れさえすれば、その内積についてシュワルツの不等式が使えます。非常に安心感がありますね。