機械学習について知ろう
DNA配列の分類やドローン・対話型ロボットの作製、Googleに代表される検索エンジンのアルゴリズムなど、複雑な制御機構がどのように実現されているのか疑問に思ったことはないでしょうか。
これらの先進的な分野にはコンピュータが人間の『学習』に当たる仕組みを実現する技術・手法が用いられています。
『AI(人工知能)』活用が進む社会で重視されている『機械学習』を見てみましょう。
機械学習とは
『機械学習』とは、機械(主にコンピュータ)に人間の「学習」にあたる機能を与え、トレーニングする技術・手法の総称です。
例えば、人間が書物から情報を得て、それを理解して一つ賢くなる、というプロセスを機械が行うことのようなものです。
ここから学習・識別したパターンを用いて未知のデータについて予測・決定を行える能力を与えます。
分類と回帰
機械学習アルゴリズムにはさまざまな種類がありますが、まずは『分類』と『回帰』の指向性・目的性の違いを見てみましょう。
分類は、離散的(規則性がなくバラバラ)なデータを合格か不合格かといった「YES or NO」をアルゴリズムに予測させます。例えば、ネコのをどんなものかを教えた後に、ネコの画像を見せて「ネコかネコ以外か」を分類させます。
回帰は、売り上げのデータ予測などの値の予測を行うものです。回帰分析には入力データから回帰直線を作成しデータ予測する「線形回帰」や「多項式回帰」などが存在します。
いずれも後述する『教師あり学習』に分類されますのでイメージしておきましょう。
機械学習の3分類を知ろう
機械学習アルゴリズムは要求される結果により分類することができます。
機械学習の研究が進む中でさまざまな手法が考案されていますが、ここでは主な3種について見ていきましょう。
教師あり学習
『教師あり学習(Supervised Learning)』では、事前に与えられたデータを「例題」とみなして、それをガイドにデータへ合わせる「学習」を行います。
典型的なものは分類問題と回帰問題です。機械は人間ではないですので、データの関連性や傾向を判断するためには、データを数式に置き換えて考えます。
つまりは、人間が教師役となって数値や正解のデータをコンピュータへ情報を与えるっものです。そしてコンピュータは、入力と正解データをもとに、未知のデータについても学習し判断してくれます。
教師なし学習
教師あり学習に対して『教師なし学習(Unsupervised Learning)』では例題である入力のみからモデルを構築します。出力すべきものがあらかじめ決まっていないという点で、教師あり学習とは大きく異なるものです。
教師あり学習では、コンピュータへ正解データが与えられていますが、教師なし学習では正解データは与えられません。では、どのようにモデルを構築するのでしょうか。
例えば、コンビニでの購買データから年齢や季節商品、時間毎の売上をコンピュータ自らが学習し、正解データがなくても自動的にマッピングします。相関関係がなさそうでも実は隠れた頻出パターンをコンピュータが導き出すのが教師なし学習です。
強化学習
『強化学習(Reinforcement Learning)』では「エージェント」が周囲の環境を観測することでどう行動すべきかを学習します。
エージェントは行動によって必ず環境に影響を及ぼし、環境から報酬という形で得るフィードバックを学習アルゴリズムのガイドとするものです。
またエージェントはこの一連の行動から報酬が最も多く得られるような「方策(policy)」を学習するという特性もあります。
最も基本的なモデルとして『マルコフ決定過程』を見ていきましょう。これは以下の特徴を持つことが挙げられます。
- 環境は状態を持ち、それは完全に正確に観測可能である
- エージェントが行動を行うと環境が確率的に状態遷移し、環境から確率的に報酬が得られる。その遷移確率と報酬が得られる確率は事前には与えられず、学習過程で学習していく
- エージェントは報酬の指数移動変数を最大化するように行動する
機械学習の事例
次にこれら機械学習が応用されている身近な例を見てみましょう。
スパムフィルター
メールの『スパムフィルター』は、迷惑メールに頻出する単語・表現とその出現確率をもとに、スパム・非スパムの分類を行っています。
ここで用いられる機械学習は、ガイドになる例題を大量に与える教師あり学習の「多クラス分類問題」の例として最もシンプルなものの一つと言えるでしょう。
例題から迷惑メールに該当するワードの「YES or NO」を判断するというところを機械学習アルゴリズムで実行し、迷惑メールに該当するなら迷惑メールBOXに送るというプログラムと組み合わせて運用されています。
また、より洗練されたアルゴリズムでは迷惑メールに「該当するかもしれない」としてユーザーの入力を待つ分類を行う場合もあるでしょう。
商品レコメンド
Google検索やECサイトでよく見られる『商品レコメンド』でも、アイテム同士の類似度計算に機械学習が用いられています。
この場合のアルゴリズムは、データから特徴や傾向を分析するため教師なし学習を用いることが典型的と考えられますが、その他の手法を用いている場合もあるようです。
商品レコメンドはユーザーべースとアイテムベースに大別することができます。
ユーザーベースでは、ユーザーを商品閲覧履歴の類似度などからグループ分けし、そのユーザー群の中で特に閲覧傾向が高かったり実際に購入される確率の高い商品などおすすめするものです。
一方、アイテムベースでは、ある商品と分類カテゴリやサイズ・価格などの性質が類似する商品や一緒に購入されることが多い商品をおすすめします。
顔認識
『顔認識』はパターン認識の一種で「コンピュータビジョン(Computer Vision)』の分野で研究開発される機械学習の例です。
人間の視覚システムは複雑で、子どもでも分別できる物体とその性質の関連性をコンピュータに正しく判断させるとき、高度な機械学習アルゴリズムが要求されます。
例えば、丸いものの中に目が2つで鼻と口が一つで顔、というパターンを学習させただけでは、人間とゴリラを区別せず、実物の人間と肖像画の違いを認識できない場合があります。
このため教師データには要素と全体が持つ意味性・関連性のラベルを持たせる試みなどが行われていますが、それでも曖昧な画像を誤判断するなどまだまだ研究途上の分野と言えるでしょう。
自動運転
『自動運転』は「オートパイロット」とも呼ばれます。空路を行き衝突の危険が少ない旅客機のオートパイロットは既に広く運用されていますが、公道を走る自動運転車は衝突する要因が多すぎるためいまだ実験段階です。
自動運転車の開発においては、レーダー・LIDAR・GPS・カメラといったセンサーからデータを取得しながら、さまざまなシチュエーションで走行を繰り返す「強化学習」が実践されています。
また標識や信号といった固定的な情報に関しては「教師あり学習」を用いるなど、さまざまな機械学習手法を用いて、極限状況を含め考えうるあらゆる状況下で無人運転が可能な「完全自動運転」を目指した研究開発が進められています。
機械学習とディープラーニングの違い
機械学習・ディープラーニングという語の違いやその関連性について見てみましょう。
ディープラーニングとは
『ディープラーニング(Deep Learning)』は『深層学習』とも呼ばれ、人間の脳のような役割を持っている「多層のニューラルネットワーク(ディープニューラルネットワーク・DNN)」による機械学習の手法です。
コンピュータ自らが完全一致なデータではなく、データに含まれる潜在的な特徴を理解して、より正確で効率的な判断をさせて実現している技法となっています。画像認識やパターン認識の分野で使用がされています。
例えば、ゴリラの画像認識をさせる場合は、あらかじめゴリラの特徴を抽出し、記録させ、コンピュータ側でゴリラの特徴と合った画像を導いてくれるのです。この場合、ゴリラの特徴を事前にコンピュータと照らし合わせる必要もあります。
機械学習とディープラーニングの関係性
ディープラーニングは機械学習の中で現在注目を浴びる手法の一つとなっています。
近年では以下に挙げるさまざまな要因から研究が容易になり、2000年代から始まった「第三次人工知能ブーム」が到来し、各産業でシステムの実用化が加速しています。
- コンピュータのハード性能の急激な進歩
- インターネット普及によるデータ収集の容易化
- 演算の並列処理に優れたGPUの低価格化
- 画像処理におけるディープラーニングの有用性の世界的認知
機械学習とアルゴリズム
次に、機械学習を学ぶ上で欠かせない『アルゴリズム』について見てみましょう。
アルゴリズムとは
『アルゴリズム』とは問題を解くための手順を定式化した形で表現したものをいい、コンピュータにアルゴリズムをソフトウェア的に実装するものがプログラムです。
機械学習におけるアルゴリズムは『機械学習アルゴリズム』と呼ばれることがあります。
機械学習アルゴリズムの精度
機械学習の研究が進められる中で、さまざまな機械学習アルゴリズムが定義されています。
ディープラーニングは非常に優れたアルゴリズムを提供しますが、全ての処理においてこれを適用することが最適とは限りません。求める機能と用意できるデータによって高い精度が得られるアルゴリズムは変わってくるでしょう。
例えば自動運転車では、複数のセンサーからの入力を複合的に処理して最も安全な走行速度や回避行動を選択する必要があります。
ここでは「熟練された間違いを犯さない優秀なドライバー」を実現するためにディープラーニングが有用です。
「セルフレジ」などでは入力と求められる結果の関係がシンプルであるため、特化型のコンパクトなアルゴリズムを用いた方が演算リソースを無駄に消費せず素早い決断ができます。
代表的な機械学習アルゴリズム
機械学習アルゴリズムは目的によって分類され、その特徴や複雑さなどもさまざまです。ここでは代表例として3種のアルゴリズムを見てみましょう。
決定木
『決定木(Decision Tree)』は木構造を持つ予測モデルであり、ある事柄に対する観察結果から、その事柄の目標値に関する結論を導きます。
データから決定木を作る手法のことを『決定木学習(Decision Tree Learning)』と呼び、『データマイニング』でよく使われる手法です。
サポートベクターマシン(SVM)
『サポートベクターマシン(SVM)』は分類や回帰に使われる一連の教師あり学習の技法であり、「パターン認識モデル」の一つです。
「線形サポートベクターマシン」と「非線形ベクターマシン」があり、未学習データに対して高い識別性能を得るための工夫があるため、認識性能が特に高い学習モデルとして知られています。
ロジスティック回帰
『ロジスティック回帰(Logistic Regression)』は、2種類の結果しか得られないベルヌーイ分布に従う変数の「統計的回帰モデル」の一種であり、確率の回帰であるため統計学の分類によく用いられる学習モデルです。
機械学習系のエンジニアの需要
機械学習を行うには実装とトレーニングを行うエンジニアの存在が欠かせません。機械学習エンジニアの需要について見てみましょう。
機械学習エンジニアの不足
機械学習を応用する分野はバイオインフォマティクス・証券市場分析・音声認識や画像認識といったパターン分析など多岐に渡ります。
海外からの情報流入により我先にと機械学習を導入したい企業が増えるものの、比較的新しい分野であり学習コストも低くはないことから、現場の機械学習エンジニアの総数はまだ十分ではありません。
企業からの需要と機械学習エンジニアの供給がマッチしていない状況があると言えます。
今後ますます需要が高まる
現代において、情報検索機能の発達やGPUの低価格化など、ディープニューラルネットワークを研究・応用できる環境が既に得られています。
今までよりもさらに、優秀な機械学習エンジニアを得られた企業が時代をリードする社会になっていくと予想されますので、成功を求める多数の企業の間で人材獲得競争が加熱していくかもしれません。
今存在する仕事の多くが将来的にAIに取って代わられると予測されていることもあり、その社会インフラを構築できる機械学習エンジニアの需要はさまざまな業界で高まっていくと予想されます。
機械学習の入門を学ぶために
機械学習エンジニアにはアルゴリズム・システム・データなどについての広範な知識と実装スキルが必要になります。基礎から学べる良書にあたって勉強を進めましょう。
Python機械学習プログラミング
機械学習エンジニアとして学習しておきたい言語の代表格に「Python」が挙げられます。
『Python機械学習プログラミング』は機械学習のさまざまな手法の背景にある理論や特徴を解説した上で、Pythonによる実装法を網羅的に解説した専門書です。
- 商品名:Python機械学習プログラミング達人データサイエンティストによる理論と実践impress top gearシリーズ
- 価格:3888円
- Amazon:商品ページ
やさしく学ぶ機械学習を理解するための数学のきほん
より基礎的なレベルで機械学習を学びたいなら『やさしく学ぶ機械学習を理解するための数学のきほん』はおすすめです。
機械学習アルゴリズムの基本から簡単な実装まで、初歩的ではありますが機械学習の一連の流れを学べます。
- 商品名:やさしく学ぶ機械学習を理解するための数学のきほんアヤノ&ミオと一緒に学ぶ機械学習の理論と数学、実装まで
- 価格:2580円
- Amazon:商品ページ
初めてのTensorFlow
『初めてのTensorFlow』は、数式を使わずにディープラーニングの理論と実践を詳細に学べる技術書です。
Googleが運用するディープラーニング・フレームワークのTensorFlowと互換性があり初心者向けのTFLearnを用いて、Pythonでの実装を体験するという内容になります。
- 商品名:初めてのTensorFlow──数式なしのディープラーニング
- 価格 : 2160円
- Amazon : 商品ページ
まとめ
これまで人間が行なってきた仕事もAIが代理できるようになっていき、AIのトレーナーと機械があれば仕事が成り立つという産業分野が増えていくことが予想されています。
AIの実装とトレーニングにはアルゴリズム・システム・データについて広範で深い知識を持った機械学習エンジニアが必要ですので、今後はその需要が高まっていくのではないでしょうか。
既に機械学習エンジニアは不足傾向にありますので、今後のエンジニアライフを有意義に過ごすために機械学習を学んでみましょう。