平成 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)
© Copyright 2026 Paperzz