基本情報技術者試験
ふぁいんちゅーにんぐ
ファインチューニング
Fine-tuning
ファインチューニングとは、事前学習でいったん学習させたニューラルネットワークについて、その学習済みの状態を出発点にし、目的の課題の正解付きデータでネットワーク全体をもう一度学習させる手続きです。事前学習で得た特徴の上に単純な分類器だけを学習させる方法と違い、ネットワーク全体を学習の対象にします。
詳しい説明
ファインチューニングとは
ファインチューニングは、いったん学習を済ませたニューラルネットワークについて、その学習済みのパラメータを出発点にして、ネットワーク全体をもう一度学習させる手続きです。英語の fine-tuning は「微調整」という意味です。ネットワークをゼロから作り直すのではなく、すでに学んだ状態から全体を少しずつ調整し直す、という点が名前に表れています。
ファインチューニングは、事前学習と組にして語られます。事前学習とは、本当に解きたい課題に取りかかる前に、別の課題や別の学習の仕方でネットワークをあらかじめ学習させておく段階のことです。ファインチューニングは、この事前学習のあとに置かれる2つ目の段階の一つの形です。
深層学習の教科書であるイアン・グッドフェロー(Ian Goodfellow)、ヨシュア・ベンジオ(Yoshua Bengio)、アーロン・クールヴィル(Aaron Courville)の "Deep Learning"(2016年)は、ファインチューニングに独立した節を設けていません。この語は、事前学習を説明する箇所の中で繰り返し出てきます。以下の説明は、この本の第8章・第15章・第20章に出てくる記述に基づきます。
事前学習のあとに置かれる2つ目の段階
グッドフェローらの第15章15.1節は、事前学習の段階と教師あり学習の段階を組み合わせた手続きを「2段階の手続き」と呼んでいます。教師あり学習とは、入力と、その入力に対する正解(ラベル)の組を例として与え、入力から正解を当てられるようにする学習の仕方です。同じ節によると、「pretraining(事前学習)」という語は、事前学習の段階だけでなく、この2段階の手続き全体を指して使われることもよくあります。
同じ節は、2つ目の教師あり学習の段階には2通りの形があると書いています。
- 事前学習の段階で学んだ特徴の上に、単純な分類器を学習させる形
- 事前学習の段階で学んだネットワーク全体について、教師ありでファインチューニングする形
ここでいう特徴とは、ネットワークが入力を変換して作り出した、入力の性質を表す値のことです。分類器とは、入力がどの種類(クラス)に当たるかを答える仕組みのことです。
分類器だけを学習させる形との違い
2つの形の違いは、2つ目の段階で何を学習の対象にするかにあります。
| 比べる点 | 上に単純な分類器を学習させる形 | ネットワーク全体をファインチューニングする形 |
|---|---|---|
| 2つ目の段階で学習する範囲 | 事前学習で学んだ特徴の上に載せた分類器 | 事前学習で学んだネットワーク全体 |
| 事前学習で学んだ部分の扱い | 特徴を作る部分として、その上の分類器に入力を渡す | 学習済みの状態を出発点にして、全体と一緒に調整し直す |
たとえば、事前学習で3つの層を持つネットワークを作ったとします。前者の形では、3つの層が作った特徴を入力にして、その上に置いた分類器を学習させます。後者の形では、3つの層と上の部分をまとめて、正解付きの例で学習させます。
グッドフェローらの第15章は、この段階の手順を擬似コード(アルゴリズム15.1)でも示しています。そこでは、事前学習を終えたあと「ファインチューニングを行う場合」にだけ、学習器 を使います。 は、事前学習で得た関数 と入力の例 を受け取り、教師ありでファインチューニングする場合はそれぞれの入力に対応する正解 も受け取って、調整し直した関数を返します。擬似コードの中でファインチューニングは「行う場合」とされており、事前学習のあとに必ず行う決まった段階としては書かれていません。
層ごとの学習のあとに全体を一緒に学習させる理由
ファインチューニングが必要になる理由は、事前学習の進め方と関係しています。グッドフェローらの第15章15.1節が説明する「貪欲な層ごとの教師なし事前学習」では、ネットワークを1層ずつ学習させます。教師なし学習とは、正解のラベルを使わずに、入力データそのものの性質をつかむ学習の仕方です。k番目の層を学習させるときは、それより前の層を固定したままにします。そのため、先に学習させた下の層は、上の層を足したあとには調整されません。
同じ節は、この手順が「事前学習」と呼ばれる理由について、あくまで最初の一歩にすぎず、そのあとですべての層を一緒にファインチューニングする学習の手順を当てることが想定されているからだと説明しています。
第8章8.7.4節は、もう少し一般的な形でこの考え方を説明しています。貪欲なアルゴリズムとは、問題をいくつかの部分に分け、部分ごとに最も良い答えを別々に求める方法です。この節によると、部分ごとに最も良い答えを組み合わせても、問題全体として最も良い答えになる保証はありません。そこで、貪欲なアルゴリズムのあとに、問題全体をまとめて最適化するファインチューニングの段階を置くことがあります。同じ節は、全体をまとめて最適化する手順を貪欲な方法で得た答えから始めると、その手順を大きく速められ、見つかる答えの質も良くなりうると書いています。
同じ節の図8.7は、正解付きの課題で層を1つずつ足しながら学習させる例を示しています。その説明文は、最適化をさらに良くするために、最後に一度だけ、あるいは層を足す各段階で、すべての層を一緒にファインチューニングできると書いています。
深層信念ネットワークでの例
グッドフェローらの第20章20.3節は、深層信念ネットワーク(DBN、Deep Belief Network)を例にファインチューニングを説明しています。深層信念ネットワークは、制限付きボルツマンマシン(RBM)と呼ばれるモデルを1層ずつ学習させて積み重ねる生成モデルです。生成モデルとは、データがどのように生じるかを表し、データに似た新しい例を作り出すこともできるモデルのことです。
同じ節によると、深層信念ネットワークが注目されたのは、主に分類のモデルを良くできるからでした。学習済みの深層信念ネットワークの重みとバイアスを使って多層パーセプトロン(MLP、層を重ねた順伝播型のニューラルネットワーク)を作り、その重みを初期値にして、分類の課題でこの多層パーセプトロンを学習させます。同じ節は、この追加の学習を「識別的ファインチューニング」の一例と呼んでいます。識別的とは、入力がどのクラスに当たるかを見分けることを目的にする、という意味です。
同じ節は、層ごとの学習を終えた深層信念ネットワークについて、生成モデルのままでまとめて学習させる「生成的ファインチューニング」も可能だと書いています。ただし、ほとんどの応用では、層ごとの学習が終わったあとに深層信念ネットワーク全体を一緒に学習させる手間はかけられていない、とも書いています。
自然言語処理での使われ方
グッドフェローらの第15章15.1.1節は、この本が書かれた時点で、教師なし事前学習はほとんど使われなくなったと述べています。例外として挙げているのが自然言語処理です。自然言語処理では、単語をそのまま表すワンホットベクトル(該当する単語の位置だけを1、ほかを0にしたベクトル)が単語どうしの似ている度合いを何も表さないこと、ラベルの付いていない非常に大きなデータが手に入ることが理由として挙げられています。
同じ節は、この分野での事前学習の利点を次のように説明しています。何十億もの単語を含むような、ラベルの付いていない巨大なデータで一度だけ事前学習させて、単語や文の良い表現を学ばせます。そのうえで、訓練データがずっと少ない教師ありの課題に対して、その表現をそのまま使うか、その表現をファインチューニングします。ここでも、学んだものをそのまま使う形と、ファインチューニングする形の2通りが並べられています。同じ節は、この方法が2008年から2011年にかけての研究で切り開かれ、執筆時点でも広く使われていると書いています。
2段階に分けることの手間
グッドフェローらの第15章15.1.1節は、事前学習と教師あり学習の2つの段階に分けることの欠点も挙げています。それぞれの段階が自分のハイパーパラメータ(学習の前に人が決めておく設定値)を持つこと、そして2つ目の段階の性能は1つ目の段階の途中では予測できないことです。そのため、1つ目の段階のハイパーパラメータを決めてから、2つ目の段階の結果を見てそれを直せるようになるまでに、長い時間がかかります。
同じ節は、最も筋の通った方法として、教師あり学習の段階で検証用データに対する誤差を見て、事前学習の段階のハイパーパラメータを選ぶことを挙げています。実際には、事前学習の繰り返しの回数のように、事前学習の段階で決めたほうが手軽な設定もあり、理想的ではないものの計算はずっと安く済む、とも書いています。
この説明の範囲について
このページは、グッドフェローらの教科書がファインチューニングについて書いている範囲にとどめています。この本の該当箇所は、ファインチューニングの具体的な進め方、たとえば学習率(1回の更新でパラメータをどれだけ動かすかを決める値)をどう決めるかや、どの層を固定しておくかといった手順までは説明していません。そのため、このページでもそうした手順は扱っていません。また、この本は2016年の出版であり、自然言語処理についての記述もその時点での状況を述べたものです。
試験で問われること
基本情報技術者試験
- 機械学習のプロセスにおける再学習の手法として問われます。
- 転移学習との関係性が問われることがあります。
- モデルの最適化と過学習のリスクが問われます。
最終更新日: 2026/09/18