人工知能・機械学習・ディープラーニング

前章では「データサイエンスとは何か?」のイメージを掴むために活用事例を通して解説を行いました。本章では、具体的に人工知能、機械学習、ディープラーニングの関係性の違いや中身について深堀りしていきます。人工知能の開発ロードマップとして、実際に開発をする際に必要となるステップを載せていますので、開発の流れの大枠だけでもここで把握しておきましょう。

本章の構成

  • 人工知能 (Artificial Intelligence)
  • 機械学習 (Machine Learning)
  • ディープラーニング (Deep Learning)
  • 機械学習の開発ロードマップ

人工知能 (Artificial Intelligence)

近年では、人工知能 (Artificial Intelligence: AI) の活用が注目を集めており、データサイエンスの中でも取り組んでいる研究者が多い領域です。

01_6

人工知能、機械学習、ディープラーニングの 3 つをテーマにその結びつきの簡単な概略を紹介していきます。人工知能、機械学習、ディープラーニングの違いは、上図からわかるように人工知能という概念の中に機械学習があり、その中にディープラーニングが位置しています。本章を通してそれぞれの位置付けを把握していきましょう。

人工知能が 3 つの概念の中で最も大枠となり、人間のように学習や推論を行わせる概念を指しています。最近では、人工知能と言えば収集したデータに基づいて学習させるデータ駆動型のイメージが強いですが、本来の意味はそれだけではありません。

例えば、人間が学習・習得した知識・ノウハウをプログラミングすることにより形式化・再現可能にして、それをコンピューターで動かすことも人工知能と言えます。もちろん、この後で紹介する機械学習のように、集めたデータに基づいて(データ駆動型で)コンピューター自身が学習も行って、学習した結果に基づいて推論を行う場合も人工知能と言えます。

人工知能を勉強すると必ず出てくるキーワードとして、先述した学習と推論があります。「どういったことを行うのか?」という具体的なイメージ(問題設定)を持っておくことで、実際に現場へ導入する際に、「どういった情報を集めるべきか」(学習すべきデータ)が明確になるため、今回はこの学習推論に焦点を当てましょう。

学習

学習とは、規則性を見つけてモデル化することを指します。例えば、顔写真から名前を推測したいといった問題設定を考えてみましょう。

この問題設定に対し、機械学習を用いない場合、私達が顔を認識するように、肌の色や顔のパーツの形などを用いて、名前を推測できるようなプログラムを記述する方法になります。この際にどのようなパーツに着目するのか、どういった点に注意すべきかといった人間のノウハウをプログラミングする必要があります。

それに対して、後述する機械学習では、下図のように顔写真(入力値)と名前(目標値)を 1 セットにして与えることで、その名前を予測するロジック自体は特に考えなくても機械が自動的に見つけてくれます。ただし、自動的に見つけるためには、その関係性を機械が見つけられるためのデータ量が必要となります。

01_07

推論

学習を終えて得られた学習済みモデルを用いて、新しい入力値に対してその予測値を求めることを推論と言います。AI 搭載のプロダクトには、この学習済みモデルを用いた推論機能が組み込まれています。

AI を使うというと最初から推論のフェーズだと勘違いしていることもありますが、学習が先に必要となります。ただし、最近では人間の顔を検出するなどといった汎用的な問題に対する学習済みモデルが公開されていることも多く、そういった事例では学習のフェーズは飛ばして推論から考え始めることが出来ます。しかし、これらの公開されている学習済みモデルはあくまで汎用的な問題設定に対するものであり、業務で用いるような特化した問題設定に対応するためのモデルは自身で構築する必要がある場合が多いです。

01_08

機械学習 (Machine learning)

機械学習は、収集したデータに基づいてモデルの学習を行い、そのデータの構造の特徴を掴むことを行います。その対象となるものが人工知能でも紹介したノウハウをプログラミングすることです。機械学習では、データに基づいて規則性を見つけます。

機械学習には、大きく以下の 3 つのトピックがあります。

  • 教師あり学習
  • 教師なし学習
  • 強化学習

それぞれの学習の違いについて紹介します。

教師あり学習

教師あり学習は、学習と推論の部分で紹介したものになります。学習では、入力値 xx (情報)と目標値 tt (答え)のセットを与え、その規則性・関係性を見つけます。そして、学習で獲得した学習済みモデル(入力値と目標値の規則性・関係性)と新たな入力値 xx から、予測を行います。また、この予測の事を推論と呼びました。

この教師あり学習は下記 2 つの種類に分ける事ができます。

  • 回帰 (regression) : 目標値に連続値を取る(家賃、売上、株価など)
  • 分類 (classification) : 目標値にカテゴリを取る(犬/猫、男/女、赤ワイン/白ワインなど)

教師あり学習の最大の特徴は目標値が必要であるということです。答えに該当するこの目標値は、人間が手作業でラベル付け(答えを与える)を行う必要があります。

教師なし学習

教師なし学習はその名の通り、目標値(答え)がありません。教師あり学習と異なり、予測する対象が決まっていないということになります。この点が教師あり学習とは大きく異なる点になります。

01_10

教師なし学習は主にデータの背後に存在する本質的な構造を抽出するために用いられます。代表的な教師なし学習の手法には下記の 2 つが挙げられます。

  • クラスタリング
  • 次元削減

クラスタリングを例に教師なし学習の理解を深めましょう。クラスタリングでは下記の図のようにデータに対してクラスター(グループ)を作る手法になります。クラスタリングの中で代表的なアルゴリズムの 1 つである k-平均法では、データ間の距離が近いデータをクラスターとします。

01_11

教師なし学習の特徴は目標値、答えが無いことでした。答えが無いということは上図のようにいくつかのクラスターに分割したとしても、このクラスターが持つ意味などはわかりません。そのため、基本的に教師なし学習では、出力結果を人間側で統計量などを用い意味解釈を行い、そして得られた結果をどのように活用に繋げるのかを考慮する必要性があります。

クラスタリングはマーケティングなどにしばしば用いられます。クラスタリングを用いて、顧客のグループ分けを行い、それぞれのグループについて分析を行い、グループ毎に対し、施策を講じるといった事を行ったりします。

この場合もやはりクラスターごとの意味は人間側が解釈を行い、どのような施策をとるのかも人間側が考慮する必要がある部分になります。

強化学習

AlphaGo が囲碁で人間に勝利して以来、強化学習も注目を浴びるようになってきています。強化学習は教師あり学習や教師なし学習とは異なり、少数もしくは全くデータがない状況でも学習を行うことができます。

わかりやすい例としては、地図も与えられずに部屋に置かれたロボットが部屋の構造を把握するときに強化学習を用います。部屋の構造がわからないときにはとりあえず障害物に当たるまで歩いてみます。そして、障害物に当たると方向を変えてまた歩いてみます。これを繰り返すことで部屋の情報を把握することができます。

今回の例で、部屋は環境 (environment) 、ロボットはエージェント (agent) と表現されます。ロボットは歩くという行動 (action) をとります。その行動の結果、壁にぶつかる、障害物にぶつからずに進めたなどの結果を得ることができます。その状態 (state) と結果に対する報酬 (reward) を元にエージェントは次の行動を決定します。そして、これを繰り返すことにより、より効率的に部屋の探索を行えるように学習を行います。

このように行動しながらデータを収集し、そのデータで学習を行い、次の行動を決めていくといったプロセスまでが強化学習には含まれているところが特殊です。

01_15

このような説明を行うと、経営の意思決定なども強化学習で行うことができれば万能だという話も聞きますが、強化学習にも適用できるために条件があります。それは、シミュレーションできる環境もしくは、実機で何度も再現できる環境が必要であるということです。この条件を満たすことができる代表的な領域がゲームロボットです。

ゲームの領域では、ルールが決まっているため、何度でもそのゲームを再現することができ、多くの行動の試行錯誤を行うことができます。これにより、より強い手を打つ行動を学習することができます。

ロボットの領域では、物理法則というルールがあり、この法則に基づいてシミュレータを作ることができます。シミュレータ上ではゲーム同様に何度でも試行錯誤を行うことができ、洗練された行動を行えるように学習できます。

このように強化学習をうまく用いるための条件としてシミュレータの存在というポイントも抑えておきましょう。

ディープラーニング (Deep Learning)

機械学習はあくまで概念であり、具体的な手順は明らかになっていません。そこで実際にコンピューターが実行できるレベルまで具体的な手順を明確化したものを、アルゴリズムと呼びます。そして、この機械学習アルゴリズムのひとつがディープラーニングです。もちろん、ディープラーニング以外にも決定木ロジスティック回帰といった他の機械学習アルゴリズムも存在します。

ディープラーニングは機械学習アルゴリズムの一種ではありますが、他のアルゴリズムと比べて画像認識や自然言語処理の分野で大きな進展をもたらしました。ディープラーニングは主に教師あり学習で用いられます。教師なし学習や強化学習でも用いられますが、本プラットフォームでは教師あり学習の用途で使用することが主であるため、ひとまず教師あり学習で考えましょう。

ディープラーニングがこれまでの機械学習のアルゴリズムと異なる点を解説します。まず、下記の図を確認して下さい。

ディープラーニング

図の上側の流れがこれまでの機械学習アルゴリズムの開発の流れで、下側がディープラーニング登場後の流れです。

例えば、顔の画像と人の名前を関係性・規則性を見つける問題設定の場合、単純に加工前の画像を入力として与えたとしても、どこに注目して良いかを見つけることが難しく、うまく予測ができない問題がありました。そこで、特徴抽出と呼ばれる属人的に、画像を機械が認識しやすくなるように加工(前処理)を行う工程をはさみます。

これにより、ある程度良い結果が得ることも可能です。しかし、問題設定が変わるごとに毎回特徴抽出の方法を考案する必要があり、複雑な問題設定では適用できないという問題がありました。

その一方、ディープラーニングでは、この特徴抽出の工程をアルゴリズムの一部として組み込むことに成功し、データに基づいて特徴抽出まで学習できることで、属人的であった工程を省くことができました。この進歩により、これまで以上に複雑な問題設定に取り組めるように進歩しました。

また、画像と同様に扱える幅が広がった領域として、自然言語があります。日英翻訳などの翻訳機能が数年前に大きく改善されたことが記憶に新しいのですが、その大きな改善の前後にはディープラーニングの登場がありました。私達が普段何気なく使っている言葉は、想像以上に複雑です。この自然言語も画像と同様に特徴抽出が困難な問題設定でした。そこでディープラーニングの登場により、複雑な特徴抽出をアルゴリズムの一部として組み込む事によって翻訳などの精度が向上しました。

機械学習の開発ロードマップ

機械学習の概要が理解できたところで、機械学習を活用するための大枠を紹介します。データ解析を実際に業務で活用していくことは一筋縄ではいきません。では、どのような準備などが必要か、まず心構えとして理解しておくためにも一連のロードマップを大枠だけ知っておきましょう。

01_16

まずはデータの前処理からモデル構築まで工程の中でも中核となる部分をメインに以降のチュートリアルで学んでいきます。

01_24

それぞれの項目でやるべきことは問題点、よくある失敗など多くの注意点が存在します。しかし今の段階で、これらすべてを網羅的に理解する必要はありません。皆さんの学びが進んでいったあとで、実際にプロダクトを作成するフェーズになったときにもう一度この図と図の中身について詳しく考えていきましょう。

shareアイコン