オートエンコーダを用いた設計案の管理 -AI(機械学習)メモ vol.3

AI(機械学習)メモ vol.3は、オートエンコーダを用いた設計情報の管理(オートエンコーダを用いた外構設計情報の管理とクラスタリングに関する研究、日本建築学会大会(東北)、学術講演梗概集、(社)日本建築学会、2018.9)についてです。あまり聞き慣れないエンコーダという言葉ですが、元の情報を某かの目的に応じ符号に変換をする仕組みを意味します。変換することをエンコード(符号化)と呼び、逆に変換したものを元の情報に戻すことをデコード(復号化)、この仕組みをぞれぞれエンコーダ・デコーダと呼びます。JPEGやZIPでの圧縮も高効率符号化と呼ばれる符号化の一種ですので、JPEGエンコーダの場合は、あるビットマップ画像(元の情報:RGBの塊)をJPEG形式のエンコーダでエンコードして保存する、デコーダでデコードし画像を閲覧する、というかたちで用いられています。自分はエンコード・デコードなんて普段していないぞ、と思うかもしれませんが、これはスマートフォンやPCで自動的に行われているものです。スマートフォンで写真を撮影すると、大体高さ4,000✕幅3,000程度、計12,000,000ピクセルの画像になり、各ピクセルにRGB で3チャンネルぞれぞれ1Byte(8bit: 0~255)ずつ情報がありますので、本来であれば36,000,000Byte = 36MByteの領域を保存に要するわけですが、JPEGで高効率に符号化(エンコード)されることで2MByte程度の容量になって保存されます。もちろんこれを閲覧する際にはビューワでデコードが行われています。高効率符号化はファイル容量を小さくしますので、圧縮とも呼ばれることがありますね。

さて、オートエンコーダは、ニューラルネットワークを用いてエンコーダとデコーダを学習させるものです。オートエンコーダのうち、層が多いものは特にディープオートエンコーダとも呼ばれる、など実装の仕方によって呼び方に区別があるようですが、ここではざっくり区別せずにオートエンコーダと呼ぶことにします。オートエンコーダのネットワークは次図のようになっていて、入力した画像を前半のネットワークでエンコードして特徴量化し、後半のネットワークでデコードして元の画像に近づける、というふうに学習を行います。図では特徴量の要素数をkとしていますが、入力するイメージの要素数より小さい要素数となるよう設定します。このようにすることでイメージを表現する抽象的かつ説明的な特徴量を得ることができます。今回紹介する設計情報の管理研究では、戸建て外構のレイアウト図を対象にオートエンコーダの学習を行い、これで得た特徴量で、類似する設計案を検索することやクラスタリングを行うということを試行しています。

オートエンコーダのネットワーク例


オートエンコーダのネットワークの説明に入る前に、vol.2で紹介したタイル色を分類するネットワーク(次図)を改めて眺めてみます。タイルのイメージを入力すると、この時のデータは64x64ピクセルの3チャンネルで12288要素あるわけですが、前半の畳み込みブロック(図中Conv2D and Pooling Layers)を経ることで、1024要素の「タイルの色分類に適した」特徴量に変換されていることがわかります。前半のブロックで特徴量を抽出して、後半のブロックでは特徴量から分類を行っている、と整理することもできます。前半のブロック、具体的には畳込みとプーリングのブロックにて、イメージを表現する抽象的かつ説明的な特徴量が得られることがイメージできると思います。

画像分類モデルのネットワーク例


この研究では、次図左のように外構のレイアウトを「敷地、接道、建築、エントランス、駐車場、低木、高木、その他」の8要素に塗り分けた構成マップを1,000件分作成し、これを画像処理的に頂点を回転、移動、辺のオフセットなどし変形させて30倍に水増した30,000件のデータを学習用に用います(次図右)。評価用データも1,000件のオリジナルのデータを3倍に水増しした3,000件を用いますが、評価用の水増しは回転変形は含めずに行いました。これは、類似する設計案を検索するときに、レイアウトが近いが(敷地や接道の)方位が異なるものが得られるより、レイアウトが多少違っていても方位が同じものが得られたほうが好ましいと考えたためです。同じオリジナルから生成された3件は、近い設計となるため、オートエンコーダで得た特徴量で類似をとった時に、同じオリジナルから生成された他の2件が上位にいれば良い、ということになります。また、単にRGBの3チャンネル画像を用意する場合と各構成用毎に分けた8チャンネル画像を用意しました※が、後述する検証試験ではほとんど差はありませんでした。

※:塗り分け色の近さが要素の意味的な近さを表すわけではないので、その影響を(杞憂でしたが一応)排除するため。

構成マップ

水増し例


RGBの3チャンネル版ではオートエンコーダによるエンコード・デコードは次図左のように行われ、この結果を用いた類似設計案の検索結果は次図右のようになりました。上位5位以内に同じオリジナルから生成された他の2件が含まれる確率は22.8%、少なくとも1件が含まれる確率は61.1%でした。分譲住宅のようにそもそも似た設計案が含まれているので、数値上の精度は低く見えますが、結果を見ると良く似ているものが得られているように思います。なお、比較用の古典的なカラーヒストグラム(グリッド分割あり)でも上位5位以内に他の2件が含まれる確率は18.3%、少なくとも1件が含まれる確率が54.1%とまずまずの精度が得られました。構成マップは塗り分けがはっきりしており、ヒストグラム的にも処理しやすかったのだろうと考えています。

エンコード・デコードの様子

類似設計案の検索結果(RGBの3チャンネル版):赤囲みが正解


外構設計のシチュエーションを考えると、敷地や接道などが設計時の与条件となり、過去の設計案から、類似した条件で設計されたものが検索できると便利そうです。オートエンコーダと特徴量をうまく使うと、このような検索も実現できます。敷地、接道、建築、エントランスの構成マップを特徴量表現するよう学習したオートエンコーダを用いると次図のように検索結果を得ることができました。敷地:正方形、接道:南、…などのようにメタデータで検索するより効率的な検索が可能です。

与条件から過去の設計案の検索:左列の与条件で検索すると過去の設計案が返ってくる


次図は評価用3,000件のデータを、自己組織化マップ(SOM: Self Organizing Map)でクラスタリングし可視化した例です。ざっくりとですが、3,000件のデータが、左下から右上に向かって面積が増加する、などの軸に沿ってマッピングされていることがわかります。実装はしていませんが、このようなマップをインターフェイスに過去の設計案が呼び出せても便利かもしれませんね。

自己組織化マップ


今回はオートエンコーダを特徴量抽出機として用いましたが、オートエンコーダは異常検知にも用いることができることも知られています。エンコード・デコードに伴って不要なディティールが省略されるわけですから、汚れのあるタイルイメージを入力しても汚れのないタイルイメージを出力するようなオートエンコーダが用意できれば、入力と出力の差分をとることで汚れの有無(異常)を検知することができます。異常検知はまだ行ったことはありませんが、扱う機会があればこのシリーズでも紹介したいと思います。


HLAB
http://www.hlab-arch.jp/article.php/20200615135215147