32
ディープラーニング体験ソフトウェア 操作マニュアル 2019 10 17 株式会社リアリニット

ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

ディープラーニング体験ソフトウェア

操作マニュアル

2019 年 10 月 17 日

株式会社リアリニット

Page 2: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

2

Page 3: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

3

内容

1 はじめに .............................................................................................................................................................6

2 インストール ......................................................................................................................................................8

2.1 動作環境 ......................................................................................................................................................8

2.2 インストール方法 .......................................................................................................................................8

3 ディープラーニング概要 ..................................................................................................................................10

3.1 ディープラーニングの登場に至る経過 ....................................................................................................10

3.2 画像認識における人工知能技術の活用 ....................................................................................................10

3.3 人工ニューラルネットワークの概要 ........................................................................................................ 11

3.4 畳み込み ....................................................................................................................................................14

3.5 プーリング ................................................................................................................................................16

3.6 ディープラーニング用ネットワークの構成 .............................................................................................17

3.7 パラメータ推定の方法 ..............................................................................................................................18

3.8 学習の最適化 .............................................................................................................................................18

3.9 ミニバッチ ................................................................................................................................................19

3.10 過学習 ....................................................................................................................................................19

4 システムの操作方法 .........................................................................................................................................22

4.1 起動 ...........................................................................................................................................................22

4.2 画像認識 ....................................................................................................................................................22

4.3 ディープラーニング ..................................................................................................................................26

4.4 ディープラーニング計算設定 ...................................................................................................................27

4.5 ディープラーニング結果の保存 ...............................................................................................................28

4.6 データグループフォルダーの内容詳細 ....................................................................................................29

4.7 自作データによるディープラーニングの実施 .........................................................................................30

5 参考文献 ...........................................................................................................................................................32

Page 4: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

4

Page 5: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

5

1 はじめに

Page 6: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

6

1 はじめに

本ソフトウェアは、近年注目を集めているディープラーニングの技術に関心を持つ方々に対して、手軽にその

概要を理解いただけるように開発しました。あらかじめ準備されたデータを開き、簡単な操作を行うことで、デ

ィープラーニングによりコンピュータが自ら適切なパラメータを探しだす様子を確認することができます。さら

に、ディープラーニングが完了した状態のシステムに対して、任意の画像ファイルを与えることにより、その出

力を確認することもできます。

本マニュアルでは、最初にディープラーニングの技術概要について述べたのち、本ソフトウェアが行っている

計算の技術的な背景について説明します。さらに、ソフトウェアの具体的な操作方法を明らかにします。

ディープラーニングに関連する製品が次々と発表される中、技術自体に関心はあっても、学ぶための時間が取

れず、悩んでいる方も多いのではないかと思います。無料で公開されている開発環境もたくさん出てきています

が、プログラミング言語の知識が求められるうえ、技術的背景が詳しくわかっていないとその体験さえもできな

いものが多く、その敷居はかなり高いと言えます。本ソフトウェアが、このような現状にあって困っている方々

に対する助けとなるようであればうれしく存じます。

Page 7: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

7

2 インストール方法

Page 8: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

8

2 インストール

2.1 動作環境

本ソフトウェアを利用するために必要なハードウェアおよびソフトウェアは以下の通りです。

項目 詳細

OS Microsoft Windows 10

Microsoft Windows 8.1(64bit / 32bit)

CPU 上記OSが正常動作するもの

Intel Core i3以上を推奨

メモリ 8GB以上

ディスプレイ 上記OSで正常動作するもの

解像度:1024×1068以上

ハードディスク 必須空き容量:100MB

マウス 必須

2.2 インストール方法

Zip ファイルを解凍し、希望の場所に置いてください。プログラム本体とテスト用データが配置されます。

本ソフトウェアは、.NET Framework 4.5 を使用しています。万が一、起動に失敗する場合は、OS に正

しくインストールされているか確認してください。

Page 9: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

9

3 ディープラーニング概要

Page 10: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

10

3 ディープラーニング概要

3.1 ディープラーニングの登場に至る経過

ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

な知的処理を行わせるものです。従来の技術では困難とされていた処理を行えることが明らかになってきた

ことを受け、近年大変注目されている技術です。

一般の方にもよく知られた適用例として、Google DeepMind 社が開発した囲碁プログラムである

AlphaGo があります。トップ棋士を打ち負かし、その実力を世に知らしめたソフトウェアで、その後、将棋

やチェスなど、別のゲームへの適用が行われ、すでに高い成果を上げています。

ご存知の方も多いと思いますが、囲碁や将棋、マージャンなどのコンピュータゲームは古くからありまし

た。人間がコンピュータ相手にゲームを楽しむ形式で、コンピュータは、人間の指し手を受け、最適と思う

手を自ら考えだして繰り出します。これらのゲームソフトウェアは、開発が進むことで一定の強さにまで成

長してきましたが、プロ棋士に勝利するまでのレベルに到達することはできていませんでした。ディープラ

ーニング技術を活用することで、まずは囲碁の分野で、プロ棋士に勝利できるプログラムが完成し、この技

術が一躍脚光を浴びました。さらに別のゲームに対しての適用を狙い、様々な研究が進められている現状に

あります。

3.2 画像認識における人工知能技術の活用

人工知能の一分野として、入力された写真に何が写っているのかをコンピュータに判別させる技術の研究

があり、古くから様々な取り組みが行われてきました。

例えば動物が写っている写真がたくさんあった場合、人間が見ても判別に迷うものがいくつか混じってい

たりするもので、これをコンピュータのアルゴリズムにより高い精度で判別させることは難しい問題で、従

来の技術では解決できていませんでした。

近年、ディープラーニングの技術を使うと、かなり高い精度で画像の分類が行えることがわかってきまし

た。

ディープラーニングによる画像認識の進め方を簡単に説明すると、以下のようになります。

(1) 学習データセットの準備

システムの学習に使用する画像ファイルを集めます。例えば、犬と猫の分類を行えるシステムを作り

たい場合、犬または猫が写った画像をたくさん集めます。さらに、それぞれの写真がどちらに分類され

るべきかをまとめたデータを準備します。正解を与えるデータの集合を教師データと呼びます。画像デ

ータと教師データからなる集合を学習データセットと呼びます。

〇 〇 〇 〇 〇 〇 〇 〇 〇

犬 猫

(2) 学習の実施

システムに学習データセットを与え、出力値が教師データに近づくように、システム内にあるパラメ

Page 11: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

11

ータの値を調整します。大量の画像ファイルと教師データの組み合わせを与え、コンピュータに繰り返

し計算を行わせることで、どの画像を与えても正解が得られるシステムに近づいていきます。

(3) 結果の検証

システムに検査用の画像ファイルを与え、その結果を調べます。この目的で使用するデータセットを

検査データセットと呼びます。学習によって得られた画像認識精度を確認することができます。

3.3 人工ニューラルネットワークの概要

人工ニューラルネットワークとは、生物の神経細胞の回路をモデル化したもので、機械学習の分野でよく

利用されています。神経細胞のモデルである人工ニューロンをいくつも結合させることで、最終的に一つあ

るいは複数の信号を得ます。

人工ニューロンは、以下のような構造をしています。

Page 12: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

12

複数の入力を受け取り、一定の処理を行ったうえで結果を出力します。具体的には、各入力の値に決めら

れた係数を掛けて、すべてを足し合わせます。

N 個の入力がある場合について、その計算過程を見ていきます。

入力𝑥𝑖について、あらかじめ決められた定数𝑤𝑖を掛けます。この定数𝑤𝑖を重みと呼びます。すべての入力

について、入力と重みを掛け合わせ、合計した値を求めます。この値からある値 𝑏を引いて、出力 𝑢を得ま

す。ここでの値𝑏をバイアスと呼びます。さらに、出力値に関数𝑓を適用して最終出力zが決まります。ここ

での関数𝑓を活性化関数と呼びます。

以上の過程を数式で表すと、以下のようになります。

𝑢 = ∑ 𝑤𝑖𝑥𝑖 − 𝑏

𝑛

𝑖=1

𝑧 = 𝑓(𝑢)

活性化関数には様々なものが提案されています。

ステップ関数は、入力が 0 以上であれば 1 を返し、0 未満であれば 0 を返す関数です。グラフで表すと以

下のようになります。

シグモイド関数は、以下のような関数です。

𝑓(𝑢) =1

1 + 𝑒−𝑢

Page 13: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

13

グラフで表すと以下のようになります。

正規化線形関数(ReLU)は、以下のような関数です。

𝑓(𝑢) = 𝑚𝑎𝑥(0, 𝑢)

グラフで表すと以下のようになります。

最後にソフトマックス関数を挙げておきます。犬と猫の画像を分類するといった問題の場合、出力値の合

計が 1 となるような実数値を得ることに意味があります。そこで、以下に示す関数を用いて確率に変換しま

す。

𝑓(𝑢𝑐) =𝑒𝑢𝑐

∑ 𝑒𝑢𝑘𝑛𝑘=1

数式ではわかりにくいので、具体例を挙げて説明します。出力が 4 つあり、それらの値が(0.9, 0.1, 0.2, 0.4)

だったとしましょう。この時、1 番目の出力値は

𝑢1 = 0.9, 𝑢2 = 0.1, 𝑢3 = 0.2, 𝑢4 = 0.4

𝑓(𝑢1) =𝑒𝑢1

𝑒𝑢1 + 𝑒𝑢2 + 𝑒𝑢3 + 𝑒𝑢4≅ 0.39

となります。

他にも様々な活性化関数が提案されており、対象とする問題に合わせて適切に選ぶことで、学習にかかる

時間を短縮できることが知られています。

ニューラルネットワークは、人工ニューロンを複雑に組み合わせたものを指し、いくつもの階層を構成さ

Page 14: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

14

せて利用することで、より複雑な問題に対応できることが知られています。具体的な例を挙げると、以下の

ようになります。

この例では 3 つの層が存在します。一つ目の層には 4 つの人工ニューロンがあり、4 つの入力がすべての

人工ニューロンの入力となっています。二つ目の層には 4 つの人工ニューロンがあり、ここでの出力は 4 つ

あります。最後の層には 2 つの人工ニューロンがあり、最終的に 2 つの出力を得ます。画像認識に用いる場

合、活性化関数としてソフトマックス関数を選ぶことで、2 つの出力は 0 から 1 の間の値となり、さらにそ

れらの合計が 1 となります。

例えば、犬と猫の分類を行うネットワークとしたい場合は、以下のように教師データを定義します。

学習においては、学習データセットをネットワークに与え、出力と教師データの誤差を得て、誤差が小さ

くなるように、すべての人工ニューロンのパラメータを修正します。この作業を繰り返すことで、最終的に、

犬の画像と猫の画像でそれぞれ正しい出力が得られるネットワークが完成します。

学習完了後、検査データセットを与えると、それぞれの画像につき、0 から 1 の間の値が得られます。た

とえば、(0.8, 0.2)という結果が得られた場合は、犬の可能性 80%、猫の可能性 20%という結果が得られたこ

とになります。

3.4 畳み込み

畳み込みとは、従来からある画像処理の技法の一つで、ニューラルネットワークに与える入力値を減らす

ために、画像処理の場面でよく用いられます。ニューラルネットワークに与える入力値が多ければ、それだ

け調整すべきパラメータも増えていくため、誤差が十分に小さくなるまでの繰り返し回数が増えてしまいま

Page 15: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

15

す。そこで、機械学習に画像処理技術を組み合わせることで、より小さなニューラルネットワークを使った

画像認識を行えるようになりました。

画像ファイルは、色の付いた点の集まりでできています。一つ一つの点をピクセルと呼び、解像度により、

その数が異なります。

実際の画像を十分に拡大すると、各ピクセルが肉眼でも認識できるようになります。

画像認識を行う場合、隣り合ったピクセルに描画された色の違いに意味はなく、周辺のいくつかのピクセ

ルをまとめ、その値を何らかの計算により別の値に変換することで、目的を達成できることが多いものです。

そこで、ここで説明する畳み込みが利用されます。

コンピュータ上で色を表現する場合、赤、青、黄の三原色(RGB)のそれぞれにつき、0 から 255 までの 256

階調で値を持っていることが多く、これにより、約 1600 万色が利用可能となっています。

ここで、縦横 3 ピクセルずつの大きさである画像の RGB 値を数値で表したものを考えてみます。例えば、

以下のようになります。

画像処理では、RGB はそれぞれ別の画像としてとらえ、チャンネルと呼びます。

これらの値を次元でとらえると、縦横の 2 次元に加え、RGB の 3 つのチャンネルが加わり、3 次元のデ

ータとして考えることができます。

それぞれのピクセル値は 0 から 255 までの値となりますが、これらに対して、何らかの演算を行い、新た

Page 16: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

16

な画像を得ることが、ここで対象とする処理内容です。

話を簡単にするため、グレースケール画像を考えましょう。チャンネル数は1となりますが、これに対す

る演算処理に用いるフィルターを定義します。以下はその例です。

ここで例とするフィルターは、中央上が-1、中央が 1、それ以外は 0 となっています。元画像の左上から

右下へ向けて、フィルター画像を重ね合わせ、重なったピクセル同士を掛け合わせて合計すると、新たな値

が算出されます。これを各ピクセルの値とすることで、新たな画像が出力されます。具体的には以下のよう

になります。

ここでは、縦横 3 ピクセルずつのフィルターを用意し、縦横 1 ピクセルずつずらしながら畳み込みを行い

ました。結果として、縦横 3 ピクセルずつの画像が得られました。

このようにして、畳み込み処理を行うことで、元画像の特徴を残した、より小さいピクセルサイズの新し

い画像を生成することができます。これをニューラルネットワークの入力とすることで、学習対象となるパ

ラメータの数を減らすことができ、最終的に学習が終わるまでの時間を短縮することができます。

3.5 プーリング

プーリングは、畳み込みと同じく、画像の特徴を残しながらサイズを小さくする技法の一つであり、ニュ

ーラルネットワークに与える入力値を減らすために有効です。

処理の内容は畳み込みと似ているのですが、フィルターにパラメータは存在しません。フィルターによっ

て画像の一部を取り出し、そこに含まれるピクセル値に対して何らかの処理を行って値を得ます。最大値を

得るものを最大プーリング、平均値を得るものを平均プーリングと呼びます。

グレースケール画像を例に、具体的な例を見ていきましょう。畳み込みの例で使用したものと同じグレー

スケール画像に対して、縦横 3 ピクセルずつのフィルターを使って最大プーリングを行います。

Page 17: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

17

結果として、縦横 3 ピクセルずつの画像が得られました。

プーリング処理は、畳み込み処理と同様、元画像の特徴を残した、より小さいピクセルサイズの新しい画

像を生成することができます。これにより、学習対象となるパラメータの数を減らすことができ、最終的に

学習が終わるまでの時間が短縮されます。

3.6 ディープラーニング用ネットワークの構成

ディープラーニングに用いるネットワークは、畳み込みやプーリングも含め、多数の人工ニューロンが複

雑に結合し、結果として、複数の層を重ね合わせたものとなります。一例を図示すると以下のようになりま

す。

この例では、最初に C で表される畳み込み処理が行われ、続いて P で表されるプーリング処理、さらに

人工ニューロンによるネットワークによる処理を経て、最終的に二つの出力を得ています。

畳み込み処理を行う部分を畳み込み層と呼び、プーリング処理を行う部分をプーリング層と呼びます。さ

Page 18: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

18

らに、複数の人工ニューロンからなる個々の層を全結合層と呼びます。ディープラーニングでは、対象とす

る課題に合わせて適切な層をたくさん組み合わせますが、使用する層の数が増えればそれだけ正解が得られ

る確率が高まる一方、繰り返し計算の時間が長くなるうえ、コンピュータの繰り返し計算では最適なパラメ

ータを見つけ出すことができない場合も出てきます。

3.7 パラメータ推定の方法

各人工ニューロンのパラメータを適切に調整する方法として、確率的最急降下法(Stochastic Gradient

Descent, SGD)があります。

ディープラーニングの目的は、教師データに近づける方向に重みとバイアスの値を変化させることです。

以下、重みに着目しますが、バイアスについても同じ考え方が適用できます。

重みを𝑤、出力値と教師データとの差を𝐸とするとき、以下の更新式により重みの値を変更します。

𝑤 ← 𝑤 − 𝜂𝜕𝐸

𝜕𝑤

𝜂は学習率と呼ばれる値です。𝐸を𝑤の関数ととらえ、𝑤を勾配の負の方向に少しずらします。この作業を

繰り返すことで、勾配が 0 となる場所に限りなく近づいていきます。

このことを直感的に理解するため、二次関数を例に考えてみましょう。

勾配が 0 になる点から遠い場合は、重みを大きく動かします。一方、勾配が 0 になる点に近づくにつれ

て、重みの変更量は小さくなります。こうして、勾配が 0 になる点に近づいていきます。

活性化関数は様々なものが提案されていますが、パラメータ推定が行えるよう、微分可能な関数を選ぶこ

とが重要となります。

3.8 学習の最適化

ネットワークに対するパラメータの調整を行うにあたり、探索しようとする領域に深い谷がある場合は、

谷の端で大きく値が変更され、谷からなかなか脱出できなくなります。

このような不都合を解決することを目指し、より発展したパラメータ推定法が提案されています。

モーメンタム SGD は、確率的最急降下法に慣性項を付与する手法です。教師データとの差を𝐸、前回の計

算における重みの更新量をΔw、調整係数を𝜇とすると、下記の式を用いてパラメータを変更します。

𝑤 ← 𝑤 − 𝜂𝜕𝐸

𝜕𝑤+ 𝜇Δ𝑤

Page 19: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

19

第 3 項は、前回の更新方向を維持しようとする働きを持っており、モーメンタム項と呼ばれます。これに

より、深い谷に入った場合に起こる確率的最急降下法の欠点を解決する効果が期待できます。

Adam は、過去の更新方向を考慮するため、勾配の移動平均を利用します。

重みを𝑤、教師データとの差を𝐸とし、その勾配を𝑔とすると、

𝑔 =𝜕𝐸

𝜕𝑤

と表せます。

現在の計算ステップを t とすれば、上式は以下のとおり書き換えられます。

𝑔𝑡 =𝜕𝐸𝑡

𝜕𝑤𝑡

ここで、前のステップで使用した勾配の一次モーメント(平均)𝑚𝑡−1と、勾配の二次モーメント(分散) 𝑣𝑡−1

から、現在の計算ステップで利用する値を求めます。式で表現すると、

𝑚𝑡 = 𝛽1𝑚𝑡−1 + (1 − 𝛽1)𝑔𝑡

𝑣𝑡 = 𝛽2𝑣𝑡−1 + (1 − 𝛽2)𝑔𝑡2

続いて、それぞれの値に対してバイアス調整を行います。詳細は関連書籍を参照ください。

𝑚�̂� =𝑚𝑡

1 − 𝛽1𝑡

𝑣�̂� =𝑣𝑡

1 − 𝛽2𝑡

更新式は以下の通りです。

Δ𝑤𝑡 = Δ𝑤𝑡−1 − 𝜂𝑚�̂�

√𝑣�̂� + 𝜖

𝜖は、コンピュータ上で計算不能となることを避けるための値で、ごく小さな値を指定します。

𝛽1は 0.9、𝛽2は 0.999 とすることが推奨されています。

3.9 ミニバッチ

与えられたデータから一つを選んでネットワークに与え、パラメータ調整を繰り返す方法を、オンライン

学習と言います。この方法では、選択したデータに対して最適化する方向に学習が進みます。したがって、

すべてのデータに対して適切な解へ向かうとは限りません。

一方、与えられたデータのすべてを選んでネットワークに与え、個々のデータごとに教師データとの誤差

を調べ、その平均を用いてパラメータ調整を繰り返す方法を、バッチ学習と言います。すべてのデータを用

いて誤差を取得しているため、適切な解へ向かう可能性は高いものの、与えられたデータの数が多い場合は、

コンピュータのメモリ上で各データから得られた誤差を保管することが困難になります。

オンライン学習とバッチ学習のメリットを両方享受することを狙った方法がミニバッチ学習です。すべて

のデータの中からサンプルをランダムに選び、学習を行います。一つのグループに含まれるデータの数をバ

ッチサイズと呼び、通常 10 から 100 ぐらいの値を選びます。

3.10 過学習

統計的にデータからパラメータを推定する場合、学習用データに過剰に適合したモデルが出来上がること

Page 20: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

20

があります。これを過学習と呼びます。

具体例を見てみましょう。下図は、グラフ上にプロットした計測結果を近似する曲線を作成したもので、

上が 3 次曲線、下が 6 次曲線です。この例では、3 次曲線で十分な近似が得られており、6 次曲線ではプロ

ットがない部分で不自然な値を示しています。

ニューラルネットワークでの過学習を防ぐ手法として、様々なものが提案されていますが、ここではドロ

ップアウトを説明します。

学習時に、ネットワークに含まれる人工ニューロンの一部をランダムに無効化します。1 回のパラメータ

更新が終わったら、無効化する要素を選びなおし、学習を行います。

無効化する要素の比率を示すパラメータを 0 から 1 の範囲で与えます。0.3 であれば、30%の要素が無効

化され、残り 70%の要素を使用して計算を行うこととなります。

全体の出力は、比率を p とすれば1 − pだけ減ります。そこで、出力の値を1

1−𝑝倍して補正します。

ドロップアウトを行うと、学習の進み具合が遅くなることが欠点で、その分学習回数を増やす必要があり

ます。

Page 21: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

21

4 システムの操作方法

Page 22: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

22

4 システムの操作方法

4.1 起動

エクスプローラを起動してインストール先フォルダーを開き、DeepLearningTrial.exe をダブルクリック

してください。システムが起動します。

4.2 画像認識

インストール先には、あらかじめディープラーニング処理が終わった状態のサンプルデータをいくつか配

置しています。

インストール先にあるTestDataフォルダーを開くと、6つのデータグループフォルダーが確認できます。

それぞれのフォルダー下には、ディープラーニングに使用した画像をまとめた Images フォルダー、教師

データを置いている TeachingData フォルダー、さらに、ネットワーク構造を保持しているデータ(拡張子

は.dnw)があります。

Page 23: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

23

いずれかのデータを使用して、画像認識を試してみましょう。

(1) メインメニューの[ファイル]-[開く]を選ぶ

(2) いずれかのデータグループフォルダーに配置されたネットワークファイルを開く

(3) 個別の画像ファイルについて確認する場合、メインメニューの[計算]-[画像認識]-[個別]を選ぶ

(4) ダイアログ上の<選択>ボタンを押し、ファイルダイアログで、いずれかの画像ファイルを指定する

選択した画像の内容が表示される

(5) ダイアログ上の<実行>ボタンを押す

Page 24: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

24

認識結果がダイアログ上に表示される

(6) ダイアログ上の<閉じる>ボタンを押す

認識結果ダイアログが閉じる

<拡大><縮小>ボタンを押すと、画像全体が拡大縮小します。

画像の上で左マウスによりドラッグ&ドロップを行うと、画像上に赤い四角が現れます。これは、認

識を行う領域を抜き出すことを意味します。Delete キーを押すと、抜き出しがキャンセルされま

す。

フォルダー内にある画像ファイルを一括で処理する場合は、以下のような操作を行います。

(1) メインメニューの[計算]-[画像認識]-[フォルダ一括]を選ぶ

Page 25: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

25

(2) ダイアログ上の<選択>ボタンを押す

(3) 選択したネットワークファイルと同じ場所にある画像フォルダーを選ぶ

(4) [画像認識対象]に画像フォルダーのパスが記載されていることを確認後、<実行>ボタンを押す

(5) リストボックスに、計算処理の進捗と結果が表示される

上記の例で使用したネットワークは、出力が 2 つあり、画像ごとに出力値が表示されています。

リストボックスの内容をテキストファイルとして保存することもできます。<エクスポート>ボタンを押し

Page 26: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

26

てください。ファイルダイアログが現れ、テキストファイルの場所と名称を自由に指定できます。

画像認識に使用するファイルは、データグループフォルダーに配置したものである必要はなく、どのよう

な画像でも利用可能です。

データグループフォルダーに配置した画像ファイル群は、ディープラーニングで使用したファイルである

ことから、高い確率で正しい判定をします。一方、別の画像ファイルを使用してネットワークに入力した場

合は、期待したような判定を行わないかもしれません。

本来ディープラーニングを行う際は、できるだけたくさんの画像を用意しておくことが求められるのです

が、本システムでは、計算にかかる時間を短縮するため、たかだか数十個程度の画像しか使用していません。

そのため、自分で撮影した画像など、別の画像を用意して入力した場合には、判定率が下がる可能性が高い

です。

4.3 ディープラーニング

データグループフォルダーに用意したデータを使用し、ディープラーニングによりパラメータの学習が進

む様子を確認することができます。

前章で述べた通りですが、ディープラーニングは、複数の人工ニューロンからなる複雑なネットワークを

準備し、教師データと十分に近い出力が得られるまで、各人工ニューロンの重みとバイアスを調整する活動

を繰り返すことで、最終的に人間の判断を手助けするような人工知能を実現するための取り組みです。画像

認識を対象とする場合、例えば犬と猫の画像を複数用意し、さらに教師データも準備して、ネットワークに

繰り返し与え、出力値と教師データとの差を考慮しながらパラメータを調整する作業を繰り返します。

データグループフォルダーに用意したデータを使用してディープラーニングを行う具体的な操作手順は、

以下の通りです。

(1) メインメニューの[ファイル]-[開く]を選ぶ

(2) いずれかのデータグループフォルダーに配置されたネットワークファイルを開く

(3) メインメニューの[計算]-[ディープラーニング]-[実行]を選ぶ

ディープラーニングの処理が実行されます。ディープラーニング初期化処理では、画像フォルダーに

配置された画像をすべてロードしたのち、すべての人工ニューロンに対して重みとバイアスを初期化し

Page 27: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

27

ます。その後、配置されたすべての画像を一つずつネットワークに入力し、教師データとの差を考慮しな

がら、重みとバイアスの値を変更します。各ループごとに、すべての画像について処理を行い、誤差の合

計をリストボックスに書き込みます。誤差が十分小さくなるまで処理を繰り返します。

(4) メインメニューの[計算]-[ディープラーニング]-[中止]を選ぶ

ディープラーニングの処理が中止します。

初期化処理では、重みとバイアスの初期化にあたり、乱数を利用します。したがって、繰り返しディープ

ラーニングを実行した場合、ループごとの誤差は異なる値となります。また、初期化時の値の選ばれ方によ

っては、ループを繰り返しても誤差が小さくならない場合もあります。

ここで述べた課題を解決するため、様々な手法が提案されていますが、本ソフトウェアでは、それらの対

策については試すことができないようになっています。技術的な詳細に興味がある方は関連する書籍をご覧

になってください。

4.4 ディープラーニング計算設定

ディープラーニングを行う際の設定を変更できます。具体的な操作は以下の通りです。

(1) メインメニューの[設定]-[計算]を選ぶ

(2) [計算設定]ダイアログボックスで、必要な設定を行う

Page 28: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

28

以下の二つの設定項目があります。

⚫ 重みの初期化

ディープラーニング開始時に、重みおよびバイアスの初期化を乱数で行うかどうかを指定します。

ネットワークファイルは、十分に誤差が小さくなる重みおよびバイアスを保持しているため、この設

定をチェックした状態でディープラーニングを開始した場合、十分小さな誤差の状態から処理が始ま

ります。

⚫ 各画像ファイルに対する結果を出力

この設定をチェックした状態とすると、ネットワークに与えた際の教師データとの誤差を、各画像

ファイルについて個別にリストボックスに出力します。

(3) <OK>ボタンを押す

ダイアログが閉じます。ディープラーニングを行うと、新しい設定に従って処理が進みます。

4.5 ディープラーニング結果の保存

ディープラーニングを行った後の結果を保存できます。ディープラーニングは一般的にかなり時間がかか

る処理ですので、その途中のパラメータを保管して後でディープラーニングを続けたい場合に便利です。

新しい名前でファイルを保存する場合の具体的な操作は以下の通りです。

(1) メインメニューの[ファイル]-[名前を付けて保存]を選ぶ

(2) ファイルダイアログで、保存したい場所とファイル名を指定する

ディープラーニングにあたって画像ファイルと教師データファイルを探す際、ネットワークファイルとの

相対位置で探索します。したがって、ファイル保存の際、既存のネットワークファイルとは異なる場所を指

定した場合、ディープラーニングが行えなくなりますので、その点ご注意ください。

現在の名前でファイル内容を上書き保存する場合の具体的な操作は以下の通りです。

(1) メインメニューの[ファイル]-[保存]を選ぶ

(2) ファイル上書き確認のダイアログボックスで<はい>ボタンを押す

Page 29: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

29

4.6 データグループフォルダーの内容詳細

データグループフォルダーには、テスト用のデータ群がまとめられていますが、その内容について説明し

ます。

各フォルダーには、ネットワークファイルが一つ保管されています。それぞれのネットワーク構造を図示

すると、以下のようになります。

データグループ1:

データグループ2から6:

データグループ1は、入力するピクセルサイズは縦横 16 ピクセルずつ、畳み込み層とプーリング層は一

つずつで、全結合層三つを経て最終的に二つの出力を得ています。また、データグループ2から4は、入力

するピクセルサイズは縦横 200 ピクセルずつ、畳み込み層とプーリング層を二つずつ持ち、全結合層三つを

経て最終的に二つの出力を得ています。

次に、画像ファイルを見てみましょう。データグループ1は、各画像のピクセルサイズは 16x16、データ

グループ2は 200x200 となっており、ネットワークの入力と一致させています。一方、データグループ3か

ら6は、画像のピクセルサイズは任意であり、入力とは一致していません。計算の際には、画像全体を

200x200 に縮小し、各入力に対応する位置の画像上のピクセル値をネットワークの入力としています。

最後に教師データの内容を見てみましょう。カンマ区切り形式のデータであり、画像ファイル名と期待さ

れる出力値二つが各行に列挙されています。データグループ1および2では、画像の色合いに応じた出力を

得られるように設定しており、一方、データグループ3から6では、より具体的な適用を想定し、一つ目の

出力値を犬、二つ目の出力値を猫に対応させて、教師データを作成しています。

データグループ 3 と 4 では、ドロップアウトおよびミニバッチの設定が異なります。データグループ3で

は、ドロップアウトおよびミニバッチを利用していませんが、データグループ4では、両方を利用していま

Page 30: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

30

す。このため、データグループ4の方がディープラーニングにより収束しづらい状況となります。

データグループ5と6では、学習アルゴリズムを変更しています。データグループ5はモーメンタム SGD

を、データグループ6は Adam を利用しています。何度かディープラーニングを繰り返すと、データグルー

プ4と比べ、計算が発散しやすいものの、比較的速く収束するケースも出てくることがわかると思います。

4.7 自作データによるディープラーニングの実施

画像データおよび教師データを入れ替えることで、自作データによるディープラーニングを行うことがで

きます。

画像データおよび教師データは、ネットワークファイルからの相対パスで探索するようになっています。

そのため、データグループの階層はそのままにしたうえで、ファイルを置き換えてください。

画像ファイルを増やすと、ディープラーニングを行ったときの誤差がなかなか小さくならない場合が多く

なります。最初は少なめの画像ファイルを配置して試すことをお勧めします。

Page 31: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

31

5 参考文献

Page 32: ディープラーニング体験ソフトウェア · ディープラーニングは、機械学習の一分野であり、コンピュータに人間が行っている学習を模倣させ、様々

32

5 参考文献

✓ 小高知宏、機械学習と深層学習-C 言語によるシミュレーション-、オーム社

✓ 山岡忠夫、将棋 AI で学ぶディープラーニング、マイナビ出版

✓ 藤田毅、C++で学ぶディープラーニング、マイナビ出版

ここに挙げたもの以外にも、関連する多数の出版物が販売されています。ご興味に応じて入手されるとよいで

しょう。

本マニュアル作成にあたっては、インターネット上の多数の記事も合わせて参考にしました。