MATLABでディープラーニングのサンプルを動かしてパソコンを検討した

MATLABでディープラーニングのサンプルを動かしてパソコンを検討した

matlabのCNNサンプル実行画像

「今使っているパソコンのスペックで、MATLABのディープラーニングは 問題なく動作するだろうか?」

ここでは、MATLABのディープラーニングのサンプルを動かして、 一般的なスペックのパソコンでストレスなく動くかを確認しています。

仕事でMATLABを使ったディープラーニングをプログラミングをすることになり、 新しいパソコンが必要かどうかを調査するのが目的です。

ちなみに、私が持っているパソコンのスペックはこんな感じです。

  • CPU:Core i5 1.6GHz
  • メモリ:8GB
  • グラフィックス:Intel UHD Graphics620
  • ストレージ:SSD 500B

それでは見ていきましょう。

目次

どんなサンプルを動かしてみた?

今回動かしてみたディープラーニングのサンプルは、 MathWorks公式サイトにある「分類用のシンプルな深層学習ネットワークの作成」になります。

「分類用のシンプルな深層学習ネットワークの作成」・ MathWorks公式サイト

このサンプルがどんなプログラムかというと、 ディープラーニングの学習の方法と、 その学習したデータを使って認識する方法を学ぶチュートリアルになっています。

具体的には、 まず数字の画像データが用意されているのでそれを水増しして学習させます。 認識部分では、入力に数字画像を指定して、どのくらいの精度で認識できるかを見ています。

学習用の画像データは、 0~9の各数字1000枚あります。 合計の画像枚数は10000枚になります。

このディープラーニングサンプルでは、各数字で1000枚中750枚を学習用に使用します。 残り250枚を検証用のデータとして使っています。

画像サイズは28x28ピクセルです。 学習するデータの水増しに、いくつかの画像データを回転させています。 こうすることで精度が認識上がっていくのです。

学習する画像ファイルがどんなデータかというと、 以下の画像のような白黒画像になります。

matlabのCNNサンプル実行画像

この画像を畳み込みニューラルネットワークを使って 学習していきます。

次に認識部分です。 学習済みのニューラルネットに対して、検証用の画像データを入力します。

0~1で認識率を出力してくれます。 1に近いほど精度よく認識しているということです。

このサンプルでは、 これらの流れや関数の使い方をプログラムで体験しながら勉強できるという感じですね。

ディープラーニングの学習にどれくらい時間がかかった?

ディープラーニングは学習するときに時間がかかります。 どのくらいの計算時間になるかはパソコンのスペックに依存します。

私が持っているパソコンで学習させた場合、 学習にどれくらい時間がかかるかを見ることが、今回の一番重要な部分です。

CPUのみで学習させた結果は、 28x28ピクセルの画像7500枚の学習で、45秒程度で終わります。

matlabのCNNサンプル実行結果

この程度の画像サイズと枚数であれば、 一般的に使われているパソコンでも特に問題ない速度で学習できる ことがわかりました。

MATLABの処理が速いのもあると思いますが、 それでも最近のパソコンであれば、 入門レベルのディープラーニングの学習で 「数時間待つ・・・」なんてことはないという印象です。

余談ですが、20年くらい前、私が学生だった頃は この入門レベルのディープラーニングの学習でも数時間かかっていました。

表情認識をニューラルネットで研究していましたが、 学習コストが多くてかなり待ち時間が長かった思い出があります。

顔認識だったり、人の認識だったり、車の認識だったりといった、 低解像度の画像を学習する場合では、 そこまで高スペックのパソコンでなくても実用に耐えるでしょう。

学習するのにGPUは必要かを検討した

rtx2080

今回のディープラーニングのサンプルでは、 かなり小さなサイズの画像を使っていたので学習時間も短くなっていました。

大学のゼミ、授業で使うのであれば、 この入門レベルのディープラーニングをすることが多くなることでしょう。 ですので、一般的なパソコンのスペックで十分だと感じています。

しかし、研究や企業の製品開発の場では もう少し大きな画像で枚数も多くなるわけですね。

じっさいに私も医療画像を使ったディープラーニングも予定していまして、 パソコンは専用グラフィックスが入っているパソコンを検討しています。

具体的にいうと MathWorksで紹介されている「CT画像を使ったディープラーニングの事例」と 似たようなことをしたいと考えているわけですね。

ディープラーニングを活用した CT 撮影における放射線被ばくリスクの低減・MathWorks公式サイト

この記事によると、 やはりGPUを使った並列計算で学習させて計算時間を短縮させています。

画像を使った実用的なディープラーニングのプログラミングをするならば、 やはりGPUが必須になってくると感じています。

まとめ

はい、というわけで今回のまとめです。

画像サイズ28x28ピクセルの7500枚を学習させるディープラーニングでは、 一般的なパソコンのスペックで十分ということがわかった。

大学の授業やディープラーニングの勉強をするような 入門レベルのディープラーニングであれば 高いスペックのパソコンは必要ない。

研究や企業での製品開発の場では、 大きなサイズの画像データを使うので 専用グラフィックスが入ったパソコンが必須になってくる。

その場合、 GPUを使った並列計算で学習時間を短縮することができる。

関連記事

MATLABの入門サンプルを動かしてパソコンを検討した

MATLABで動画ファイルから顔検出するサンプルを動かしてパソコンを検討した

MATLABでWEBカメラから顔検出するサンプルを動かしてパソコンを検討した

MATLABで医療CT画像三次元化のサンプルを動かしてパソコンを検討した

MATLABの最適化計算をしてどんなパソコンがいいかを検討した

Copyright (C) MATLABパソコンのおすすめスペック. All Rights Reserved.