ディープラーニング
これだけは知っておきたい3つのこと
ディープラーニング(深層学習)とは,人間が自然に行うタスクをコンピュータに学習させる機械学習の手法のひとつです。人工知能(AI)の急速な発展を支える技術であり,その進歩により様々な分野への実用化が進んでいます。近年開発の進んでいる自動運転車においてもカギとなっているのは,ディープラーニングです。停止標識を認識したり,電柱と人間を区別したりするのも,ディープラーニングが可能にしている技術と言えます。また,電話,タブレット,テレビ,ハンズフリースピーカーなどの音声認識にも重要な役割を果たしています。近年ディープラーニングが注目を集めているのには理由があります。それはディープラーニングが,従来の技術では不可能だったレベルのパフォーマンスを達成できるようになってきているからです。
ディープラーニングの技術は,人間の神経細胞(ニューロン)の仕組みを模したシステムであるニューラルネットワークがベースになっています。ニューラルネットワークを多層にして用いることで,データに含まれる特徴を段階的により深く学習することが可能になります。多層構造のニューラルネットワークに大量の画的像,テキスト,音声データなどを入力することで,コンピュータのモデルはデータに含まれる特徴を各層で自動的に学習していきます。この構造と学習の手法がディープラーニング特有であり,これによりディープラーニングのモデルは極めて高い精度を誇り,時には人間の認識精度を超えることもあります。
いかにしてディープラーニングはこれほど优れた成果をあげているのでしょうか。
ひと言で言えば,精度です。ディープラーニングは,かつてない高いレベルの認識精度に到達しています。高い認識精度は,家庭用電気機器の分野ではよりユーザの期待に応えることにつながります。また自動運転車のように安全性が最優先されるべき分野では,認識精度は何より重要な要素であると言えます。ディープラーニングは近年の進歩により,画像認識などのタスクにおいて,人间の认识能力を超えるまでになっています。
ディープラーニングが最初に理論として登場したのは1980年代ですが,近年になって注目を集めるようになったのには2つの理由があります。
- ディープラーニングには大量のラベル付けされたデータが必要です。例えば,自動運転車の開発には数百万の静止画像と数千時間の動画が必要となります。これまでは,近年のように大規模なデータを入手することが容易ではなかったため,今ほど高いレベルの認識精度を実現できていませんでした。
- ディープラーニングには高度なコンピュータの处理能力が不可欠です。高性能なGPUは,ディープラーニングに効率的な並列構成になっています.GPUをクラスターやクラウドと組み合わせることで,これまでは数週間を要したネットワークの学習時間を,数時間以下にまで短縮することができました。
ディープラーニングの応用例
ディープラーニングは自動運転から医療機器まで幅広い分野に活用されています。
自動運転:自動車の研究者はディープラーニングを使い,一時停止標識や信号機のようなものを自動的に認識させています。さらに,歩行者検知にも使われており,事故の減少に役立てられています。
航空宇宙·防卫:ディープラーニングは衛星から物体認識・物体検出を行い,地上の部隊が安全なエリアにいるかどうかを判断するために使われています。
医療研究:がんの研究者はディープラーニングを使い,自動的にがん細胞を検出しています.UCLAの研究チームは,ディープラーニングの学習に必要な高次元のデータセットを作成する高精度な顕微鏡を構築し,正確にがん細胞を見つけ出しています。
産業オートメーション:ディープラーニングは重機の周辺で業務を行う作業者の安全性向上に役立てられています。人や物が機械の危険域内に侵入した場合,これを自動的に検出することができます。
エレクトロニクス(CES):ディープラーニングは,自動の音声翻訳に使われています。例えば,人の声に反応し,人の好みを学ぶことができるホームアシスタントデバイスには,ディープラーニングの技術が活用されています。
ディープラーニングの仕组み
ディープラーニングの多くの手法に,ニューラルネットワークの構造が使われ,そうした背景からディープラーニングのモデルは,ディープニューラルネットワークとも呼ばれています。
通常“ディープ”という表現は,ニューラルネットワークの隠れ層の数について言及しているものです。従来のニューラルネットワークでは隠れ層はせいぜい2 ~ 3程度でしたが,ディープニューラルネットワークは150もの隠れ層を持つこともありえます。
ディープラーニングのモデルは,大規模なラベル付けされたデータとニューラルネットワークの構造を利用して学習を行います。これにより,データから直接特徴量を学習することができ,これまでのように手作業の特徴抽出は必要なくなりました。
ディープニューラルネットワークで最もよく使われているのは,畳み込みニューラルネットワーク(美国有线电视新闻网または事先)というネットワークです。畳み込みニューラルネットワークでは学習された特徴を入力データと畳み込みます。この2次元の畳み込み層が,このアーキテクチャを画像などの2次元データの処理に適したものにしています。
畳み込みニューラルネットワークでは,手作業での特徴抽出は必要ありません。画像分類に使う特徴量を探し出す必要もありません。畳み込みニューラルネットワークが画像から直接特徴抽出を行います。関連する特徴量は事前には学習する必要がありません。大量の画像データによる学習を通して学び取られます。この自動的な特徴抽出の仕組みにより,物体認識などのコンピュータビジョンのタスクにおいてディープラーニングのモデルは高い分類精度を持つことになりました。
畳み込みニューラルネットワークは,数十から数百もの隠れ層により,1つの画像に含まれる数々の特徴を学習していきます。層が進むにつれて,より複雑な特徴を学習します。例えば,最初の隠れ層ではエッジ検出など単純な特徴からスタートして,最後の層ではより複雑な特徴,特に認識したい物体の形状の学習へと進んでいきます。
機械学習とディープラーニングの違いとは吗?
ディープラーニングは機械学習のひとつの特殊な形と言えるものです。通常の機械学習のワークフローは,画像からマニュアルで特徴量を抽出することからスタートします。そして,抽出した特徴量を使って画像内の物体を分類するモデルを作成します。一方,ディープラーニングでは,特徴量は画像から自動的に抽出されます。また,ディープラーニングは”エンドツーエンドな学習”を実行できまつす。まり,ネットワークは生の画像データと,分類など処理すべきタスクを与えられ,自動的にその処理方法を学習していきます。
もう一つの大きな违いは,シャローラーニングがデータの増加に対して性能が头打ちになるのに対して,ディープラーニングではその性能がデータのサイズに対してスケールする点にあります。
ディープラーニングの大きな利点は,データが増えていくにつれ,しばしばその精度を向上させていくことができる点にあると言えるでしょう。
一般的な機械学習では,特徴量と分類器は手動で選択されるのに対して,ディープラーニングでは特徴量の抽出とモデリングは自動的に行われます。
機械学習とディープラーニングから最適な手法を選ぶ
机械学习には幅広い手法とモデルがあり,用途や处理するデータサイズ,解决したい课题のタイプに合わせて选択することができます。一方,ディープラーニングを成功させるには,データを高速で处理するためのGPUだけでなく,モデルを学习させるための大量のデータ(数千もの画像)が必要となります。
機械学習かディープラーニングを選ぶときは,まず高性能なGPUと大量のラベル付けされたデータがあるかどうかを確認して下さい。もしどちらかが欠けている場合,ディープラーニングではなく機械学習が適当と言えるでしょう。ディープラーニングは一般的に機械学習より複雑であるため,信頼できる結果を得るには少なくとも数千の画像が必要となります。より高性能なGPUがあれば,そうした大量の画像の学習に必要な時間はさらに短縮していくことができます。
ディープラーニングモデルの作成,学習方法
ディープラーニングを使用した物体认识には下记の3つの手法がよく使われています。
ゼロから学習する
ディープネットワークをゼロから学習するには,大量のラベル付けされたデータを集め,特徴量を学習しモデル化するためのネットワークを設計する必要があります。この方法は,新しい分野での応用や,出力するカテゴリ数が多い場合には有効ですが,大量のデータと学習時間が必要であることから,使用頻度はそれほど高くありません。通常,こうしたタイプのネットワークの学習には,数日から数週間といった長い時間を要します。
転移学習
多くのディープラーニングの応用では,学習済みモデルの微調整を行うタイプのアプローチとして,転移学習が利用されています。この転移学習では,AlexNetやGoogLeNetといった既存の学習済みのネットワークに対して,そのネットワークでは事前には学習されていないクラスを含むデータを与えて学習させます。その場合,学習済みのネットワークには若干の修正が必要となりますが,ネットワークの学習後には本来の“1000種類のカテゴリへの分類”の代わりに“犬か猫か”といった新しいタスクを行わせることができるようになります。この手法には,ゼロからネットワークを学習させる場合と比較して必要なデータ数がはるかに少なくて済むという利点があり(何百万ではなく数千の画像),計算時間は数分から数時間程度に短縮されます。
転移学習では,既存のネットワークに対して切り貼りをしたり,新しいタスクに対して拡張を行ったりすることが必要となるため,ネットワークの内部構造にアクセスするインターフェースが必要となりますが,MATLAB®にはこうした転移学習を手助けするためのツールや関数がいくつも揃っています。
特徴抽出
やや一般的ではありませんが,ディープラーニングのより専門的な手法として,ネットワークを特徴抽出器として使用する方法があります。ネットワークのすべての層は画像からある種の特徴量を抽出する役割を持っているため,我々は推論の任意の段階でこうした特徴量を取り出すことが可能です。このようにして取り出した特徴量は,サポートベクターマシンなどの機械学習モデルへの入力として使用することができます。
ディープラーニングの学習を高速化
ディープラーニングモデルの学習には,数日から数週間といった長い時間を要することがあり,多数の画像を用いる場合にはより適切な計算環境を用意する必要があります。
GPU
GPUを使うことでディープラーニングの演算を大幅に高速化できます.MATLABをGPUと併用することで,ネットワークの学習に必要な時間を減らし,画像分類に必要な学習の時間は数日から数時間に短縮することができます。ディープラーニングの学習においては,MATLABを使うことで,GPUプログラミングの详细を知らなくてもGPUを使いこなすことができてしまいます。
クラウド
グループでディープラーニングに取り組む場合には,計算環境の調整も必要となることがあります.GPU搭載マシンを提供するクラウドサービスを利用することも選択肢の一つです.MATLABでは,Amazon Web服务や微软Azureをスムーズに用いて学習できる環境を提供しています.Reference架构ではMATLABインストール済みのクラウド環境をすぐに立ち上げることができます。またデスクトップで作業をしながら学習などの計算コストが高い部分だけをクラウドに投げることも可能です.Cloud中心からマシンの選択から起動,セットアップファイルの準備を簡単に行うことができます。
さらにNVIDIA GPU云(NGC)のMATLABコンテナを用いれば,NVIDIA DGXシステムまたはサポートされているクラウドサービスプロバイダーのシステムで面倒なセットアップに悩まされることなく高速学习のための环境を构筑することができます。
ディープラーニングの推论を高速化
ディープラーニングの适用先である,自动运転や自律型ロボット,制造ラインでの判定では学习したネットワークでの推论にも速度が求められます.MATLABではGPU编码器を用いて作成モデルと利用GPUに合わせて最适化されたコードを生成して高速に推论を行うことができます。
ディープラーニングのアプリケーション
手元の問題に迅速にディープラーニングを適用するにあたっては,学習済みのディープニューラルネットワークのモデルを使った転移学習や特徴抽出の手法が使えるでしょう.MATLABユーザが利用可能なモデルとしては,AlexNet, VGG-16, VGG-19の他に,importCaffeNetworkを使用してインポートされた咖啡モデル(咖啡模型动物园など)があります。
【製造現場で使える】ディープラーニングによる異常検知
製造現場での外観検査にディープラーニングを使って,异常検知や不良検知を行うことができます。
例:ディープラーニングを活用したCT撮影における放射線被ばくリスクの低減
立命館大学ではCNN回帰をベースとしたCTスキャンシステムにより通常の診断情報を提供しながら,放射線被ばく量を最大95%低減しました。
MATLABでディープラーニングは簡単になります.MATLABは,大規模なデータセットを管理するツールと機能に併せて,機械学習,ニューラルネットワーク,コンピュータビジョン,自動運転に特化したツールボックスを提供しています。
MATLABを使えばわずか数行のコードでディープラーニングを行うことができます。ディープラーニングの専門家になる必要はありません。素早く始めて,モデルを作成・可視化し,サーバーや組み込みデバイスに展開していきましょう。
ディープラーニングにMATLABを使用したチームが成功しているのには,理由があります。
- わずか数行のコードでモデルを作成・可視化
- 専门家になる前にディープラーニングを试す
- 静止画や动画の地面实测ラベリングを自动化
- ディープラーニングのワークフローをひとつに統合
MATLABでは,最小限のコードでディープラーニングのモデルを構築できます。さらに深层网络设计师のアプリを使えば,マウス操作と簡単な設定によりコードを記述することなくモデルを構築することも可能です.MATLABを使えば,迅速に学習済みモデルを取り込み,可視化し,学習パラメータを調整しつつ,中間結果をデバッグできます。
MATLABであれば,使いながらディープラーニングの専門知識を身につけていくことができます。私たちのほとんどはディープラーニングの講義を受けたことがありません。実践を通して学ぶ必要があります.MATLABは,この分野についての学びを身近で実践的なものにしてくれます。あなたが専門とする業界や専門分野について知識を持たないデータサイエンティストに役目を引き渡す代わりに,その道の専門家が自らディープラーニングを実践していくことができるのです。
MATLABでは,静止画の場合には物体を対話的にラベル付けすることができ,動画の場合にはラベリングを半自動化することができます。こうしたラベルの情報はディープラーニングのモデルの学習とテストに使われるものですが,こうした対話的で自動化されたアプローチがより短時間でより良い結果を導くことにつながっていきます。
MATLABにより,複数の分野に渡るワークフローをひとつに統合することができます。アイデアの検討とプログラミングをひとつの環境で実現することができます.MATLABはディープラーニングに対してのみツールや機能を提供しているのではなく,ディープラーニングのアルゴリズムを適用することになる分野にも同様にツールや機能を提供します。これらの分野は信号処理やコンピュータビジョン,データアナリティクスなど,幅広い領域に広がっています。
MATLABを通して,既存のアプリケーションに得られた成果を统合していくことができます.MATLABを使えば,ディープラーニングのモデルをエンタープライズシステム,クラスター,クラウド,组み込みデバイスに展开していくプロセスを自动化することができます。
ディープラーニングの学習,適用に関するさらに詳しい情報は,MATLAB,计算机视觉工具箱™,统计和机器学习工具箱™,深度学习工具箱™,と自动驾驶工具箱™でご覧いただけます。
MATLABを使用したディープラーニングの事例もご覧ください。