gooブログはじめました!

写真付きで日記や趣味を書くならgooブログ

ニューラルネットワークを用いて画像パターンをつくる

2018-06-10 07:45:03 | ブログ
 (x,y)平面上にある何らかの形状をした閉曲線で囲まれる図形の面積を求めたいとする。このとき、モンテ・カルロ法という技法を使うことができる。この閉曲線に外接する正方形または長方形を考える。この閉曲線は、関数式で表現できるものとする。

 いまこの外接図形の範囲にある乱数列をとり、そのうち、二つずつを組とする。それらを(xi,yi),i=1,2,...としよう。この乱数の組(xi,yi)は、(x,y)平面上で一つの点Piに対応する。

 多数の乱数の組をとれば、多数の点Piが得られ、それらは、この外接図形の内部に、ほぼ一様に分布するであろう。全部でN個の点を得たとする。そのうち、この閉曲線の内部にあるものの数をMとする。そうすると、閉曲線図形の面積/外接図形の面積=M/Nの式から閉曲線図形の面積の近似値を求めることができる。

 閉曲線の内部にある点は、その関数を不等式で表現したものによって判定できる。つまり、点Pi:(xi,yi)が与えられたとき、その点が閉曲線の内部にあるか外部にあるかを判定できる。このようにして、点Piが閉曲線の内部にあるときだけ実際の点を打つことにすれば、この閉曲線図形の画像パターンを点描することができる。

 閉曲線図形が複数個あるときには、関数の不等式も複数個になるため、ニューラルネットワークを用いて画像パターンを構成する各点の採否を計算する手法が有効と考える。



 図は、そのようなニューラルネットワークのユニット構成の一例を示す。乱数の組(x,y)が入力層のユニットIに入力される。ここでx,yは-1から1までの範囲の一様乱数である。ユニットIは、=SQRT(x^2+y^2)の計算式によって原点を中心として点(x,y)を通る円の半径rを計算する。

 第1中間層は、ユニットIからのデータを入力するM11,M12,M13の3つのユニットから成る。M11は、rが0.8<r<1.0の範囲にあれば1を、そうでなければ0を出力する。M12は、rが0.4<r<0.6の範囲にあれば1を、そうでなければ0を出力する。M13は、r<0.2であれば1を、そうでなければ0を出力する。第1中間層は、入力データ(x,y)をrによって3つの領域に分けるので、一般的にはクラスタリングと呼ばれる手法である。

 第2中間層は、M21とM22の2つのユニットから成る。第2中間層は、M11,M12で選択された各領域について、より詳細な画像パターンを施す。ここでは、単純な例とするために、さらに領域分割を進めることにした。M21は、M11からのデータを入力し、値が1であって、(x>0,y>0)または(x<0,y<0)であれば1を、そうでなければ0を出力する。M22は、M12からのデータを入力し、値が1であって、(x<0,y>0)または(x>0,y<0)であれば1を、そうでなければ0を出力する。

 出力層のユニットOは、M21,M22,M13からのデータを入力し、いずれかのデータが1であれば、元の入力データ(x,y)をそのまま出力し、すべてのデータが0であれば、データ(0,0)を出力する。

 以上のようなニューラルネットワークを介する計算によって、選択された領域にだけ実際の点が点描されることになる。

 下図は、Excelを用いて上記ニューラルネットワークを表形式に展開し、計算した結果である。



 グラフ表示にはExcelの散布図を用いている。乱数組の数Nは、5,000ほどである。なお、M11によって選択されなかった空き領域と、M12によって選択されなかった空き領域には、別途各々3点を表示し、空き領域であることを表現している。

 Excelの散布図では、各点(x,y)を決められたサイズをもつマーカーで表示するため、微妙な画像パターンを表現するには適しないことが分かる。また、関数の不等式は、IF関数で表現している。このため、一つのセルの中で複数のIF条件をつけようとすると、最初のIFの「偽の場合」に続くIF条件が入れ子構造になり、ステートメント形式のプログラミング言語を用いる場合に比べて、見やすさの点で難点がある。

 以上のように、Excelを用いて本題の画像パターンをつくれることが分かったが、アートと言えるような本格的な画像パターンをつくるには、ステートメント形式のプログラミング言語を用いる必要があるだろう。

 また、参考文献で示唆するように、周期的な画像パターンをつくるには、三角関数などを用いることができる。しかし、計算も複雑となり、それなりのノウハウの蓄積が必要となるだろう。

 参考文献
 伊庭斉志著「進化計算と深層学習」(オーム社)
 藪下信著「計算物理(I)」(地人書館)