AIの紹介でよく見る「〇〇億パラメータ」。この数が何を数えているのかを、専門知識がなくても読めるように、図で順に説明します。
スライダーを動かすと、つまみ(重み)が回り、同じ入力でも出力が変わります。
AIの中では、入力に重みという数を掛けて足し合わせる計算が、膨大な回数くり返されています。
重みが大きい入力ほど、結果に強く効きます。0なら、その入力は無視されます。実際には、重みがマイナスになり、逆向きに効くこともあります。
| 料理 | AI | |
|---|---|---|
| 材料(塩・しょうゆ) | → | 入力 |
| 分量(小さじ何杯か) | → | 重み |
| できた味 | → | 出力 |
| 味見して分量を直す | → | 学習(第4章) |
同じ材料でも、分量を変えると味が変わります。重みも同じ働きをします。
実際は:料理の分量は人が決めますが、AIの重みは学習で自動的に決まります。数も数十億個以上と、桁違いに多くなります。
重みもバイアスも、学習で決まる数値です。この2つを合わせてパラメータと呼びます。
バイアスは、入力に関係なく足される数です。アイスの例なら「気温も人通りもゼロでも、少しは売れる分」にあたります。
ここでのバイアスは「偏見」の意味ではありません。計算式の中の、足し算の数の名前です。
線1本に重みが1個、色つきの丸1個にバイアスが1個あります。入力の丸は受け取るだけなので数えません。
「7B」という書き方は、70億パラメータのことです(Bは英語のbillion=10億)。
「70億パラメータ」とは、重みとバイアスなどを全部数えると70億個になる、という意味です。大半は重みが占めます。
実際の丸(ニューロンと呼びます)は、足し算の結果に簡単な変換をかけてから次へ渡します。ただし、その変換は数えるつまみを持ちません。
| 重み | パラメータ | |
|---|---|---|
| 何か | 入力を効かせる強さ | 学習で決まる数値の全部 |
| 含むもの | 重みだけ | 重み+バイアスなど |
| 図での数 | 20個(線) | 26個(線+丸) |
| 関係 | パラメータの一部 | 重みを含む全体 |
重みはパラメータの一部です。会話の中で「重み」と「パラメータ」がほぼ同じ意味で使われることもあります。
例:入力が 10 のとき、正解は 20
押すたびに重みが少し動き、ずれが小さくなります。一度に正解へ飛ばず、少しずつ近づきます。
学習の前、重みはでたらめな数から始まります。例を見るたびに、ずれが減る向きへ少しだけ動かします。
どの重みをどちら向きに動かせばよいかは、人ではなく計算で自動的に求めます。
実際は:上の体験は重み1個・例1つだけです。本物の学習では、膨大な数の例を使い、数十億個の重みを同時に少しずつ直します。
点は学習に使う例、線はAIが覚えた傾向です。右は例にぴったり合う一方、新しい例には外れやすくなります。
パラメータの数は、AIが表せることの「器の大きさ」の目安です。ただし、器を満たすには、良いデータと学習方法が欠かせません。
過学習とは、例を丸暗記して、新しい問題に弱くなることです。数を増やすほど、それを防ぐ工夫も大切になります。
学習で自動的に決まる数値です。回答の出方を変える設定や、人が選ぶ学習の条件(ハイパーパラメータと呼びます)とは別物です。
目安の1つにすぎません。データの質や学習のさせ方で、性能は大きく変わります。
一般的な対話AIでは、使っている間に重みは変わりません。会話を覚えて見えるのは、それまでのやり取りを毎回読み直しているためです。
「この重みは猫の担当」とは決まっていません。多数の重みが組み合わさって働くため、1個だけ見ても意味は読みにくいです。
基本は、データから読み取った傾向を数値にしたものです。ただし、よく出てくる文章などを丸暗記してしまうこともあります。
パラメータとしてのバイアスは、計算で足す数の名前です。AIの偏りを指す「バイアス」とは、別の意味の言葉です。
「パラメータ」は日常では「設定値」の意味でも使うため、混同されがちです。AIの話では、学習で決まる中身の数値を指すと覚えておくと安心です。