モデルって何?

今回は「fromZEROでAI体験」で使っているBERTが学習するモデルについて考えてみたいと思います。

こんにちは。このサービスで使っているBERTについて、前回はBERTが処理するときの言葉の単位についてお話ししました。今回は、そのBERTも含めて機械学習システムを語るときによく出てくるモデルというものが一体なんなのかについて考えていきたいと思います。

機械学習システムとは何か

BERTは、機械学習システムというものの一種です。機械学習システムとは入力データと出力データを渡すとそれを学習してくれるものです。入力と出力の関係がどんな関係になっているかとかどんなルールになっているかとかは教える必要がなく、単に入力と出力のデータさえ渡せば、その関係を自動的に学習してくれます。学習が終わると、入力を渡すと何らかの計算をして出力を出してくれます。これがすでに教えた入力データの場合、ほぼほぼ教えた出力データのように出してくれますし、教えていなかったデータでもほぼ期待通りの出力を出してくれます。つまり、入力と出力の関係がどうなっているかというルールを人がたくさん用意する必要がありません。そして、近年はBERTのようにとても性能の良い機械学習システムが出てきているため、とても重宝され、ビジネスでも使われるようになってきました。

機械学習システムは何を学習するのか

では、機械学習システムはどうやって何を学習しているのでしょうか。

簡単な例を考えてみましょう。身長と体重の関係を表すものとしてBMI(ボディマス指数)というものがありますので、それで考えてみましょう。BMIの考えによると、例えば、身長が1.60mだった場合、適正な体重は56.32kgとなります。また、身長が1.80mだった場合は、71.28kgになります。これはBMIの計算式として、適正な体重は、

適正な体重(kg) = 身長(m) * 身長(m) * 22

で求められるというものがあるためわかります。つまり、これが身長と適正な体重の関係ということになります。もしここに、身長を入力すると適正な体重を出力してくれる機械学習システムがあったとすると、この機械学習システムは、身長と適正な体重の例から、この計算式を学習してくれるということになります。身長と適切な体重の関係は、単純に身長の何倍というものではなく、身長と身長をかけたものだということが何らかの方法でわかり、

適正な体重(kg) = 身長(m) * 身長(m) * 何らかの数値

という計算式であるとわかったとします。すると、身長1.60mの時に体重56.32kgだということから、この「何らかの数値」というのは、「22」だということがわかります。つまり、この機械学習システムは、

適正な体重(kg) = 身長(m) * 身長(m) * 22

という関係式を学習したことになります。

学習したものがモデル

実は、この学習した関係式を機械学習モデルと言い、単にモデルとも呼ばれるものです。よく機械学習システムの話で、モデルを学習するとか、学習したモデルとか言われますが、この関係式がモデルの正体なのです。

そして、システム的には、この計算式の「22」のようなパラメータは、モデルデータファイルに格納され、身長(m) * 身長(m) * パラメータ1のような計算式はプログラムで用意されます。なので、機械学習システムは、

機械学習システム(プログラム) + モデルデータファイル

の2つで成り立ちます。そして、機械学習システム(プログラム)に、入力データと出力データのペア(教師データ)を渡して学習させると、モデルデータファイルができあがるというわけです。本当はそのプログラムのところも自動で学習してくれると、何でもできる汎用的な機械学習システム(汎用AI)になるのですが、そういうものはまだありません。やりたいことに応じた機械学習システム(プログラム)をあらかじめ用意して、パラメータのところだけ学習させるということになります。今回の適正体重の例だと、「22」というパラメータ1つだけを学習することになりますね。そして、そのパラメータを用いてプログラムで入力データを計算させると適正な体重が出てくることになります。この入力データを渡してパラメータとプログラムで出力させることを「推論」と呼びます。

今回の例だと計算式はとても単純なものでしたが、BERTのようなものになるととても複雑な計算式(プログラム)になりますし、パラメータがとても多くなって巨大なモデルデータファイルになります。ですが、この、

機械学習システム(プログラム) + モデルデータファイル

でできているということには変わりはありません。

こう考えると、機械学習システムも、その一種であるBERTもあまり怖いものではなくなってきますよね。どんなに複雑なプログラムでできていても、それを入手して、教師データを渡すと学習によってモデルデータファイルができあがるだけです。そして、入力データを渡すと推論によって出力してくれるというそれだけのことです。皆さんも、機械学習システムのプログラムを入手して、それに何らかのデータを学習させて、何らかの入力データを入れて推論させてみてはどうでしょうか。

>人工知能(AI)の入門なら体験して学べる 「fromZEROでAI体験」

人工知能(AI)の入門なら体験して学べる 「fromZEROでAI体験」

AI時代を生き抜くためには、開発者だけでなく利用者も「AIとは何か」を知ることが重要です。私たちは、すべての人に「AIとは何か」を知ってもらうために、AIを体験して学べるオンライン学習サービス「fromZEROでAI体験」をはじめました。

CTR IMG