技術資料

Feel&Think

第4回 機械学習(教師あり学習)

担当:岩永 昇二
2023.07

前回の「機械学習とAI」では、機械学習とAIの関係について触れ、機械学習の種類の概要を説明しました。また、強化学習についてAlphaGoの進化について紹介しました。
今回の第四回では、機械学習のアルゴリズムについて詳細に説明します。

機械学習には、大きく分けて「教師あり学習(Supervised learning)」「教師なし学習(Unsupervised learning)」「強化学習(Reinforcement learning)」の3種類あることは前回記載した通りです。その中でよく使用されるタスクについてアルゴリズムを交え説明していきます。今回は、教師あり学習について説明します。

■ 分類(Classification)

求めたい分類のクラス(種類)の数が2つの場合を2値分類または二クラス分類といい、3つ以上の場合を多値分類または多クラス分類といいます。分類問題に使用されるアルゴリズムを以下に示します(ただし、中には回帰問題に使用可能なアルゴリズムもあります)。

  • パーセプトロン(Perceptron)
  • パーセプトロン(Perceptron)
  • SVM(Support Vector Machine, サポートベクターマシーン)
  • ニューラルネットワーク(Neural Network)
  • K-NN(k-Newest Neighbor Method, k近傍法)
  • 決定木(Decision Tree)
  • ランダムフォレスト(Random Forest)
  • GBDT(Gradient Boosted Decision Tree)

今回は、パーセプトロンからニューラルネットワークまでを順を追って説明します。そのほかについては、どのような特徴があるかご自身で調べて見てください。

■ パーセプトロン(Perceptron)
入力ベクトルxと重みwの積和zを計算し、zの値で0を閾値として2つに分類(g(z))して記号を得ます。パーセプトロンにおいて分離するための決定境界は、線形のみでしか表現することができないため、線形分離可能(Linear Separatable)な問題のみ適用が可能になります。ちなみに、0または1に分類したg(z)のことを活性化関数といいます。

図-1 パーセプトロン
図-1 パーセプトロン

■ ロジスティック回帰(Logistic Regression)
ロジスティック回帰は、二値分類問題を解くための統計的な手法で、出力として確率を返します。例えば、メールがスパムであるか否か、患者が特定の病気を持っているか否かなど、結果が2つのカテゴリーに分けられる問題に対してよく使われます。この手法は、下図のシグモイド関数を用いて確率を出力します。

図-2 シグモイド関数(グラフ)
図-2 シグモイド関数

■ SVM(Support Vector Machine, サポートベクターマシーン)
サポートベクターマシン(SVM)は、分類や回帰分析に使用される教師あり学習モデルの一つです。SVMは、下図のように、データを最もよく分ける境界線(または「超平面」)を見つけることで機能します。この境界線は、異なるクラスの間のマージン(つまり、最も近いデータポイントまでの距離)が最大になるように選ばれます。

図-3 線形SVMの例(グラフ)
図-3 線形SVMの例

■ ニューラルネットワーク(Neural Network)
ニューラルネットワークとは、人間の脳が情報を処理する仕組みに似ており、AIや機械学習の主要な部分です。これらは層状に配置された多数のノード(またはニューロン)で構成されています。各ニューロンは入力を受け取り、それを特定の計算に基づいて処理し、結果を次の層へと伝達します。ニューラルネットワークの訓練では、目標とする結果に向かって、各ニューロンの計算方法(重みとバイアス)が調整されます。この一連のプロセスを通じて、ニューラルネットワークは画像認識、自然言語処理、予測分析などの複雑なタスクを達成することができます。

図-4 ニューラルネットワーク
図-4 ニューラルネットワーク

■ 回帰(Regression)

回帰問題に使用されるアルゴリズムを以下に示します。

  • 線形回帰(Linear Regression)
  • 多項式回帰(Polynomial Regression)
  • Lasso回帰(ラッソ回帰、Lasso Regression)
  • Ridge回帰(リッジ回帰、Ridge Regression)
  • Elastic Net(エラスティックネット)
  • 回帰木(Regression Tree)
  • SVR(Support Vector Regression)

今回は、線形回帰からRidge回帰までを順を追って説明します。そのほかについては、どのような特徴があるかご自身で調べて見てください。

■ 線形回帰(Linear Regression)線形回帰は、データ間の線形関係をモデル化するための統計的手法です。この手法は、一連のデータポイントを最もよく表す直線(または、多次元の場合は超平面)を見つけることを目指します。線形回帰の基本的なアイデアは、入力(または説明変数)と出力(または目的変数)間に直線的な関係が存在すると仮定し、その関係を最もよく表す直線を見つけることです。この直線は、データポイントと直線との距離(通常は二乗距離)の合計が最小になるように選ばれます。また、この直線は、新しい入力特徴が与えられたときに出力を予測するために使用されます。

図-5 線形回帰近似例(グラフ)
図-5 線形回帰近似例

■ 多項式回帰(Polynomial Regression)
多項式回帰は、データ間の非線形関係をモデル化するために使用されます。この手法は、一連のデータポイントを最もよく表す曲線(多項式)を見つけることを目指します。線形回帰と同様に、この曲線は、新しい入力特徴が与えられたときに出力を予測するために使用されます。

図-6 多項式回帰近似例(グラフ)
図-6 多項式回帰近似例

■ Lasso回帰(ラッソ回帰、Lasso Regression)
Lasso回帰は、特徴選択と正則化を組み合わせて過学習を防ぎ、モデルの解釈を容易にするために使用されます。回帰係数の絶対値の和に対するペナルティを導入することで、いくつかの回帰係数を完全にゼロにする特性があります。これは、不要な特徴(つまり、出力にほとんどまたは全く影響を与えない特徴)をモデルから除外する効果があります。また、この手法は、特徴量が多く、多くの特徴が出力に対して重要でない場合や、繰り返しになりますが、過学習を防ぐ必要がある場合に特に有用です。

Lasso回帰(数式)

■ Ridge回帰(リッジ回帰、Ridge Regression)
Ridge回帰は、特徴選択と正則化を組み合わせて過学習を防ぎ、モデルの解釈を容易にするために使用されます。回帰係数の二乗の和に対するペナルティを導入することで、回帰係数を小さく保つ特性があります。これにより、モデルが訓練データに過度に適合するのを防ぎ、テストデータに対する性能を改善します。また、この手法は、特徴量が多く、特徴間の多重共線性(一部の特徴が他の特徴と高度に相関している状態)が問題となる場合に特に有用です。

Ridge回帰(数式)

最近、よく取り沙汰されるOpenAIが開発した「ChatGPT」は、GPT(Generative Pretrained Transformer)といわれる自然言語処理(NLP)に特化した人工知能の一種です。このGPTは、深層学習の一種であるトランスフォーマーアーキテクチャを利用した自然言語処理モデルです。GPTの根底にあるトランスフォーマーアーキテクチャは、”Attention is All You Need”という論文で初めて紹介されました。
GPTは、「Transformers」の一種であり、「Attention」メカニズムを中心に構築されています。このメカニズムは、シーケンスの各要素(たとえば、文の各単語)が他の全要素とどの程度関連しているかをモデルに学習させることで、文脈理解を改善するものです。
具体的には、GPTは「自己回帰」モデルとして設計されています。これは、与えられた単語(またはトークン)のシーケンスに対して、次の単語が何になるかを予測するというタスクを解くためのモデルです。訓練中には、大量のテキストデータを与えられ、その中のある単語がどの単語に続くかを予測します。その際、前の単語を元に次の単語を予測します。
このように、GPTは大量のテキストデータを学習することで、新たな文脈での単語の使用法、文法、情報、トピック間の関連性などを理解します。したがって、GPTは新たなクエリに対する自然言語応答を生成したり、テキストを翻訳したり、質問に答えたりする能力を持っています。

図-7 トランスフォーマー-アーキテクチャー
図-7 トランスフォーマーアーキテクチャー

また、GPT4においては、巨大なモデルと学習データを用い、テキストだけでなく画像の入力も可能になり、Human Feedbackからの強化学習(RLHF: Reinforcement Learning from Human Feedback)を通じてユーザー中心の対話を強化し、また大幅に増加したトークン数を扱うことができるようになりました。
その後、GPTを基に開発されたのがChatGPTです。これは、GPTの能力を利用してユーザーと自然に対話することを目指したモデルで、特定の対話タスクに焦点を当てています。ChatGPTは、インターネット上のテキストデータに加えて、特定の対話に対する応答を生成するために訓練されています。これにより、ユーザーと自然で人間らしい対話をすることが可能になります。
別の機会に、ChatGPTなどの大規模言語モデルの機能を拡張できるライブラリであるLangChainを用いて、言語モデルを使用したアプリケーションを開発してみたいと思います。

第五回は、機械学習(教師無し学習)について説明します。


参考資料
・有賀 康顕, 中山 心太 他(2021), 仕事で始める機械学習, オライリージャパン.
Attention Is All You Need
※上記資料の最終参照日は2023年7月

ページの先頭にもどる