深層学習

深層学習(ディープラーニング)とは何か?今後の世界を支える最新技術を徹底解説します!

 

皆さんは「深層学習」についてご存知でしょうか?

深層学習はここ数年で勢いづいた比較的新しい技術で、現在国を問わず様々な場所で有効活用されています。

そして、あなたの身近な所でも「深層学習」は活躍していますが、世間一般では「深層学習」について理解している人はごく少数です。

そこで本日は、「深層学習」、またの名を「ディープラーニング」について、実例からその概念・仕組みまで徹底的に解説します。

目次

  1. 1.深層学習(ディープラーニング)とは?
  2. 2.深層学習が注目されている理由とは?
  3. 3.身近な深層学習の技術とは
  4. 4.深層学習と機械学習の違い
  5. 5.深層学習の学習方法
  6. 6.深層学習の高速化
  7. 7.深層学習の設計と仕組み
  8. 8.深層学習の課題
  9. 9.まとめ

深層学習(ディープラーニング)とは?

深層学習とは、「ニューラルネットワーク」というモデルを用いて行う機械学習のことで、そして機械学習とはいわばAI(人工知能)の一種であり、コンピューターが大量のデータを分析して傾向等を学習する技術のことです。

さらに、深層学習の技術は、人工知能、いわゆるAIなどにも使われており、人類技術の進歩にも大きく貢献しています。

このように人間の作業を簡素化し効率化することのできる深層学習は、身近な物にも取り入れられており、全世界で活躍しています。

また、深層学習のネットワーク構造には、人の神経回路を模しており、入力層・隠れ層・出力層の3つの層からなります。

しかし、隠れ層は無数にあり、水平して計算を行うことができるので、“層が深い”という意味で「深層学習」と呼ばれています。

更に詳しい仕組みはこのページの先にあります。以下リンクからも見ることが出来ます。

次節では、深層学習を使った身近なものについて解説していきます。

深層学習が注目されている理由

ここでは、深層学習が注目されている理由について解説します。

そもそも深層学習は歴史が長く、理論に関しては1980年ごろには提唱されていました。それでは、なぜ今になって注目を浴びているのでしょうか?

その理由としては、ニューラルネットワークの研究が進んだこともあげられますが、他に大きな理由が2つあります。

サーバーの処理能力の向上

まず1つ目は、サーバーの処理能力が向上したことが上げられます。

深層学習では、人工知能が多くのデータを比較しながら学習を進めていくため、性能の良いサーバーが必要です。現代では、サーバーの性能が向上したことで、学習速度も向上し、大量なデータを処理することも可能になりました。深層学習が提唱された当時はこのような高度な技術がなく理論だけにとどまっていました。

学習に利用するデータの収集

2つ目の理由としては、学習に利用するデータが収集しやすくなったことがあげられます。

インターネットの発達により、深層学習に利用できるデータが入手しやすくなりました。深層学習の理論が提唱された当時は大量のデータを収集し、利用することができませんでした。しかし、1つ目の理由で述べたように、現代では技術の向上により大きなデータデモ取り扱うことができるようになりました。このような理由から現代になり、深層学習が注目されています。

身近な深層学習の技術とは?

深層学習(ディープラーニング)は、その内容を知らない人は多くいる一方で、その技術はあなたの身近においても多く用いられています。

この節では、それらの身近な深層学習の技術について、紹介します。

深層学習の産物1「自動運転」

自動運転
深層学習の技術を用いた身近な物として、自動車における「自動運転」が挙げられます。

上記でも紹介しましたが、深層学習は「人の作業を効率的に大量に行う」技術で、自動運転には、深層学習を使用し、人が行っていた自動車の運転を機械が自動化することもできます。

また、日本では、トヨタなどが自動運転技術を搭載した自動車を発表しており、盛んに深層学習の技術が使われています。

深層学習の産物2「画像検査」

画像認識
深層学習の技術を用いた身近な機能として、「画像検査」があります。

画像検査とは、物や機械を特殊なカメラで撮影し、それらの物の特徴を記憶することで、事前に記憶していた正常な物の特徴と比較し、欠陥を見つけ出す機能です。

また画像検査は、物の欠陥を派遣できる他、人の特徴を記憶することで、セキュリティー技術に応用することができます。

画像検査を十分に機能させるには、深層学習を使い、大量のデータや情報を記憶することで実現させることができます。

これらの深層学習の技術を用いた画像検査は、身近でも使われており、食品製造で事前に不良品を取り除くシステムなどにも取り入れられており、冷凍食品にも多く用いられています。

深層学習の産物3「医療検査」

医療検査
この技術は、画像検査の応用的な技術の一つで、がんや炎症などの体の異変をAIや機械で検査することにより、効率的、かつ速やかに体の異変を発見することができます。

これは、日本を含め世界でも多く医療現場で取り入れられていますが、今後、さらに成長を遂げるとも言われており、例のウイルスの対策としても期待されています。

深層学習と機械学習の違い

ここまでは、深層学習(ディープラーニング)の利用や特徴について解説しましたが、この節では、「機械学習」と「深層学習」の違いについて紹介します。

AIと機械学習と深層学習の区分け

まず、機械学習と深層学習はどのように違うのか、「AI(人工知能)」との違いも含めて説明します。
AIと機械学習と深層学習の分類
結果的にこの図を見てもらうと、これら3つのワードがどのような区分なのかひと目で分かると思います。

このようにして、AIと機械学習と深層学習は互いに異なるものではなく、AIが機械学習を内包し、機械学習は深層学習を内包しています。

AIについての認識は図の説明の通りですが、残り2点について、特に深層学習はより深い仕組みについて、1つずつ詳しく説明します。

機械学習の詳しい仕組み

機械学習は人工知能(AI)をつくる、手段の一つです。

まず、以下のプログラムをご覧ください。

a = input() # プログラムへの入力
kansha = 'ありがとうございました。' # 感謝を示す日本語
response = 'どういたしまして' # 感謝に対する返事
if a == kansha:
print(response)

上記のプログラムはpythonで表記された、非常に簡単な会話プログラムです。このプログラムを実行した状態で、人間がコンピュータにたいして、「ありがとうございました。」と感謝する文章を入力すると、「どういたしまして」と返事をしてくれます。

kansha = 'ありがとうございました。' # 感謝を示す日本語

このように、特定の入力に対して決まったルールに則って応答する仕組みは、LINE公式アカウントのチャット機能などで用いられます。

しかし、これらは機械学習とは言えません

なぜなら、上の一文で「ありがとうございました。」と入力されたら、「ありがとうございました」と返すというルールに則って会話が実現されるからです。日本語をはじめ、言語はかなりバリエーションを持つ存在です。「サンキュー」や「どうも!」など感謝を指す表現は、他にも多数存在しますが、上記のプログラムに「サンキュー」と入力しても、返事をしてくれません。

このような問題に対して、例えば、感謝を示すあらゆる単語を一つ一つ定義していくことで解決することもできますが、膨大かつ柔軟すぎる言語にたいして、この方法は適切ではありません。このようなケースに置いて、トレーニングという解決方法を用いるのが、機械学習なのです。

機械学習では、膨大なデータをもとに自らトレーニングを行うことで、タスクの実行能力を獲得していきます。これまでに見てきた、感謝に関する例では、小説、記事を始めとする、大量の文章を学習することで、感謝の言葉を持つ文章、単語の持つ特徴を掴み、それを法則化していくのです。トレーニングするデータの量が多ければ多いほど、感謝の言葉を理解するための法則は洗練化されていき、より高い会話能力を獲得していくのです。

以上に述べたように、トレーニングによって特定のタスクを実行出来るようになることを、機械学習と呼ぶのです。

更に機械学習について詳細を知りたい方は以下の記事をご参照ください。
機械学習とは?詳しく解説

深層学習の詳しい仕組み

ここから、いよいよ本題である「深層学習」の仕組みの説明に入ります。

機械学習が「トレーニングによって特定のタスクを実行出来るようになる」ことは先に述べたとおりであり、トレーニングの過程で、学習データをもとに、掴んだ特徴から法則化を行うことで、タスクの実行能力が洗練されていきます。その際に、特徴をつかむために、ニューラルネットワークを活用する機械学習のことを深層学習と呼びます。

深層学習の学習方法の前に、まず、ニューラルネットワークについて説明します。

ニューラルネットワークとは、人間の脳に存在するような神経網を数理的なモデルで表現したものです。

上の図は、簡単なニューラルネットワークの模式図です。左端の列が入力層、真ん中の層を隠れ層、右端の層を出力層と呼びます。また、層と層を繋いでいる矢印は、重みと呼ばれます。このように、ニューラルネットワークは、多数の層と重みが、複雑に組み合わさることで構成されています。

ここからは、深層学習が行うトレーニングと、タスクの実行方法について、前章で示した、感謝の言葉に関する例で確認します。

機械学習におけるトレーニングの目的は、特徴を掴み、それを法則化することですが、深層学習では、重みの調整によって実現します。詳しくみていきましょう。

まず、入力層にデータが入力されます。次に、重みを介して、隠れ層に入る値が計算されます。なお、重みには何かしらの計算式が入っています。隠れ層の値が算出されれば、同様にして、出力層の値も算出することが出来ます。

これにより、ある文章が入力された時の、出力層の値が算出されました。この時の出力層の値は、ランダムな値です。出力層の値を変えるためには、重みを調整する必要があります。

今回の例では、出力層の値を見ただけで、入力された文章が感謝を示すかどうかが分かるように、重みを調整することが、トレーニングに当たります。

感謝の言葉を入力すると「z1が0.5以上」ように、重みが調整をされたのであれば、タスク実行時には、z1の値を確認するだけで、入力された言葉が感謝を示すか否かを判断することが出来ます。

以上のように、特徴の法則化をニューラルネットワークの重みの調整によって実現する機械学習を、深層学習というのです。

深層学習の学習方法

前節で深層学習の仕組みについて学びましたが、実際にどのような手法で画像分析などを行うのでしょうか。

多くの学習方法がある中、この節では、特に多く行われている2つの方法について紹介していきます。

深層学習「大量学習法」

深層学習の中でも、大量のデータやネットワークの設計が必須な学習法なので、膨大な時間がかかる他、作業数も多くなってしまう学習法です。

しかし、応用的な技術を使用する場合や出力されるデータ・情報の数が多い場合は、効率的に学習させることができます。

また、ネットワークの設計やネットワーク自体を学習する時間には、数日〜1ヶ月程度かかる場合もあり、頻繁に行われる手法ではありませんが、膨大な情報を扱う場合は、よく利用されます。

深層学習「転移学習」

転移学習とは、既存のネットワークを利用する学習手法の一つです。
既存のネットワークには、多少の修正や改修が必要にはなりますが、学習の時間などを大幅に短縮させられる利点があります。

転移学習の特徴として、必要なデータ数が大幅に縮小させることが可能という点があります。

ゼロからネットワークを学習させる場合は、無数のカテゴリにデータを分類する必要がありますが、学習済みのネットワークの場合は「りんごorみかん」などのように分類を簡素化できます。

この方法を取り入れることで、1000分の1程にデータ量を抑えることができ、また時間を短縮させることもできるようになります。

したがって、転移学習は、学習済みのシステムモデルなどの学習の際に多く使われ、大規模な学習の場合は、上記の「大量学習法」を利用します。

深層学習の高速化

深層学習の高速化とは、名前の通り「画像解析」や「データ出力」などのスピードを高めることで、作業の効率化を図ることを指します。

この節では、「深層学習の高速化」の具体的な方法について解説していきます。

GPUの導入

アメリカ半導体大手「NVIDIA(エヌビディア)」などの世界各地の半導体製造会社が製造を開始した「GPU(グラフィックス・プロセッシング・ユニット)」とは、画像解析専門のCPUとも言われています。

しかし、それを聞いただけでは、GPUの正体を知ることはできません。
では、GPUとは何か。
この節では、この疑問を徹底解説していきます。

GPUとは、画像解析に特化した頭脳とも言われており、高速かつ正確に画像の解析・出力を行うプロセッサと言われています。

つまり、皆さんがパソコンで見ている「文字」「画像」「動画」などは、すべてGPUが表示していると言っても過言ではありません。

従来と比べ、画像の解析と出力を高速で行うことができるGPUは、深層学習に導入することで、大量のデータの学習を格段に効率化することができます。

モデルの圧縮

深層学習の高速化は、PCやプロセッサの動作をひとまとめにした「モデル」を圧縮することでも可能です。

モデル自体のデータ量やデータの大きさを軽量化・圧縮させることで、学習の大幅な短縮を図ることができます。

これは、北海道から「東京へ泳いでいくのか」、「飛行機に乗って行くのか」のように比べ物にならないほど学習に要する時間が異なります。

クラウドの調整

複数人で深層学習を行う場合は、クラウドの調整を行うことで、学習の高速化を図ることができます。

また、クラウド自体にGPUが搭載できるかによっては、計算速度が大幅に変化してきます。

クラウドにGPUが搭載可能であることや複数端末を一つのクラウドに繋ぎ、作業を分担することで作業時間を短縮することも可能です。

MATLAB(マットラブ)を使用する

MATLABとは、アメリカのMath Works社が開発した数値計算プラットフォームのことで、世界で数百万人のエンジニアが利用しているツールでもあります。

MATLABでは、アルゴリズムの開発・データの可視化・グラフィカルインターフェース・多言語のインタフェース共有などの多くの機能が利用できます。

また、産業界や官公庁、教育機関などにも利用されており、深層学習(ディープラーニング)を行う為のコマンドも用意されています。

これを利用することにより、転移学習を利用したディープラーニングをさらに短時間で行うことができます。

深層学習の歴史・補足知識

深層学習は、最近開発された技術と言われることもありますが、実はその設計自体は、1957年にすでに存在していたとも言われています。

それはなぜかというと、実は、1957年は「第一次AIブーム」があった年になります。昔からAIはブームを何回か起こしており、「1957年:第一次AIブーム」「1986年:第二次AIブーム」「2006年:第三次AIブーム」と名前がついています。そしてその都度、新たな技術が開発されており、代表的なものを挙げると

1957年には、人間の視覚を模した「パーセプトロン」
1986年、パーセプトロンを派生させた「マルチレイヤーパーセプトロン」
そして2006年に画像分析などの機能を自動化させた「ディープラーニング」が挙げられます。

そして、1957年のパーセプトロンが現在のディープラーニングの基になっている、ということになります。

またその仕組みには、入力され情報を受け取り、さまざまな計算を行う「隠れ層」が取り入れられていることは先程説明したとおりですが、

その隠れ層は、従来のニューラルネットワークには2〜3層のみしかありませんでしたが、現在のディープニューラルネットワークには、150以上の隠れ層があるとも言われています。

隠れ層の増加により、ディープラーニングの計算速度や計算の効率化を向上させることが可能になったというわけです。

さらに、ディープニューラルネットワークには、「畳み込みニューラルネットワーク(CNNやConv Net)」と呼ばれるネットワークが多く使われており、データの最適化を行っています。

畳み込みニューラルネットワークは入力された画像などのデータを「畳み込み層」に送り、畳み込み層で読み込みに最適な2次元データに改修します。

この作業により、情報の抽出などが最適化され、効率よく処理を行うことが可能となりました。

その上、物体認識やデータの自動入力なども行えることから、全自動のネットワークとも言われています。

そして、深層学習が用いられる分野の幅が広がり、従来の自動運転や画像認識だけではなく、IoT機器や異常検知、自動翻訳機能、レコメンデーションなどの作業の自動化が急速に進歩しました。

深層学習の課題

深層学習の課題の一つとして人工知能が出した答えがどんなふうに考え出されたのかわからないという問題があります。

今までは、私達人間がルールを決めてコンピュータに判断させていました。しかし、深層学習ではコンピュータが勝手にルールを探します。この深層学習が探してきたルールは、ニューラルネットの重み付けの集まりとなり表現されます。

現在の技術ではこのルールを読み解くことは不可能ですが、最新の研究では、ニューロンの動きをまとめるなどの作業から重み付けの傾向を解くとこを試みています。

まとめ

本日は、今後の世界を支える「深層学習(ディープラーニング)」について紹介しましたが、現在世界の有数の企業、そして日本でも日産やトヨタを始めとする車製造企業や大企業、その他AI開発会社等がディープラーニングを利用し、注目しています。

特に自動運転やPCなどの高速化、画像検査などに使われ、ディープラーニングでは、無数の情報を自動で分類し、管理しています。

従来では、高速な情報処理は難しいとされましたが、無数の情報を高速に処理できるディープラーニングを使うことで、これらの機能を実現できています。

さらに、GPUと呼ばれる画像処理に特化したプロセッサを取り入れることで、さらに早い画像データの処理が行えます。

一方、このような最先端の技術の基盤は、1957年には開発されており、AIブームと共にそれらの技術が急速に発展したとされています。
その後、応用的な要素を加えたものが今のディープラーニングと呼ばれ、これらの技術を設計する際、人間の脳回路や視覚回路などを基に作成されています。

この『深層学習(ディープラーニング)』は、現在も多くのエンジニアや企業が注目しており、この先も更に関連市場が拡大する可能性は少なくありません。最後まで読んで頂いたあなたが、少しだけでも深層学習について理解してくれていれば幸いです。

ここまで読んで頂き、ありがとうございました。以下は弊社SNSと関連記事です。こちらも是非ご覧くださいませ。

Twitter https://twitter.com/CrystalmethodZ9
Facebook https://www.facebook.com/クリスタルメソッド株式会社-100971778872865

[関連記事]
>> 機械学習とは?詳しく解説

[関連記事](シンギュラリティ→人工知能が人間の知能を大きく上回るタイミング
>> シンギュラリティによる雇用の変化

[関連記事]
>> 人工知能(AI)とは?仕組みや技術、できることをわかりやすく解説

[関連記事]
>> ディープフェイクの見破り方