主要内容

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

MATLAB软件による深層学習

深層学習とは

"深層学習"とは、人間が生まれながらに身に付けている、経験から学ぶという行動をするようにコンピューターに学習させる機械学習の一分野です。機械学習アルゴリズムは、事前に定義された方程式をモデルとして使用するのではなく、計算法を使用して情報をデータから直接 "学習" します。深層学習は画像認識に特に適しており、顔認識、動き検出などの問題のほか、自動運転、車線検出、歩行者検出、自動駐車などの先進運転者支援技術の多くが抱える問題を解決するために重要です。

深度学习工具箱™ には、深層ニューラル ネットワークの層の作成と相互結合を行うためのシンプルな MATLAB软件®コマンドが用意されています。例と事前学習済みのネットワークを利用すると、高度なコンピューター ビジョン アルゴリズムやニューラル ネットワークの知識がなくても、MATLAB软件を使用して簡単に深層学習を行うことができます。

実際の深層学習の各種手法を無料でお試しいただくには、ディープ ラーニング入門をご覧ください。

何をしますか? 詳細
転移学習を実行してネットワークを自分のデータで微調整する

転移学習を使用した短時間での深層学習の開始

ヒント

通常、新しいタスクを学習するように事前学習済みのネットワークを微調整する方が、新しいネットワークに学習させるよりもはるかに簡単で時間がかかりません。

事前学習済みのネットワークでイメージを分類する 事前学習済みの深層ニューラル ネットワーク
分類または回帰用の新しい深層ニューラル ネットワークを作成する

分類用のシンプルな深層学習ネットワークの作成

回帰用の畳み込みニューラル ネットワークの学習

学習または予測用にイメージのサイズ変更、回転、または前処理を行う イメージの深層学習向け前処理
フォルダー名を基に自動で、またはアプリを使用して対話的にイメージ データにラベルを付ける

イメージ分類についてのネットワークの学習

イメージ ラベラー(计算机视觉工具箱)

シーケンスおよび時系列データ用の深層学習ネットワークを作成する

深層学習を使用したシーケンスの分類

深層学習を使用した時系列予測

イメージ (道路、車、歩行者など) の各ピクセルを分類する 深層学習を使用したセマンティック セグメンテーション入門(计算机视觉工具箱)
イメージ内のオブジェクトを検出して認識する 深層学習、セマンティック セグメンテーション、検出(计算机视觉工具箱)
テキスト データを分類する 深層学習を使用したテキスト データの分類
音声認識のためにオーディオ データを分類する 深層学習を使用した音声コマンド認識
ネットワークが学習した特徴を可視化する

鹰嘴豆を使用した 深沉的梦イメージ

畳み込みニューラル ネットワークの活性化の可視化

CPU、GPU複数の 图形处理器による学習、デスクトップまたはクラウドのクラスターにおける並列学習、大きすぎてメモリに収まらないデータセットの処理 图形处理器および並列でのビッグ データを使用した深層学習

自動運転などの深層学習の応用分野の詳細は、深層学習の応用を参照してください。

事前学習済みのネットワークを使用するか、新しい深いネットワークを作成するか、この表のシナリオを検討して選択してください。

転移学習に事前学習済みのネットワークを使用 新しい深いネットワークを作成
学習データ ラベル付けされた数百枚から数千枚のイメージ (小規模) ラベル付けされた数千枚から数百万枚のイメージ
計算 計算量が中程度 (图形处理器はオプション) 計算量が多い (速度のために 图形处理器必須)
学習時間 数秒から数分 実際の問題で数日から数週間
モデルの精度 良い (事前学習済みのモデルによる) 高い (ただし、小規模なデータセットには過適合する場合がある)

詳細については、ネットワーク アーキテクチャの選択を参照してください。

深層学習はニューラル ネットワークを使用して、有用な特徴表現をデータから直接学習します。ニューラル ネットワークとは、複数の非線形処理層を組み合わせであり、生物の神経系からヒントを得た並列実行するシンプルな要素を使用します。深層学習モデルは、オブジェクトの分類において最先端の精度を達成でき、しばしば人間の能力を超えることがあります。

モデルの学習は、ラベル付けされた大規模なデータセットと、通常は複数の畳み込み層を含む多くの層から成るニューラル ネットワーク アーキテクチャを使用して行います。これらのモデルの学習は計算量が多くなります。通常は、高性能の 图形处理器を使用して学習時間を短縮できます。次の図は、畳み込みニューラル ネットワークが多くのイメージから特徴を自動的に学習する層をどのように組み合わせて新しいイメージを分類しているかを示しています。

多くの深層学習アプリケーションは、イメージ ファイルを使用します。場合によっては、数百万枚のイメージ ファイルを使用することもあります。深層学習用の多くのイメージ ファイルに効率的にアクセスするために、MATLAB软件には関数图像数据存储が用意されています。この関数を使用して、以下が行えます。

  • イメージをバッチ単位で自動的に読み取り、機械学習とコンピューター ビジョン アプリケーションの処理を高速化

  • 大きすぎてメモリに収まらないイメージ コレクションからデータをインポート

  • フォルダー名に基づいて自動的にイメージにラベル付け

10行のMATLAB软件コードによる深層学習の例

この例では、わずか 10行の MATLAB软件コードを使用して、深層学習でライブ 网状物カメラに映ったオブジェクトを特定する方法を説明します。この例を試して、MATLAB软件でどれほど簡単に深層学習を始めることができるか確認してください。

  1. 次のコマンドを実行して (ダウンロードが必要な場合あり)、网状物カメラに接続し、事前学習済みのニューラル ネットワークを取得します。

    摄像头=网络摄像头;%连接到摄像头net=网络;%加载神经网络

    网络摄像头および亚历克斯内特アドオンをインストールする必要がある場合は、各関数からのメッセージに表示されるリンクから、アドオン エクスプローラーを使用して無料のアドオンをダウンロードできます。または、深度学习工具箱模型对于AlexNet网络およびMATLAB软件金宝appUSB网络摄像头支持包を参照してください。

    深度学习工具箱模型对于AlexNet网络をインストールすると、それを使用してイメージを分類できます。亚历克斯内特は、100万枚を超えるイメージで学習している事前学習済みの畳み込みニューラル ネットワーク ((美国有线电视新闻网)で、イメージを 1000個のオブジェクト カテゴリ (キーボード、マウス、マグ カップ、鉛筆、多くの動物など) に分類できます。

  2. 次のコードを実行し、ライブ イメージを表示して分類します。网状物カメラをあるオブジェクトに向けると、网状物カメラに表示されているオブジェクトのクラスがニューラル ネットワークによって判断されて報告されます。イメージの分類は、Ctrl键+Cキーを押すまで続行されます。このコードでは、调整大小(图像处理工具箱)を使用して、このネットワーク用にイメージをリサイズしています。

    虽然真im=快照(相机);%拍照图像(im);%显示图片im=imresize(im,[227]);%为alexnet调整图片大小label=分类(net,im);%将图片分类标题(字符(标签));%显示类标签刷新屏幕结束

    この例では、ネットワークはマグ カップを正しく分類しています。身の回りのオブジェクトで実験して、このネットワークの精度を確認してください。

    この例のビデオを見るには、深入学习11行MATLAB代码を参照してください。

    この例を拡張してクラスの確率スコアを表示する方法については、深層学習を使用した 网状物カメラ イメージの分類を参照してください。

    深層学習の次のステップとして、この事前学習済みのネットワークを他のタスクに使用できます。転移学習または特徴抽出を使用して、自分のイメージ データで新しい分類問題を解決してみましょう。例については、転移学習を使用した短時間での深層学習の開始事前学習済みのネットワークから抽出された特徴を使用した分類器の学習を参照してください。他の事前学習済みのネットワークを試してみるには、事前学習済みの深層ニューラル ネットワークを参照してください。

転移学習を使用した短時間での深層学習の開始

転移学習は、深層学習アプリケーションでよく使用されています。事前学習済みのネットワークを取得して、新しいタスクの学習の開始点として使用できます。転移学習によってネットワークを微調整する方が、ゼロから学習させるよりもはるかに簡単で時間がかかりません。少ない数の学習イメージを使用して、ネットワークに新しいタスクを高速に学習させることができます。転移学習の利点は、事前学習済みのネットワークが既に特徴を多数学習しており、これらの特徴を他のさまざまな類似タスクに適用できることです。

たとえば、数千枚または数百万枚のイメージで学習したネットワークを利用する場合、わずか数百枚のイメージを使って再学習させることで、新しいオブジェクトを検出できるようになります。元の学習データと比べて非常に小規模なデータセットを使用して、事前学習済みのネットワークを効果的に微調整できます。データセットが非常に大規模な場合、転移学習は新しいネットワークが学習する場合に比べて速くならない可能性があります。

転移学習には以下の利点があります。

  • 事前学習済みのネットワークの学習済みの特徴を新しい問題に転移

  • 転移学習は新しいネットワークに学習させるよりも簡単で時間がかからない

  • 学習時間とデータセットのサイズの削減

  • 新しいネットワークをゼロから作成する方法を知る必要なしに深層学習を実行

対話形式での例については、ディープ ネットワーク デザイナーを使用した転移学習を参照してください。

プログラムによる例については、新しいイメージを分類するための深層学習ネットワークの学習を参照してください。

事前学習済みのネットワークから抽出された特徴を使用した分類器の学習

特徴抽出では、学習に時間や手間をかけずに事前学習済みのネットワークの能力を活用できます。特徴抽出は、最も早く深層学習を使用できる方法と言えます。事前学習済みのネットワークから学習済みの特徴を抽出し、これらの特徴をサポート ベクター マシン (统计与机器学习工具箱™ が必要) などの分類器の学習に使用することができます。たとえば、亚历克斯内特を使用して学習させた 支持向量机が、学習セットと検証セットで 90% を超える精度を達成できる場合、それ以上の精度を実現するために転移学習を使用して微調整することに労力に見合う価値はないかもしれません。小規模なデータセットで微調整を行うと、過適合のリスクも生じます。支持向量机の適用によって十分な精度を達成できない場合は、精度を向上させる微調整を行うだけの価値があります。

例については、事前学習済みのネットワークを使用したイメージの特徴の抽出を参照してください。

CPU、GPU並列、およびクラウドでのビッグ データを使用した深層学習

ニューラル ネットワークは本質的に並列アルゴリズムです。この並列性の利点を活かし、并行计算工具箱™ を使用して、学習をマルチコア 中央处理器グラフィックス処理装置 (GPU)および複数の 中央处理器と 图形处理器を備えたコンピューターのクラスターに分散させることができます。

深いネットワークの学習は計算量が非常に多くなります。通常は、高性能の 图形处理器を使用して学習時間を短縮できます。適切な 图形处理器がない場合は、代わりに 1.つ以上の 中央处理器コアで学習させることができます。畳み込みニューラル ネットワークの学習は、1.つの 图形处理器または 中央处理器で、複数の 图形处理器または 中央处理器コアで、あるいはクラスターで並列に行えます。图形处理器または並列オプションを使用するには 并行计算工具箱が必要です。

大きすぎてメモリに収まらないデータセットを使用して問題を解決するために、複数のコンピューターは必要ありません。関数图像数据存储を使用して、マシンのクラスターを使用せずに、データのバッチを処理できます。ただし、利用できるクラスターがある場合は、コードをデータ リポジトリに入れる方が、大量のデータをあちこちに移動させるよりも有効なことがあります。

深層学習のハードウェアおよびメモリ設定の詳細は、图形处理器および並列でのビッグ データを使用した深層学習を参照してください。

関連するトピック