機械学習とは最近ではよく耳にするようになった「AI(人工知能)技術」において、主にデータ分析で活用されている技術を指します。しかし、聞いたことはあっても実際の仕組みや何ができるのかなどについては知らない方も多いでしょう。
本記事では機械学習の「概要」「仕組み」「種類」「手法」「活用事例」などについて、解説していきます。
目次
1.機械学習とは
機械学習の概要
機械学習とは、大量のデータから読み取ったパターンやルールを基に予測や分類などのデータ分析を行う方法です。「ML(Machine Learning)」とも呼ばれています。
人間は過去の経験や実績から今後の対策や予測を行うことが可能です。機械学習ではそれをコンピュータにやってもらうために必要とする方法になります。
機械学習は人間とは比べ物にならない量のデータを学習することで特徴量(分析を行うためのパターンやルールを特定するための情報)を抽出し、予測が可能です。それによって、ヒューマンエラーを回避し、精度の高い分析を可能としています。
機械学習の仕組み
機械学習の仕組みで大切なのは「モデル」と「アルゴリズム(手法)」です。
モデルとは、学習した内容を基に入力データの分析を行い、結果を出力する仕組みになります。そして、モデルがどのような分析や判断を行うかを決めているのが、アルゴリズムです。
モデルが大量のデータの特徴量をアルゴリズムに基づいて学習していき、学習後に新しいデータを与えると学習に基づいた予測や分類などができるようになるのです。また、目的や用途、データの特性などで使用するアルゴリズムが変化するため注意が必要になります。
イメージとしては「モデル=ハードウェア」で「アルゴリズム=ソフトウェア」といった認識でよいでしょう。
AIとの関係
機械学習はAIで用いられる手法の1つです。
AIに用いられる手法は大まかに分類すると「ルールベース」と「機械学習」になります。
ルールベース
ルールベースとは、人間が用意したルールに従って処理を行う手法です。
「ある条件△で、あるデータ〇の入力があった場合、結果◇を出力する」といったような命令を人間が用意して、その命令をAIが忠実にこなしていきます。
チャットボットや定型の業務などでの活用が一般的です。
機械学習
機械学習は、与えられたアルゴリズムと大量のデータから学習という工程を経て、与えられたデータを処理する手法を指します。
ルールベースとの大きな違いは、「学習を行うこと」です。ルールベースでは人間が処理のルールを決めますが、機械学習は人間がルールを決めるのではなく、学習した上で導き出します。
機械学習は、処理を行う際の「基準」を人間が決めずにコンピュータ側が導き出すことを可能にした技術なのです。
ディープラーニングとの関係
機械学習に関連する用語に「ディープラーニング(深層学習)」という言葉があります。ディープラーニングとは、機械学習の手法の1つです。
詳しくは後で説明しますが、通常の機械学習ではアルゴリズムに人間が特徴量を抽出するための情報を入力し、学習します。一方、ディープラーニングは、特徴量を抽出する方法もアルゴリズムが学習し、導き出せるようにしたものです。
それを可能とするのが、人間の神経細胞に似た「ニューラルネットワーク」という技術になります。これによって、人間に近い認知判断の処理を行えるようにして、より高度な分析が可能です。
2.機械学習の種類
機械学習には大きく分けて、3つの学習方法があります。
それは「教師あり学習」「教師なし学習」「強化学習」の3つです。
それぞれの学習方法によって、適している処理も違うため、1つずつ見ていきましょう。
教師あり学習
概要
教師あり学習(英:Supervised Learning)とは、人間が教師のように問題(入力データ)と正解(出力データ)を与えて、学習させる方法です。
例えば、画像に表示されているのが「リンゴ」か「梨」かを判別させたい場合に、リンゴの画像にはリンゴというラベルを付け、梨の画像にも同様に梨というラベルを付けて与えます。そうすることで、それぞれの特徴量(この場合は色)を抽出して、学習後に画像が与えられるだけでリンゴか梨かを出力できるようになるのです。
得意な処理
連続するデータから数値を予測する「回帰」
データをグループ分けする「分類」
アルゴリズム
サポートベクターマシン(SVM)
決定木
教師なし学習
概要
教師なし学習(英:Unsupervised Learning)とは、教師あり学習とは違い、人間が正解(出力データ)を与えることはありません。そのため、教師なし学習では正解を見つけるのではなく、規則性や法則性からデータのカテゴライズをするための学習を行います。
例えば、画像に写っているのが「リンゴ」か「リンゴ以外」かを分類したい場合、まずはリンゴの画像とリンゴ以外の画像を大量に与えるのです。そこから、リンゴにはあるパターンやルールなどを学習していき、リンゴかリンゴ以外かを分類できるようになります。
得意な処理
大量のデータから重要データを抽出する「次元削減」
類似データのグループ化をする「クラスタリング」
アルゴリズム
主成分分析
k平均法(k-means)
強化学習
概要
強化学習(英:Reinforcement Learning)とは、上記の2つにプラスして、出力データからも学習を行います。提示された目標を基に出力データを評価し、より良い出力を学習する方法です。
評価は人間が与える場合と、センサーなどの周辺機器から取得する場合があります。
例えば、自動運転を行う場合には道や障害物の情報によって、判断方法が異なりますが、教師あり学習や教師なし学習では学習後にそれらを追加することはできません。しかし、強化学習では、「安全な運転を行う」という目標のもと新たな情報が含まれた際の出力を評価して、より安全な運転ができるようにしていくのです。
得意な処理
教師あり学習と教師なし学習のどちらにも応用が可能なため、それぞれの得意な処理に活用できます。
アルゴリズム
ニューラルネットワーク
ディープラーニング
3.機械学習の手法
サポートベクターマシン
サポートベクターマシン(SVM)は、2つのデータ群を分類する境界線・超平面を求め、分類や回帰を必要とする問題解決を可能にする手法です。
この手法では、特徴量データをグラフの座標のようにあらわすことで、その座標の集まりを最適に分割できる線形関数(境界線・超平面)を導き出します。そのグラフと線形関数によって新しいデータがどちらのデータ群に分類できるかなどの判定が可能です。
この手法で大切なのが「マージン最大化」という手法で、分類するデータ点と境界線の距離(マージン)を最大化することで、与えられたデータの誤判別を減らすために用いられます。
この手法を用いることで少量のデータからでも精度の高い分類が可能です。
決定木
決定木は、入力データが持つ特徴からフローチャートのような「yes/no」の分岐を複数の組み合わせで行い、出力データまで詳細に分類していく手法になります。
決定木は目的が分類では「分類木」、回帰では「回帰木」と呼ばれることもあるため、覚えておきましょう。
この手法では二者択一の分岐が行われるため、データがどのように分類されたかがわかりやすく、学習に間違えがあった際などに修正がしやすいのがメリットです。
k平均法(k-means)
k平均法(k-means)は、類似の特徴を持つデータ群を、指定したグループ数でランダムに割り当てます。各グループの中心点を算出し、各データを各グループの中心点と最も近いグループに再割り当てする有名なクラスタリングアルゴリズムです。
シンプルではありますが、ランダムなグループ分けを行うために各中心点が近くなり、分類ができなくなるという欠点があります。
主成分分析
主成分分析は、多次元の特徴を持つデータ群から重要度や優先度の高い情報を厳選し、次元数を最小化する次元削減のアルゴリズムです。膨大なデータのパターンやルールを調査する際に活用でき、データ分析におけるコストの削減につながります。3次元以下までに次元削減ができれば、グラフによる視覚的な分析も可能になるため便利です。
ニューラルネットワーク
ニューラルネットワークとは、人間の脳神経系であるニューロンの仕組みを参考にしたアルゴリズムになります。人間が複雑な思考を可能にしているのは複数のニューロンが電気信号(情報)を交換しているからで、それを参考にニューラルネットワークでは「入力層」「中間層」「出力層」での複数の段階を踏んで情報処理をすることによって、複雑な処理を可能にしているのです。
学習手法に制限はなく「教師あり学習」「教師なし学習」「強化学習」のすべてに応用が可能になります。
段階的に分析と評価により従来のアルゴリズムよりも高精度な出力や幅広い対応範囲があるのが魅力です。
ディープラーニング
ディープラーニングは、より精度の高い学習や分析を行うためにニューラルネットワークの中間層をより深い階層構造にしたアルゴリズムになります。数百層を超える構成や各層との接続方式の工夫などにより複雑な問題解決に活用が可能です。
ニューラルネットワークの応用系のため、すべての学習手法へ活用できます。
関連記事
機械学習と深層学習(ディープラーニング)の違い|基礎から活用例をわかりやすく紹介
CNN(畳み込みニューラルネットワーク)」とは?仕組みなどの基礎から活用例、将来性までわかりやすく解説
4.機械学習の活用事例
おすすめ機能
サイトの閲覧履歴やショッピングサイトでの購入履歴をもとに「あなたへのおすすめ」「購入履歴から」などの機能です。
この機能には、履歴のデータから機械学習による分類や予測が活用されております。
マーケティング
市場のニーズやトレンドのデータを機械学習のアルゴリズムで分析して、次のニーズやトレンド予測や最適な戦略を考案するために必要な情報を導くことが可能です。
傾向予測
店舗ごとの各商品の売り上げや在庫の変化などのデータから在庫の管理や仕入れの予測を行ったり、過去の気候データから、天気予報や災害発生など予測にも機械学習を活用した分析が利用されています。
故障予測
工場や生産設備などで蓄積された事故や故障の記録をもとに機械学習が分析を行い、事故や故障の発生前に予測が可能です。それによって、事故や故障の予防や点検の効率化を図れます。
カメラでの画像認識機能
画像や動画から顔や物体を認識してピントやフォーカス、照合なども機械学習によるピクセルごとの特徴量の抽出をすることで可能です。また、最近では医療画像から患部の識別を行う診断サポートや画像から要素の削除、ズーム時の補正などにも活用されています。
自動運転や運転サポート機能
周辺の道路状況をカメラやセンサーによって取得し、最適なハンドル操作や危険な操作を行った際の警告を表示するなども機械学習の活用により可能です。
最近では、駐車時に車を上から見ているように表示するサポート機能でも利用されています。
音声アシスタント
SiriやGoogleアシスタントなどで音声から日本語や英語などの自然言語を抽出するのにも機械学習は欠かせない存在です。最近では、精度が上がってきているために、発音や言葉の区切り方などが不自然だと単語をうまく認識できない場合も出てきています。
カスタマーサポート
企業への問い合わせの際に使う「チャット」や「電話」での対応も入力された文字を機械学習で識別して、AIが対応するシステムです。このシステムにより、一部の問い合わせに対しては24時間365日の対応が可能になっています。
文字の変換、予測
普段何気なく使用しているスマホやパソコンでの文字の入力や変換でも、機械学習は利用され、各文字の利用履歴から予測が可能です。また、文章の要約やメールの返信文の作成なども登場しています。
5.機械学習の将来性と課題、注意点、学習リソース
機械学習の注意点
機械学習では、以下のようなことに注意が必要です。
運用段階での評価
過学習
未学習
ブラックボックス問題
それぞれについて解説していきます。
運用段階での評価
運用段階では、「学習時になかった未知のデータ」から予測や分類を行うことが必要です。そのため、学習後に実際に業務や研究での運用前に行うテスト運用での評価が重要になります。
それを判断する方法で代表的なのが期待値との「誤差」です。機械学習においては、学習時のデータに関連する「訓練誤差」と、未知のデータによる「汎化誤差」の2つに分けて評価を行います。機械学習では汎化誤差を最小化できるようにアルゴリズムとモデルの工夫や作り込みが必要です。
過学習
過学習とは、訓練誤差の小ささに対して汎化誤差が大きい状態を指します。原因となるのは「学習時のデータの偏りや少なさ」「モデルの表現能力の高さ」です。
受験勉強を例に考えてみましょう。
ある受験生は受験勉強で特定の問題集のみで繰り返し勉強を行ったとします。その問題集は選択問題のみで記述や穴埋め、〇×などの問題形式がない問題集です。受験生はその形式での問題に対しては正答率を高い水準にすることができました。
しかし、受験で出された問題は記述と穴埋め問題ばかりで受験生はうまく答えることができなかったのです。これは特定の解答方法での勉強を行いすぎて、他の解答方法への対応力が不足している状態になります。
これが過学習のイメージです。1つの方法に特化してしまうと、汎用的な方法への対応力が下がってしまう現象になります。
未学習
一方、訓練誤差と汎化誤差の両方が大きい状態が未学習です。これは学習データとアルゴリズムの特性の不一致により、分析が失敗する場合におこります。
先ほどと同じく受験勉強を例に考えてみましょう。
別の受験生が選択、記述、穴埋め、〇×などの複数の方式の問題集を一度だけ勉強を行ったとします。この学生は複数の方式をざっと解いただけで、それぞれの解き方の特性を理解していない状態です。
この状態で受験にいくと当日に出た解き方に対応することができず、正しい答えを出すことができません。これが未学習のイメージです。
ブラックボックス問題
機械学習において、何故そのような予測が行われたかを説明できなくなるという問題があります。ニューラルネットワークやディープラーニングなどのアルゴリズムが複雑になればなるほどこの現状は発生しやすくなり、どのように修正すれば良いかわからなくなってしまう現象が「ブラックボックス問題」です。
有名な話に「ゴリラ」を判別するアルゴリズムが人間の女性をゴリラだと判別してしまったということがありました。この時、学習データに問題は確認できず、どういった特徴量からそのような判定を行ってしまったのかの解明はできませんでした。
このように分析過程のどこに問題があったのかを学習後に判定することが困難になる可能性も考慮する必要があるということです。
機械学習の実装
機械学習の実装でよく利用されているのがオープンソースのプログラミング言語「Python」になります。
これはPythonがシンプルな文法で記載が可能なことや機械学習に関連する機能をまとめたライブラリが豊富にあるからです。他のプログラミング言語に比べて環境が整っており、少ないコード量での実装が期待できることから注目されています。
また、PythonはYouTubeやInstagramなどでも利用されている信頼度の高い開発言語であり、コードがシンプルであることから学習コストが低いことも大きな要因です。
機械学習の実装にはPythonの学習が必須といっても過言ではないでしょう。
機械学習の将来性
機械学習の将来性は十分にある分野です。その理由には以下の要因が関係しております。
AI技術の発展
データ量の増加
コンピュータの処理能力向上
それぞれについて詳しく見ていきましょう。
AI技術の発展
前述でも紹介した通り、AI技術は「おすすめ機能」「音声アシスタント」などの日常的な分野から、「自動運転」「画像認識」などの研究分野までさまざまな範囲で活用されるようになってきています。
今後も医療や金融などの分野での活用も行われているため、AI技術の利用範囲は拡大していくことが期待できるでしょう。
データ量の増加
XやInstagramなどのSNSの普及、スマートフォンやPCなどの機器に多様なセンサーの搭載により、あらゆるデータが取得しやすくなりました。そのため、モデルに学習させるためのデータの質や量も集めやすく、精度の高い分析ができるようになったのです。
デジタル化が進めば進むほど収集できるデータは増え続けるため、対応分野も増えていくでしょう。
コンピュータの処理能力向上
コンピュータの処理能力は1秒間に実行可能な処理の向上やコア数とキャッシュメモリの増加などにより、高性能化が進んでいます。
それにより、データ量の増加への対応もでき、学習時間や分析時間の短縮も期待できるため、より楽に機械学習を活用できるようになるでしょう。
関連記事
AIにできること・できないことは?AIに仕事が代替される?その他活用事例を解説
PythonでAI開発!【初心者向け】ライブラリの紹介学習のヒント、未来展望など解説
6.まとめ
本記事では機械学習の基礎知識から具体的な応用事例、導入時の注意点まで解説してまいりました。
機械学習の基礎をしっかり理解した上で活用していきましょう。
また、Pythonをはじめとするプログラミング言語や関連する知識を組み合わせることで、AI・深層学習(ディープラーニング)との違いをさらに深く理解できるでしょう。
本記事が皆様にとって少しでもお役に立てますと幸いです。