機械学習技術

本ブログでは、機械学習技術に対して以下のマップで示される領域の情報について述べている。

以下それぞれの詳細について述べる。

機械学習技術について

機械学習は、多くの訓練データを学んでその中にあるパターンやルールを見つけ出す作業を、コンピュータが持つ計算機という機能を使って行うものとなる。これは、訓練データを単にそのまま記憶していくというものではなく、その背後にあるモデル(パターンやルール)を明確にすることで(抽象化する)、訓練データ以外のデータが入力された時にそれを判定できるようにするという作業で汎化と呼ばれるものとなる。

ここでは、この機械学習技術に関するイントロダクションについて述べている。

課題設定と定量化

機械学習を行うためには、その課題の本質を見極め、PDCA、KPI、KGI等の各種問題解決フレームワークを用いて目標値として定量化する必要がある。また、問題が明らかにされていない場合に、演繹法や、帰納法、投射法、類比法、アブダクション法等の非演繹法を使って様々な仮説を立てたり、立てた仮説を「確証バイパス」に陥らずに検証したり、更にフェルミ推定のような手法を用いてそれらを定量化したりする工夫も必要となる。

本ブログでは 以下のページにて、それら問題解決手法と思考法及び実験計画についての詳細を述べている。

実装と応用

機械学習の実装と応用に関しては、 プログラミング技術の中の Clojureと関数プログラミング Pyhtonと機械学習 R言語と機械学習 C/C++と各種機械学習アルゴリズムにて述べられている。

さらに、 ハードウェア技術 自然言語処理技術 知識データとその活用 semantic web技術 オントロジー技術 チャットボット技術 エージェント技術 ユーザーインターフェース技術等の機械学習のベースとなる 人工知能技術の中に述べられている。

またそれらを活用するPFに関しては ICT技術の中の ITインフラストラクチャー技術 Web技術 マイクロサービスとマルチエージェントシステム データベース技術 検索技術等を参照のこと。

機械学習における数学

機械学習は、数学的な理論や手法に基づいて構築された技術であり、機械学習アルゴリズムは、数学的なモデルを使用してデータを解析し、パターンを発見することができるものとなる。数学は、数字、量、構造、空間、変化、不確実性などの概念を扱い、論理的に推論し、模型化する学問で、数学の基本的な分野としては、基本的な計算を扱う算術、数学的表現や方程式を扱う代数、空間の形や大きさ、位置関係を扱う幾何、極限や微積分を扱う解析などがある。さらにこれらの分野に加えて、確率論、統計学、数理論理学、数理最適化、位相幾何学などの様々な応用分野がある。

本ブログでは、 以下のページにて、これら数学に対して様々なトピックを述べている。特に人工知能、機械学習等のコンピューターでの利用を念頭においてそれらに必要だと思われる情報を中心にまとめている。

アルゴリズムとデータ構造

アルゴリズムとデータ構造は、コンピューターサイエンスの基本的な概念であり、密接に関連している。アルゴリズムは、入力を取り込み、それを何らかの手順で処理し、最終的に出力を返すプロセスを表すもので、ある問題を解決する手順や方法を明確に定めた手続きともいうこともできる。データ構造は、データを効率的に格納、検索、操作するための方法を指す。

具体的なアルゴリズムとしては、ソート、検索、パターン認識、データーベース、誤り訂正、暗号化のような基本的なアルゴリズムの他にマルコフ連鎖モンテカルロ法のようなシミュレーションアルゴリズムもある。データ構造を効率的に操作するためには、これらの中から適切なアルゴリズムを使用する必要がある。

本ブログでは 以下のページにてこのアルゴリズムに関して、理論とアルゴリズム、具体的な実装について述べている。

一般的な機械学習とデータ分析

機械学習のタスクの中での基本的なアルゴリズムとして、ある入力から連続値の出力を予測するための関数を求める回帰(regression)、出力を有限個のシンボルに限定したモデルである分類(classification)、入力データを、何らかの基準に従ってK個の集合に分けるタスクであるクラスタリング(clustering)、現実の系ではよく見られる高次元のデータを処理するために行う次元削減(linear dimensionality reduction)、遺伝子やワークフロー等のシーケーンスパターンを学習するシーケンスパターン抽出等について述べる。

 本ブログでは 以下のページにて、一般的な機械学習の理論/具体的なアルゴリズム/実装について述べる。

機械学習におけるノイズ除去とデータクレンジング、欠損値補間

機械学習におけるノイズ除去とデータクレンジング、欠損値補間は、データの品質向上や予測モデルの性能向上に向けて重要なプロセスとなる。

ノイズ除去は、データ中の不要な情報やランダムなエラーを取り除くための手法であり、ノイズは、センサーノイズ、測定誤差、データの入力エラーなどさまざまな要因によって発生する可能性がある。ノイズは、機械学習モデルの訓練や予測に悪影響を与えることがあり、ノイズ除去の目的は、信頼性の高いデータを取得し、モデルのパフォーマンスを向上させることとなる。データクレンジング、欠損値補間は、不正確、不完全、重複、欠損などの問題を解決するためにデータセットをクリーンにするプロセスとなる。

本ブログでは 以下のページにて、この機械学習におけるノイズ除去とデータクレンジング、欠損値補間について、実装例を含む様々な情報について示す。

機械学習における並列分散処理

機械学習の学習処理は、大量のデータを扱うため、高速で並列分散処理が必要とされている。並列分散処理は、複数のコンピューターで処理を分散し、同時に複数の処理を行うことで、高速で処理を行うことができまる。

本ブログでは 以下のページにてこれら並列分散処理技術の具体的な実装について述べている。

スモールデータでの機械学習

スモールデータとは、サンプル数が限られたデータセットのことを指す。スモールデータは、大量のデータを持つ場合と比較して、モデルをトレーニングするために使用できるデータの量が少なくなるため、機械学習の課題に対してより困難な問題を提供する。スモールデータによる機械学習では、①データ拡張、②転移学習、③モデルのシンプル化、④クロスバリデーション等のアプローチを用いて十分なトレーニングデータがない場合でもより高い精度を実現することができる。

本ブログでは 以下のページにて、このスモールデータの機械学習に関する様々なアプローチについて述べている。

グラフデータアルゴリズムと機械学習

グラフはものや状態といった対象同士の結びつきを表すための表現方法となる。多くの問題をグラフの問題に帰着することができるため、グラフに関するアルゴリズムが多く提案されている。

本ブログでは 以下のページにてこのグラフデータの基本的なアルゴリズムである探索アルゴリズム、最短経路アルゴリズム、最小全域木アルゴリズム、データフローアルゴリズム、強連結成分分解をベースとしたDAG、SAT、LCA、決定木等のさまざまなアルゴリズムとグラフ構造をベースとした知識データ処理、ベイズ処理等の応用について述べている。

グラフニューラルネットワーク

グラフニューラルネットワーク(GNN)は、グラフデータに深層学習を適用するもので、データから特徴を抽出し、その特徴表現をもとにニューラルネットワークを構成し、それらを多段に繋ぎ合わせることで、複雑なデータパターンを捉え、非線形性を持つモデルを構築するものとなる。

通常の深層学習とグラフニューラルネットワークとの相違点は、一般的な深層学習は、画像データやテキストデータなどをグリッド状のデータ構造にして、行列演算アルゴリズムをベースに計算しているのに対して、GNNはグラフ構造に特化しており、ノードとエッジの組み合わせで表されるデータを計算しているところにある。

本ブログでは 以下のページにて、このGNNのアルゴリズム、実装例及び各種適用事例について述べている。

シミュレーションとデータサイエンスと人工知能

天文、気象、物性、生物から、伝染病の流行や都市の成長まで、さまざまな分野で大規模な計算機シミュレーションが有効な手段となっているが、純粋に基本法則(第一原理)だけで行えるシミュレーションは限られている。そこで、計算の前提となるパラメータの値や初期値を設定するのに、データサイエンスの力が必要となる。しかし、現代のデータサイエンスは、さらに深くシミュレーションと絡み合っている。

本ブログでは 以下のページにて、これらのシミュレーションとデータサイエンス、人工知能について述べている。

深層学習

深層学習は、脳内にある神経細胞がシナプスと呼ばれる結合部を介して相互かつ多層につながった状態を模したニューラルネットワークと呼ばれる数理モデルを使った機械学習技術となる。ニューラルネットワークは多数のパラメータを持ったモデルを構築することができるため、画像認識、音声認識、自然言語処理などの幅広い分野での複雑な問題を解決することができ、高い精度での予測や判定を実現することができる。

深層学習は、大量のデータを用いた学習によって、自動的に特徴量を抽出することができる点が特徴となる。そのため、特徴量を手動で設計する必要がなく、従来の機械学習アルゴリズムに比べて、高い汎用性を持つことができる。また、tensorflow/Kerasやpythorch等のpythonによるツールが提供されており、それらを用いる事でモデルの構築/学習を比較的簡易に実現することができる。

本ブログでは 以下のページにて、これら深層学習技術の理論や、画像認識、音声認識、自然言語処理等さまざまな領域での実装、特にtensorflow/Kerasやpythorch等のpythonによるツールの利用についてまとめている。

機械学習による自動生成

機械学習による自動生成は、コンピュータがデータのパターンや規則性を学習し、それに基づいて新しいデータを生成するものとなる。自動生成の手法には、深層学習によるアプローチ、確率的アプローチ、シミュレーションによるアプローチ等様々なものがある。

本ブログでは 以下のページにて、この機械学習による自動生成技術に関して、様々なアプローチと具体的な実装について述べている。

強化学習

強化学習はある環境内におけるエージェントが、現在の状態を観測し、取るべき行動を決定する問題を扱う機械学習の一種。エージェントは行動を選択することで環境から報酬を得る。強化学習は一連の行動を通じて報酬が最も多く得られるような方策(policy)を学習する。環境はマルコフ決定過程として定式化される。代表的な手法としてTD学習やQ学習が知られているものとなる。

本ブログでは 以下のページにて、この強化学習に関しての理論、アルゴリズムとpython等を使った様々な実装に関して述べている。

オンライン学習/オンライン予測

オンライン学習とは,全データを一度に用いること無く,データが一つ(あるいは全データの一部)与えられるたびに,与えられたデータ のみを用いて逐次的にモデルを改良する学習手法のことを言う。このデータ処理方式の性質から,メモリやキャッシュに全データが乗らない規模のデータ解析や永続的にデータが生成される環境下での学習に適用することが可能となる。

オンライン予測は、この逐次的な学習を用いてメタ的な機械学習を行うことでさまざまな意思決定問題を扱うフレームワークとなる。

本ブログでは 以下のページにて、このオンライン学習、オンライン予測に関して理論的な概要やさまざまな実装と応用について述べている。

機械学習における確率的アプローチ

確率的生成モデルは、データの分布をモデル化して、新しいデータを生成することができる手法となる。確率的生成モデルを用いた学習では、まずデータの分布をモデル化するために、ガウス分布やベータ分布、ディリクレ分布などの確率分布を仮定し、次にその分布から新しいデータを生成するためのパラメータを最尤推定やベイズ推定等の手法で変分法、MCMC法等のアルゴリズムを用いて学習する。

確率的生成モデルは、教師あり学習だけでなく、教師なし学習にも利用される。教師あり学習においては、確率的生成モデルを用いてデータの分布をモデル化し、そのモデルを用いて新しいデータを生成することができる。また、教師なし学習においては、データの分布をモデル化して、潜在変数を推定することができる。例えば、クラスタリング問題においては、データを複数のクラスタに分けることができる。

代表的な確率的生成モデルとしては、トピックモデル(LDA)、隠れマルコフモデル(HMM)、ボルツマンマシン(BM)、オートエンコーダー(AE)、変分オートエンコーダー(VAE)、生成的敵対的ネットワーク(GAN)などがある。

また適用先としては、トピックモデルに代表される自然言語処理、隠れマルコフモデルを使った音声認識やセンサー解析、地理情報を含めた各種統計情報の解析に用いられる。

本ブログでは 以下のページにて、この確率的生成モデルを用いたベイズモデリング、トピックモデリング、あるいはさまざまな応用アプリケーションや実装について述べている。

ベイズ推論とグラフィカルモデルによる機械学習

ベイズ推論を用いた機械学習は、確率の基本法則であるベイズの定理に従って観測データが与えられたときの未知変数に関する事後確率分布を計算し、得られた事後確率分布に基づいて、未知変数の推定量やこれから観測されるであろう新しいデータに対する予測分布などを計算する統計的学習手法となる。

本ブログでは 以下のページにて、このベイズ推論による機械学習技術について、基本的な理論と実装とグラフィカルモデルによるアプローチについて述べる。

ノンパラメトリックベイズとガウス過程

ノンパラメトリックベイズモデルは、一言で言うと「無限次元」空間での確率モデルであり、それらを効率的に計算できるマルコフ連鎖モンテカルロ法に代表される近代的な探索アルゴリズムでもある。その適用先としては、フレキシブルな生成モデルによるクラスタリングや、統計モデルを用いた構造変化推定、因子分析やスパースモデリングへの応用等がある。

ガウス過程は、確率的アプローチを更に進め、確立分布関数f(x)の選択範囲を柔軟にし「ある程度の滑らかさを持つ関数であればなんでもあり(ガウス過程回帰)」としてそれらの関数のパラメータの確率分布をベイズ推定で求めるというものを考えるものとなる。ガウス過程とは「振ると関数f()がポンと出てくるような箱」と考えればよく、これと実データのフィッティングを行うことで事後関数の雲が得られるものとなる。

本ブログでは 以下のページにて、このノンパラメトリックベイズモデルとガウス過程の理論と実装について述べる。

説明できる機械学習

説明できる機械学習(Explainable machine learning)とは、機械学習アルゴリズムが出力する結果を、その理由や根拠を説明可能な形式で提示できるようにすることを指す。

説明できる機械学習の現在の技術的なトレンドとしては、(A)解釈可能な機械学習モデルによる解釈、(B)後付け解釈モデル(モデル非依存の解釈手法)の2つのアプローチが主流となる。

本ブログでは 以下のページにて、この説明できる機械学習技術での様々なアプローチについて述べている。

推薦技術

機械学習を用いた推薦技術では、ユーザーの過去の行動履歴や嗜好データなどを分析し、そのデータに基づいて、より良い個人化された推薦を提供することができる。推薦技術は以下のようなフローで構成される。①ユーザーのプロファイルを作成、②アイテムの特徴量を抽出、③機械学習モデルのトレーニング、④作成されたモデルより推薦を生成する。

本ブログではこの推薦技術に対して、 以下のページにて具体的な実装や理論について述べる。

時系列データ解析

時系列データとは、株価や気温、トラフィック量などの時間の経過に応じて値が変化するデータのことを呼ぶ。この時系列データに対して機械学習を適用することで、大量のデータを学習し、未知のデータに対する予測を行うことで、ビジネスの意思決定やリスク管理などに役立てることができる。

それらの中で代表的な手法としては、ARIMA(自己回帰和移動平均モデル)、LSTM(長短期記憶モデル)、Prophet(Facebookが開発した時系列データの予測に特化したライブラリ)、状態空間モデルなどが用いられる。これらの手法は機械学習に基づいた予測手法で、過去の時系列データを学習して未来の予測を行うものとなる。

本ブログでは 以下のページにて、この時系列データ解析について、理論的概要、具体的なアルゴリズム、さまざまな応用について述べている。

異常検知と変化検知

機械学習による異常検知は、通常の状況から大きく異なる状況を検出することを目的とした技術であり、変化検知は、ある状況から別の状況に変化が生じたことを検出することを目的とした技術となる。

これらは、例えば製造ラインの故障、ネットワークの攻撃、金融取引の不正など、あらゆる種類の異常な振る舞いを検出する目的に利用されたり、センサーデータや画像データなどの時間的な変化を検出することを目的に利用される。

本ブログでは 以下のページにて、この異常検知・変化検知のの具体的な技術としてホテリングのT2法から始まり、ベイズ法、近傍法、混合分布モデル、サポートベクトルマシン、ガウス過程回帰、疎構造学習など多様なアプローチについ述べている。

構造学習

データが持つ構造を学習することは、そのデータが何であるかという解釈を行う上で重要なものとなる。構造学習の中で最もシンプルなもは、階層的なクラスタリングであり、決定木による学習の基本的な機械学習アルゴリズムとなる。さらにデータ間の関係性を学習する関係データ学習や、グラフ構造学習、疎構造学習等がある。

本ブログでは 以下のページにてこれらの構造学習に関して述べている。

スパース性に基づく機械学習

スパース性に基づく機械学習とは、スパース性を利用して、高次元データの特徴選択や次元削減などのタスクを行う機械学習手法となる。

ここでのスパース性とは、データの中でほとんどの要素が0に近い値を持ち、ごく一部の要素だけが非ゼロの値を持つ性質のことを言い、L1正則化を用いた線形回帰やロジスティック回帰などのモデルによって引き出すことで、特徴選択や次元削減を行うものとなる。スパース性に基づく機械学習は、このように高次元データに対する解釈性を向上させることができるため、センサーデータ処理や画像処理、自然言語処理などの様々な分野でのデータの解析や予測モデル構築として広く利用されている。

本ブログでは 以下のページにて、このスパース性に基づく機械学習について、理論行な解説、具体的な実装、さまざまなアプリケーションについて述べている。

カーネル法の概要とサポートベクトルマシンについて

カーネル法とは、機械学習において非線形な関係性を扱うために用いられる手法で、カーネル関数と呼ばれる関数を用いて、データ間の類似性を測定し、入力データの特徴量同士の内積を計算することで、2つのデータ間の類似性を評価するものとなる。カーネル法は、主にサポートベクトルマシン(SVM)やカーネル主成分分析(KPCA)、あるいはガウス過程(GP)などのアルゴリズムで利用されている。

本ブログでは、 以下のページにてこのカーネル法の概要と主にサポートベクトルマシン関する理論、具体的な実装、さまざまなアプリケーションに関して述べる。

関係データ学習

関係データとは、N個のオブジェクトがあったときに、その中の任意のペアに対してどのような「関係」が存在するかを表すデータとなる。この関係データを表す形として行列を考えると、関係性は行列要素そのものとなり、関係データ学習とはこの行列データのパターンを抽出する学習とも言える。

これらが適用されるタスクには「予測(prediction)」と「知識抽出(knowledge xtraction)」の2つがある。

予測問題とは、観測データから学習、設計された統計モデルを用いて未観測のデータの値を推定する問題であり、知識抽出問題とは、関係データ自体の特性を解析することや、与えられた観測データを適切にモデリングすることによって、何らかの有用な知見やルール、知識につながる情報を抽出するタスクとなる。

本ブログでは、 以下のページにてこの関係データ学習に対して、理論的概要、具体的なアルゴリズムとさまざまな応用に関して述べている。

トピックモデルの理論と実装

トピックモデルとは、文書集合から潜在的なトピックを抽出し、文書の内容を理解するための確率的生成モデルとなる。トピックモデルを使うことである文書において、どのようなトピックが扱われているかを推定することができ、大規模なテキストデータ解析に適用すると、例えば大量のニュース記事やブログ記事などから、どのような話題が取り上げられているか、どのような傾向があるかを把握することができる。

トピックモデルの代表的なものには、Latent Dirichlet Allocation (LDA)やProbabilistic Latent Semantic Analysis (PLSA)等がある。これらのモデルでは、文書を構成する単語の出現頻度から、トピック分布と単語分布を推定することで、潜在的なトピックを抽出するものとなる。

またトピックモデルは、テキスト分析だけでなく、音楽や画像、動画などの分野にも応用される。トピックモデルを用いることで、①ニュース記事の分析、②ソーシャルメディアの分析、③レコメンデーション、④画像分類、⑤音楽ジャンル分類等の様々な応用に用いることができる。

本ブログでは 以下のページにて、このトピックモデルに対する基本的な理論とさまざまな応用について述べている。

因果推論と因果探索技術

膨大なデータの中から「相関」を導くことはさまざまな機械学習のアプローチで行われている。それらに対して、単なる「相関」ではなく、原因のと結果の関係である「因果関係」を導き出すことは、医療や製造業をはじめとした様々なシチュエーションでの応用が期待されるが、一般的な機械学習のアプローチとは異なった統計的アプローチが必要となる。

「因果推論」や「因果探索」技術はこのようなこのような「相関関係」ではない「因果関係」を対象とした技術となる。因果推論と因果探索は、両方とも因果関係を分析する方法だが、「因果推論」は因果関係を特定/検証するための手法であるのに対して、「因果探索」は因果関係を発見するための手法となり、目的とそのアプローチに違いがある。

本ブログでは、 以下のページにてこの因果推論/探索に関して、理論、実装、様々なアプリケーションについて述べている。

劣モジュラ最適化と機械学習

劣モジュラ関数は、離散的な変数に関する凸関数に対応する概念であり、組合せ最適化問題において重要な概念となる。「組み合わせ」とは「何らかの選択可能な集まりの中から、その一部を選択する」という手続き、およびそれに付随する種々の計算的な性質を意味する。

劣モジュラ関数は、これらの性質を用いることで、最小化や最大化のような最適化問題において、効率的な解法を見つけるために利用され、情報理論、機械学習、経済学、社会科学など幅広い分野において応用されている。具体的にはソーシャルネットワーク分析、画像セグメンテーション、検索結果のランキングやクエリ最適化、センサーネットワーク、広告配置問題、スケジューリングと電力/交通ネットワークの最適化などがある。

本ブログでは 以下のページにてこの劣モジュラ最適化の機械学習的アプローチについての理論と実装について述べる。

バンディット問題の理論とアルゴリズム

バンディット問題は、機械学習の分野における強化学習の一種で、複数の選択肢(アーム)のうち、どのアームを選ぶかを決定する問題となる。各アームは、ある確率分布に従って報酬を生成するが、その確率分布はエージェントには未知であり、エージェントは、何度かアームを引いて報酬を受け取りながら、どのアームが最も報酬が高いかを見つける。このようなバンディット問題は以下のような様々な仮定のもとで問題を解くことになる。①エージェントは、独立に各アームを選択する、②各アームは、ある確率分布に従って報酬を生成する、③アームの報酬は、エージェントには観測可能だが、確率分布は未知となる、④エージェントは、何度かアームを引いて報酬を受け取る。

またバンディット問題では、エージェントはどのアームを選択するかを決定するため、以下に示すようなアルゴリズムを使って報酬が最大となるアームを選択するための戦略を学習する。①ε-greedy法(一定の確率εでランダムにアームを選択し、残りの確率1-εで最も報酬が高いアームを選択する)、②UCBアルゴリズム(最も不確かなアームを優先的に選択することで、報酬の上限を増やすことを目指す)、③トンプソン抽出法(アームの確率分布の事後分布から、次に選択するアームをサンプリングする)。

バンディット問題は、実世界の問題にも応用され、例えば、ウェブサイトの広告配信や医療の治療法選択などに使用される。本ブログでは 以下のページにて、このバンディッド問題での理論と様々なアルゴリズムつにいて述べている。

その他のアプローチ

今回は位相的データ解析(Topological Data Analysis)についてのべる。

位相的データ解析とはデータの集合をトポロジーと呼ばれる「柔らかい」幾何を用いて解析する手法となる。幾何学を使ったデータ解析としては情報幾何学と呼ばれるものがあるが、こちらは機械学習を幾何的に説明しようというもので、機械学習とは,データが与えられた とき,そのデータにうまくあてはまるモデルを見つけると いう操作であり、モデルとは何らかのパラメータで表される空間であると考えると、データ点からモデルの空間への射影(関数)を見つけることが機械学習の本質となる。

それに対してトポロジーはというと、よく使われているコーヒーカップとドーナッツの例で言うと。コーヒーカップが切れない粘土のようなものでできているとした時、それを少しずつ変形していくと、最終的にドーナッツに変形することができる。

タイトルとURLをコピーしました