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

機械学習技術 自然言語技術 人工知能技術 デジタルトランスフォーメーション技術 DXの事例 本ブログのナビ

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

本ページではこれら機械学習について以下のような一般的なアルゴリズムについてまとめる。

一般的な機械学習の実装

  • 反復最適化アルゴリズムの概要と実装例について

反復最適化アルゴリズムは、与えられた問題の最適解を見つけるために反復的に近似解を改良していくアプローチとなる。これらのアルゴリズムは、最適化問題において特に有用であり、さまざまな分野で利用されている。以下に、反復最適化アルゴリズムの概要を示す。

  • ミニバッチ学習の概要とアルゴリズム及び実装例

ミニバッチ学習は、機械学習において広く使用される効率的な学習手法の一つであり、通常の勾配降下法(Gradient Descent)に比べて、計算効率が高く、大規模なデータセットに対しても適用可能なものとなる。ここでは、ミニバッチ学習の概要について述べる。ミニバッチ学習は、データセット全体を一度に処理するのではなく、サンプルを複数個(ミニバッチと呼ばれる)にまとめて一括で処理する学習方法で、各ミニバッチごとに損失関数の勾配を計算し、その勾配を使用してパラメータを更新するものとなる。

  • インターポレーション手法の概要とアルゴリズム及び実装例について

インターポレーション(interpolation)は、既知のデータポイント間の値を推定または補完する手法で、データセット内の点を結んで滑らかな曲線や曲面を生成し、未知の点における値を推定することができるものとなる。以下に、いくつかの主要なインターポレーション手法について述べる。

特徴エンジニアリングは、データセットから有用な情報を抽出し、機械学習モデルがそれを使用して予測や分類を行うための入力特徴を作成することを指し、機械学習やデータ分析のコンテキストで重要なプロセスとなる。ここでは特徴量エンジニアリングの様々な手法と実装について述べている。

  • モデルの量子化や蒸留について

モデルの量子化(Quantization)と蒸留(Knowledge Distillation)は、機械学習モデルの効率向上やデプロイメントの際のリソース削減のための手法となる。

  • Soft Targetによるモデルの蒸留の概要とアルゴリズム及び実装例について

ソフトターゲット(Soft Target)によるモデルの蒸留は、大規模で計算資源の高い教師モデルの知識を、小規模で効率的な生徒モデルに伝達する手法となる。通常、ソフトターゲットによる蒸留は、クラス分類タスクにおいて、教師モデルの確率分布を生徒モデルに教え込むことに焦点を当てている。以下に、ソフトターゲットによるモデルの蒸留の概要について述べる。

  • プルーニングやクオンティゼーションなどによるモデルの軽量化について

モデルの軽量化は、深層学習モデルをより小さい、高速、エネルギー効率の高いモデルに変換するための重要な手法であり、モデルの軽量化にはさまざまなアプローチがあり、その中にはプルーニング(Pruning)とクオンティゼーション(Quantization)が含まれている。

  • Post-training Quantizationの概要とアルゴリズム及び実装例について

Post-training quantization(事後量子化)は、ニューラルネットワークの訓練が終了した後にモデルを量子化する手法であり、この手法では、通常の浮動小数点数で表現されているモデルの重みと活性化を、整数などの低ビット数で表現される形式に変換するものとなる。これにより、モデルのメモリ使用量が削減され、推論速度が向上する。以下に、Post-training quantizationの概要を示す。

  • FitNetによるモデルの蒸留の概要とアルゴリズム及び実装例について

FitNetは、モデルの蒸留(Distillation)手法の一つで、小規模な生徒モデルが大規模な教師モデルから知識を学習するための手法となる。FitNetは特に、異なるアーキテクチャを持つモデル同士の蒸留に焦点を当てている。以下に、FitNetによるモデルの蒸留の概要について述べる。

  • Quantization-Aware Trainingの概要とアルゴリズム及び実装例について

Quantization-Aware Training(QAT)は、ニューラルネットワークを効果的に量子化(Quantization)するための訓練手法の一つであり、量子化は、モデルの重みや活性化を浮動小数点数から整数などの低ビット数で表現するプロセスで、これによってモデルのメモリ使用量を削減し、推論速度を向上させることができるものとなる。Quantization-Aware Trainingは、この量子化を訓練中にモデルに組み込むことで、訓練中に量子化の影響を考慮したモデルを得る手法の一つとなる。

  • Attention Transferによるモデルの蒸留の概要とアルゴリズム及び実装例について

Attention Transferは、深層学習においてモデルの蒸留(Distillation)を行うための手法の一つであり、モデルの蒸留は、大規模で計算負荷の高いモデル(教師モデル)から小規模で軽量なモデル(生徒モデル)へ知識を転送するための手法となる。これにより、計算リソースやメモリの使用量を削減しつつ、生徒モデルが教師モデルと同様の性能を発揮できるようになる。

  • 機械学習での未知のモデルへの対応策について

未知のデータに対処するための機械学習モデルの対策は、モデルの汎化性能を向上させる方法と、モデルが未知のデータにどのように対処すべきかを設計する方法の2つの側面がある。

  • Hard Negative Miningの概要とアルゴリズム及び実装例について

Hard Negative Mining(ハードネガティブマイニング)は、機械学習の分野の特に異常検知や物体検出などのタスクにおいて、難しい(学習が進まない)ネガティブサンプル(負例)を重点的に選択する手法となる。これにより、モデルがより難しいケースに対処できるようになり、性能向上が期待される。

  • 機械学習における過学習への対応方法

過学習(Overfitting)は、機械学習モデルが訓練データに過度に適合し、新しいデータに対して汎化性能が低下する現象であり、この過学習を防ぐために、以下の方法を試すことができる。

    類似性(similarity)は、二つ以上のオブジェクトや事物が共通の特徴や性質を持ち、互いに似ていると見なされる程度を表す概念であり、比較や関連性の観点からオブジェクトを評価したり、分類やグループ化を行ったりする際に重要な役割を果たしている。ここでは、様々なケースでの類似度の概念と一般的な計算方法について述べている。

    感情を抽出するために人工知能技術を使用する方法には主に(1)自然言語処理、(2)音声認識、(3)画像認識、(4)生体情報分析等のアプローチがある。これらの手法は、機械学習やディープラーニング等のアルゴリズムと組み合わされ、基本的には大量のトレーニングデータを用いて検出される。また、異なるモダリティ(テキスト、音声、画像、生体情報など)を組み合わせて感情を総合的に把握するアプローチもより精度の高い手法となる。

    テキストデータから感情を抽出する手法としては、具体的には、文章をトークンに分割し、単語の意味や文脈を理解するために機械学習アルゴリズムを使用し、感情分析のためのデータセットを使用してモデルをトレーニングすることで、未知のテキストに対して感情コンテキストを予測することが実現される。

      探索アルゴリズム(Search Algorithm)とは、問題の空間内で目標を見つけるために使用される計算手法の一群を指す。これらのアルゴリズムは、情報検索、組み合わせ最適化、ゲームプレイ、ルートプランニングなど、さまざまな領域で幅広く応用されている。ここでは、この探索アルゴリズムに関して様々なアルゴリズムと応用事例および具体的な実装について述べている。

      自己適応型探索アルゴリズム(Self-Adaptive Search Algorithm)は、進化計算や最適化の文脈で使われるアルゴリズムの一群で、アルゴリズム内のパラメータや戦略が問題に適応的に調整される特徴を持つものとなる。これらのアルゴリズムは、問題の性質や環境の変化に適応し、最適解を効率的に見つけるために設計されている。ここではこの自己適応型探索アルゴリズムに関して様々なアルゴリズムおよび実装例について述べている。

      多目的探索アルゴリズム(Multi-Objective Optimization Algorithm)は、複数の目的関数を同時に最適化するためのアルゴリズムとなる。多目的最適化は、1つの最適解を求めるのではなく、複数の最適解の中からバランスの取れた解(パレート最適解セット)を見つけることを目的としており、このような問題は、実世界の多くの複雑なシステムや意思決定問題に適用されている。ここではこの多目的探索アルゴリズムの概要とアルゴリズム及び実装例について述べている。

      機械学習のタスクにおいて、再現率は分類タスクに主に使われる指標となる。この再現率(Recall)100%を実現するとは、一般的なタスクの例で考えると、本来見つけたいデータ(陽性)を抜け漏れなく全て抽出することを意味し、現実のリスクが絡むタスクでは頻繁に現れるものとなる。

      しかしながらこのような再現率100%の実現は、データの特性や問題の複雑さによって制約され、一般的に達成することは困難となる。また、再現率100%を追求すると偽陽性(本来の陰性を陽性と間違える)の割合が増える可能性もあるため、そのバランスを考慮する必要も出てくる。

      ここでは、この再現率100%を実現するために考慮するべき課題とそれらに対するアプローチおよび具体的な実装について述べる。

      実世界での機械学習のタスクを行なっていると、同じラベルが付けられるべきものに異なったラベルが付けられているケースにしばしば出くわす。今回は、このような機械学習での教師データが不正確な場合にどのようにして対処するか、について述べている。

      学習するデータの量が少ない(スモールデータ)という課題は、機械学習の精度を下げる要因として様々なタスクで現れる問題となる。スモールデータでの機械学習は、データの制約や過学習のリスクを考慮しながら、様々なアプローチをとる。ここではそれぞれのアプローチの詳細と実装例について述べている。

      • SMOTE(Synthetic Minority Over-sampling Technique)の概要とアルゴリズム及び実装例について

      SMOTE(Synthetic Minority Over-sampling Technique)は、不均衡なクラス分布を持つデータセットにおいて、少数派クラス(minority class)のサンプルを合成して過少サンプリングを補完するための手法となる。SMOTEは、主に機械学習のクラス分類タスクにおいて、モデルの性能向上を図るために利用されている。以下にその概要について示す。

      • 機械学習におけるアクティブラーニング技術について

      機械学習におけるアクティブラーニング(Active Learning)は、モデルの性能を向上させるために、ラベル付けされたデータを効果的に選択するための戦略的なアプローチとなる。通常、機械学習モデルのトレーニングには大量のラベル付けされたデータが必要だが、ラベル付けはコストが高く、時間がかかるため、アクティブラーニングはデータ収集の効率を高めるものとなっている。

      • 機械学習技術でのターゲットドメインに特化したファインチューニングについて

      ターゲットドメインに特化したファインチューニングは、機械学習技術において、あるモデルを事前に訓練された一般的なモデルから、特定のタスクやドメインに関連するタスクに適したモデルに調整するプロセスを指す。これは、転移学習の一形態であり、以下のようなステップで実行される。

      アンサンブル学習(Ensemble Learning)は、機械学習の一種で、複数の機械学習モデルを組み合わせて、より強力な予測モデルを構築する手法となる。単一のモデルよりも複数のモデルを組み合わせることで、モデルの予測精度を向上させることができる。アンサンブル学習は、様々なアプリケーションで成功を収めており、機械学習の中でも非常に一般的なテクニックの一つとなる。

      • 転移学習の概要とアルゴリズムおよび実装例について

      転移学習(Transfer Learning)は、機械学習の一種であり、あるタスクで学習したモデルや知識を、異なるタスクに適用する技術であり、通常、新しいタスクに必要なデータが少ない場合や、高い性能を要求するタスクにおいて、転移学習が有用となる。ここでは、この転移学習の概要及び様々なアルゴリズムと実装例について述べている。

        自動機械学習(AutoML)は、機械学習モデルの設計、トレーニング、最適化のプロセスを自動化するための手法やツールを指す。AutoMLは、機械学習の専門知識が限られているユーザーや、効率的なモデルの開発を求めるユーザーにとって特に役立つものであり、以下の主な目標を持っている。ここでは、このAutoMLの概要と様々な実装例について述べている。

        • 質問応答型学習の概要とアルゴリズム及び実装例について

        質問応答型学習(Question Answering, QA)は、自然言語処理の一分野で、与えられた質問に対して適切な回答を生成するタスクとなる。QAシステムは、テキストデータや文書から情報を抽出し、質問に対する適切な回答を生成する能力を持っている。QAは、情報検索、知識ベースのクエリ処理、顧客サポート、仕事の効率化などのさまざまなアプリケーションで活用されている。ここではこの質問応答型学習の概要とアルゴリズム及び各種実装について述べている。

        フェルミ推定(Fermi estimation)は、精密な計算や詳細なデータが得られない場合に、大まかな見積もりをするための方法で、物理学者エンリコ・フェルミにちなんで名付けられたものとなる。フェルミ推定は、論理的思考と適切な仮定を用いて、複雑な問題に対して素早く近似的な答えを見つけるための手段として広く用いられている。今回は、このフェルミ推定を人工知能技術を用いて検討する方法について述べる。

          k-meansは、クラスタリングと呼ばれる機械学習のタスクで使用されるアルゴリズムの一つであり、様々なタスクで利用可能な手法となる。ここでのクラスタリングは、データポイントを類似した特徴を持つグループ(クラスタ)に分割する手法を指し、k-meansアルゴリズムは、与えられたデータを指定された数のクラスタに分割することを目指すものとなる。ここではこのk-meansの様々なアルゴリズムおよびその具体的な実装について述べている。

          決定木(Decision Tree)は、機械学習やデータマイニングのための予測モデルとして使用され、木構造を持つ分類・回帰手法となる。決定木ではデータの特徴(特徴量)に基づいて、クラス(分類)や数値(回帰)を予測するための条件分岐のルールを木の形で構築できるため、”説明できる機械学習“で述べられている様に機械学習の結果をホワイトボックス化することができる。ここでは、この決定木に関して様々なアルゴリズムとその具体的な実装例について述べている。

          EMアルゴリズム(Expectation-Maximization Algorithm)は、統計的推定や機械学習の分野で広く用いられる反復最適化アルゴリズムとなる。特に、未観測の潜在変数(latent variable)が存在する確率モデルのパラメータ推定によく用いられている。

          ここではこのEMアルゴリズムの概要と、混合モデル、HMM、欠損値推定、レーティング予測にそれぞれEMアルゴリズムを適用した時のフローとpythonによる実装例について述べる。

          EM(Expectation Maximization)アルゴリズムは、制約充足問題(Constraint Satisfaction Problem)の解法として使用することもできる手法となる。このアプローチは、欠損データや非完全データのような不完全な情報がある場合に特に有用となる。ここではこのEMアルゴリズムを用いた制約充足問題に関して、様々な適用事例とpythonによる実装について述べている。

          画像情報のラベル付けは、後述する様に様々な機械学習のアプローチで実現できる。今回は、それら機械学習のアプローチとルールベースのアプローチである制約充足によるアプローチの融合について考えてみたいと思う。これらのアプローチは自然言語処理等を用いたテキストデータのラベル付け等にも拡張できるものとなる。

          LightGBMは、Microsoftが開発したGradient Boosting Machine(GBM)のフレームワークであり、大規模なデータセットに対して高速かつ高精度なモデルを構築できるように設計されている機械学習のツールとなる。ここではpyhton、R、Clojureでの実装について述べる。

          一般化線形モデル(Generalized Linear Model, GLM)は、統計モデリングや機械学習の手法の一つであり、応答変数(目的変数)と説明変数(特徴量)の間の関係を確率的にモデリングするために使用されるものとなる。ここでは、この一般化線型モデルの概要と各種言語(python、R、Clojure)による実装について述べる。

          確率的最適化は、確率的な要素を含む最適化問題の解法を表し、機械学習での確率的最適化はモデルのパラメータを最適化する際にに広く使用されている手法となる。一般的な最適化問題では、目的関数を最小化または最大化するために、パラメータの最適な値を見つけることが目標であるのに対して、確率的最適化は、目的関数にデータの変動や観測誤差など、さまざまな要因によって引き起こされるノイズやランダム性が含まれる場合に特に有用となる。

          確率的最適化では、最適解を見つけるためにランダムな要素や確率的なアルゴリズムが使用される。例えば、機械学習の分野では、ニューラルネットワークの重みやバイアスなどのパラメータを最適化するために確率的最適化手法が頻繁に使用される。代表的な手法であるSGD(Stochastic Gradient Descent)では、データセットのサンプルをランダムに選択し、そのサンプルに基づいてパラメータを更新することで最適化を行うことで、モデルはデータセット全体を使用することなく効率的に学習することができる。

          マルチタスク学習(Multi-Task Learning)は、複数の関連するタスクを同時に学習する機械学習の手法となる。通常、個々のタスクは異なるデータセットや目的関数を持っているが、マルチタスク学習ではこれらのタスクを同時にモデルに組み込むことで、相互の関連性や共有できる情報を利用して互いに補完しあうことを目指している。

          ここではこのマルチタスクに対して、共有パラメータモデル、モデルの蒸留、転移学習、多目的最適化等の手法の概要について述べ、自然言語処理、画像認識、音声認識、医療診断等の応用事例とpythonによる簡易な実装例について述べている。

          スパースモデリングは、信号やデータの表現においてスパース性(疎な性質)を利用する手法となる。スパース性とは、データや信号において非ゼロの要素がごく一部に限られている性質を指す。スパースモデリングでは、スパース性を活用してデータを効率的に表現し、ノイズの除去、特徴選択、圧縮などのタスクを行うことが目的となる。

          ここではこのスパースモデリングに関して、Lasso、コンプレッション推定、Ridge正則化、エラスティックネット、Fused Lasso、グループ正則化、メッセージ伝搬アルゴリズム、辞書学習等の各種アルゴリズムの概要と、画像処理、自然言語処理、推薦、シグナル処理、機械学習、信号処理、脳科学等の様々な適用事例に対する実装について述べている。

          ロバスト主成分分析(Robust Principal Component Analysis、RPCA)は、データの中から基底を見つけ出すための手法であり、外れ値やノイズが含まれているようなデータに対しても頑健(ロバスト)に動作することを特徴としている。ここでは、このRPCAに関して様々な適用事例とpyhtonによる具体的な実装について述べている。

          • LLE (Locally Linear Embedding)について

          LLE(Locally Linear Embedding)は、高次元データを低次元に埋め込む非線形次元削減アルゴリズムの一つであり、データが局所的に線形であると仮定し、データの局所的な構造を保持しながら次元を削減するものとなる。これは、主にクラスタリング、データの可視化、特徴抽出などのタスクに使用されている。

          • 多次元尺度構成法(MDS, Multidimensional Scaling)について

          多次元尺度構成法(MDS)は、多変量データを可視化するための統計的手法の一つであり、データ間の距離または類似性を保持しながら、データポイントを低次元空間(通常は2次元または3次元)に配置する方法を提供するものとなる。この手法は、高次元データを理解しやすい低次元プロットに変換するために使用され、データの特徴やクラスタリングを可視化するのに役立つ。

          • t-SNE (t-distributed Stochastic Neighbor Embedding)について

          t-SNEは、高次元データを低次元に埋め込む非線形次元削減アルゴリズムの一つであり、t-SNEは主にデータの可視化やクラスタリングなどのタスクに使用され、特に高次元データの非線形構造を保持する能力が強みな手法となる。t-SNEの主なアイデアは、高次元データの類似性を低次元空間に反映させることとなる。

          • UMAP (Uniform Manifold Approximation and Projection)について

          UMAPは、高次元データの非線形次元削減手法であり、データの構造を保持しながら低次元に埋め込むことを目的としたもので、”t-SNE(t-distributed Stochastic Neighbor Embedding)について“で述べているt-SNEと同様に可視化やクラスタリングに使用されるが、いくつかの点で異なるアプローチを採用している手法となる。

          • DBSCAN(Density-Based Spatial Clustering of Applications with Noise)の概要と適用事例および実装例について

          DBSCANは、データマイニングや機械学習における人気のあるクラスタリングアルゴリズムであり、クラスタの形状を仮定するのではなく、データポイントの空間密度に基づいてクラスタを発見することを目的としたアルゴリズムとなる。ここでは、このDBSCANの概要とアルゴリズム、様々な適用事例とpythonによる具体的な実装について述べている。

          一般的な統計解析では、標本を要約統計量という観点からどのように記述するか、また、そこからどのように母集団のパラメータを推測できるかについて考える。このような分析は、一般的な母集団と特に標本について何かを教えてくれるが、個々の要素について非常に正確な記述をすることはできない。これは、データを平均と標準偏差という2つの統計量に還元することで、多くの情報が失われてしまうからである。

          さらに踏み込んで、2つ以上の変数間の関係を確立したり、ある変数から別の変数を予測したりしたいこともよくある。そこでは、相関と回帰の研究を行うことになる。相関は、2つ以上の変数間の関係の強さと方向性に関係する。回帰は、この関係の性質を決定し、そこから予測を行うことができる。

          線形回帰は、初歩的な機械学習アルゴリズムとなる。データのサンプルが与えられると、モデルは線形方程式を学習し、新しい未知のデータについて予測を行うことができるようになる。そのために、Clojureの統計ライブラリであるIncanterを用いて、オリンピック選手の身長と体重の関係を、Incanter を使ってどのように行列を操作できるかについて述べる。

          2つの変数に相関関係があることを知ることは有用だが、それだけでは、”Clojure/Incanterを用いた統計解析と相関評価“でも述べたデータを用いて、身長からオリンピック水泳選手の体重を予測することはできないし、その逆もまた然りとなる。相関関係の確立では関係の強さと符号を測定したが、傾きは測定していない。予測を行うためには、一方の変数が1単位変化したときに、もう一方の変数がどの程度の変化率になるかを知ることが必要となる。
          そこで必要となるのが、独立変数と呼ばれる一方の変数の具体的な値と、従属変数と呼ばれるもう一方の変数の期待値を関連付ける方程式となる。例えば、身長から体重を予測する一次方程式であれば、身長が独立変数、体重が従属変数になる。

          この方程式で表される直線を回帰直線という。この言葉は、19世紀の英国の博学者フランシス・ガルトン卿によって紹介されたもので、19世紀、彼は弟子のカール・ピアソン(相関係数を定義)と共に直線関係を研究する様々な方法を開発し、これらを総称して回帰手法と呼ぶようになった。

          前回”Clojureを用いた回帰分析(1) 単回帰モデル”では、1つの独立変数で回帰直線を構築する方法について述べた。しかし現実の問題を考える際に、複数の独立変数でモデルを構築することが望ましい場合も多い。この問題は重回帰問題と呼ばれる。各独立変数には、それ自身の係数が必要になる。そこでそれぞれの係数をアルファベットで表すよりも、新しい変数β(「ベータ」と発音)を指定して、すべての係数を保持することにする。

          入力画像は、一連の処理を経て、一つの特徴ベクトルとなる。クラス認識の最終段階として、この特徴ベクトルに、クラス(例えば「犬」や「猫」など)を付与する分類(classification)を行い、分類を行うアルゴリズムを分類器(classifier)と呼ぶ。

          ここでは分類器を構築するためのベイズ決定則について述べる。

          前回に引き続きパーセプトロン、深層学習、SVMを用いた分類器について述べる。

          クラス認織を考えた場合に、識別関数が0から1までの値を取るクラスの事後確率を予測できれば、入力データが対象としているクラスに所属している度合いを定量化することができる。しかしながら識別関数の出力は-∞から+∞であるために、直接的に事後確率と解釈するには困難であるため、線形識別関数を拡張してクラスの事後確率を予測する確率的識別関数(probabilistic discriminant function)を用いることでそれらに対応する。確率的識別関数を用いたアプローチであるロジスティック回帰やソフトマックス回帰はニューラルネットワークの重要な要素となっている。

            実際の画像には、なんらかの外乱やノイズが加わり、外乱などの影響を受けている画像から得られた局所特徴をそのまま利用すると、期待する認織精度が得られない可能性がある。そこで、観測されるデータの確立統計的な構造に基づいて認織に有利な特徴へ変換する統計的特徴抽出が必要となる。

            統計的特徴抽出(statistical feature extraction)とは、抽出した局所特徴に対して確率統計的な構造に基づいてさらに特徴抽出をおこない、ノイズや外乱の影響を受けにくい頑健な特徴に変換することを言う。統計的特徴抽出は、局所特徴だけでなく、画像認識の様々な特徴に適用可能な手法となる。

            データがどのクラスに所属しているのかといった外的基準、つまり教師情報の有無により統計的特徴抽出は分類できる。外的基準がない場合の特徴抽出手法には主成分分析を利用する。外的基準がある場合、クラス認識の特徴抽出にはフィッシャー線形判別分析、2変量の相関最大化には正凖相関分布、2変量の共分散最大化には偏最小2乗法を利用する。これらは一見すると異なる手法のように見えるが、相互には深く関係している。

            物体検出では、人や車などの物体を取り囲む四角い領域を画像中かに発見することを目的としている。物体検出の多くの手法では、物体領域候補を複数提案し、物体クラス認識の手法を用いて、それらの領域がどの物体に分類されるのかを判断する。画像から提案される物体領域候補は膨大となる場合が多く、物体クラス認識では計算コストの低い手法がよく利用される。

            画像から物体領域候補を提案する手法としては、スライディングウィンドウ法、選択検索法、分岐限定法がある。またそれらを分類する手法としてはExampler-SVM、ランダムフォレスト、R-CNN(regious with CNN feature)等がある。

            決定木学習器は、フューチャーとして得られる可能性のある結果の関係をモデリングするために、木構造(tree structure)を使う強力な分類器となる。

            決定木アルゴリズムの大きな特徴は、フローチャート風の木構造が必ずしも学習器内部専用になるわけではなく、モデルの出力結果を人間が読んで、特定のタスクのためにモデルが上手く機能する(あるいはしない)理由やメカニズムについて大きなヒントになるところにある。

            このような仕組みを用いることで、法的な理由で分類メカニズムが透明なものでなければならない場合や、組織間での商慣行を明示するために他者と結果を共有する場合に特に有効になる。

            今回はRを使った決定木のクラスタリングについて述べる。

            利用するデータはハンブルグ大学の機械学習データレポジトリよりダウンロードするBank Marketing Data Setのbank.zipを用いる。このデータの中にはドイツの金融信用調査のデータが格納されている。

            分類ルールは、ラベルの付けられていないインスタンスにクラスを与える論理if-else文という形で知識を表現する。これらは「前件(antexedent)」と「後件(consequent)」として指定され、「これが起きたら、あれが起きる」という仮説を形成する。単純な規則は「ハードディスクがカチカチ音を立てているなら、まもなくエラーを起こす」のように主張する。前件はフィーチャー値の特定の組み合わせから構成されるのに対し、後件は規則の条件が満たされたときに与えられるクラス値を指定する。

            分類ルール学習は、決定木学習と同様に使われることが多い。分類ルールは具体的には次のような将来の行動のための知識を生成するアプリケーションで使える。(1)機械装置のハードウェアエラーを引き起こす条件の識別、(2)顧客セグメントに属する人々のグループの主要な特徴の記述、(3)株式市場の株価の大幅な下落、または上昇の前触れとなる条件の抽出

            今回はRを使った決定木によるルールの抽出について述べる。

            ルールを抽出するデータとしては前回と同様にUCIレポジトリより、きのこが食べられるか?毒か?を判定するルールを抽出するデータを用いる。

            このセクションでは、多くの正しいアラインメント(正例)と正しくないアラインメント(負例)を提示することで、アラインメントのソート方法を学習するアルゴリズムについて説明する。これらのアプローチの主な違いは、本項の技術が学習のためにいくつかのサンプルデータを必要とすることにある。これは、アルゴリズム自身が提供し、判断対象となる対応関係のサブセットのみを用意するなどして、ユーザーが判断することもできるし、外部のリソースから持ってくることもできる。

            PCAは多次元のデータを次元圧縮する手法で、これは例えば2次元や3次元空間のデータを想定し、ある特定の1次元軸(直線)や2次元軸(平面)上でバラついている(分散が大きい)時、その直線あるいは平面上でデータが偏っているとして、元々あった2次元あるいは3次元の軸ではなく、特定の1次元軸(直線)や2次元軸(平面)上のデータとして表す事を言う。

            実際のアルゴリズムは、新たな部分空間(上述の特定の1次元とか2次元軸)を表す基底ベクトルeを想定し、データの分布の中央値(平均値)c0と共に使って最小か問題min E(c0, e)をラグランジュ未定係数法を用いて計算するものとなる。

            また次元圧縮技術としてはヒントンのオートエンコーダーのベンチマークとなっている技術でもある。

            シーケンシャルパターンマイニングは、値がシーケンスで配信されるデータ例間で統計的に関連するパターンを見つけるデータマイニングで構造データマイニングの特殊な例となる。

            これらの中で行われるタスクとしては「シーケンス情報の効率的なデータベース化とインデックスの構築」「頻繁に発生するパターンの抽出」「シーケンスの類似性の比較」「欠落しているシーケンスデータの補完」等がある。

            具体的な応用例としては、遺伝子やタンパク質の配列情報の分析(例:ヌクレオチド塩基A、G、C、Tの配列)とそれらの機能の発現解析、また株式売買やECでの大規模なトランザクション(ひとまとめの取引)で生じる、購買アイテムのパターン抽出(例:顧客が玉ねぎとじゃがいもを購入すると同じトランザクションでひき肉を購入する可能性が高い)、またワークフロー等のプロセスマイニングにも用いられる。ここで代表的なアルゴリズムであるaprioriについて述べる。

            FP-Growth(Frequent Pattern-Growth)は、データマイニングおよび頻出パターンマイニングのための効率的なアルゴリズムであり、トランザクションデータセットから頻出パターン(アイテムセット)を抽出するために使用される手法となる。ここでは、このFP-Growthアルゴリズムに関して様々な応用事例およびpythonによる実装例について述べる。

            基本的なパターン認織のアルゴリズムとして、最近傍法、決定木、ニューラルネットワークについて紹介する

            隠れマルコフモデルとは、確率モデルの一つであり、観測されない(隠れた)状態を持つマルコフ過程となる。状態が直接観測可能なマルコフ過程と異なり、観測されたデータの情報を使って、その裏側にある「隠れた」状態を推測するものとなる。今回はこれに対するビタビアルゴリズムと確率的生成モデルによるClojureでの実装について述べる。

            推薦技術

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

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

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

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

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

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

              モデルの検証

              統計的な仮説検定(Statistical Hypothesis Testing)は、統計学の中で、ある仮説が真であるかどうかを確率的に評価する手法であり、統計手法の評価に用いられるだけではなく、機械学習においても、予測の信頼性評価やモデルの選択と評価に用いられたり、”説明できる機械学習“でも述べているような特徴選択の評価に用いられたり、”異常検知と変化検知技術“で述べている様な正常と異常の判別性能の検証などで用いられるなど、基本的な技術となっている。ここでは、この統計的な仮説検定に関して、様々な手法とそれらの具体的な実装例について述べている。

              特定の集団における健康関連事象の頻度や分布を調査し、その要因を解明し、かつ研究成果を健康問題の予防やコントロールに適用する学問を疫学(epidemiology)という。疫学の始まりとされているのが19世紀に行われたjhon snowによるコレラ(Chilela)の研究となる。

              「統計学はよくわからない」という初学者の声をしばしば聞くことがある。また、統計学を深く知った上で同様の発言をする数理科学者もいる。統計学に対するこの意見は一概に不勉強であるとか不当なものであるとは言えない。統計学は「推論の方法」に関わるものであり、「確率の概念」に基礎を置いている。しかし「合理的な推論とは何か?」という問いに応えることは容易なことではない。周知のように、ギリシャのの昔から今日に至るまで、時の最高の知性がこの難問に取り組んできたが、この問題を巡る論争は決着したとは言えない。さらに「確率」という概念は一筋縄では捉えることが難しく、これも論争が絶えない。この事実から観るならば、統計あるいは確率をわからないと感じる人の方が、健全な常識の持ち主かもしれない。容易にこれらを理解できたと考える人がいるならば、その人は己の理解の度合いを再点検してみる必要があるかもしれない。統計学がわかりにくいのは故なきことではないのである。

              SVMの実応用では、正則化パラメータなどのハイパーパラメータを適切に決める必要がある。この問題はモデル選択と呼ばれ、機械学習における重要なトピックの一つとなる。これに対して、まずモデル選択法の一つである交差検証法について述べる。

              k分割交差検証法ではk個の学習と評価を行う。上手に沿って説明すると、1回目はD2〜Dkを集めた𝑘1𝑘𝑛𝑎𝑙𝑙個の事例の訓練データとし、D1に含まれる1𝑘𝑛𝑎𝑙𝑙個の事例の集合を評価データとする。訓練データを用いて分類器を学習し、得られた分類器を評価データで評価する。同様に、2回目はD1,D3〜Dkの同じく𝑘1𝑘𝑛𝑎𝑙𝑙個の事例の訓練データとし、D2に含まれる1𝑘𝑛𝑎𝑙𝑙個の事例の集合を評価データとして、学習と評価を行う。同様のステップをk回目まで繰り返す。

              ここでは、SV分類のための正則化パス追跡アルゴリズムについて述べる。このアルゴリズムはSV分類の双対問題を解く際に利用されることが多い。まず決定関数の双対表現と双対問題について復習し、次に双対変数の最適解が正則化パラメータCにおけるものであることを導出する。そしてそれらを用いてSV分類器での正則化パス追跡アルゴリズムについて述べる。

              Clojure for Data Scienceより。教師なし学習アルゴリズムの一つであるクラスタリングの評価のテクニックについて述べる。次元の呪い、マハラノビス距離、Davies-Bouldin指標、Dunn指標、二乗誤差、RSME、クラスタ数推定、クラスタ間密度、クラスタ内密度)

                アンサンブル学習

                アンサンブル学習法は,深層学習に続く次のトレンドとして注目されている。ブースティングやバギングなどの代表的な方法で複数の学習器を訓練し,それらを組み合わせて利用するという,最先端の機械学習法である。単一の学習法に比べてはるかに精度の高いことが知られており,実際に多くの場面で成功を収めている。
                本書は,機械学習の分野で世界をリードしているZhi-Hua Zhou著の邦訳である。1章はアンサンブル法の背景となる知識をあつかう。2章から5章は,アンサンブル法の核となる知識をあつかう。5章では最近の情報理論多様性と多様性生成について議論する。6章からは,高度なアンサンブル法について述べる。人工知能,機械学習にたずさわる,研究者,技術者,学生には,必読必携の書である。

                特徴空間においてデータが複雑に分布している場合、非線形な分類器が有効となる。非線形な分類器を構成するには、カーネル法やニューラルネットワークなどを利用した手法が挙げられる。ここでは単純な分類器を複数組み合わせることで、非線形な分類器を構成する集団学習(ensemble learning)について述べる。なお、集団学習はアンサンブル学習とも呼ばれている。

                集団学習として、訓練データ集合からサブセットを生成し、各サブセットで予測器を学習させるバギングについて述べる。この手法は、とくに不安定な学習アルゴリズムに有効となる。不安定な学習アルゴリズムとは、訓練データ集合の小さな変化が、学習される予測器の構造やパラメータに大きな影響を与えるアルゴリズムのことを言う。不安定な学習アルゴリズムとして、ニューラルネットワークや決定木がある。

                有限なデータ集合から多様なサブセットを生成する手法として、ブートストラップ法が(bootstrap method)がある。これは、データ集合からランダムに復元抽出をM回繰り返すことで、M個の新規なデータ集合を生成する手法となる。

                機械学習において、「アンサンブル学習」という言葉を一度くらいは目にしたことがある人は少なくないのではないでしょうか。実はこの考えは機械学習をしていく上で、なくてはならない重要なものです。さらに、アンサンブル学習には「バギング」「ブースティング」「スタッキング」という三つの手法があります。これらはどう違うのでしょうか。「アンサンブル学習とは何か」という定義から手法の違い、また学習する上でのメリットや注意点まで、基本的な知識を解説します。

                今回は単純な学習アルゴリズムを組み合わせる学習法である集団学習について述べる。またその代表例としてブースティングについて述べ、予測精度の理論的な評価を与える。

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

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

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

                  データ分析

                  メタヒューリスティックアルゴリズム

                  メタヒューリスティクスとは、難度の高い最適化問題を解くための経験的手法(ヒューリスティクス)を有機的に結合させたものであり、最近では、実務的な問題を楽に解くためのフレームワークとして、実務家の間でよく用いられる最適化アルゴリズムとなっている。実際問題を解くとき、ある程度のプログラミングの腕と、メタヒューリスティクスの選択眼と、設計のコツさえつかんでいれば、比較的短時間でロバスト(頑強)な解法を設計できる。

                  • 遺伝的アルゴリズムの概要と適用事例および実装例について

                  遺伝的アルゴリズム(Genetic Algorithm, GA)は、進化的計算の一種で、自然界の進化プロセスを模倣して問題の最適化を行うための最適化アルゴリズムであり、最適化、探索、機械学習、機械設計など、さまざまな問題に適用されている手法となる。以下に、遺伝的アルゴリズムの基本的な要素と仕組みについて述べる。

                  • 遺伝的プログラミング(Genetic Programming, GP)の概要とアルゴリズム及び実装れ形について

                  遺伝的プログラミング(Genetic Programming, GP)は、進化的アルゴリズムの一種であり、機械学習や最適化の手法として広く使用されている手法となる。GPはプログラムの進化を通じて問題に対する最適なソリューションを見つけようとするものとなる。以下に、GPの概要について述べる。

                  • 遺伝子発現プログラム(Gene Expression Programming, GEP)の概要とアルゴリズム及び実装例について

                  遺伝子発現プログラミング(Gene Expression Programming, GEP)は、進化的アルゴリズムの一種であり、特に数式やプログラムの進化的な生成に適している手法となる。この手法は、数式やプログラムの形態を進化させ、特定のタスクや問題に対する最適なソリューションを見つけるのに役立てられている。以下にGEPの主な特徴と概要について述べる。

                  粒子群最適化(Particle Swarm Optimization、PSO)は、鳥や魚の群れの行動をモデル化し、自然界の群れの動きに着想を得たもので、進化計算アルゴリズムの一種であり、複数の個体が群れを形成し、最適解を探索する手法となる。PSOは、局所解に陥りやすい遺伝的アルゴリズムよりも、より広範な探索空間を探索できることが特徴となる。また、他の進化計算アルゴリズムよりも計算時間が短く、高速に最適解を見つけることができることがある。PSOは、機械学習や最適化問題の解決に広く用いられており、多数の研究や実用例が報告されている。

                  • カルトン法(Cultural Algorithm)の概要と適用事例及び実装例について

                  カルトン法(Cultural Algorithm)は、進化アルゴリズムの一種であり、文化的な要素を導入して進化アルゴリズムを拡張した手法で、進化アルゴリズムは、自然界の進化プロセスを模倣して問題解決を行うアルゴリズムの総称であり、遺伝的アルゴリズムや遺伝的プログラミングが代表的な例となる。カルトン法は、これらの進化アルゴリズムに文化的な要素を導入し、個体の進化だけでなく、個体間の知識や情報の伝達も考慮しているものとなる。

                  前回は類似性を表す方程式のセットを用いた反復的な類似性計算アプローチについて述べた。今回はそれらを更に拡張した最適化アプローチについて述べる。今回はそれらの中からまず、期待値最大化と粒子群最適化の2つの手法について述べる。

                  前回はアライメントのソートのための機械学習について述べた。今回はマッチングのチューニングアプローチについて述べる。

                  コメント

                  1. […] 前回は、機械学習の概略について述べた。今回は「ツールボックスとしての機械学習」の具体例について述べたいと思う。それらのアプローチの選択肢の一つはR言語とそのライブラリーの利用となる。 […]

                  2. […] 次回は機械学習技術について述べてみたい。 […]

                  3. […] 前回述べた機械学習の結果を利用するにはデータベースもしくは検索エンジンにデータを投入して活用するのが最も手早くできる方法となる。クライアントのUIは、nodeやreactあるいはD3.js等を利用して見える化し、サーバー側でデータベースあるいは検索エンジンとREST等を介してつなげる構成だ。 […]

                  4. […] コンピューターサイエンスの根底には数学がある。例えば深層学習等の機械学習には関数から始まり微分/積分を使った最適化の計算が使われ、シンボリックなアプローチでは集合論がベースに式の評価が行われたりしている。それらの「応用」を考える前にそれぞれの基礎的な要素について知識を整理することは重要な作業となる。 […]

                  5. […] 自然言語処理の機械学習で利用される。one-hot-vectorとcategory vectorのClojureでの実装。(形態素解析やCSVの入出力以外は極力外部のライブラリを使わない形で実装。 […]

                  6. […] 人工知能技術サマリー  デジダルトランスフォーメーションサマリー  画像情報処理技術サマリー  深層学習技術サマリー サポートベクトルマシンサマリー 決定木等基本機械学習サマリー.  機械学習技術サマリー […]

                  7. […]    検索技術サマリー    一般的な破壊学習サマリー […]

                  8. […] コンピューターサイエンスの根底には数学がある。例えば深層学習や自然言語処理等に用いられるの機械学習には関数から始まり微分/積分を使った最適化の計算が使われ、人工知能で使われるシンボリックなアプローチでは集合論がベースに式の評価が行われたりしている。それらのデジタルトランスフォーメーション応用やITシステム応用を考える前にそれぞれの基礎的な要素について知識を整理することは重要な作業となる。 […]

                  9. […] 初心者のための機械学習概要、学習の種類と結果の相違 | Deus Ex Machina より: 2022年1月22日 7:38 AM […]

                  10. […]   深層学習技術サマリー 基本機械学習サマリー. […]

                  11. […]  画像情報処理技術サマリー  確率的生成モデルサマリー 一般的な機械学習サマリー  […]

                  12. […] 機械学習技術サマリー 自然言語技術サマリー 人工知能技術サマリー デジタルトランスフォーメーション技術サマリー   一般的な機械学習技術サマリー IOT技術サマリー […]

                  13. […] 一般的な機械学習サマリー     R言語と機械学習    […]

                  14. […] 一般的な機械学習サマリー      […]

                  15. […]  一般的な機械学習技術 劣モジュラ最適化  […]

                  16. […]  一般的な機械学習技術 劣モジュラ最適化  […]

                  17. […]  一般的な機械学習技術 劣モジュラ最適化  […]

                  18. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション技術 オントロジー技術 サポートベクトルマシン 一般的な機械学習       ベイズ学習 […]

                  19. […] 機械学習技術 人工知能技術 デジタルトランスフォーメーション技術 サポートベクトルマシン 一般的な機械学習       画像情報処理 […]

                  20. […]  一般的な機械学習技術サマリー 劣モジュラ最適化サマリー  […]

                  21. […]  一般的な機械学習技術サマリー 劣モジュラ最適化サマリー  […]

                  22. […]  一般的な機械学習技術 劣モジュラ最適化  […]

                  23. […]  一般的な機械学習技術 劣モジュラ最適化  […]

                  24. […]  一般的な機械学習技術 劣モジュラ最適化  […]

                  25. […]  一般的な機械学習技術 劣モジュラ最適化  […]

                  26. […]  一般的な機械学習技術 劣モジュラ最適化  […]

                  27. […]  一般的な機械学習技術 劣モジュラ最適化  […]

                  28. […]  一般的な機械学習  […]

                  29. […]  一般的な機械学習技術 劣モジュラ最適化  グラフデータアルゴリズム  […]

                  30. […]  一般的な機械学習技術 劣モジュラ最適化  グラフデータアルゴリズム  […]

                  31. […]  一般的な機械学習技術 劣モジュラ最適化  […]

                  32. […]  一般的な機械学習技術 劣モジュラ最適化  […]

                  33. […]  一般的な機械学習技術 劣モジュラ最適化  […]

                  34. […] 人工知能技術  デジダルトランスフォーメーション  機械学習技術   深層学習 確率生成モデル 画像情報処理技術  一般的な機械学習 […]

                  35. […] 人工知能技術  デジダルトランスフォーメーション  機械学習技術   深層学習 確率生成モデル 画像情報処理技術 サポートベクトルマシン技術サマリー 一般的な機械学習サマリー  […]

                  36. […] 初心者のための機械学習概要、学習の種類と結果の相違 | Deus Ex Machina より: 2023年6月6日 9:44 AM […]

                  37. […] 自然言語技術 人工知能技術 デジタルトランスフォーメーション技術 一般的な機械学習技術 IOT技術 劣モジュラ最適化 […]

                  38. […] 人工知能技術 Clojure デジタルトランスフォーメーション技術 一般的な機械学習とデータ分析 DXの事例 […]

                  39. […] 人工知能技術 デジタルトランスフォーメーション技術  深層学習技術 一般的な機械学習 R言語と機械学習 ノイズ除去と欠損値補間 […]

                  40. […] 人工知能技術 デジタルトランスフォーメーション技術 深層学習技術 一般的な機械学習 R言語と機械学習 Python […]

                  41. […] Twitter Facebook はてブ Pocket LINE コピー 2023.08.17 2022.09.22 機械学習技術 一般的な機械学習 人工知能技術 Clojure 本ブログのナビ […]

                  42. […] デジタルトランスフォーメーション技術 アルゴリズムとデータ構造 一般的な機械学習 Python […]

                  43. […] アルゴリズムとデータ構造 数学 プログラミング技術 R言語 一般的な機械学習 構造学習 […]

                  44. […] デジタルトランスフォーメーション技術 アルゴリズムとデータ構造 一般的な機械学習 Python ノイズ除去と欠損値補間 […]

                  45. […] デジタルトランスフォーメーション技術 アルゴリズムとデータ構造 一般的な機械学習 Python […]

                  46. […] 知識情報処理 深層学習技術 強化学習 説明できる機械学習 一般的な機械学習 スモールデータでの機械学習 物理・数学 […]

                  47. […] デジタルトランスフォーメーション技術 アルゴリズムとデータ構造 一般的な機械学習 Python […]

                  48. […] デジタルトランスフォーメーション技術 アルゴリズムとデータ構造 一般的な機械学習 Python […]

                  49. […] デジタルトランスフォーメーション技術 アルゴリズムとデータ構造 一般的な機械学習 Python […]

                  50. […] デジタルトランスフォーメーション技術 アルゴリズムとデータ構造 一般的な機械学習 Python […]

                  51. […] 初心者のための機械学習概要、学習の種類と結果の相違 | Deus Ex Machina より: 2022年7月8日 4:12 AM […]

                  52. […] デジタルトランスフォーメーション技術 アルゴリズムとデータ構造 一般的な機械学習 Python […]

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