AIや人工知能の発達と共に、近年ディープラーニングという言葉を耳にするようになりました。例えば自動運転の技術や自動翻訳のサービスが私達の身近な生活にも少しずつ浸透してきていますが、実はこれもディープラーニングの技術を用いています。言葉自体は知っているけど具体的にどんな技術なのか、よく分かっていない人も多いのではないでしょうか。この記事ではディープラーニングについて初心者でも分かりやすく解説し、具体的な活用事例なども踏まえて説明していきます。
ディープラーニングとは深層学習と略され、音声の認識や画像や言語の特定、識別、予測など、人間が行うタスクをコンピューターに学習させる機械学習の手法の一つです。ディープラーニングは人間の脳を参考にして作られており、AIアルゴリズム技術の中で現代において代表的な技術として注目を集めています。今までのAI技術だとデータを覚えさせるのに時間がかかったり、複雑な特徴を持ったデータを学習させることは難しかったですが、ディープラーニングであれば短時間で大量のデータを学習することが出来るようになりました。
そして従来の技術とは異なり人間が判断基準を教えなくても大量のデータから機械自身が特徴を抽出することで自動学習が出来るのです。その精度も非常に高く、かつては最終的にAIが導き出したデータを人間がチェックし修正の必要がありましたが、今では人間が曖昧な基準で判断していたものやヒューマンエラーで間違えてしまったことをディープラーニングの技術を用いて正確なデータを導き出すことが可能なのです。
ディープラーニングという言葉が使われだしたのは2000年後半ですが、その技術の原型は50年以上前といわれています。上記にも記載した通り、ディープラーニングは人間の脳の神経細胞のネットワークを参考に生み出されました。それが「形式ニューロン」と呼ばれすアルゴリズムです。1943年頃で第二次世界大戦中にすでに今の技術の原型となる概念が誕生していました。そこから研究が続けられ、2006年頃、ジェフ・ヒントン氏によって「ディープラーニングの概念」が提案されました。ヒントン氏がGoogleに所属し最先端のディープラーニング研究は民間企業によって進められています。
さらにディープラーニングという技術が世に知れ渡ったのはGoogleの開発した囲碁プログラム「AlphaGO」が世界的トッププロ棋士に勝利し、人間の能力を上回るディープラーニングの性能が証明され注目を集めました。
ディープラーニングにおけるアルゴリズムの種類を見ていきましょう。
ディープニュートラルネットワークとはニューラルネットワークをディープラーニングに対応させた数学モデルのことを指し、現代において最も広く利用されている深層学習モデルです。そもそもニューラルネットワークとは人間の脳神経系のニューロン(神経細胞)を数理モデル化した組み合わせのことを言います。ニューラルネットワークの場合は、1つの入力層、隠れ層、出力層の3層で構成されていましたが4層以上に深くしより高度で複雑な処理が可能になりました。
畳み込みニューラルネットワークとはAIが画像分析を行うための学習モデルの一つです。人間の視覚野のニューロン(神経細胞)の働きを模倣して作られています。畳み込み層とプーリング層と呼ばれる2つの層を組み合わせた構造になっています。分析が必要なデータが読み込まれるとスキャンを行い、データの特徴を抽出するためにフィルタを使用し、抽出された特徴的データは畳み込みそうに送られ、凝縮されたデータが作成されます。画像分析において最も広く利用されている深層学習モデルです。
再帰型ニューラルネットワークとは、時系列データを扱うことが出来るニューラルネットワークです。主には音声認識や動画認識、文章解析などに使われており注目を集めているアルゴリズムです。入力層、中間層、出力層の3層に別れていてニューラルネットワークと基本的な作りは同じです。最近の有名なものでいうとGoogle翻訳にも再帰型ニュートラルネットワークが利用されています。
ディープラーニングで出来ることを見ていきましょう。
画像認識とは、画像内に写っているものを認識する機械学習の技術です。これまでコンピュータは画像をピクセル(画素)の集まりとしか認識できませんでしたが、機械学習での画像認識はコンピュータに組み込まれた演算処理を通してパターンを大量に学習させておきます。そして画像の認識を行った上で特徴を認識し、画像の識別や分類が出来るようになりました。画像認識の技術は私達の生活にも様々な場面で根付いていて、例えば地図アプリやカーナビなどの開発にもその技術が用いられています。
音声認識とは、音声データをテキストデータに変換する機械学習の技術の一つです。まず音声を入力すると、空気の振動を波形データに変換します。音声データの処理が終わるとひとつひとつの音がなんと言っているのかを識別します。その後、それぞれの音の並びを分析し、単語の識別を行います。そしてひとつひとつの単語が理解できるとその繋がりを分析し文章を認識するといった仕組みになっています。音声認識の技術も私達の生活の身近になっており、代表的なところで言うとAppleのSiriやAmazonのアレクサなどもこの技術が用いられています。
そもそも自然言語とは私たちが日常で使っている日本語や英語などの言語のことを指しています。自然言語処理とは、そういった人間が日常的に使っている言語を機械学習の技術を用いて処理する一連の技術のことを指します。自然言語処理ではまず処理したいテキストを単語に分割していきます。この作業を形態素解析といい、一文の中で意味を持つ最小の表現要素に分けていきます。私達の身近なサービスでいうとGoogle翻訳の機能やOfficeWordの要約文の自動生成の技術などに自然言語処理の技術が使われています。
レコメンテーションとは、サービス提供においてユーザーが興味のありそうな物事を機械学習の技術を用いて提供するシステムのことを指します。例えばECサイトでの顧客の閲覧履歴や購入履歴のデータを元に一定のアルゴリズムによりその人の好みに合いそうな商品やサービスをオススメとして提供したり、YouTubeなどの動画再生サービスでオススメ動画として動画を提案される仕組みもこのレコメンデーションの技術が使われています。企業活動におけるマーケティングにも欠かせない技術として浸透しています。
ディープラーニングの活用事例を見ていきましょう。
来店客の分析にディープラーニングの技術を活用している小売店があります。各テナントにカメラを設置し、来店人数や年齢、性別を画像から認識します。データをAIが解析し、時間別の来店者数の推移や顧客データを分析できるデータにします。このデータを活用すれば例えば来店客数に合わせた従業員配置を検討できたり、顧客の層に合わせたサービスの改善が出来ます。最近では大型デパートだけではなく、コンビニなどの小売り店舗や飲食店なども導入を始めています。
量販店のアフターサービスや通販での注文受付などこれまで人じゃないと対応することが出来なかったコールセンターでの受電業務にディープラーニングの技術が活用されています。顧客からの電話内容をディープラーニングの音声認識の技術を用いてリアルタイムに認識しながら会話をテキスト化します。その内容をモニターに表示しながらFAQの自動表示や自動要約を行うことによってオペレーターの業務効率を飛躍的に向上させることが出来ました。
人手不足が深刻な問題となっている医療・介護業界でもディープラーニングの技術を活用した事例があります。それは人工知能を搭載した介護ロボットです。介護職員の代わりになり、案内をしたりレクリエーションを行います。また最近では着衣の際にサポートができるロボットの開発も進められていて実用化が進められています。
ドライバーの土地勘や経験を頼りにしていたタクシーの乗客予測をディープラーニングの予測モデルを活用することで乗客がいそうな場所を予測してくれる技術が活用されています。「AIタクシー」では携帯電話のネットワークの仕組みを元に出された人口統計のデータと過去のタクシー運行データを活用することで需要予測を出しています。これによりタクシーの乗車率を上げて売上拡大に繋げるだけでなく、乗車客の待ち時間軽減にも繋がっています。
ディープラーニングを実装するプログラミング言語を見ていきましょう。
Pythonとはグイド・ヴァンロッサム氏によって1991年に開発された汎用的に使用されるプログラミング言語です。サーバサイド言語としてWebアプリケーションやデスクトップアプリケーションの開発に使われるだけでなく、組み込み開発、自動処理、統計・解析、機械学習など幅広い領域に対応出来るプログラミング言語として親しまれております。特徴として『コードがシンプルで覚えやすい』『少ない記述で多くの処理が可能』などが挙げられます。Pythonは人工知能(AI)やビッグデータなどトレンドの分野にて重宝されております。
C言語とはAT&Tベル研究所のデニス・リッチー氏が中心となって開発し1972年に誕生したプログラミング言語の一種です。汎用性の高いプログラミング言語としてソフトウェアの開発からコンピューター機器、自動車などのハードウェア製品の開発にも採用されております。また手続き型言語であり、構造化プログラムに適しているという特徴があります。C言語は現在活躍する様々なプログラミング言語のモデルとなっており中でも代表的なのがJavaやC++、C#などです。日本の大学や専門学校の講義でもプログラムの基礎を学ぶための授業としてC言語が採用されることが多いです。
C++(シープラスプラス)とは1985年に『AT&Tベル研究所』のビャーネ・ストロヴストルップ氏によって開発されたC言語をベースに機能を拡張したオブジェクト指向のプログラミング言語です。オブジェクト指向の要素だけでなく手続き型プログラミング、データ抽出
、ジェネリックプログラミングなどの複数の要素を兼ね備えるマルチパラダイムプログラミング言語となっております。C++にはいくつかの種類が存在しており代表的なものとして「Borland C++(ボーランドシープラスプラス)」「Visual C++(ビジュアルシープラスプラス)」などが挙げられます。
これまでディープラーニングとはどういった技術なのか、具体的にどんな活用事例があるのかを解説していきました。上記に記載した活用事例はほんのごく一部のものであり、私達の身近な生活にもディープラーニングの技術が根付いてきています。またIT・WEB業界だけでなく幅広い業界やサービスで活用されているため、私達の生活をより快適にするためだけでなく今や企業活動においてディープラーニングの技術の活用はより生産性高く売り上げを伸ばすためにはなくてはならないものになっています。今後も大きな可能性を秘めた技術と言って良いでしょう。