ディープラーニング

これだけは知っておきたい3つのこと

ディープラーニング(深層学習)とは,人間が自然に行うタスクをコンピュータに学習させる機械学習の手法のひとつです。人工知能(AI)の急速な発展を支える技术であり,その进歩により様々な分野への実用化が进んでいます。近年开発の进んでいる自动运転车においてもカギとなっているのは,ディープラーニングです。停止标识を认识したり,电柱と人间を区别したりするのも,ディープラーニングが可能にしている技术と言えます。また,电话,タブレット,テレビ,ハンズフリースピーカーなどの音声认识にも重要な役割を果たしています。近年ディープラーニングが注目を集めているのには理由があります。それはディープラーニングが,従来の技术では不可能だったレベルのパフォーマンスを达成できるようになってきているからです。

ディープラーニングの技术は,人间の神経细胞(ニューロン)の仕组みを模したシステムであるニューラルネットワークがベースになっています。ニューラルネットワークを多層にして用いることで,データに含まれる特徴を段階的により深く学習することが可能になります。多層構造のニューラルネットワークに大量の画的像,テキスト,音声データなどを入力することで,コンピュータのモデルはデータに含まれる特徴を各層で自動的に学習していきます。この構造と学習の手法がディープラーニング特有であり,これによりディープラーニングのモデルは極めて高い精度を誇り,時には人間の認識精度を超えることもあります。

なぜディープラーニングが重要か

いかにしてディープラーニングはこれほど优れた成果をあげているのでしょうか。

ひと言で言えば,精度です。ディープラーニングは,かつてない高いレベルの认识精度に到达しています。高い认识精度は,家庭用电気机器の分野ではよりユーザの期待に応えることにつながります。また自动运転车のように安全性が最优先されるべき分野では,认识精度は何より重要な要素であると言えます。ディープラーニングは近年の进歩により,画像认识などのタスクにおいて,人间の认识能力を超えるまでになっています。

ディープラーニングが最初に理論として登場したのは1980年代ですが,近年になって注目を集めるようになったのには2つの理由があります。

  1. ディープラーニングには大量のラベル付けされたデータが必要です。例えば,自動運転車の開発には数百万の静止画像と数千時間の動画が必要となります。これまでは,近年のように大規模なデータを入手することが容易ではなかったため,今ほど高いレベルの認識精度を実現できていませんでした。
  2. ディープラーニングには高度なコンピュータの处理能力が不可欠です。高性能なGPUは,ディープラーニングに効率的な並列構成になっています.GPUをクラスターやクラウドと組み合わせることで,これまでは数週間を要したネットワークの学習時間を,数時間以下にまで短縮することができました。

ディープラーニングの応用例

ディープラーニングは自動運転から医療機器まで幅広い分野に活用されています。

自動運転:自動車の研究者はディープラーニングを使い,一時停止標識や信号機のようなものを自動的に認識させています。さらに,歩行者検知にも使われており,事故の減少に役立てられています。

航空宇宙·防卫:ディープラーニングは衛星から物体認識・物体検出を行い,地上の部隊が安全なエリアにいるかどうかを判断するために使われています。

医疗研究:がんの研究者はディープラーニングを使い,自動的にがん細胞を検出しています.UCLAの研究チームは,ディープラーニングの学習に必要な高次元のデータセットを作成する高精度な顕微鏡を構築し,正確にがん細胞を見つけ出しています。

产业オートメーション:ディープラーニングは重机の周辺で业务を行う作业者の安全性向上に役立てられています人や物が机械の危険域内に侵入した场合,これを自动的に検出することができます。

エレクトロニクス(CES):ディープラーニングは,自动の音声翻訳に使われています例えば,人の声に反応し,人の好みを学ぶことができるホームアシスタントデバイスには,ディープラーニングの技术が活用されています。

ディープラーニングの仕组み

ディープラーニングの多くの手法に,ニューラルネットワークの构造が使われ,そうした背景からディープラーニングのモデルは,ディープニューラルネットワークとも呼ばれています。

通常「ディープ」という表现は,ニューラルネットワークの隠れ层の数について言及しているものです。従来のニューラルネットワークでは隠れ层はせいぜい2〜3程度でしたが,ディープニューラルネットワークは150もの隠れ层を持つこともありえます。

ディープラーニングのモデルは,大規模なラベル付けされたデータとニューラルネットワークの構造を利用して学習を行います。これにより,データから直接特徴量を学習することができ,これまでのように手作業の特徴抽出は必要なくなりました。

図1。ニューラルネットワークは,相互接続する複数のノードからなる多層で構成されます。ネットワークは数十から数百の隠れ層を持つことができます。

ディープニューラルネットワークで最もよく使われているのは,畳み込みニューラルネットワーク(美国有线电视新闻网または事先)というネットワークです。畳み込みニューラルネットワークでは学习された特徴を入力データと畳み込みます。この2次元の畳み込み层が,このアーキテクチャを画像などの2次元データの处理に适したものにしています。

畳み込みニューラルネットワークでは,手作业での特徴抽出は必要ありません。画像分类に使う特徴量を探し出す必要もありません。畳み込みニューラルネットワークが画像から直接特徴抽出を行います。関連する特徴量は事前には学習する必要がありません。大量の画像データによる学習を通して学び取られます。この自動的な特徴抽出の仕組みにより,物体认识などのコンピュータビジョンのタスクにおいてディープラーニングのモデルは高い分類精度を持つことになりました。

図2。复数の畳み込み层で构成されるネットワークの例。解像度が异なる学习画像ごとにフィルターが适用され,それぞれの畳み込み画像の出力が次のレイヤーの入力として使用されます。

畳み込みニューラルネットワークは,数十から数百もの隠れ层により,1つの画像に含まれる数々の特徴を学习していきます。层が进むにつれて,より复雑な特徴を学习します。例えば,最初の隠れ层ではエッジ検出など単纯な特徴からスタートして,最后の层ではより复雑な特徴,特に认识したい物体の形状の学习へと进んでいきます。

機械学習とディープラーニングの違いとは吗?

ディープラーニングは機械学習のひとつの特殊な形と言えるものです。通常の機械学習のワークフローは,画像からマニュアルで特徴量を抽出することからスタートします。そして,抽出した特徴量を使って画像内の物体を分類するモデルを作成します。一方,ディープラーニングでは,特徴量は画像から自動的に抽出されます。また,ディープラーニングは”エンドツーエンドな学習”を実行できまつす。まり,ネットワークは生の画像データと,分類など処理すべきタスクを与えられ,自動的にその処理方法を学習していきます。

もう一つの大きな违いは,シャローラーニングがデータの増加に対して性能が头打ちになるのに対して,ディープラーニングではその性能がデータのサイズに対してスケールする点にあります。

ディープラーニングの大きな利点は,データが増えていくにつれ,しばしばその精度を向上させていくことができる点にあると言えるでしょう。

図3。自动车の分类における,机械学习(左)とディープラーニング(右)のアプローチの比较

一般的な机械学习では,特徴量と分类器は手动で选択されるのに対して,ディープラーニングでは特徴量の抽出とモデリングは自动的に行われます。

机械学习とディープラーニングから最适な手法を选ぶ

机械学习には幅広い手法とモデルがあり,用途や处理するデータサイズ,解决したい课题のタイプに合わせて选択することができます。一方,ディープラーニングを成功させるには,データを高速で处理するためのGPUだけでなく,モデルを学习させるための大量のデータ(数千もの画像)が必要となります。

机械学习かディープラーニングを选ぶときは,まず高性能なGPUと大量のラベル付けされたデータがあるかどうかを确认して下さい。もしどちらかが欠けている场合,ディープラーニングではなく机械学习が适当と言えるでしょう。ディープラーニングは一般的に机械学习より复雑であるため,信頼できる结果を得るには少なくとも数千の画像が必要となります。より高性能なGPUがあれば,そうした大量の画像の学习に必要な时间はさらに短缩していくことができます。

ディープラーニングモデルの作成,学习方法

ディープラーニングを使用した物体认识には下记の3つの手法がよく使われています。

ゼロから学習する

ディープネットワークをゼロから学習するには,大量のラベル付けされたデータを集め,特徴量を学習しモデル化するためのネットワークを設計する必要があります。この方法は,新しい分野での応用や,出力するカテゴリ数が多い場合には有効ですが,大量のデータと学習時間が必要であることから,使用頻度はそれほど高くありません。通常,こうしたタイプのネットワークの学習には,数日から数週間といった長い時間を要します。

転移学习

多くのディープラーニングの応用では,学习済みモデルの微调整を行うタイプのアプローチとして,転移学习が利用されています。この転移学习では,AlexNetやGoogLeNetといった既存の学习済みのネットワークに対して,そのネットワークでは事前には学习されていないクラスを含むデータを与えて学习させます。その场合,学习済みのネットワークには若干の修正が必要となりますが,ネットワークの学习后には本来の「1000种类のカテゴリへの分类」の代わりに「犬か猫か」といった新しいタスクを行わせることができるようになります。この手法には,ゼロからネットワークを学习させる场合と比较して必要なデータ数がはるかに少なくて済むという利点があり(何百万ではなく数千の画像),计算时间は数分から数时间程度に短缩されます。

転移学习では,既存のネットワークに対して切り贴りをしたり,新しいタスクに対して拡张を行ったりすることが必要となるため,ネットワークの内部构造にアクセスするインターフェースが必要となりますが,MATLAB®にはこうした転移学习を手助けするためのツールや关数がいくつも揃っています。

特徴抽出

やや一般的ではありませんが,ディープラーニングのより専門的な手法として,ネットワークを特徴抽出器として使用する方法があります。ネットワークのすべての層は画像からある種の特徴量を抽出する役割を持っているため,我々は推論の任意の段階でこうした特徴量を取り出すことが可能です。このようにして取り出した特徴量は,サポートベクターマシンなどの机械学习モデルへの入力として使用することができます。

ディープラーニングの学习を高速化

ディープラーニングモデルの学習には,数日から数週間といった長い時間を要することがあり,多数の画像を用いる場合にはより適切な計算環境を用意する必要があります。

GPU

GPUを使うことでディープラーニングの演算を大幅に高速化できます.MATLABをGPUと併用することで,ネットワークの学習に必要な時間を減らし,画像分類に必要な学習の時間は数日から数時間に短縮することができます。ディープラーニングの学習においては,MATLABを使うことで,GPUプログラミングの详细を知らなくてもGPUを使いこなすことができてしまいます。

クラウド

グループでディープラーニングに取り组む场合には,计算环境の调整も必要となることがあります.GPU搭载マシンを提供するクラウドサービスを利用することも选択肢の一つです.MATLABでは,亚马逊Web服务や微软Azureをスムーズに用いて学习できる环境を提供しています。参照架构ではMATLABインストール済みのクラウド环境をすぐに立ち上げることができます。またデスクトップで作业をしながら学习などの计算コストが高い部分だけをクラウドに投げることも可能です.Cloud中心からマシンの选択から起动,セットアップファイルの准备を简単に行うことができます。
さらにNVIDIA GPU云(NGC)のMATLABコンテナを用いれば,NVIDIA DGXシステムまたはサポートされているクラウドサービスプロバイダーのシステムで面倒なセットアップに悩まされることなく高速学习のための环境を构筑することができます。

ディープラーニングの推论を高速化

ディープラーニングの适用先である,自动运転や自律型ロボット,制造ラインでの判定では学习したネットワークでの推论にも速度が求められます.MATLABではGPU编码器を用いて作成モデルと利用GPUに合わせて最适化されたコードを生成して高速に推论を行うことができます。

図4。深度学习工具箱はCNNをゼロから学习する场合でも,転移学习に事前学习済みのモデルを使用する场合でもご利用になれます。

ディープラーニングのアプリケーション

手元の問題に迅速にディープラーニングを適用するにあたっては,学習済みのディープニューラルネットワークのモデルを使った転移学習や特徴抽出の手法が使えるでしょう.MATLABユーザが利用可能なモデルとしては,AlexNet, VGG-16, VGG-19の他に,importCaffeNetworkを使用してインポートされた咖啡モデル(咖啡模型动物园など)があります。

【制造现场で使える】ディープラーニングによる异常検知


製造現場での外観検査にディープラーニングを使って,异常検知や不良検知を行うことができます。

例:ディープラーニングを活用したCT撮影における放射线被ばくリスクの低减

立命館大学ではCNN回帰をベースとしたCTスキャンシステムにより通常の診断情報を提供しながら,放射線被ばく量を最大95%低減しました。

MATLABによるディープラーニング

MATLABでディープラーニングは简単になります.MATLABは,大规模なデータセットを管理するツールと机能に并せて,机械学习,ニューラルネットワーク,コンピュータビジョン,自动运転に特化したツールボックスを提供しています。

MATLABを使えばわずか数行のコードでディープラーニングを行うことができます。ディープラーニングの専门家になる必要はありません。素早く始めて,モデルを作成·可视化し,サーバーや组み込みデバイスに展开していきましょう。

ディープラーニングにMATLABを使用したチームが成功しているのには,理由があります。

  1. わずか数行のコードでモデルを作成·可视化
  2. MATLABでは,最小限のコードでディープラーニングのモデルを构筑できます。さらに深层网络设计师のアプリを使えば,マウス操作と簡単な設定によりコードを記述することなくモデルを構築することも可能です.MATLABを使えば,迅速に学習済みモデルを取り込み,可視化し,学習パラメータを調整しつつ,中間結果をデバッグできます。

  3. 専门家になる前にディープラーニングを试す
  4. MATLABであれば,使いながらディープラーニングの専门知识を身につけていくことができます。私たちのほとんどはディープラーニングの讲义を受けたことがありません。実践を通して学ぶ必要があります.MATLABは,この分野についての学びを身近で実践的なものにしてくれます。あなたが専门とする业界や専门分野について知识を持たないデータサイエンティストに役目を引き渡す代わりに,その道の専门家が自らディープラーニングを実践していくことができるのです。

  5. 静止画や动画の地面实测ラベリングを自动化
  6. MATLABでは,静止画の場合には物体を対話的にラベル付けすることができ,動画の場合にはラベリングを半自動化することができます。こうしたラベルの情報はディープラーニングのモデルの学習とテストに使われるものですが,こうした対話的で自動化されたアプローチがより短時間でより良い結果を導くことにつながっていきます。

  7. ディープラーニングのワークフローをひとつに统合
  8. MATLABにより,複数の分野に渡るワークフローをひとつに統合することができます。アイデアの検討とプログラミングをひとつの環境で実現することができます.MATLABはディープラーニングに対してのみツールや機能を提供しているのではなく,ディープラーニングのアルゴリズムを適用することになる分野にも同様にツールや機能を提供します。これらの分野は信号処理やコンピュータビジョン,データアナリティクスなど,幅広い領域に広がっています。

MATLABを通して,既存のアプリケーションに得られた成果を統合していくことができます.MATLABを使えば,ディープラーニングのモデルをエンタープライズシステム,クラスター,クラウド,組み込みデバイスに展開していくプロセスを自動化することができます。

ディープラーニングの学習,適用に関するさらに詳しい情報は,MATLAB计算机视觉工具箱™统计和机器学习工具箱™深度学习工具箱™,と自动驾驶的工具箱™でご覧いただけます。

MATLABを使用したディープラーニングの事例もご覧ください。

ディープラーニングについてさらに详しく

立命館大学ではCNN回帰をベースとしたCTスキャンシステムにより通常の診断情報を提供しながら,放射線被ばく量を最大95%低減しました。
学習済み畳み込みニューラルネットワークのカスタムにより,独自の画像分類を比較的簡単に行うことができる”転移学習(学习)转移“を紹介します。今回は学習済みのAlexNetを用いて5種類の分類を行う独自タスクに挑戦しています。サンプルコードでお試しいただけます。
ディープラーニングの基础をMATLAB®技术讲座で学びましょう。なぜディープラーニングがこれほど人気なのかを解说します。ディープラーニングとは,応用例,どうやって始めるかの3つのコンセプトでみていきます。
无料でできる2时间のディープラーニング入门コースでは,ディープラーニングを使った画像认识を,短い解说ビデオ+ブラウザ上で実行する演习问题で実践的に习得できます。
外観検查にむけた画像处理ワークフローを,従来の画像处理とディープラーニング技术の使いどころとあわせてご绍介いたします.MATLABによる,アルゴリズム设计から実装までのシームレスな开発の様子を通して,现场への活用の具体的なイメージを持ちたい方におすすめです。
自律型アームロボット开発を例にMATLAB®/万博1manbetxSimulink®的を活用した效率的なロボット开発のワークフローをご覧いただきます。画像の取得,机械学习による物体认识,奥行きデータの取り扱い,逆运动学による关节角度计算,最适化による轨道生成,制御などを效率的に试行错误できる様子をご绍介します。
ディープラーニング(深層学習)をMATLABで行う方法をご紹介します。積層自己符号化器(堆叠Autoencoder)と畳み込みニューラルネット(卷积神经网络)を例題を交えてご紹介します。
ディープラーニング(深层学习)を使った画像の认识·検出技术についてのご绍介.CNNの基本的な解说から始めて,転移学习やCNN特徴量,R-CNN等についても解说いたします。
ディープラーニング(深层学习)を使った画像のセグメンテーションに关するご绍介.CNNをベースに発展してきたセマンティック·セグメンテーションの技术について解说します。