これはhttp://mitochondrion.jp/に掲載している「医学日記」を 検索用に 1 記事 1 ファイルとして形成し直したものです。 簡単なプログラムで自動生成しているので、体裁の乱れなどが一部にあるかと思われます。 通して読むには、トップページからオリジナルページにアクセスしてください。
機械学習の分野で、標準化 (normalisation) と正規化 (standardisation) の相違について言及されることがあるらしい。曰く、標準化とは通常、データが一定の範囲 (たとえば 0-1) に収まるように全ての値に定数を乗じてスケーリングすることをいい、正規化とは「平均 0, 標準偏差 1」になるように定数を加減乗除してスケーリングすることをいうらしい。
このような記載は、日本語に限らず英語のウェブサイトでも広くみられるのだが、馬鹿げている。これは数学や統計学の基礎を修めずに、scikit-learn などの既存ライブラリを使う小手先の作業だけで機械学習を「扱っている」気分になっている人々が、いかに世の中に多いかを表しているのだろう。諸君は一体、大学で何を学んできたのか。
Normal とか standard とかいう語の混乱には長い歴史がある。ガウスの誤差理論が確立された頃に「正規分布 (normal distribution)」という語が創出されたが、この命名が悪かった。本稿では敢えて、いわゆる正規分布をガウス分布と呼ぶことにする。誤差がランダムに生じる、という仮定に基づくガウス理論では、確かに測定値はガウス分布に従う確率変数として表現されるので、これを normal と表現したくなるのは理解できる。しかし、これはランダム誤差の解析に限った話であって、世の中に存在するデータのほとんど (if not all) はガウス分布に従わない。それにも関わらず、統計学は数学理論的に解析が容易なランダム誤差の解析に特化して進歩し、その過程で「平均 0, 標準偏差 1」の「正規分布」を特に「標準正規分布 (standard normal distribution)」と呼ぶ慣習が根付いた。これは、ガウス分布を normal distribution と命名してしまったために、「規格化 (normalise) されたガウス分布」を normalised normal distribution と呼ぶのが紛らわしく、やむなく normal と同義である standard の語を用いて standard normal distribution と呼んだのではないか。繰り返すが、これが標準 (normal) だとか正規 (standard) だとかいうのは、ランダム誤差の解析に限った話である。
さて、ランダム誤差に限らない一般のデータ解析において、主に数値処理上の都合から、データを何らかの形で「揃える」作業をすることがある。最大値と最小値の範囲を規定するとか、分布の形状を規定するとか、いろいろ方法は考えられるが、この種の「揃える」作業を英語では normalise, 日本語では規格化とか標準化とか呼ぶ慣習が成立した。この normalise はガウス分布を意味する normal とは全く異なる意味である点が紛らわしい。
このことから、標準化 (normalise) を「データの最大値と最小値の範囲を揃えること」などとする説明が正しくないといえる。それは min-max method などと呼ばれる手法であり、normalisation の一種であるが、他にも様々な方法によるnormalisation が可能だからである。なお、英語のウェブサイトでは、その点をふまえた解説が行われている例も多く、日本語ユーザーよりもキチンと学んだ者が多いことが示唆される。
Normalisation の一種として「平均 0, 標準偏差 1」にデータを揃えることもあり、これは z-score method などと呼ばれる。冒頭に述べた説明は、この z-score 法を特に正規化 (standardization) と呼んでいるわけであるが、この流儀がいかなる経緯で発生したのかは、知らぬ。もし対象データがガウス分布に従っている、いわゆる normal distribution であるならば、この方法による規格化によりデータが standard normal distribution になるので、そのあたりから発生した言葉なのではないかと想像される。
要するに、normalisation も standardisation も、基本的には同じ意味であると考えてよかろう。ただ、ガウス分布の場合に限り、z-score normalised の意味で standard と呼ぶ用法が歴史的に確立されている。
私は、日本語では「規格化」、英語では normalise の語を常に使い、具体的にどのような規格化であるのか (min-max 法, z-score 法, ヒストグラムマッチング法など) を明記するようにしている。これで混乱が生じることはない。Normalise や standardise という語に、特定の方法を指すかのような意味を持たせるべきではない。