本文へ移動
試験

  1. 高校情報
  2. 読んで分かる ITパスポート・基本情報
  3. 基礎理論
  4. 第5章 AI(人工知能)の技術

基礎理論 第5章 テクノロジ系・大分類:基礎理論

AI(人工知能)の技術

ルールで判断するAIから、機械学習、ディープラーニング、生成AIと大規模言語モデルまでの仕組み。

5-1AIの基本的な考え方

10月の火曜、こむぎ堂のレジの横に、カメラの付いた小さな台が置かれました。トレーをのせると、上のパンを写真で見分けて会計してくれる、試作のセルフレジです。ミナトは店のパン12種類を1種類につき20枚ずつ撮って学習させ、練習に使った写真ではほぼすべての名前が当たるところまで仕上げました。ところが翌朝、店長が新しい作り方で焼いたクロワッサンをのせると、画面には「デニッシュ」と出ます。のせ直しても、向きを変えても、答えは変わりません。店長はトレーを持ったまま肩を落としました。「AIって、こんなものなのかな」。ミナトはスマートフォンを取り出して、相棒に打ち込みます。「練習ではちゃんと当たったのに、どうして新しいクロワッサンだけ外れるんだろう」

こむぎ堂のレジの横の試作のセルフレジで、トレーのクロワッサンに対して画面に「デニッシュ?」と表示され、店長が困った顔をし、ミナトと相棒が画面をのぞき込んでいる
図:新しいクロワッサンを「デニッシュ」と答える試作のセルフレジ

相棒の最初の返事は、「AI」という言葉の中身を分けるところから始まりました。人間が行う学習・推論・判断・認識といった知的な働きを、コンピュータで実現しようとする技術や研究の分野をAI(人工知能)といいます。Artificial Intelligence の頭文字です。写真でパンを見分けるセルフレジも、ミナトが話しかけている相棒も、AIの一つです。ただし中で動いている仕組みはそれぞれ違い、仕組みが違えば、得意なことも外し方も違ってきます。

店長が最初に思いついたのは、見分け方を書き出すことでした。「三日月の形でこげ茶色ならクロワッサン、四角くて上に果物がのっていればデニッシュ、と教えればいいんじゃないの」。このように、人があらかじめ「もし〜ならば〜する」という規則を決めておき、その規則に従って判断や処理を行う方式をルールベースといいます。規則を書くのは人なので、なぜその答えになったかを後から説明しやすいという長所があります。

ところが、パンの見分けを規則で書き切ろうとすると、すぐに行き詰まります。「三日月の形」をカメラの画素の並びで言い表すには、置く向き、焼き色、照明の具合ごとに条件を足すことになり、例外を一つ足すたびに別の規則とぶつかります。送料の計算や営業時間の案内のように規則をはっきり書ける問題には、ルールベースが向いています。規則を書き出しにくい問題に使われるのが、例となるデータから見分け方を作る方式です。

ここから基本情報!専門家の判断を規則にする

ルールベースの考え方で、専門家の判断をまねるように組み立てたシステムをエキスパートシステムといいます。医師の診断や機械の故障の診断のように、専門家が経験から身につけた判断を規則として集め、専門家の代わりに結論を出させます。

エキスパートシステムの中身は、大きく2つの部分に分かれます。「生地が手に付くなら、水が多い」「水が多いなら、粉を足す」のような規則や事実を蓄えておく部分が知識ベースです。知識ベースの規則を次々にたどり、与えられた事実から結論を導き出す部分が推論エンジンです。「生地が手に付く」という事実を入れると、推論エンジンが2つの規則をつないで「粉を足す」という結論を出します。

2つを分けておくと、知識を足したり直したりしても、推論の仕組みは作り直さずに済みます。その一方で、専門家の頭の中にある判断を漏れなく規則に書き出すのは手間のかかる作業で、パンの見分けと同じ壁に当たります。

基本情報の範囲ここまで

5-2機械学習の種類

その夜、ミナトは試作のセルフレジの設定画面を開きました。写真を1枚追加するたびに、「この写真のパンの名前」を選ぶ欄が出てきます。見分け方の規則を書く欄は、どこを探してもありません。「規則を書いていないのに、どうやって見分けているんだろう」

セルフレジが使っているのは、見分け方を人が書くのではなく、データからコンピュータに見つけさせる技術です。これを機械学習といいます。写真とパンの名前の組をたくさん与えると、写真のどんな性質がどの名前に結び付くかを、計算によって割り出します。学習の結果できあがる、入力から答えを出す計算の仕組みを、モデルと呼びます。

写真のどんな性質を手がかりにするかは、数値で表しておく必要があります。パンなら、色の明るさの平均、輪郭の細長さ、表面のつやの強さといった値です。このように、データの性質を数値などで表して、機械学習のモデルへの入力に使う値を特徴量といいます。どの特徴量を使うかで、見分けの精度は大きく変わります。こげ茶色の度合いしか特徴量に無ければ、よく焼けたクロワッサンとデニッシュは区別しようがありません。

機械学習は、学ぶときに何を与えるかで3つに分けられます。1つめは、入力と正解(ラベル)の組を与えて学ばせる教師あり学習です。写真ごとに「クロワッサン」「デニッシュ」と名前を付けて与えるセルフレジは、教師あり学習を使っています。設定画面の「この写真のパンの名前」の欄が、正解を教える役目でした。

ここから基本情報!教師あり学習で解く2種類の問題

教師あり学習で解く問題は、答えの形で2つに分かれます。明日の気温から明日のメロンパンの売れ数を予想するように、答えが連続した数値になる問題を回帰といいます。トレーの写真からパンの名前を当てるように、答えがあらかじめ決めた種類(クラス)のどれかになる問題を分類といいます。

見分け方の目安は、答えの「あいだ」に意味があるかどうかです。売れ数なら38個と39個のあいだの38.5個にも意味がありますが、「クロワッサンとデニッシュの中間」という答えはありません。分類のモデルは、学習した種類の中からしか答えを選べないので、12種類に入っていないパンをのせても、12種類のどれかの名前が返ってきます。

基本情報の範囲ここまで

2つめは、正解を付けないデータだけを与えて、データの中にある構造やまとまりを見つけ出す教師なし学習です。代表的な手法のクラスタリングは、似た性質のデータどうしを同じグループ(クラスタ)にまとめます。こむぎ堂の通販の注文履歴を、正解なしでクラスタリングにかけると、「朝の食パンをまとめ買いする人」「週末に焼き菓子を贈り物にする人」のようなグループが見えてきます。グループにどんな意味があるかは、出てきた結果を見て人が考えます。

ここから基本情報!特徴量の数を減らす

教師なし学習には、データを分けるのではなく、縮める使い方もあります。たくさんの特徴量を持つデータを、元の情報をなるべく失わないように、少ない数の値にまとめ直すことを次元削減といいます。注文履歴から50品目の購入回数を並べると、お客さん1人が50個の数の組(50次元)で表されます。食パンとバゲットを一緒に買う人が多ければ、2つの回数を「食事パンを好む度合い」という1つの値にまとめても、失う情報はわずかです。

次元削減の代表的な手法が主成分分析で、データのばらつきがいちばん大きい向きから順に、新しい軸を取り直します。上位の2〜3本の軸だけを残せば、50次元のデータを平面のグラフに描いて眺められるようになり、その後の計算も軽くなります。

基本情報の範囲ここまで

3つめの強化学習は、正解の代わりに、行動の結果に応じて与えられる点数(報酬)を手がかりに学ぶ方式です。学ぶ主体(エージェント)が環境の中で行動を選び、得られる報酬の合計が大きくなるように、試行錯誤をくり返して行動の選び方を改めていきます。毎朝の焼く数を決める問題なら、「焼く数」が行動、「売れた分の利益から売れ残りの損を引いた値」が報酬です。どの数が正解かを前もって誰も教えないところが、教師あり学習と違います。

方式学ぶときに与えるものこむぎ堂での例
教師あり学習入力と正解(ラベル)の組写真とパンの名前から、パンを見分ける
教師なし学習正解の付いていない入力だけ注文履歴から、似た買い方のお客さんのグループを見つける
強化学習行動の結果に応じた報酬毎朝の焼く数を変えてみて、利益が大きくなる決め方を探す

5-3代表的な手法

日曜の夕方、店長が気温の記録と冷やしメロンパンの売れ数を書いたノートを持ってきました。「明日は30度になるらしい。何個焼けばいいか、AIで出せるかな」。続けて、もう一つ注文が付きます。「それと、どうしてその数になったのかも分かるようにしてほしい。理由の分からない数字で焼く数は決めたくないんだ」

教師あり学習の中にも、答えの出し方が違う手法がいくつもあります。手法ごとに、得意なデータの形と、結果の理由の説明しやすさが違います。数を予想することと、その理由が分かること。店長の2つの注文は、どちらも手法を選ぶときの基準になります。

ここから基本情報!代表的な4つの手法

入力の値に係数を掛けて足し合わせた式(入力が1つならグラフ上の直線)で、答えの数値を予想する手法を線形回帰といいます。入力が気温 x、答えが売れ数 y なら、y = ax + b の a と b を、手元のデータに最もよく合うように決めます。「最もよく合う」とは、実際の売れ数と式の予想との差を2乗して足した値が最小になることで、この決め方を最小二乗法と呼びます。店長のノートには、次の4日分の記録がありました。

気温 x(度)20242832
売れ数 y(個)9141823
x の平均(26)からの差−6−226
y の平均(16)からの差−7−227

最小二乗法で直線を求めるには、2つの差を列ごとに掛けて足した値と、x の差を2乗して足した値を使います。前者は (−6)×(−7) + (−2)×(−2) + 2×2 + 6×7 = 92、後者は 36 + 4 + 4 + 36 = 80 です。傾きは a = 92 ÷ 80 = 1.15、切片は b = 16 − 1.15 × 26 = −13.9 となります。30度の日の予想は 1.15 × 30 − 13.9 = 20.6 で、およそ21個です。傾きから「1度上がるごとに約1.15個多く売れる」と読み取れるので、理由を知りたいという店長の注文にも答えられます。

「気温が25度以上か」「土日か」のように、特徴量についての条件で順に枝分かれしていき、たどり着いた末端(葉)で答えを出す手法を決定木といいます。木の形をそのまま図に描けるので、どの条件をたどってその答えになったかを人が読み取れます。分類にも回帰にも使えます。ただ、1本の木は学習に使ったデータの細かな違いにまで枝を伸ばしてしまい、新しいデータでは外れやすくなることがあります。

その弱点を、木を増やして補うのがランダムフォレストです。学習用のデータから同じものの重複を許して無作為に選び直したデータを、木ごとに用意します。枝分かれの条件も、無作為に選んだ一部の特徴量の中から探します。こうして、たくさんの決定木を別々に作ります。答えは、分類なら木の多数決、回帰なら木の予想の平均で決めます。1本ごとの癖が打ち消し合うので、1本の木より安定した結果が出やすくなります。複数のモデルの結果を合わせて答えを出すこのやり方は、アンサンブル学習と呼ばれます。

サポートベクトルマシン(SVM)は、分類に使う代表的な手法です。2種類のデータのあいだに境界(特徴量が2つなら直線、3つなら平面、それ以上なら超平面)を引くとき、境界にいちばん近いデータまでの距離(マージン)が最も大きくなる位置に引きます。クロワッサンの写真の点の集まりとデニッシュの写真の点の集まりのあいだに、両側の余裕がいちばん広くなるように線を引く、という考え方です。境界に最も近いデータ(サポートベクトル)だけで境界の位置が決まることが、名前の由来です。カーネル法という工夫を組み合わせると、直線では分けられないデータも分けられます。

基本情報の範囲ここまで

店長の注文のように予想の理由を説明できることを重く見るなら、計算の中身を人が読み取れる手法を選びます。この章の後半に出てくるニューラルネットワークは、写真の見分けのような問題で高い精度を出せる一方、中身が膨大な数の数値になるため、一つ一つの答えの理由を人が読み取るのは難しくなります。精度と説明のしやすさのどちらを優先するかは、使う目的で決まります。

5-4学習と評価

クロワッサンの外れ方を確かめるため、ミナトは練習に使っていない写真を新しく60枚撮り、セルフレジに見分けさせてみました。練習に使った240枚では99%当たっていたのに、新しい60枚で当たったのは39枚、65%でした。「練習の写真でしか、ちゃんと当たらないってこと?」

練習に使った写真で当たるかどうかを確かめても、モデルの実力は分かりません。答えを覚えた問題集で自分を試すのと同じで、覚えたものが出てくれば当たるからです。モデルの出来は、学習にも調整にも一度も使っていないデータで確かめます。この評価のためだけに取っておくデータをテストデータといいます。ミナトが新しく撮った60枚が、テストデータの役目をしています。

練習の写真では99%、新しい写真では65%。このように、学習に使ったデータに合わせすぎた結果、まだ見ていないデータでは当たらなくなる状態を過学習(オーバーフィッティング)といいます。練習用のクロワッサンの写真20枚を見返したミナトは、どれも窓際の白いトレーにのせ、朝の光で撮っていたことに気づきました。新しいクロワッサンは焼き色が濃く、照明の下で茶色いトレーにのっていました。モデルの判定は、パンの形よりも、トレーの色や光の明るさという、パンそのものとは関係のない違いに大きく左右されていたのです。

同じ点の集まりに対して、すべての点を無理に通る曲がりくねった曲線と、点の並びの傾向をなめらかになぞる曲線を左右に並べ、新しい点に対して左の曲線は大きく外れ、右の曲線は近くを通っている
図:学習に使った点に合わせすぎた曲線(左)と、傾向をほどよくなぞる曲線(右)。新しい点で差が出る

ここから基本情報!データを役目で3つに分ける

機械学習で使うデータは、役目によって3つに分けます。モデルの中の数値(重みなど)を決める学習そのものに使うのが学習データ(訓練データ)です。学習データとは別に用意し、学習の途中でモデルの出来を確かめながら、学習の回数や木の深さのように人が決める設定(ハイパーパラメータ)を選ぶのに使うのが検証データです。そして、出来上がったモデルの実力を最後に測るのがテストデータです。検証データで設定を何度も選び直すと、モデルは検証データにも少しずつ合わせ込まれていくので、最後の評価用には、それまで一度も使っていないテストデータを残しておきます。

学習済みのモデルが、学習に使っていない未知のデータに対しても適切な答えを出せることを汎化といい、その能力の高さを汎化性能といいます。テストデータで測っているのは汎化性能で、過学習は汎化性能が下がった状態と言い換えられます。セルフレジの65%という数字は、汎化性能がまだ低いことを示していました。

基本情報の範囲ここまで

ここから基本情報!データの分け方と、見分ける力の測り方

手元のデータを、学習用と評価用に1回だけ分けて評価する方法をホールドアウト検証といいます。写真が300枚なら、240枚で学習して60枚で評価する、という分け方です。手軽ですが、どの写真がたまたま評価用に入ったかで、結果が揺れます。

そこで、データを k 個のグループに分け、1つを評価用、残りを学習用にして、評価用のグループを入れ替えながら学習と評価を k 回くり返し、k 回の結果の平均をとる方法があります。これを交差検証といいます。300枚を60枚ずつ5つに分ければ、5回の評価で、どの写真もちょうど1回ずつ評価に使われます。データが少ないときでも、評価の偏りを小さくできます。

見分ける力を、正解率という1つの数字より細かく見る方法もあります。モデルが写真ごとに「クロワッサンらしさ」を0から1の点数で出し、点数がしきい値以上ならクロワッサンと判定するとします。しきい値を下げると、本物のクロワッサンを見逃しにくくなる代わりに、ほかのパンをクロワッサンと間違えやすくなります。しきい値を少しずつ動かしながら、横軸に偽陽性率(クロワッサンでないパンをクロワッサンと判定した割合)、縦軸に真陽性率(本物のクロワッサンを正しくクロワッサンと判定した割合)をとって点を結んだ線をROC曲線といいます。

たとえば、クロワッサン100枚とほかのパン100枚で試し、しきい値0.5のとき、クロワッサン90枚を正しく判定し、ほかのパン20枚をクロワッサンと判定したとします。真陽性率は 90 ÷ 100 = 0.9、偽陽性率は 20 ÷ 100 = 0.2 なので、点(0.2, 0.9)が曲線上の1点になります。曲線が左上の角に近いほど、見逃しも間違いも少ないモデルです。曲線の下の面積(AUC)は、でたらめに判定するモデルではおよそ0.5、完全に見分けるモデルでは1になります。

基本情報の範囲ここまで

5-5ディープラーニング

写真を撮り直す前に、ミナトにはもう一つ分からないことがありました。12種類を20枚ずつ、たった240枚の写真で、どうしてパンの見分けがここまでできたのか。セルフレジの説明書を相棒と一緒に読むと、答えが書いてありました。中のモデルは、何百万枚ものいろいろな写真で前もって学習してあり、こむぎ堂の写真はその仕上げに使われていたのです。

そのモデルの中で使われている仕組みがニューラルネットワークです。脳の神経細胞(ニューロン)のつながり方をヒントにした計算のモデルで、ノード(人工のニューロン)を層に並べ、隣り合う層のノードどうしを結んだ形をしています。1つのノードは、前の層から届いた値にそれぞれ重みを掛けて足し合わせ、その合計を変換した値を次の層へ送ります。写真の画素の値を入力層に入れると、いくつかの隠れ層(中間層)を通って、出力層に「クロワッサン0.8、デニッシュ0.1」のような値が出てきます。学習とは、正しい名前の値が大きく出るように、この重みを調整することです。

クロワッサンの写真から入力層、隠れ層、出力層へノードが線でつながり、出力層の「クロワッサン」に大きな値が出ている。出力側から入力側へ、誤差を戻す逆向きの矢印が描かれている
図:写真から名前を出すニューラルネットワーク。値は左から右へ流れ、誤差は右から左へ戻して重みを直す

ここから基本情報!層を重ねた基本の形

入力層と出力層のあいだに1つ以上の隠れ層を置き、隣り合う層のノードをすべて結んで、値を入力側から出力側へ一方向にだけ流す形のニューラルネットワークを多層パーセプトロン(MLP)といいます。もとになった単純パーセプトロンは入力と出力だけの形で、2つのグループを1本の直線(平面)で分けられる問題しか解けませんでした。「AとBのどちらか一方だけが当てはまる」(排他的論理和)のような、直線では分けられない問題も、隠れ層を挟むと扱えるようになります。

基本情報の範囲ここまで

ノードが合計を次の層へ送る前に通す変換を活性化関数といいます。代表的なものに、どんな値も0から1のあいだに縮めるシグモイド関数や、負の値を0にして正の値はそのまま通すReLU(ランプ関数)があります。活性化関数が直線的でない変換をするから、層を重ねる意味が生まれます。この変換が無ければ、何層重ねても全体は1つの「掛けて足す」式にまとまってしまい、1層と同じことしかできません。

重みの調整にはバックプロパゲーション(誤差逆伝播法)が使われます。出力層で、出てきた値と正解との差(誤差)を求め、その誤差を出力側から入力側へ逆向きに伝えながら、各層の重みを誤差が小さくなる向きへ少しずつ動かします。

重みが1つだけの小さな例で、動かし方を確かめます。入力 x = 2、重み w = 0.5 のとき、出力は y = w × x = 1 です。正解を t = 3 とし、誤差の大きさを E = (y − t)² ÷ 2 で測ると、E = (1 − 3)² ÷ 2 = 2 になります。w を少し増やしたときの E の変わり方(勾配)は (y − t) × x = (−2) × 2 = −4 で、負なので、w を増やせば誤差は減ります。動かす幅を決める係数(学習率)を0.1とすると、新しい重みは w = 0.5 − 0.1 × (−4) = 0.9 です。出力は 0.9 × 2 = 1.8 になり、誤差 E は 2 から 0.72 に減りました。実際のネットワークでは、この計算を出力側の層から順に、膨大な数の重みについて、何度もくり返します。

ここから基本情報!層を深くすると起きる問題

バックプロパゲーションで入力側へ戻る勾配には、層を1つさかのぼるごとに活性化関数の傾きなどが掛け合わされていきます。シグモイド関数の傾きは最大でも0.25なので、重みの影響を除いて考えると、10層さかのぼれば勾配は最大でも0.25の10乗、およそ100万分の1に縮みます。こうして入力側の層の重みがほとんど動かず、学習が進まなくなる問題を勾配消失問題といいます。正の値では傾きが1のReLUを活性化関数に使う、層を飛ばして値を伝える近道を設ける、といった工夫によって、深いネットワークも学習できるようになりました。

基本情報の範囲ここまで

隠れ層を何層も重ねた深いニューラルネットワークを使う機械学習の手法をディープラーニング(深層学習)といいます。画像の認識、音声の認識、翻訳などで高い精度を出し、いま使われているAIの多くを支えています。それまでの機械学習との大きな違いは、特徴量の扱いにあります。色の明るさや輪郭の細長さを人が選んで与えなくても、入力に近い層では線や色の境目のような単純な特徴、奥の層ほど形や模様のような複雑な特徴を取り出すように、学習の中で重みが決まっていきます。その代わり、学習には大量のデータと計算が要ります。

こむぎ堂のように写真を何百万枚も用意できない場合は、すでに学習を済ませたモデルを使います。特定の用途に合わせる前に、大量の汎用的なデータでモデルを学習させておくことを事前学習といいます。いろいろな物の写真で事前学習したモデルは、パンを一度も見ていなくても、物の輪郭や表面の質感を見分けるための重みをすでに持っています。

事前学習を済ませたモデルに、特定の用途のデータで追加の学習をして、重みを調整し直すことをファインチューニングといいます。こむぎ堂の240枚の写真で行っていたのが、これです。ある課題で学習したモデルを、関連する別の課題に移して使う考え方全体は転移学習と呼ばれ、ファインチューニングはその代表的なやり方です。出力層だけをパン12種類用に付け替え、ほかの層の重みは動かさずに学習するやり方も、転移学習に含まれます。少ない写真で実用になる精度が出たのは、転移学習を使っていたからでした。

5-6認識と生成への応用

見分けの仕組みが分かってくると、店長は別のことを思いつきました。「来週から出す、りんごのデニッシュのPOPを書いてほしいんだ。チラシに載せる絵もあるとうれしい。相棒に頼めるかな」。ミナトが相棒に頼むと、数秒で紹介文の案が3つ返ってきました。

人が日常で使う日本語や英語のような言葉(自然言語)を、コンピュータで扱う技術を自然言語処理(NLP)といいます。迷惑メールの判定、翻訳、文章の要約、質問への応答、そして相棒との会話も、自然言語処理の応用です。AIの技術が使われる場面は、言葉のほかに、音声を文字にする音声の認識、写真や動画に写るものを見分ける画像の認識、そして文章・画像・音声を新しく作り出す生成へと広がっています。

画像の認識でよく使われるのが畳み込みニューラルネットワーク(CNN)です。小さな窓(フィルタ)を画像の上で少しずつずらしながら、窓の中に縦の線や丸い輪郭のような模様があるかを調べる畳み込み層と、調べた結果を縮めて要点を残すプーリング層を重ねていきます。同じ窓を画像のどの位置にも当てるので、クロワッサンがトレーの右にあっても左にあっても、同じ模様として見つけられます。説明書によると、試作のセルフレジの中で動いているのも、この種類のネットワークでした。

文章や音声、毎日の売上のように、順番に意味のあるデータにはリカレントニューラルネットワーク(RNN)が使われてきました。ある時点の隠れ層の状態を次の時点の計算に戻して使う、輪の形のつながりを持つので、「焼きたての」の次に何が来やすいかのように、それまでの流れを踏まえた処理ができます。ただ、長い列では最初のほうの情報が薄れやすく、いまの大きな言語のモデルの多くは、トランスフォーマと呼ばれる別の仕組みを使っています。

見分けるだけでなく、新しいデータを作り出す技術もあります。敵対的生成ネットワーク(GAN)は、2つのニューラルネットワークを競わせて学習させます。偽のデータを作る生成側(ジェネレータ)と、渡されたデータが本物か生成側の作った物かを見分ける識別側(ディスクリミネータ)です。識別側は見破れるように、生成側は見破られないように交互に学習をくり返すうちに、生成側は本物と見分けにくいデータを作れるようになります。

ここから基本情報!データを作り出すモデル

データがどのように生まれているか(データの確率分布)を学習し、その分布に沿った新しいデータを作り出せるモデルを生成モデルといいます。パンの名前を当てるモデルが「この写真はどのパンか」を学ぶのに対し、生成モデルは「パンの写真とはどんなものか」を学ぶ、と対比できます。GANも生成モデルの一つです。

画像の生成でいま広く使われているのが拡散モデルです。学習では、本物の画像に少しずつノイズを加えて最後には砂嵐のようなノイズだけにする過程を用意し、その逆の、ノイズを少しずつ取り除いて元の画像に近づける手順をモデルに学ばせます。生成するときは、でたらめなノイズから出発し、学んだノイズの除去を何度もくり返して画像を作ります。「りんごのデニッシュ」のような文章を条件として与えると、その内容に合う画像に向かってノイズが取り除かれていきます。

基本情報の範囲ここまで

相棒が紹介文を書ける仕組みの中心にあるのが言語モデルです。言語モデルは、語(実際には文字や語の断片)の並びがどれくらい現れやすいかを確率として扱うモデルで、「焼きたての」の次には「パン」が来やすく「靴」は来にくい、というように、次に続く語の確率を計算します。確率に従って次の語を選び、つなげることをくり返すと、文章ができあがります。

この言語モデルを、重みの数(パラメータ数)でも学習に使う文章の量でも、桁違いに大きくしたものを大規模言語モデル(LLM)といいます。大量の文章で学習した結果、質問への回答、要約、翻訳、文章の作成など、1つのモデルで多くの言葉の仕事をこなせるようになりました。相棒も、大規模言語モデルを使ったAIアシスタントです。

ここから基本情報!正解をデータ自身から作る

大規模言語モデルの事前学習では、人が1つずつ正解を付けたデータは使いません。文章の続きの語を隠し、前の部分からその語を当てる練習をくり返します。隠した語の正解は、元の文章に書いてあります。このように、人がラベルを付けなくても、データの一部を隠して当てさせるなどの工夫で、データ自身から正解を作り出して学ぶ方式を自己教師あり学習といいます。ラベルを付ける手間がかからないので、桁違いに大きなデータで学習できます。

基本情報の範囲ここまで

大規模言語モデルが出す文章は、確率に従って選んだ語の並びです。文章がもっともらしいことと、中身が正しいことは別で、事実と違う内容が自然な文章で出てくることがあります(ハルシネーションと呼ばれます)。相棒の案には「りんごは店の近くの農園のもの」と書いてありましたが、ミナトが店長に確かめると、実際の仕入れ先は隣の県の農園でした。相棒が出した案をもとにして、事実の部分は人が確かめて直す。ミナトと相棒は、いつもそう分担しています。

大規模言語モデルのように、大量で幅広いデータで事前学習しておき、ファインチューニングなどによって多くの用途に合わせて使える汎用的なモデルを基盤モデルといいます。言葉だけでなく、画像や音声を扱う基盤モデルもあります。汎用のモデルを一度作り、用途ごとの仕上げを重ねるという作り方は、セルフレジのモデルとも共通しています。

基盤モデルへの頼み方を変えるだけでも、返ってくる結果は変わります。ミナトの最初の頼み方は「りんごのデニッシュのPOPを書いて」だけでした。そこに「小学生にも読める言葉で」「40字以内で」「りんごは隣の県の農園のもの」「焼き上がりは午前11時」と、読む人・長さ・事実・条件を書き足すと、そのまま店に貼れる案が返ってきました。このように、望む出力が得られるように、AIへの指示文(プロンプト)の書き方を工夫して設計することをプロンプトエンジニアリングといいます。役割を伝える、例を見せる、条件を箇条書きにする、確かな事実はこちらから渡す、といった工夫があります。

次の週、ミナトは写真を撮り直しました。12種類のパンを、白いトレーと茶色いトレー、朝の窓際と夕方の照明で、焼き色の濃いものも薄いものも混ぜて、1種類につき60枚ずつ。そのうちの一部は学習に使わず、確かめるためだけに取っておきました。学習し直したセルフレジは、取っておいた写真の中の新しい作り方のクロワッサンを、きちんと「クロワッサン」と答えました。店長はトレーをのせては外し、のせては外して、にこにこしています。「機械がだめだったんじゃなくて、教え方のほうだったんだね」

新しいクロワッサンだけが外れた理由は、モデルの判定がパンの形ではなく、トレーの色と光に頼っていたことにありました。機械学習のモデルは、与えられたデータから学んだことしか答えに使えません。どんな写真を、どれだけ偏りなく集め、学習に使わない写真でどう確かめるか。それを決めるのは、使う人の側の仕事です。相棒が手がかりをくれて、ミナトが写真を撮り直し、店長が焼いたパンで確かめる。セルフレジは、3人の分担で使えるものになりました。

ただ、店長はもう次のことを考えています。「12月にはシュトーレンを出すんだけど、去年の写真は1枚も残っていないんだよね。焼けた日の朝に撮って、その日のうちに見分けられるようになるものかな」。ミナトは、相棒に聞いてみることにしました。

この章のふりかえり

この章で太字にした用語は、暗記カードで覚えられます。

ITパスポートの範囲(25語)を暗記カードで覚える 基本情報まで(47語)を暗記カードで覚える

カードの「カテゴリ」は、この章の節の名前です。同じボタンでもう一度取り込んでも、復習の進み具合は消えません。