この記事では機械学習の各種手法のアルゴリズムに共通する部分を述べます。この記事において、ディープラーニングは機械学習の一手法と扱います。アルゴリズムや処理の仕方という手法の面においてディープラーニングは機械学習の枠組みに収まっています。
ディープラーニングの技術の成立の流れは、閾値判定、閾値判定のネットワークであるパーセプトロン、滑らかな閾値判定を行うロジスティック回帰、パーセプトロンとロジスティック回帰を合成したニューラルネットワーク、ニューラルネットワークを巨大で複雑にしたディープラーニング、というものに沿っています。これまで用いられてきた機械学習の手法がディープラーニングにつながってきているわけです。ディープラーニングが機械学習と別者の様に注目される理由はディープラーニングがこれまでの機械学習手法とは格別のパフォーマンスを持っているためです。ディープラーニングは性能面では今までの機械学習と別物扱いできますが、技術的な面では機械学習の一手法です。
機械学習のアルゴリズムの概略図が下図です。
それぞれのパーツの説明が次です。パーツ単位でまとめていますが、図中の観測データからの流れに沿って読むと気持ち少しわかりやすいはずです。
部
予測部 |
予測部はその名の通り観測されたデータから何かを予測する部分です。予測部のみで、入力された画像からその画像が何を表した画像か予測する、盤面から次の一手を予測する、身長から体重を予測する、といったことができます。任意の係数を定数として予測部のみを用いることによって、わずかな計算時間で値の予測ができます。 |
学習部 |
学習部はより良い評価値を出力できるように任意の係数を最適に近づけます。予測し、最適に近づけ、を繰り返すループを形成します。このループが学習に見立てられ余す。ループを重ねる程より最適化された任意の係数がわかります。ループを重ねる程より良い結果になる、多量にループを重ねたい、というのが機械学習において計算量が重要視される要因の一つです。 |
関数
カーネル関数 |
カーネル関数は観測データを使いやすく加工する関数です。この関数を通すことで計算量を削減したり、素の観測データそのものでは得にくいものを得たりします。 |
モデル関数 |
モデル関数は観測データと任意の係数を入力として、予測値と評価値の元になるパラメータを出力します。この関数は機械学習の手法によって中身が大きく変わります。 |
評価関数 |
評価関数はモデル関数の出力を入力として評価値を出力します。複数の項目にわたる予測値をまとめたり、値の正規化を行うことが多いです。 |
学習関数 |
学習関数は任意の係数と評価値を入力とする関数です。評価値と前状態の任意の係数を元により良い評価値を得られそうな方向に任意の係数を変化させます。 |
値
観測データ |
観測データは主に実世界から得たデータです。画像識別でいえば入力画像、識別して欲しい画像達のことです。 |
予測値 |
予測値は観測データと任意の係数を入力としたモデル関数から出力される値です。画像識別では画像に付けられる銘になります。 |
任意の係数 |
任意の係数はモデル関数に与えられる値です。この任意の係数を最適化してより正確な予測をします。任意の係数の最適化を行う過程は人間の学習に似ています。 |
評価値 |
評価値は予測値が良い予測値なのか、悪い予測値なのかを評価した値です。任意の係数を変化させて、評価値を最大化ないし最小化しようとするアルゴリズムが機械学習です。 |
いずれの機械学習も、モデルに沿った最高の評価を得る任意の係数を求める、という最適化問題を解こうとしています。機械学習は、何々から何々の最適な予測を行う、という言葉に落とし込める問題には全て挑めます。課題はどの様に入力、予測、評価を数値化するか、どの様なモデルを作成するか、どの様に入力データを得るか、です。また機械学習は応用できます。近年、注目されているディープラーニングを用いた自動画像生成アルゴリズムであるGANは、入力された画像からその画像が自動生成された画像であるか生の画像であるかの最適な予測を行う機械学習とノイズから生の画像に近づける変化の最適な予測を行う機械学習をつなげることで実現されます。