- 更新日 2023.12.22
- カテゴリー AI開発
ディープラーニング(深層学習)とは?AI開発の発展を支える技術・開発手法を解説【2024年最新版】
ディープラーニングは近年のAI開発の急速な発展を支えるキーとなる技術。しかし、ビジネスへの活用を検討している方であっても、ディープラーニングの詳細までは意外に理解できていないのではないでしょうか。
・ディープラーニングとはなにか?AI開発の手法?
・ディープラーニングが注目されているのはなぜ?
・ディープラーニングを活用したAIモデルの開発手法は?
そこで本記事では、AI / 機械学習 / ニューラルネットワークとの関係から、学習方法・仕組み・AIモデルの開発方法・手法まで、知っておきたいディープラーニングの基礎知識を解説していきます。
※AIモデルの内製が難しい、優秀なAI開発会社にAIシステムの開発を依頼したいという方は、システム幹事にご相談ください。専任のアドバイザーが最適な開発会社をご紹介します。相談料などは一切かかりませんので、お気軽にお問い合わせください。
AI開発に役立つ記事もご覧ください ディープラーニングの前におさらい!AI開発の基本的な流れや学習方法まとめ
ディープラーニング(Deep Lerning:深層学習)とは
画像引用:総務省
ディープラーニング(Deep Lerning:深層学習)とは、人間の脳細胞をシミュレートする数値モデル「多層化ニューラルネットワーク」を活用した機械学習の手法のひとつです。具体的には、学習対象の全体像から細部を階層構造(エッジ、色など)に分離・関連させることにより、対象物の持つ特徴をニューラルネットワーク自身が自律的に定義していく学習方法です。
特に、写真・画像・音声など、ディープラーニングは抽象的な対象物の特徴を抽出するのに有効な学習方法であり、従来手法に比べて認識精度を飛躍的に向上させられることが特徴。近年のAI開発の急速な発展は、ディープラーニングが牽引しているといってもいいでしょう。ディープラーニングが活用されている主な分野は以下の通りです。
・医療分野における画像認識(例:がん細胞の検出に画像認識の活用など)
・自動運転分野における画像認識
・顔認識(例:スマホのロック解除など)
・画像データの合成(例:合成写真作成など)
・音声データの認識・自動翻訳
AI(Artificial Intelligence)とディープラーニングの関係
こうした画像認識・自動翻訳などの分野で活用されるアプリケーションのエンジンとなるのが「ディープラーニングで学習されたニューラルネットワーク」という「学習済みAIモデル」です。
そもそもAI(Artificial Intelligence)には明確な定義がありませんが、一般的には「人間の知的なふるまいをシミュレート・再現したコンピューターシステム、またはその技術」がAIだと認識されています。つまり、ディープラーニングは「AIという曖昧かつ幅広い意味を持つ概念」に含まれるAI開発の手法・技術のことです。
機械学習とディープラーニングの関係
ディープラーニングが、機械学習の手法のひとつであることは上述した通り。機械学習とは、AIモデルに大量のデータセットを入力し、人間の知的なふるまいをシミュレートするコンピューターシステムのアルゴリズムを構築していく学習手法全般のことです。
機械学習させるAIモデルには、ニューラルネットワークを含むいくつかのアーキテクチャがあり、学習手法にも「教師あり学習」「教師なし学習」などいくつかのバリエーションがあります。
このうち、ディープラーニングは「ニューラルネットワーク」アーキテクチャを採用した「教師あり」機械学習に分類されます。つまり、AI / 機械学習 / ニューラルネットワーク / ディープラーニングの関係性は以下の図のようになることがわかります。
画像引用:三栄ハイテックス
ニューラルネットワークとは
ディープラーニングの大前提となるアーキテクチャやニューラルネットワークは「人間の脳細胞であるニューロン」をシミュレートした数値モデル。AI黎明期の1957年には「パーセプトロン」という形で存在していた古くからあるAI技術です。
画像引用:MathWorks
しかし、当時のニューラルネットワークである「パーセプトロン」は、入力層とパーセプトロン層の2層のみの単純な構造となっており、人間の知的なふるまいを再現するには欠点の大きな数値モデルでした。
その後、1980年代にはパーセプトロンを多層化した「多層パーセプトロンに機械学習させる」AIモデルが登場し、一定の効果が得られるようになりました。ただ、計算機としてのコンピューター性能 / 学習データが大幅に不足していたこともあり、AIモデルの正答率(精度)を高めることは困難だったのです。
多層ニューラルネットワーク(DNN:Deep Neural Network)の登場
数々の課題を解決できず、1990年代後半にはニューラルネットワークの研究活動が低迷してしまいました。しかし2006年、ジェフリー・ヒントン氏の研究チームがオートエンコーダー(入力データを後で復元できるよう圧縮する処理動作)の深層化に成功したことによって「多層ニューラルネットワーク(DNN:Deep Neural Network)」が登場しました。
画像引用:MathWorks
多層ニューラルネットワークとは、入力層と出力層の間にオートエンコーダーを備えた複数の「隠れ層」を持つニューラルネットワークのこと。これによって「ディープニューラルネットワーク」の隠れ層を使って、深層的に学習させるディープラーニングの普及が進みました。現在では、数十から数百の隠れ層を持ち複雑な処理も可能なDNNも珍しくなくなり、ディープラーニングによってより抽象的な概念を学習できる精度の高いAIモデルが多数誕生しています。
ディープラーニングの学習方法・仕組み
精度の高いAIモデルを開発できるディープラーニングは、具体的にどのような仕組みの学習方法か。以下から簡単に解説していきましょう。
分類(Classification)と回帰(Regression)
たとえば、自動運転をアシストするAIモデルが「映像から道路のセンターラインを正しく認識」して「センターラインをはみ出ないように自動車を操作する」仕組みは、分類(Classification)と回帰(Regression)の組み合わせです。具体的には、センターラインのある大量の道路写真を読み込んで、抽出した特徴を分類して回帰させることによって、AIモデルが未知の道路でも、センターラインを予測して認識できるように学習していきます。
畳み込みニューラルネットワーク(CNN)にデータを入力
画像引用:@IT
ディープラーニングでニューラルネットワークに学習させるためには、正解となるセンターラインにラベルを付与した「ラベル付きデータセット」を用意し、入力層から読み込ませていきます。
画像データのような抽象的な対象物をディープラーニングで学習させる場合、隠れ層に「畳み込み層」「活性化関数」「プーリング層」を数十から数百配置した「畳み込みニューラルネットワーク(CNN:Convolutional Nueral Network)」アーキテクチャを採用することが一般的です。
すでに学習されたデータと入力データを畳み込んで分析し直すのがCNNの特徴です。
AI開発の発展を支えるディープラーニング
ディープラーニングによって慎重に学習されたAIモデルは、すでに人間の識別能力を超える精度を誇るともいわれており、第三次となる現在の「AI開発ブーム」を牽引する強力な技術であることには違いありません。
一方、AI自体が発展途上の概念 / 技術であることも事実。多くのAIモデルはある特定の分野の解析・推測に特化しており、ディープラーニングでは高性能なハードウェア環境も求められます。こうした現状は、ディープラーニングによるAIモデルの精度を、本当に活かしたい領域に活かし切れていないのだといえるかもしれません。
エッジAIへの活用が課題
たとえば、AI活用の現状はAIモデルが集中的に学習・解析・推測を行い、端末側は学習データを提供する・解析結果としての推測を受け取るというもの。一方、ディープラーニングによる精度の高い解析・推測は、自動運転技術やドローンの自動配送技術にこそ応用したいものです。
これを実現するためには、端末側にAIモデルを実装して自律的に解析・推測できる、エッジAI / エッジコンピューティングを実現する必要があります。エッジAIを実現できれば、自動運転で致命傷になり得る「通信によるタイムラグ」が発生することもありません。
しかし、視界に入るあらゆる物体を正確に認識し、適切に自動車を制御できるほどAIモデルはスマートだとはいえません。ハードウェアリソースが不足しがちな端末側に、充分に機能するAIモデルをどのように実装するのか。コストも含めた課題は少なくありません。
ディープラーニングで学習モデルを開発するには
AIという曖昧かつ幅広い概念におけるディープラーニングの位置付け、仕組み、根幹をなすディープニューラルネットワークを把握できたところで、ディープラーニングで学習済みAIモデル(ネットワーク)を開発する方法、必要なものを簡単に解説していきましょう。
学習方法・ニューラルネットワークの設計・開発
いくつかの種類があるディープラーニングの学習方法から、開発目的に最適なひとつの手法を選び、それに適したニューラルネットワークを設計・開発していきます。たとえば、医療分野などの専門的な画像解析が必要な場合、一般的な画像で基本的な学習を済ませてから、専門的な画像で学習させる「プレトレーニング&ファインチューニング」、複数種類のデータを個別に学習させて学習結果と組み合わせながら全体学習させる「モーダル学習」などのディープラーニング手法があります。
畳み込みニューラルネットワークが採用されることの多いディープラーニングですが、学習するデータセットの種類・内容によっては「プーリング層」をあえて除外することもあります。時系列データの処理・解析には「再帰型ニューラルネットワーク」を採用することもあります。
画像引用:@IT
また、正誤の判定に有利な「敵対的生成ネットワーク」などのアーキテクチャが採用される場合もあります。
プログラミング言語:Python
画像引用:Python
機械学習 / ディープラーニングの分野におけるディープニューラルネットワークの設計・開発で、もっとも活用されているプログラミング言語は「Python」です。AIモデルのプログラム開発、データ解析ツールの開発だけでなく、Webアプリ / モバイルアプリ開発などに幅広く利用できるのが「Python」が重宝される理由。どのようなニューラルネットワークを採用するにしても、Pythonであれば対応できないことはありません。
フレームワーク・ライブラリ
ディープラーニングの研究開発が進んだ現代では、AI開発のベースプログラムとして利用できる優秀なフレームワーク・ライブラリが多数登場しています。ディープラーニングに関するAI開発プロジェクトのほとんどで、フレームワーク・ライブラリが利用されているのです。たとえば、Googleが開発した「TensorFlow」、Facebookが開発した「PyTorch」など、GPUアクラレーションに対応するフレームワークがオープンソースとして無償公開されています。こうしたフレームワークのほぼ全てに対応できるプログラミング言語がPythonです。
大量のラベル付きデータセット
画像引用:@IT
DNNアーキテクチャを採用したディープラーニングの特徴は、学習量が増えるほど正答率(精度)を高められる傾向があること。つまり、精度の高いディープラーニングAIモデルを開発するには、正解情報(Ground Truth)の付与された「大量のラベル付きデータセット」が必要です。
では、満足のいく精度を持つディープラーニングAIモデルを開発するには、どのくらいのデータ量が必要なのか。学習させたいデータ種類にもよりますが、抽象性の高い画像・動画など分類・回帰の困難なデータであれば、少なくとも数十万ときには数百万のデータが必要で、そのすべてにラベルを付与しなければなりません。
ディープラーニング開発のハードウェア環境
深層構造でデータを解析するディープラーニングを効率的に実行するには、高速なデータ処理を可能にするハードウェア環境が必要です。具体的には、コンピューターのグラフィックスを担う描画エンジン「GPU」の有効利用がポイントとなります。
コンピューターの演算処理を担うハードウェアとしては「CPU」が挙げられますが、むしろディープラーニングに最適なハードウェアは、大量のデータを並列処理できるように設計されたGPUです。大規模モデルの開発の際は、数十枚のGPUを並列して稼働させることもあります。
ディープラーニングの学習モデル開発手法
ディープラーニングの学習モデルを開発する方法にはいくつかがありますが、主なものは「ゼロからDNNを開発する」と近年注目の高まる「転移学習」です。
ゼロからDNN(ディープニューラルネットワーク)を開発する
自社独自のAIモデルを開発したいなどの場合、設計・開発したDNN(ディープニューラルネットワーク)に、ゼロからディープラーニングで学習させていく方法です。
この手法で課題となるのは以下の3点です。。
1 目的に応じた自社独自のDNNアーキテクチャの設計・開発
2 満足できるDNNの精度を確保する大量のラベル付きデータセット
3 効率的にディープラーニングを進めるためのハードウェア環境
1の課題については、優秀なフレームワーク・ライブラリの存在によって解決可能ではあるものの、ディープラーニングに充分なデータセットを保有している組織はそれほど多くありません。
仮に数百万ものデータを保有していても、ラベルを付与するためのコストが必要であり、ハードウェア環境の構築に関しても同様。つまり、ゼロからDNNを開発する手法には、大量のデータセットと潤沢な資金という、クリアすべき低くはないハードルが存在します。
転移学習
画像引用:@IT
学習済みディープニューラルネットワークに微調整を加え、事前に学習されていない新しいデータセットを与えて再学習させる開発手法が「転移学習」です。具体的には、学習済みDNNの出力層を、目的に応じて最適化された出力層と入れ替える、内部構造を拡張するなど、内部構造を変更したうえで再学習されます。
学習済みDNNを別分野に応用できる転移学習は、多くのデータセットを保有していない、潤沢な資金を用意できない場合に有効です。転移学習なら、数千程度のデータセットでも満足できる精度を確保でき、学習時間も数分から数時間程度に短縮可能。「GoogLeNet」「AlexNet」や、OpenAIが公開するさまざまなネットワークを利用できます。
ディープラーニング開発まとめ
ディープラーニングを利用したAI開発を検討している方に向け、本記事では、AI / 機械学習 / ニューラルネットワークとの関係から、学習方法・仕組み・AIモデルの開発方法・手法まで、知っておきたいディープラーニングの基礎知識を解説してきました。
「充分なデータセットがない」「資金的な余裕がない」など、ディープラーニングによるAI開発には少なからずハードルが存在しましたが、転移学習という道が開かれたことは大きなトピック。
ディープラーニングならではの高い精度を誇るAIモデルを開発したのなら、選択肢として検討するのがおすすめです。
※AIモデルの内製が難しい、優秀なAI開発会社にAIシステムの開発を依頼したいという方は、システム幹事にご相談ください。専任のアドバイザーが最適な開発会社をご紹介します。相談料などは一切かかりませんので、お気軽にお問い合わせください。
コンサルタントのご紹介
岩田
専任のコンサルタントが、
お客様の予算と目的を丁寧にヒアリング。
最適な会社をピックアップ・ご紹介させていただきます!
初心者の方でも安心してご相談いただけます。
Q. ディープラーニング(深層学習)とは何ですか?
ディープラーニング(深層学習)とは、機械学習の手法のひとつです。人間の脳細胞をシミュレートする数値モデル「多層化ニューラルネットワーク」を活用しているため、従来の手法に比べて認識精度が高められます。
Q. ディープラーニング(深層学習)のメリットは?
ディープラーニング(深層学習)のメリットは「従来手法に比べて認識精度を飛躍的に向上させられる」「抽象的な対象物の特徴を抽出するのに有効」などです。詳細は記事内で紹介していますので、ぜひご覧ください。
この記事を書いた人
梓澤 昌敏
専門分野: 音楽・映像制作、オウンドメディア、ビジネス
音楽・映像制作の現場を経て、スタジオ構築側の業界へ。マネージャー・コンサルタントとして制作現場の構築に携わる一方、自社オウンドメディアの立ち上げを含むマーケティングも担当してきました。現在アメリカ在住。作曲を含む音楽制作も提供しています。
このライターの記事一覧