学会論文

平成 27 年度
IEICE 北海道支部学生会インターネットシンポジウム
GPGPU とニューラルネットワークを活用した数字識別システムの開発
小野
敦夢
森川 一
旭川工業高等専門学校
1
はじめに
書類の電子化は近年の重要な課題である.電子化されて
いない書類は,デジタル化のメリットを十分活用できない.
ここでの電子化は,スキャニングを用いた「画像化」では
x1
w1
なく,アナログな書類から文字データを含む文書ファイル,
x2 w2
b
すなわち計算機が認識可能な「エンコード文字列」への変
換を意味する.光学文字認識に用いられる明示的プログラ
ミング法と呼ばれる幾何学的特徴等から文字を認識する手
法は,規格化された文字に関しては高速な実行速度と安定
z
w1
xn
artificially neuron
input layer
hidden layer
output layer
Fig. 1 人工ニューロンと多層パーセプトロン
した精度を誇る.しかし,フォント変更やノイズ等には弱
く,手書き文字となると認識は非常に困難になる.本研究
では,高精度な文字認識システムの実現手段の検討のため
に,新たな手法で数字認識を試みる.具体的には,生物の
脳の仕組みを参考にし,
「コンピュータ自身が文字認識のロ
ジックを学習する」という性質をニューラルネットワーク
で実現する.ただし,その手法においては膨大な計算量を
活性化関数は式(2)に示す通り,標準シグモイド関数を採
用する.この活性化関数は,生体ニューロンの「発火」と
いう現象を表す閾値関数を微分可能に拡張した関数である.
𝑧 = 𝐹(𝑍・𝑊 + 𝑏)
1
𝐹(𝑥) = 1+exp⁡(−𝑥)
(1)
(2)
必要とし,
家庭用 PC では計算時間が現実的ではなくなる.
k このため,本研究では,GPU を利用した演算性能向上に
関する手法についても検討した.
多層パーセプトロンは,このシグモイド関数を採用した
シグモイドニューロンを層状に結合し,一方向に信号を伝
達するニューラルネットワークである. 人工ニューロンが
2
ニューラルネットワークと機械学習
2.1 ニューラルネットワーク
微分可能化すると,パラメータの微小変化に対して,パー
セプトロンの出力が微小変化するという特性が得られる.
ニューラルネットワークは,生物の神経細胞である生体
ニューロンの働きから着想を得た数学モデルである.生体
2.2 機械学習
ニューロンは生物において生体信号の処理を担っており,
ニューラルネットワークは,機械学習によって訓練され
人工ニューロンはこの生体ニューロンをモデル化したデジ
パラメータが決定される.機械学習には教師あり学習と教
タルな素子である.ニューラルネットワークは,人工ニュ
師なし学習の2種類がある.教師あり学習は,与えられた
ーロンの信号伝送で計算機を構築する.本研究では,フィ
データに対し目標となる出力が存在し,その目標に近づく
ードフォワード型ニューラルネットワークに該当する多層
ようにパラメータを調整するような学習である.多層パー
パーセプトロンを使用する(Fig.1).
セプトロンは,ベクトルとベクトルの写像を構築する一種
人工ニューロンは,入力と重みを乗じた重み付き入力の
の関数として捉えられる.多層パーセプトロンは,出力ベ
総和を,活性化関数 F を通して出力する.人工ニューロン
クトル𝒚𝒐𝒖𝒕 と目標ベクトル𝒚の差を最小化する関数最適化
の活性 z はベクトル形式で式(1)として表せる.
問題としてパラメータを決定できる.この問題は教師あり
平成 27 年度
IEICE 北海道支部学生会インターネットシンポジウム
学習に分類される.最小化の対象となるコスト関数は,収
用意した訓練データは,28×28 pixel の手書き数字画像
束性能の観点[1]から式(3)に示すクロスエントロピー関数を
4 万 2 千個である.また,隠れ層には入力層と同じ数のユ
採用した.
ニットを採用した.したがって,多層パーセプトロンは
784-784-10 の構成となる(Fig.2).訓練データは,Kaggle
1
𝐽 = − 𝑛 ∑[𝒚⁡ln⁡(𝒚𝒐𝒖𝒕 ) + (1 − 𝒚) ln(1 − 𝒚𝒐𝒖𝒕 )]
(3)
社によって公開されている MNIST hand written digit
database[2]より引用した(Fig.3).
この関数の最適化問題は,最急降下法と誤差逆伝播法の二
つのアルゴリズムで解ける.この二つのアルゴリズムを適
用した結果の計算式は式(4)〜(6)となる.
𝜕𝑱
𝜕𝒛(𝑵)
= 𝜹(𝑀) = (𝒚𝑜𝑢𝑡 − 𝒚)
(4)
(𝐿)
𝜟𝒃𝑛 = ((𝑾𝐿+1 )𝑇 𝜹(𝐿+1) )⨀𝜎 ′ (𝒛(𝐿) )
(5)
(𝐿)
𝜟𝑾𝑛 = 𝑿(𝐿) ((𝑾(𝐿+1) )𝑇 𝜹(𝐿+1) )⨀𝜎 ′ (𝒛(𝐿) )
(6)
ここで,⨀はアダマール積を表す.式(4)は M 層パーセプ
トロンにおける出力誤差を示す.式(5),(6)は最急降下法に
おける勾配ベクトルを示す.
input layer hidden layer output layer
784 units
10 units
784 units
Fig. 2 数字認識を実装するパーセプトロン
3. 数字識別システム
3.1 システム概要
数字識別システムをニューラルネットワークで実現する
ために,教師あり機械学習の問題として考える.今回は領
域検出を研究対象としていないため,数字ごとの N×N サ
Fig. 3 訓練用手書き数字[2]
イズの画像を N×N 次元の要素をもつ1次元ベクトルに変
換し,多層パーセプトロンに入力する.対象の数字は 0 か
ら 9 までの数字とする.出力層はラベルの種類の総数と等
しい数のユニットを採用し,各ユニットに1つずつ数字を
割り当てる(Table.1).
3.2 GPGPU による加速化
ニューラルネットワークの機械学習をはじめとする人工
知能分野は,一般的に計算量が非常に大きくなる.その原
因は,膨大に存在する訓練サンプル,パラメータ等による.
したがって,逐次処理をするのは効率が悪いため,並列処
Table 1 ラベルベクトル
理を導入して高速化を図りたいが,CPU はシーケンシャル
0
0000000001
い.しかし,GPU と呼ばれるグラフィックボードのチップ
1
0000000010
は並列処理に非常に特化した設計となっている.本来なら
2
0000000100
ばグラフィックス処理のためのパーツである GPU を数値
...
割り当てるベクトル
...
数字
9
1000000000
な処理に特化しており並列処理の恩恵はあまり受けられな
計算に利用し,高速処理を実現する[3]. GPU を数値計算
に応用する技術を GPGPU と呼び,本研究では GPGPU ラ
イブラリとして C++AMP を採用する.
平成 27 年度
IEICE 北海道支部学生会インターネットシンポジウム
3.3 開発環境
開発環境を Table 2 に示す.本研究では,GPU による並
列化の恩恵を十分受けるために,高性能のグラフィックボ
ードを搭載したコンピュータを利用した.また,C++AMP
利用のために,コンパイラは VisualC++ 14.0 を利用した.
0
1
2
3
4
5
6
7
8
9
Table 2 開発環境
OS
Windows 8.1
言語
C++14
CPU
Intel i7 3770K
グラフィクボード
Geforce GTX670
コンパイラ
VisualC++ 14.0
Fig. 6 数字らしさの特徴量
次に,このシステムの認識精度の計測結果を Fig.7 に示
す.
「3」
,「7」
,
「8」に関しては正答率 100%を記録した
4.実験結果
が,一方「1」
,
「5」の正答率が 90%,92%と,大きく精
4.1 手書き数字認識精度計測
度を落としている.また,数字ごとのシステムの識別結果
多層パーセプトロン上に構築されたシステムが,手書き数
を Fig.8 に示す.Fig.8 のバブルチャートから読み取れる通
字をどれほどの精度で認識可能なのかを計測した.Fig.4 は,
り,
「1」は「7」と間違えるケースが多く,人間と似た性
本実験で精度計測のために使用した手書き数字を一部抜粋
質を示した.
ム独自の「特徴抽出アルゴリズム」を確認するために,隠
れ層のニューロンを画像として出力した(Fig.5).
correct
answers (%)
した画像である.まず,学習によって獲得した,本システ
100
95
90
85
0
1
2
3
4
5
6
7
8
9
recognized numbers
Fig. 7 正答率
Fig. 5 抽出特徴量
さらに,出力された特徴量は,それぞれ数字が割り当て
られたユニットへの重みを持つ.例えば0番目へのユニッ
トへの重みベクトルを特徴量に乗ずると,その特徴量は「数
字の0らしさ」を意味するようになる.Fig.6 はある手書き
数字と各数字らしさを示す特徴量である.本システムが抽
出した特徴量に関して,人間がその性質を読み取るのは困
難である.この結果は,明示的プログラミングによる数字
認識の手法とは全く異なる基準の数字認識のアルゴリズム
の獲得を示している.
10
9
8
7
6
5
4
3
2
1
0
-2 -1
-1 0
-2
answers
Fig. 4 手書き数字
1
2
3
4
5
6
output
Fig. 8 数字別識別結果
7
8
9 10
平成 27 年度
IEICE 北海道支部学生会インターネットシンポジウム
6. おわりに
4.2 収束・演算性能の向上
同一条件において,処理を CPU で実行した場合と GPU
本研究は,インターネットの普及やコンピュータテクノ
で実行した場合の演算速度を計測した.Fig.9 に示す通り
ロジの発達による,書類の電子化の需要の拡大という背景
GPU の演算性能は CPU の 10 倍程度となった.同様に幾
により実施した.その目的は,明示的プログラミング手法
つかの学習率について,パーセプトロンの収束性能を調査
よりも柔軟で,精度の高い光学文字認識システムの開発で
したところ,学習率は η=0.001 が最適であった(Fig.10).
ある.生物の脳より着想を得た多層パーセプトロン上に,4
万個以上の数字データを学習させ,数字認識システムに相
当するベクトル写像器を構築した.このシステムを改良,
units
CPU
応用して,文字領域の検出,文字と図の区別等の機能が付
GPU
加できれば,アナログな書類を電子化するソフトウェアで
ある光学文字認識システムとしての運用が期待できる.こ
0
10
20
30
40
50
processing runtime[s]
のソフトウェアは,既存のシステムとは異なり,自己進化
及び利用者個人への最適化能力を持つ.その能力により,
Fig. 9 ユニット別演算速度
使い込むほどより高い精度の獲得が期待できる.文書電子
化のため に解決すべき課題は 多くあるが,文字認識 に
4
GPGPU とニューラルネットワークを応用する基礎研究と
3.5
して有意な結果が得られたといえる.
3
J
2.5
参考文献
2
η=0.0003
1.5
η=0.001
1
η=0.005
0.5
η=0.01
[1] Philip D.Wasserman 著,石井直宏,塚田稔 訳: ニュ
ーラル・コンピューティング-理論と実際-,森北出版 (東京,
1993)
[2] Kaggle, Classify handwritten digits using the famous
MNIST data, https://www.kaggle.com/ , (2016/1/25)
0
0
50
100 step
Fig. 10 学習率別収束性能
5. 考察
学習成果である数字識別アルゴリズムを,画像化した特
徴量から推測するのは困難であった.原因は,数字画像を
一次元ベクトル化したためと考えられる.生物の脳は,大
きな受容野と小さな受容野を用いて「空間的」に画像解析
し,本実験のパーセプトロンよりも遥かに多い層数を持っ
て情報を処理している.つまり本システムは,今回の目標
であり手法であった生物の脳の模倣を十分実現できてはい
ないと考えられる.今後の課題としては,幾何学的特徴量
を保持したまま処理するアルゴリズムの導入が挙げられる.
例えば,畳み込みニューラルネットワークでは移動不変
性・回転不変性の獲得が期待できる.
[3] Ren Wu, Bin Zhang, Meichun Hsu: GPU-Accel-erated
Large Scale Analytics, HP Labs,(2009)