意外と身近なDeep Learning

はじめに

現在、AIの発展がめざましく近い将来、人間はAIに仕事を奪われるというようなことも言われています。そんなAIの分野で注目を集めているDeep Learningという技術をご存知でしょうか。名前くらいは知っているけど、詳しくは知らないという方も多いかもしれません。
そこで今回は、Deep Learningとはどういう仕組みをしていて、どういった特徴を持つのか、また、その活用例などをご紹介させていただきます。

Deep LearningとAI、機械学習との関係

まず、Deep Learningと関連するキーワードであるAIと機械学習について解説をします。

AI

AIとは、Artificial Intelligence(人工知能)の略であり、「人工的にコンピュータ上などで人間と同様の知能を実現したもの」です。しかし、一般的に広い概念を持ち、学者の中でも定義が異なり、統一的見解はないようです。

AIは分類のひとつとして「強いAI」と「弱いAI」という分け方があります。強いAIとは、人間のような自意識や感情があり、汎用的な知的処理が可能なAIを指し、技術的にいまだ実現はされていません。一方、弱いAIとは、人間の知性の一部分のみを代替し、特定の処理だけをするAIを指し、現在実用されているAIは全て弱いAIとなります。

また、「汎用型AI」と「特化型AI」という分類方法もあります。汎用型AIは、特定の課題に対してだけでなく、人間のように様々な課題を処理可能なAIであり、対して、特化型AIは特定の課題に特化して自動的に学習や処理を行うAIです。この分類でも汎用型AIは実現されていませんが、特化型AIは画像認識や音声認識の分野で広く活用されています。

上記2つの分類の違いは「強いAI」と「弱いAI」は、「AIが人間のような意識や知性を持つか」という視点での分類であるのに対し、「汎用型AI」と「特化型AI」は、「AIが人間のように広範な課題処理ができるか」という視点での分類であるということです。

機械学習

機械学習とは、人間の学習能力をコンピュータで実現しようとする技術のことです。また、機械学習は学習の仕方によって以下3つに分類されます。
・教師あり学習:正解付きのデータを元に学習する
・教師なし学習:データそのものが持つ構造、特徴を分析し学習する
・強化学習:行動結果に報酬を設定し、報酬が最大化するように試行錯誤し学習する

Deep Learningの位置づけ

Deep Learningは、機械学習の手法のうちのひとつであり、機械学習はAIの要素技術のひとつです。つまり、大まかにいうと「AI > 機械学習 > Deep Learning」という構造になっています。
また、Deep Learningは機械学習の分類の内、教師あり学習に分類されます。

Deep Learningの仕組みと特徴

Deep Learning(深層学習)とは、ディープニューラルネットワーク(多層のニューラルネットワーク)を用いた機械学習の手法のひとつです。ここでは、ディープニューラルネットワークという仕組みを用いることによって、どのような特徴を持つのかということについて解説します。

ディープニューラルネットワーク

ニューラルネットワークとは、人間の脳内のニューロンが電気信号を伝達していく様子をモデル化したものであり、入力層、中間層、出力層に分かれ、中間層を多層にしたものがディープニューラルネットワークです。

特徴量の自動抽出と高い精度

Deep Learningでは、ニューラルネットワークの中間層を多層にすることにより、情報伝達と処理を増やし、大量のデータさえあれば、データから自動的に特徴量を抽出することが可能になります。従来の機械学習のように、手作業で特徴量を抽出する必要はありません。
また、データの量が多ければ多いほど、精度を上げることができ、画像認識などにおいては、人間の認識能力を超える程にもなっています。

Deep Learningの学習に必要なもの

①大量のラベル付きデータ
教師あり学習を行う上で、正解のラベルを付けた大量のデータが必要です。
逆にデータが少ないと性能が出ず、精度を上げることもできません。
②高度なコンピュータ処理能力
大量のデータを学習させるため、高性能なGPUなどが必要不可欠です。

実は、Deep Learningの理論が登場したのは1980年代ですが、近年注目を集めるようになったのは上記①、②が解決されるようになったことが理由です。②については、GPUをクラスタやクラウドと組み合わせることで、従来では数週間を要した学習時間を数時間以下にまで短縮することも可能となっています。

Deep Learningを利用する方法

Deep Learningを利用するにはいくつか方法がありますので、ご紹介します。

プログラミング

Deep Learningにはもちろんプログラミング言語が使用されます。その中でもPythonは、機械学習に関するライブラリが充実している言語として一番多く使用されているため、Deep Learningでも使用されることが多いようです。

クラウドサービス

プログラミングができなくてもクラウドサービスを使用することによって、Deep Learningを利用することができます。クラウドサービスによる機械学習はMicrosoft社のAzure MLやAmazon社のAmazon MLがあり、マウス操作などの簡単な操作でDeep Learningも利用できます。また、クラウド側のリソースを使用することによって、高速な学習をさせることも可能です。

学習済みモデル

オープンソースとして公開されている学習済みモデルを使い、チューニングしながら分析精度を上げていくという方法があります。ゼロからネットワークを学習させる場合に比べてデータ数が少なくて済み、学習時間も短縮されます。

Deep Learningの活用例

Deep Learningでは、今までの機械学習などでは処理不可能だった複雑なデータを取り扱うことができるようになったため、以下のような活用例があります。

画像認識

画像や動画を入力とし、文字や顔などの特徴を認識、検出します。
例:Facebookのタグ付け(顔認証)、自動運転など

音声認識

人間の声を認識してテキストに出力したり、音声の特徴をとらえて声の識別をします。
例:iPhoneのSiriのような音声入力など

自然言語処理

人間が日常的に使う自然言語をコンピュータに処理、理解させます。
例:コールセンターの問い合わせ対応、機械翻訳など

異常検知

産業機器のセンサーなどの時系列データから異常の兆候を感知します。
例:工場内の監視、異常動作の検知など

まとめ

今回はDeep Learningの仕組みや特徴、利用方法などについてご紹介させていただきました。技術の発展とともにDeep Learningが実現され、現在は人間の能力を超える分野があったり、日常使用するアプリの分野に活用されていたり、様々な分野で活用されるようになっています。
さらに、プログラミングがなくともDeep Learningが利用できるサービスが出現したことにより、今後ますますDeep Learningが普及し、身近なものとなり、さらなる技術の発展にもつながっていくことでしょう。気になった方は是非そういったサービスを利用し、Deep Learningという技術に触れてみてはいかがでしょうか。