(57)【要約】【課題】本発明は、特に、３Ｄ形状の離散幾何学的表現からの、３Ｄ形状を表す編集可能なフィーチャツリーの推測のために構成されたニューラルネットワークを学習するためのコンピュータ実装方法に関する。【解決手段】編集可能なフィーチャツリーは、リーフ幾何学的形状に適用される幾何学的演算のツリー構成を備える。本方法は、それぞれの３Ｄ形状の離散幾何学的表現それぞれを含むデータ集合を与えるステップと、リーフ幾何学的形状の候補集合を与えるステップとを備える。本方法はまた、データ集合と候補集合とに基づいてニューラルネットワークを学習するステップを備える。候補集合は、リーフ幾何学的形状の少なくとも１つの連続サブ集合を備える。本方法は、デジタル化のための改善された解決策を形成する。【選択図】図１
2020109659.tif 000002
【特許請求の範囲】
【請求項１】
３Ｄ形状の離散幾何学的表現からの、前記３Ｄ形状を表す編集可能なフィーチャツリーの推測のために構成されたニューラルネットワークを学習するためのコンピュータ実装方法であって、前記編集可能なフィーチャツリーは、リーフ幾何学的形状に適用される幾何学的演算のツリー構成を備え、前記方法は、
−  それぞれの３Ｄ形状の離散幾何学的表現それぞれを含むデータ集合を与えるステップと、
−  リーフ幾何学的形状の候補集合を与えるステップと、
−  前記データ集合と前記候補集合とに基づいて前記ニューラルネットワークを学習するステップと
を備える方法において、
前記方法は、前記候補集合がリーフ幾何学的形状の少なくとも１つの連続サブ集合を備えることを特徴とする方法。
【請求項２】
前記候補集合は、
−  プリミティブ形状タイプの離散集合と、
−  プリミティブ形状タイプごとの、それぞれの連続パラメータの１つまたは複数のパラメータ領域それぞれの離散集合のそれぞれであって、各パラメータ領域が、前記それぞれの連続パラメータのそれぞれのパラメータ値を有する、それぞれの離散集合と
の積集合を備え、
各プリミティブ形状タイプは、１つまたは複数のパラメータ領域の前記それぞれの離散集合の各々のためのそれぞれのパラメータ値を用いて、前記候補集合のそれぞれの要素を形成する請求項１に記載の方法。
【請求項３】
１つまたは複数のプリミティブ形状タイプの各々について、前記１つまたは複数のそれぞれの連続パラメータは、１つもしくは複数の次元パラメータおよび／または１つもしくは複数の配置パラメータを備える請求項２に記載の方法。
【請求項４】
プリミティブ形状タイプの前記離散集合が、直方体タイプ、球体タイプ、１つもしくは複数の円柱タイプ、および／または１つもしくは複数の角柱タイプを備える請求項２または３に記載の方法。
【請求項５】
前記ニューラルネットワークが、再帰型ニューラルネットワーク（ＲＮＮ）セルを備え、各ＲＮＮセルは、それぞれの時間ステップ（ｔ）において、それぞれのプリミティブ形状タイプの推測のためのそれぞれの第１のデータと１つまたは複数のパラメータ領域の前記それぞれの離散集合の各々のためのそれぞれのパラメータ値の推測のためのそれぞれの第２のデータとを出力する請求項２乃至４のいずれか一項に記載の方法。
【請求項６】
前記それぞれの第１のデータは、プリミティブ形状タイプ（ｌ）の前記離散集合の各々にそれぞれ起因する確率（ｐ）のそれぞれの離散分布を備え、および／または前記それぞれの第２のデータは、１つもしくは複数のパラメータ領域の前記それぞれの離散集合の各々のためのそれぞれのパラメータ値（ｇｌ）を備える請求項５に記載の方法。
【請求項７】
前記データ集合は、１つもしくは複数の離散幾何学的表現（ｎ）の各々ごとに、リーフ幾何学的形状
【数１】
2020109659.tif 000063
に適用される幾何学的演算
【数２】
2020109659.tif 000064
のツリー構成を備え、前記離散幾何学的表現に対応する前記３Ｄ形状を表すそれぞれの編集可能なフィーチャツリーをさらに含み、各幾何学的形状は、１つもしくは複数のパラメータ領域の前記それぞれの離散集合の各々のためのそれぞれのパラメータ値を用いてそれぞれのプリミティブ形状タイプによって形成され、前記ニューラルネットワークの前記学習は、各離散幾何学的表現（ｎ）の各リーフ幾何学的形状
【数３】
2020109659.tif 000065
に対応する前記時間ステップ（ｔ）の間、
−  前記リーフ幾何学的形状の前記それぞれのプリミティブ形状タイプ
【数４】
2020109659.tif 000066
に起因する前記それぞれの第１のデータの前記確率
【数５】
2020109659.tif 000067
の低さ、ならびに／または
−  前記リーフ幾何学的形状の前記１つもしくは複数のそれぞれのパラメータ値
【数６】
2020109659.tif 000068
と前記それぞれの第２のデータの前記１つもしくは複数のそれぞれのパラメータ値
【数７】
2020109659.tif 000069
との間の格差
【数８】
2020109659.tif 000070
にペナルティーを課す損失Ｌ1を最小化することを含む教師つきトレーニングを備える請求項６に記載の方法。
【請求項８】
前記損失Ｌ1は、
前記タイプの項（Ｌprimitives（Ｗ））−
【数９】
2020109659.tif 000071
をもつ前記低さ、ならびに／または
前記タイプの項（Ｌparameters（Ｗ））
【数１０】
2020109659.tif 000072
との前記格差
にペナルティーを課し、
ここで、
・ｎは、前記離散幾何学的表現を指定し、
・ｔは、前記時間ステップを指定し、
・
【数１１】
2020109659.tif 000073
は、前記それぞれのプリミティブ形状タイプを指定し、
・
【数１２】
2020109659.tif 000074
は、
【数１３】
2020109659.tif 000075
に起因する前記それぞれの第１のデータの前記確率を指定し、
・
【数１４】
2020109659.tif 000076
は、前記リーフ幾何学的形状の前記１つもしくは複数のそれぞれのパラメータ値を指定し、
・
【数１５】
2020109659.tif 000077
は、前記それぞれの第２のデータの前記１つもしくは複数のそれぞれのパラメータ値を指定し、
・ｄ（・，・）は、距離関数であり、
・ｉｎｃｒ［・］は、増加および／もしくは正の関数である
請求項７に記載の方法。
【請求項９】
前記それぞれの第１のデータは、プリミティブ形状タイプ（ｌ）の前記離散集合の各々にそれぞれ起因する確率（ｐ）のそれぞれの離散分布を備え、前記ニューラルネットワークの前記学習は、損失Ｌ2を最小化することを含む教師なしトレーニングを備え、前記最小化することは、確率の候補のそれぞれの離散分布を探査することを含み、前記損失Ｌ2は、離散幾何学的表現について、および確率の候補のそれぞれの離散分布について、それぞれの編集可能なフィーチャツリーから導出された離散幾何学的表現との格差にペナルティーを課し、前記それぞれの編集可能なフィーチャツリーは、確率の前記探査された候補のそれぞれの離散分布に基づいて推測可能であり、前記最小化することは、前記それぞれの第１のデータの前記候補のそれぞれの離散分布を表す変数に少なくとも対する前記損失Ｌ2の勾配のバックプロパゲーションを含み、前記勾配は、強化アルゴリズムを用いて取得され、前記勾配は、任意選択で前記タイプのものであり
【数１６】
2020109659.tif 000078
、ここで、
・ｎは、前記離散幾何学的表現を指定し、
・Ｔnは、前記それぞれの編集可能なフィーチャツリーの深さを指定し、
・ｔは、それぞれの時間ステップを指定し、
・ｙは、プリミティブ形状タイプを指定し、
・ｐyは、ｔにおける前記それぞれの第１のデータの前記候補のそれぞれの離散分布を表す前記変数を指定し、
・
【数１７】
2020109659.tif 000079
は、ｔにおいて推測可能な前記それぞれの編集可能なフィーチャツリーのプリミティブ形状タイプを指定し、
・βは、ベースライン値である請求項６乃至８のいずれか一項に記載の方法。
【請求項１０】
各ＲＮＮセルは、現在の予測されたシーケンスの結果を入力として取り、前記ニューラルネットワークの前記学習は、推測されたパラメータ値に関与する損失
【数１８】
2020109659.tif 000080
を最小化することを含む教師つきトレーニングを備える請求項５乃至９のいずれか一項に記載の方法。
【請求項１１】
請求項１乃至１０のうちのいずれか一項に記載の前記方法に従って学習可能なニューラルネットワークを表すデータ構造。
【請求項１２】
請求項１１に記載のデータ構造の使用のコンピュータ実装方法であって、
−  ３Ｄ形状の離散幾何学的表現を与えるステップと、
−  ３Ｄ形状の前記離散幾何学的表現にニューラルネットワークを適用するステップと、
−  前記適用するステップの結果に基づいて前記３Ｄ形状を表す編集可能なフィーチャツリーを推測し、任意選択で、前記推測された編集可能なフィーチャツリーを改良するステップと
を備える方法。
【請求項１３】
請求項１乃至１０のいずれか一項に記載の方法および／または請求項１２に記載の方法を実行するための命令を備えるコンピュータプログラム。
【請求項１４】
請求項１１に記載のデータ構造および／または請求項１３に記載のプログラムを記録したデータ記憶媒体を備えるデバイス。
【請求項１５】
前記デバイスが、前記データ記憶媒体に結合されたプロセッサをさらに備える請求項１４に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、３Ｄ形状の離散幾何学的表現からの、３Ｄ形状を表す編集可能なフィーチャツリーの推測のために構成されたニューラルネットワークを学習することに関係する解決策に関する。
【背景技術】
【０００２】
オブジェクトの設計、エンジニアリング、および製造のために市場にいくつかのシステムおよびプログラムが提供されている。ＣＡＤは、コンピュータ支援設計の頭文字であり、たとえば、それは、オブジェクトを設計するためのソフトウェア解決策に関係する。ＣＡＥは、コンピュータ支援エンジニアリングの頭文字であり、たとえば、それは、将来の製品の物理的挙動をシミュレートするためのソフトウェア解決策に関係する。ＣＡＭは、コンピュータ支援製造の頭文字であり、たとえば、それは、製造プロセスおよび動作を定義するためのソフトウェア解決策に関係する。そのようなコンピュータ支援設計システムでは、グラフィカルユーザインターフェースが、技法の効率に関して重要な役目を果たす。これらの技法は、製品ライフサイクル管理（ＰＬＭ）システム内に埋め込まれ得る。ＰＬＭは、拡張企業の概念にわたって、会社が、製品データを共有し、共通のプロセスを適用し、構想からそれらの寿命の終わりまで製品の開発のために会社知識を活用するのを助けるビジネス戦略を指す。（ＣＡＴＩＡ、ＥＮＯＶＩＡおよびＤＥＬＭＩＡの商標下で）Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓによって提供されるＰＬＭ解決策は、製品エンジニアリング知識を編成するエンジニアリングハブと、製造エンジニアリング知識を管理する製造ハブと、エンジニアリングハブと製造ハブとの両方への企業統合および接続を可能にする企業ハブとを提供する。まとめて、システムは、最適化された製品定義、製造準備、生産およびサービスを駆動する動的な、知識ベースの製品作成および決定のサポートを可能にするためにオープンオブジェクトモデル連結製品、プロセス、リソースを提供する。
【０００３】
このコンテキストでは、研究者は、３Ｄ形状の離散的表現から３Ｄ形状を表す妥当な編集可能なフィーチャツリーを推測する解決策を探してきた。特に、未加工入力メッシュに対応する妥当なＣＳＧツリーを発見することが注目されてきた。この問題は、「デジタル化」と呼ばれるより一般的なトピック内に入る。
【０００４】
以下の参照が、特に、デジタル化に関係する。
−  ［１］非特許文献１
−  ［２］非特許文献２
−  ［３］非特許文献３
−  ［４］非特許文献４
−  ［５］非特許文献５
−  ［６］非特許文献６
−  ［７］非特許文献７
−  ［８］非特許文献８
−  ［９］非特許文献９
−  ［１０］非特許文献１０
【０００５】
論文［１］は、平均曲率を使用して厳密な境界表現（Ｂ−Ｒｅｐ）モデルを構築して戻すためにメッシュから十分な情報を抽出することに関する。全体的なメッシュ曲率分布に関してメッシュの三角形に対する曲率を分析することによって、Ｂ−Ｒｅｐ表現のフェイスになる潜在的な候補であるサブメッシュが構築される。サブメッシュがそれらのネイバーに接触しないとき、隣接するフェイスの間の範囲のいくつかが回復され得るまで、提案された手法がそれらを拡張する。提案された手法は、すでに構築されたサブメッシュまでの距離の概念に基づいて三角形をアグリゲートすることによってサブメッシュを拡張する。複雑で屈曲したジオメトリの場合、提案されたプロセスは、有効な範囲を回復することが保証されない。したがって、複雑なメッシュジオメトリの場合、本方法は、Ｂ−Ｒｅｐを構築することができないことがある。さらに、この手法は、編集可能なフィーチャツリーではなく、厳密なＢ−Ｒｅｐを再構成することにのみ集中する。未加工メッシュから編集可能なフィーチャツリーを構築するコンテキストでは、Ｂ−Ｒｅｐ表現は、必ずしも中間ステージであるとは限らず、それは、手法を損なう可能性がある。中間Ｂ−Ｒｅｐ表現を経ることは、複雑なジオメトリの場合、プロセス全体を脆弱化することがある。Ｂ−Ｒｅｐ構成が失敗する場合、いかなるフィーチャも取り出されないことがある。
【０００６】
論文［２］は、Ｂ−Ｒｅｐ表現から開始する「プロセスツリー」の再構成に関する。プロセスツリーを構築するために、提案された手法は、後で押し出され得るスケッチを構築するためにＢ−Ｒｅｐのフェイスとフェイス間の交差とを分析する。得られたプロセスツリーは、ソリッド加算に限定され、すなわち、減算演算は、生成されない。厳密なＢ−Ｒｅｐが利用可能であるので、アルゴリズムは、反復的に進み、すなわち、フィーチャソリッドが、識別され、ソリッド全体が処理されるまで現在のＢ−Ｒｅｐからブール演算によって除去される。したがって、提案された手法は、エラーを伝搬するリスクを提示する。
【０００７】
論文［８］は、スイープされたソリッド間での連続ブール演算から生じる接続された交差曲線／エッジの非平面ループを決定するための方法を提案する。ループを閉じるために、論文は、追加の仮想交差曲線／エッジを作成する必要があり得ることに言及している。ただし、論文は、それらをどのように作成するのかについて詳述していない。また、論文は、ループ検出という枠を超えておらず、特に、それは、ループ検出からブール演算順序をどのように決定するのかを示していない。
【０００８】
論文［１０］は、ニューラルネットワークモデルに基づいて３Ｄ形状からフィーチャツリー表現を推測するためのまったく異なる手法を提案する。学習は、フィーチャツリー表現の候補リーフソリッドの離散集合に基づく。さらに、手法は、入力形状を限定された解像度をもつ標準ボクセルグリッドに離散化することを必要とする。論文は、教師つき学習のためにラベルをつけられたデータ集合をどのように取得するのかについて言及していない。提案された手法は精度がない。
【０００９】
このコンテキスト内で、依然としてデジタル化のための改善された解決策が必要である。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】Ｂｅｎｉｅｒｅ  ＆  ａｌ：Ｔｏｐｏｌｏｇｙ  Ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ  ｆｏｒ  Ｂ−Ｒｅｐ  Ｍｏｄｅｌｉｎｇ  ｆｒｏｍ  ３Ｄ  Ｍｅｓｈ  ｉｎ  Ｒｅｖｅｒｓｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎｓ，２０１２
【非特許文献２】Ｆｌａｖｉｅｎ  Ｂｏｕｓｓｕｇｅ  ＆  ａｌ：Ｅｘｔｒａｃｔｉｏｎ  ｏｆ  ｇｅｎｅｒａｔｉｖｅ  ｐｒｏｃｅｓｓｅｓ  ｆｒｏｍ  Ｂ−Ｒｅｐ  ｓｈａｐｅｓ  ａｎｄ  ａｐｐｌｉｃａｔｉｏｎ  ｔｏ  ｉｄｅａｌｉｚａｔｉｏｎ  ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ，２０１４
【非特許文献３】Ｓ．Ｇａｕｔｈｉｅｒ  ＆  ａｌ：Ｄｉｇｉｔｉｚｅｄ  ３ｄ  ｍｅｓｈ  ｓｅｇｍｅｎｔａｔｉｏｎ  ｂａｓｅｄ  ｏｎ  ｃｕｒｖａｔｕｒｅ  ａｎａｌｙｓｉｓ，２０１７
【非特許文献４】Ｄ．Ｃｏｈｅｎ−Ｓｔｅｉｎｅｒ  ＆  ａｌ：Ｒｅｓｔｒｉｃｔｅｄ  Ｄｅｌａｕｎａｙ  Ｔｒｉａｎｇｕｌａｔｉｏｎ  ａｎｄ  Ｎｏｒｍａｌ  Ｃｙｃｌｅ，２００３
【非特許文献５】Ｂ．  Ｌｅｖｙ＆ａｌ：Ｌｐ  Ｃｅｎｔｒｏｉｄａｌ  Ｖｏｒｏｎｏｉ  Ｔｅｓｓｅｌａｔｉｏｎ  ａｎｄ  ｉｔｓ  ａｐｐｌｉｃａｔｉｏｎ，２０１０
【非特許文献６】Ｆ．Ｂｏｕｓｓｕｇｅ：Ｉｄｅａｌｉｚａｔｉｏｎ  ｏｆ  ＣＡＤ  ａｓｓｅｍｂｌｉｅｓ  ｆｏｒ  ＦＥ  ｓｔｒｕｃｔｕｒａｌ  ａｎａｌｙｓｅｓ，ｃｈａｐｔｅｒ  ４：Ｅｘｔｒａｃｔｉｏｎ  ｏｆ  ｇｅｎｅｒａｔｉｖｅ  ｐｒｏｃｅｓｓｅｓ  ｆｒｏｍ  Ｂ−Ｒｅｐ  ｓｈａｐｅｓ  ｔｏ  ｓｔｒｕｃｔｕｒｅ  ｃｏｍｐｏｎｅｎｔｓ  ｕｐ  ｔｏ  ａｓｓｅｍｂｌｉｅｓ，ＰｈＤ  Ｔｈｅｓｉｓ，Ｕｎｉｖｅｒｓｉｔｅ  ｄｅ  Ｇｒｅｎｏｂｌｅ，２０１４
【非特許文献７】Ｊ．Ｊ．Ｓｈａｈ，Ｄ．Ａｎｄｅｒｓｏｎ，Ｙ．Ｓｅ  Ｋｉｍ，Ｓ．Ｊｏｓｈｉ：Ａ  Ｄｉｓｃｏｕｒｓｅ  ｏｎ  Ｇｅｏｍｅｔｒｉｃ  Ｆｅａｔｕｒｅ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｆｒｏｍ  ＣＡＤ  Ｍｏｄｅｌｓ，Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｉｎｇ  ａｎｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｃｉｅｎｃｅ  ｉｎ  Ｅｎｇｉｎｅｅｒｉｎｇ，２００１
【非特許文献８】Ｙ．Ｚｈａｎｇ，Ｘ．Ｌｕｏ，Ｙ．Ｚｈａｏ，Ａｎ  Ａｐｐｒｏａｃｈ  ｔｏ  ｔｈｅ  Ａｕｔｏｍａｔｉｃ  Ｒｅｃｏｇｎｉｔｉｏｎ  ｏｆ  Ｂｏｏｌｅａｎ  Ｄｅｃｏｍｐｏｓｉｔｉｏｎ  Ｌｏｏｐｓ  ｆｏｒ  Ｓｗｅｐｔ  Ｖｏｌｕｍｅ  Ｄｅｃｏｍｐｏｓｉｔｉｏｎ，２５ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｍｅｓｈｉｎｇ  Ｒｏｕｎｄｔａｂｌｅ，２０１６
【非特許文献９】Ｊｏｎａｔｈａｎ  Ｒｉｃｈａｒｄ  Ｓｈｅｗｃｈｕｋ，Ｒｏｂｕｓｔ  Ａｄａｐｔｉｖｅ  Ｆｌｏａｔｉｎｇ−Ｐｏｉｎｔ  Ｇｅｏｍｅｔｒｉｃ  Ｐｒｅｄｉｃａｔｅｓ，１９９６
【非特許文献１０】Ｇ．  Ｓｈａｒｍａ，Ｒ．Ｇｏｙａｌ，Ｄ．Ｌｉｕ，Ｅ．Ｋａｌｏｇｅｒａｋｉｓ，Ｓ．Ｍａｊｉ．ＣＳＧＮｅｔ：Ｎｅｕｒａｌ  Ｓｈａｐｅ  Ｐａｒｓｅｒ  ｆｏｒ  Ｃｏｎｓｔｒｕｃｔｉｖｅ  Ｓｏｌｉｄ  Ｇｅｏｍｅｔｒｙ．Ｔｈｅ  ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ  （ＣＶＰＲ），２０１８
【非特許文献１１】“Ｆｉｎｉｔｅ−ｅｌｅｍｅｎｔ  ｍｅｓｈ  ｇｅｎｅｒａｔｉｏｎ  ｆｒｏｍ  ｃｏｎｓｔｒｕｃｔｉｖｅ−ｓｏｌｉｄ−ｇｅｏｍｅｔｒｙ  ｍｏｄｅｌｓ”，Ｅｄｗｉｎ  Ｂｏｅｎｄｅｒ，Ｗｉｌｌｅｍ  Ｆ．Ｂｒｏｎｓｖｏｏｒｔ，Ｆｒｉｔｓ  Ｈ．Ｐｏｓｔ，ｉｎ  Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ，Ｖｏｌｕｍｅ  ２６，Ｉｓｓｕｅ  ５，Ｍａｙ  １９９４，Ｐａｇｅｓ  ３７９−３９２
【非特許文献１２】“Ｆｉｎｉｔｅ  ｅｌｅｍｅｎｔ  ｍｅｓｈ  ｇｅｎｅｒａｔｉｏｎ  ｍｅｔｈｏｄｓ：  ａ  ｒｅｖｉｅｗ  ａｎｄ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ”，Ｋ  Ｈｏ−Ｌｅ，ｉｎ  ３８  Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ，ｖｏｌｕｍｅ  ２０  ｎｕｍｂｅｒ  １  Ｊａｎｕａｒｙ／Ｆｅｂｒｕａｒｙ  １９８８
【非特許文献１３】Ｃｈａｒｌｅｓ  Ｒ  Ｑｉ，Ｈａｏ  Ｓｕ，Ｋａｉｃｈｕｎ  Ｍｏ，ａｎｄ  Ｌｅｏｎｉｄａｓ  Ｊ  Ｇｕｉｂａｓ．Ｐｏｉｎｔｎｅｔ：Ｄｅｅｐ  ｌｅａｒｎｉｎｇ  ｏｎ  ｐｏｉｎｔ  ｓｅｔｓ  ｆｏｒ  ３ｄ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ  ａｎｄ  ｓｅｇｍｅｎｔａｔｉｏｎ．Ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｇｏｇｎｉｔｉｏｎ，２０１７
【非特許文献１４】Ｒ．Ｊ．Ｗｉｌｌｉａｍｓ．Ｓｉｍｐｌｅ  ｓｔａｔｉｓｔｉｃａｌ  ｇｒａｄｉｅｎｔ−ｆｏｌｌｏｗｉｎｇ  ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  ｃｏｎｎｅｃｔｉｏｎｉｓｔ  ｒｅｉｎｆｏｒｃｅｍｅｎｔ  ｌｅａｒｎｉｎｇ．Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ，２２９−２５６，１９９２
【発明の概要】
【００１１】
したがって、３Ｄ形状の離散幾何学的表現からの、３Ｄ形状を表す編集可能なフィーチャツリーの推測のために構成されたニューラルネットワークを学習するためのコンピュータ実装（学習）方法を提供する。編集可能なフィーチャツリーは、リーフ幾何学的形状に適用される幾何学的演算のツリー構成を備える。本方法は、それぞれの３Ｄ形状の離散幾何学的表現それぞれを含むデータ集合を与えるステップと、リーフ幾何学的形状の候補集合を与えるステップとを備える。本方法はまた、データ集合と候補集合とに基づいてニューラルネットワークを学習するステップを備える。候補集合は、リーフ幾何学的形状の少なくとも１つの連続サブ集合を備える。
【００１２】
本方法は、以下のうちの１つまたは複数を備え得る。
【００１３】
−  候補集合は、プリミティブ形状タイプの離散集合と、プリミティブ形状タイプごとの、それぞれの連続パラメータの１つまたは複数のパラメータ領域それぞれの離散集合のそれぞれであって、各パラメータ領域が、それぞれの連続パラメータのそれぞれのパラメータ値を有する、それぞれの離散集合との積集合を備え、各プリミティブ形状タイプは、１つまたは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値を用いて、候補集合のそれぞれの要素を形成する
【００１４】
−  １つまたは複数のプリミティブ形状タイプの各々について、１つまたは複数のそれぞれの連続パラメータは、１つもしくは複数の次元パラメータおよび／または１つもしくは複数の配置パラメータを備える
【００１５】
−  プリミティブ形状タイプの離散集合が、直方体タイプ、球体タイプ、１つもしくは複数の円柱タイプ、および／または１つもしくは複数の角柱タイプを備える
【００１６】
−  ニューラルネットワークが、再帰型ニューラルネットワーク（ＲＮＮ）セルを備え、各ＲＮＮセルは、それぞれの時間ステップ（ｔ）において、それぞれのプリミティブ形状タイプの推測のためのそれぞれの第１のデータと１つまたは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値の推測のためのそれぞれの第２のデータとを出力する
【００１７】
−  それぞれの第１のデータは、プリミティブ形状タイプの離散集合の各々にそれぞれ起因する確率のそれぞれの離散分布を備え、および／またはそれぞれの第２のデータは、１つもしくは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値を備える
【００１８】
−  データ集合は、１つもしくは複数の離散幾何学的表現の各々ごとに、リーフ幾何学的形状に適用される幾何学的演算のツリー構成を備え、離散幾何学的表現に対応する３Ｄ形状を表すそれぞれの編集可能なフィーチャツリーをさらに含み、各幾何学的形状は、１つもしくは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値を用いてそれぞれのプリミティブ形状タイプによって形成され、ニューラルネットワークの学習は、各離散幾何学的表現の各リーフ幾何学的形状に対応する時間ステップの間、リーフ幾何学的形状のそれぞれのプリミティブ形状タイプに起因するそれぞれの第１のデータの確率の低さ、ならびに／またはリーフ幾何学的形状の１つもしくは複数のそれぞれのパラメータ値とそれぞれの第２のデータの１つもしくは複数のそれぞれのパラメータ値との間の格差にペナルティーを課す損失Ｌ1を最小化することを含む教師つきトレーニングを備える
【００１９】
−  損失Ｌ1は、タイプの項（Ｌprimitives（Ｗ））−
【００２０】
【数１】
2020109659.tif 000003
【００２１】
をもつ低さ、ならびに／またはタイプの項
【００２２】
【数２】
2020109659.tif 000004
【００２３】
との格差にペナルティーを課し、ここで、ｎは、離散幾何学的表現を指定し、ｔは、時間ステップを指定し、
【００２４】
【数３】
2020109659.tif 000005
【００２５】
は、それぞれのプリミティブ形状タイプを指定し、
【００２６】
【数４】
2020109659.tif 000006
【００２７】
は、
【００２８】
【数５】
2020109659.tif 000007
【００２９】
に起因するそれぞれの第１のデータの確率を指定し、
【００３０】
【数６】
2020109659.tif 000008
【００３１】
は、前記リーフ幾何学的形状の前記１つもしくは複数のそれぞれのパラメータ値を指定し、
【００３２】
【数７】
2020109659.tif 000009
【００３３】
は、それぞれの第２のデータの前記１つもしくは複数のそれぞれのパラメータ値を指定し、ｄ（・，・）は、距離関数であり、ｉｎｃｒ［・］は、増加および／もしくは正の関数である
【００３４】
−  それぞれの第１のデータは、プリミティブ形状タイプ（ｌ）の離散集合の各々にそれぞれ起因する確率（ｐ）のそれぞれの離散分布を備え、ニューラルネットワークの学習は、損失Ｌ2を最小化することを含む教師なしトレーニングを備え、最小化することは、確率の候補のそれぞれの離散分布を探査することを含み、損失Ｌ2は、離散幾何学的表現について、および確率の候補のそれぞれの離散分布について、それぞれの編集可能なフィーチャツリーから導出された離散幾何学的表現との格差にペナルティーを課し、それぞれの編集可能なフィーチャツリーは、確率の探査された候補のそれぞれの離散分布に基づいて推測可能であり、最小化することは、それぞれの第１のデータの候補のそれぞれの離散分布を表す変数に少なくとも対する損失Ｌ2の勾配のバックプロパゲーションを含み、勾配は、強化アルゴリズムを用いて取得される
【００３５】
−  勾配は、タイプ
【００３６】
【数８】
2020109659.tif 000010
【００３７】
のものであり、ここで、ｎは、前記離散幾何学的表現を指定し、Ｔnは、前記それぞれの編集可能なフィーチャツリーの深度を指定し、ｔは、それぞれの時間ステップを指定し、ｙは、プリミティブ形状タイプを指定し、ｐyは、ｔにおけるそれぞれの第１のデータの候補のそれぞれの離散分布を表す前記変数を指定し、
【００３８】
【数９】
2020109659.tif 000011
【００３９】
は、ｔにおいて推測可能な前記それぞれの編集可能なフィーチャツリーのプリミティブ形状タイプを指定し、βは、ベースライン値である、ならびに／または
【００４０】
−  各ＲＮＮセルは、現在の予測されたシーケンスの結果を入力として取り、ニューラルネットワークの学習は、推測されたパラメータ値に関与する損失を最小化することを含む教師つきトレーニングを備える
【００４１】
（学習）方法に従って学習可能なニューラルネットワークを表すデータ構造をさらに提供する。
【００４２】
データ構造の使用のコンピュータ実装方法であって、３Ｄ形状の離散幾何学的表現を与えるステップと、３Ｄ形状の離散幾何学的表現にニューラルネットワークを適用するステップと、適用するステップの結果に基づいて３Ｄ形状を表す編集可能なフィーチャツリーを推測し、任意選択で、推測された編集可能なフィーチャツリーを改良するステップとを備える（使用）方法をさらに提供する。
【００４３】
学習方法および／または使用方法を実行するための命令を備えるコンピュータプログラムをさらに提供する。
【００４４】
データ構造および／またはプログラムを記録したデータ記憶媒体を備えるデバイスをさらに提供する。デバイスは、たとえば、ＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅ）または他のサーバ上で非一時的コンピュータ可読媒体またはクラウドベースのプラットフォームなどを形成するか、またはそれとして働き得る。デバイスは、代替として、データ記憶媒体に結合されたプロセッサを備え得る。したがって、デバイスは、コンピュータシステムを全体的にまたは部分的に形成し得る（たとえば、デバイスはシステム全体のサブシステムである）。システムは、プロセッサに結合されたグラフィカルユーザインターフェースをさらに備え得る。
【図面の簡単な説明】
【００４５】
次に、非限定的な例として、添付の図面を参照しながら実施形態について説明する。
【図１】システムのグラフィカルユーザインターフェースの一例を示す図である。
【図２】システムの一例を示す図である。
【図３】方法を示す図である。
【図４】方法を示す図である。
【図５】方法を示す図である。
【図６】方法を示す図である。
【図７】方法を示す図である。
【図８】方法を示す図である。
【図９】方法を示す図である。
【図１０】方法を示す図である。
【図１１】方法を示す図である。
【発明を実施するための形態】
【００４６】
ここに、ニューラルネットワークの学習に関するコンピュータ実装方法を提案する。ニューラルネットワークは、本明細書では、それぞれの３Ｄ形状の離散幾何学的表現それぞれの任意の１つを入力として取って、入力を処理し、処理の結果として、入力に対応する３Ｄ形状を表す編集可能なフィーチャツリーの推測のために構成されたそれぞれのデータを出力するように構成された機能である。したがって、そのようなニューラルネットワークは、３Ｄ形状の離散幾何学的表現に対応する編集可能なフィーチャツリーの推測のために使用され得る。
【００４７】
したがって、「推測方法」と呼ばれることがあるそのような推測を実行するためのコンピュータ実装方法を提案する。
【００４８】
推測方法は、３Ｄ形状の離散幾何学的表現を与えるステップを備え得る。推測方法は、さらに、３Ｄ形状の離散幾何学的表現をニューラルネットワークに適用するステップを備え得る。推測方法はまた、適用するステップの結果（すなわち、離散幾何学的表現が入力されたときのニューラルネットワークによるデータ出力）に基づいて３Ｄ形状を表す少なくとも１つの編集可能なフィーチャツリーを推測するステップを備え得る。出力データは、たとえば、自動的にならびに／または所定のアルゴリズムに従って、編集可能なフィーチャツリーを（直接）含み得、ならびに／または編集可能なフィーチャツリーを（間接的に）決定するために処理され得る。
【００４９】
間接的決定の場合、出力データは、たとえば、少なくとも１つの編集可能なフィーチャツリーを定義する値を選択するための１つまたは複数の確率分布を備え得、所定のアルゴリズムは、たとえば、１つまたは複数の確率分布に基づいて少なくとも１つの編集可能なフィーチャツリーを決定することを備え得る。決定することは、たとえば、低い確率をもつ値を選択することにペナルティーを課し得る。決定することは、たとえば、１つまたは複数の確率分布に基づいて最も可能性が高い編集可能なフィーチャツリーの（たとえば、１以上および／または１０より小さいｋをもつ）所定の数ｋを求めて探索することになり得る。探索することは、ビーム探索アルゴリズムに従って実行され得る。これは、計算効率を与える。
【００５０】
精度を改善する例では、推測方法は、それぞれの（最初に）推測された編集可能なフィーチャツリーを、たとえば、自動的に改良することをさらに備え得る。改良することは、（たとえば、編集可能なフィーチャツリーを「再生する」ことによって取得可能な）それの得られた３Ｄジオメトリを入力された離散幾何学的表現により類似したものにするために推測された編集可能なフィーチャツリー（たとえば、それのパラメータ）を編集することを備え得る。類似性は、推測された編集可能なフィーチャツリーによって与えられた３Ｄジオメトリと入力された離散幾何学的表現との間の格差にペナルティーを課す損失を最小化することによって増加され得る。損失を最小化することは、最初に推測された編集可能なフィーチャツリーの候補の編集、たとえば、それのリーフ幾何学的形状の編集を探査することを備え得る。そのような編集の例を後で与える。この改良オプションは、本開示のコンテキストに固有のことを活用することによって精度を改善する。すなわち、改良は、たとえば、編集可能なフィーチャツリーが、編集可能なフィーチャツリーを再生すること（すなわち、編集可能なフィーチャツリーのツリー構成によって定義された順序で編集可能なフィーチャツリーのリーフ幾何学的形状に編集可能なフィーチャツリーの幾何学的演算を適用すること）によって離散幾何学的表現に直接匹敵する３Ｄジオメトリを計算するために使用され得るということを活用する。言い換えれば、ニューラルネットワークの出力の精度は、直接および直ちに評価され得る。
【００５１】
機械学習の分野から分かるように、ニューラルネットワークによる入力の処理は、入力に演算を適用することを含み、演算は、重み値を含むデータによって定義される。したがって、ニューラルネットワークの学習は、そのような学習のために構成されたデータ集合に基づいて重みの値を決定することを含む。それのために、データ集合は、それぞれのトレーニングサンプルをそれぞれが形成するデータ片を含む。トレーニングサンプルは、多様な状況を表し、ここで、ニューラルネットワークは、学習された後に使用されるべきである。本明細書で言及する任意のデータ集合は、１０００、１００００、１０００００、または１００００００よりも多いトレーニングサンプルの数を備え得る。
【００５２】
したがって、特に、「データ集合形成方法」と呼ばれることがあるそのようなデータ集合を形成するためのコンピュータ実装方法を提案する。また、「学習方法」と呼ばれることがあるそのような学習を実行するためのコンピュータ実装方法を提案する。
【００５３】
機械学習プロセスは、データ集合形成方法および／または学習方法、ならびに、任意選択で、推測方法を備え得る。
【００５４】
機械学習プロセスは、特に、データ集合形成方法と学習方法との両方を備え得る。学習方法は、たとえば、例では、データ集合形成方法の後に、データ集合形成方法によって形成されたデータ集合に少なくとも部分的に基づいて実行され得る。そのような機械学習プロセスは、特に、効率的であり、改善された精度を与える。
【００５５】
代替として、機械学習プロセスは、データ集合形成方法と、データ集合に基づいて、ニューラルネットワークを学習するために（提案された学習方法ではなく）任意の他のコンピュータ実装方法を実行することとを備え得る。また代替として、機械学習プロセスは、データ集合を形成するためのまたはデータ集合それ自体の取出しのための別の方法など、（提案されたデータ集合形成方法ではない）任意の他のコンピュータ実装方法によって与えられたデータ集合に対して学習方法を実行することを備え得る。
【００５６】
データ集合形成方法および学習方法を提示する前に、次に、本明細書に関与するデータ構造について説明する。認識されるであろうように、本明細書で提供されるデータ構造の定義および例は、データ集合形成方法によって形成されるデータ集合の少なくとも部分（たとえば、すべて）および／もしくは学習方法中に与えられるデータ集合の少なくとも部分（たとえば、すべて）、ならびに／または推測方法の少なくとも１つの入力および／もしくは少なくとも１つの出力に適用し得る。
【００５７】
３Ｄ形状の離散幾何学的表現は、本明細書では、データの片の離散集合を備えるデータ構造である。データの各片は、３Ｄ空間中に配置されるそれぞれの幾何学的エンティティを表す。各幾何学的エンティティは、３Ｄ形状のそれぞれのロケーション（言い換えれば、３Ｄ形状によって表されるソリッドの材料構成のそれぞれの部分）を表す。幾何学的エンティティのアグリゲーション（すなわち、和集合または並置）は、全部で３Ｄ形状を表す。本明細書における任意の離散幾何学的表現は、例では、１００よりも多い（たとえば、１０００よりも多い）データのいくつかのそのような片を備え得る。
【００５８】
本明細書における任意の離散幾何学的表現は、たとえば、各幾何学的エンティティが点である３Ｄポイントクラウドであり得る。本明細書における任意の離散幾何学的表現は、代替として、各幾何学的エンティティがメッシュタイルまたはフェイスである３Ｄメッシュであり得る。本明細書における任意の３Ｄメッシュは、規則的または不規則であり得る（すなわち、同じタイプのフェイスからなることもならないこともある）。本明細書における任意の３Ｄメッシュは、多角形メッシュ（たとえば、三角形メッシュ）であり得る。本明細書における任意の３Ｄメッシュは、代替として、Ｂ−Ｒｅｐであり得る。本明細書における任意の３Ｄメッシュは、たとえば、（たとえば、ドロネーデローニ三角分割を用いて）３Ｄポイントクラウドを三角分割することによって３Ｄポイントクラウドから取得され得る。
【００５９】
本明細書における任意の３Ｄポイントクラウドは、（たとえば、データ集合形成方法中に離散幾何学的表現が合成的に生成されるときを除いて）たとえば、３Ｄ再構成プロセス内の現実のオブジェクトに対する物理的測定から決定され得る。３Ｄ再構成プロセスは、現実のオブジェクトを与えることと、それぞれの物理的信号を取得するようにそれぞれ構成された１つまたは複数の物理センサを与えることと、現実のオブジェクトに対して１つまたは複数の物理的センサを動作させること（すなわち、各センサを用いて現実のオブジェクトを走査すること）によって１つまたは複数のそれぞれの物理的信号を取得することとを備え得る。３Ｄ再構成は、次いで、任意の知られている技法に従って、測定に基づいて３Ｄポイントクラウドおよび／または３Ｄメッシュを自動的に決定し得る。１つまたは複数のセンサは、複数の（たとえば、ＲＧＢおよび／または画像もしくはビデオ）カメラを備え得、決定は、ｓｔｒｕｃｔｕｒｅ−ｆｒｏｍ−ｍｏｔｉｏｎ分析を備え得る。１つまたは複数のセンサは、代替または追加として、（たとえばＲＧＢ深度カメラ上に）１つまたは複数の深度センサを備え得、決定は、深度データからの３Ｄ再構成を備え得る。１つまたは複数の深度センサは、たとえば、レーザー（たとえばライダー）または超音波放出器および受信機を備え得る。
【００６０】
本明細書における任意の３Ｄポイントクラウドまたは３Ｄメッシュは、代替として、たとえば、３Ｄモデル化オブジェクトに対してレイキャストすることまたは３Ｄモデル化オブジェクトをテッセレーションすることによって、ソリッド（たとえば、Ｂ−Ｒｅｐモデル）のスキン（すなわち、外側のサーフェス）を表す３Ｄモデル化オブジェクトから取得され得る。テッセレーションすることは、任意の３Ｄモデル化オブジェクトのレンダリングプロセスに従って実行され得る。そのようなレンダリングプロセスは、３Ｄモデル化オブジェクトのグラフ表現を表示するために任意のＣＡＤシステム上でコーディングされ得る。３Ｄモデル化オブジェクトは、（たとえば、データ集合形成方法中に離散幾何学的表現が合成的に生成されるときを除いて）ＣＡＤシステムを用いてユーザによって設計され得るか、または設計されていることがある。
【００６１】
モデル化オブジェクトは、たとえば、データベース中に記憶されたデータによって定義された任意のオブジェクトである。拡大すると、表現「モデル化オブジェクト」は、データ自体を指定する。モデル化オブジェクトを設計するために使用されるシステムのタイプによれば、モデル化オブジェクトは、様々な種類のデータによって定義され得る。システムは、実際、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、ＰＤＭシステムおよび／またはＰＬＭシステムの任意の組合せであり得る。それらの異なるシステムでは、モデル化オブジェクトは、対応するデータによって定義される。したがって、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＰＤＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＰＤＭデータ、ＣＡＭデータ、ＣＡＥデータについて言及し得る。しかしながら、モデル化オブジェクトがこれらのシステムの任意の組合せに対応するデータによって定義され得るので、これらのシステムは、他のもののうちの唯一の１つではない。したがって、システムは、適切にＣＡＤシステムとＰＬＭシステムとの両方であり得る。
【００６２】
ＣＡＤシステムによって、ＣＡＴＩＡなど、モデル化オブジェクトのグラフ表現に基づいてモデル化オブジェクトを設計するために少なくとも適応された任意のシステムをさらに意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能にするデータを備える。ＣＡＤシステムは、たとえば、エッジまたはラインを使用して、場合によっては、フェイスまたはサーフェスを用いてＣＡＤモデル化オブジェクトの表現を与え得る。ライン、エッジ、またはサーフェスは、様々な方法、たとえば、非一様有理Ｂスプライン（ＮＵＲＢＳ）で表され得る。詳細には、ＣＡＤファイルは、ジオメトリが生成され得、次に、表現を生成することを可能にする仕様を含んでいる。モデル化オブジェクトの仕様は、単一のＣＡＤファイルまたは複数のＣＡＤファイル中に記憶され得る。ＣＡＤシステムにおいてモデル化オブジェクトを表すファイルの典型的なサイズは、部分ごとに１メガバイトの範囲内にある。そして、モデル化オブジェクトは、一般に、数千個の部分のアセンブリであり得る。
【００６３】
ＣＡＤのコンテキストでは、モデル化オブジェクトは、一般に、たとえば、部分もしくは部分のアセンブリなどの製品、または、場合によっては、製品のアセンブリを表す３Ｄモデル化オブジェクトであり得る。「３Ｄモデル化オブジェクト」によって、それの３Ｄ表現を可能にするデータによってモデル化される任意のオブジェクトを意味する。３Ｄ表現は、すべての角度からの部分の閲覧を可能にする。たとえば、３Ｄモデル化オブジェクトは、３Ｄ表現されるとき、それの軸のいずれかの周りで、または表現が表示されるスクリーン中のいずれかの軸の周りで動かされるかまたは回転され得る。これは、特に、３Ｄモデル化されていない２Ｄアイコンを除外する。３Ｄ表現のディスプレイは、設計を容易にする（すなわち、設計者がその人のタスクを統計的に達成する速度を増加する）。製品の設計が製造プロセスの部分であるので、これは、業界における製造プロセスを高速化する。
【００６４】
ＣＡＤシステムは、履歴ベースであり得る。この場合、モデル化オブジェクトは、さらに、幾何学的フィーチャの履歴を備えるデータによって定義され得る。モデル化オブジェクトは、実際、標準的なモデル化フィーチャ（たとえば、押し出し、回転、カット、丸め）および／もしくは標準的なサーフェス処理フィーチャ（たとえば、スイープ、ブレンド、ロフト、フィル、変形、および／もしくはスムージング）を使用して物理的な人間（すなわち、設計者／ユーザ）によって設計され得る。そのようなモデル化機能をサポートする多くのＣＡＤシステムは、履歴ベースのシステムである。これは、設計特徴の作成履歴が、一般に、入力および出力リンクを通して幾何学的フィーチャを一緒にリンクする非周期的なデータフローを通して保存されることを意味する。履歴ベースのモデル化パラダイムは、８０年代の初めからよく知られている。モデル化オブジェクトは、履歴とＢ−ｒｅｐ（すなわち、境界表現）との２つの永続的なデータ表現によって記述され得る。Ｂ−ｒｅｐは、履歴に定義されている計算の結果である。モデル化オブジェクトが表されるときにコンピュータのスクリーン上に表示される部分の形状は、Ｂ−ｒｅｐ（の、たとえば、テッセレーション）である。部分の履歴が設計意図である。基本的に、履歴は、モデル化オブジェクトが受けた演算に関する情報を収集する。Ｂ−ｒｅｐは、複雑な部分を表示することをより容易にするために履歴とともに保存され得る。履歴は、設計意図による部分の設計変更を可能にするためにＢ−ｒｅｐとともに保存され得る。
【００６５】
推測方法は、（たとえば、履歴が保存されなかったか、または離散幾何学的表現もしくはＢ−ｒｅｐが遠くのシステムから受信されたかもしくは履歴なしにデータベース上に取り出されたので）任意のそのような履歴を伴わない３Ｄ形状の離散幾何学的表現とともに供給されるとき、編集可能なフィーチャツリーを介して幾何学的フィーチャのそのような履歴を取り出すことを可能にする。
【００６６】
本明細書における任意の３Ｄ形状は、（たとえば、機械）部分もしくは部分のアセンブリ（もしくは等価的に、部分のアセンブリが、方法の観点から部分自体として見られ得るか、もしくは方法がアセンブリの各部分に独立して適用され得るので、部分のアセンブリ）など、現実の世界で製造されるべき製品のジオメトリ、または、より一般的に、任意の剛体アセンブリ（たとえばモバイル機構）を表し得る。製品は、航空宇宙、建築、建造、消費財、ハイテクデバイス、産業機器、輸送、船舶、および／またはオフショア油／ガス生産もしくは輸送を含む、様々なおよび無制限の工業分野における製品のうちの１つであり得る。したがって、３Ｄ形状は、（たとえば、自動車および軽トラックの機器、レーシングカー、オートバイ、トラックおよびモータ機器、トラックおよびバス、列車を含む）地上ビークルの部分、（たとえば、エアフレーム機器、航空宇宙機器、推進機器、防衛製品、航空会社機器、宇宙機器を含む）空中ビークルの部分、（たとえば、海上機器、商用船舶、オフショア機器、ヨットおよび作業船、海洋機器を含む）海上ビークルの部分、（たとえば、産業用製造機械、重モバイル機械または機器、設置機器、産業用機器製品、組立金属製品、タイヤ製造製品を含む）一般機械部分、（たとえば、家庭用電子機器、セキュリティおよび／もしくは制御および／もしくは計装製品、コンピューティングおよび通信機器、半導体、医療デバイスおよび機器を含む）電気機械式または電子部分、（たとえば、家具、家庭用および園芸製品、レジャー商品、ファッション製品、金物類の小売業者の製品、織物類の小売業者の製品を含む）消費者商品、（たとえば、食品および飲料およびタバコ、美容および日用品、家庭用製品パッケージングを含む）パッケージングなど、任意の機械部分であり得る産業用製品を表し得る。
【００６７】
ＣＡＤの分野から知られているように、編集可能なフィーチャツリーは、本明細書では、リーフ幾何学的形状に適用される幾何学的演算のツリー構成を表すデータを備える編集可能なデータ構造である。ツリー構成の各リーフノードは、それぞれのリーフ幾何学的形状を表し、ツリー構成の各非リーフノードは、それの子ノードに適用されるべき、「フィーチャ」とも呼ばれるそれぞれの幾何学的演算を表す。したがって、リーフ幾何学的形状に幾何学的演算のツリー構成を適用することは、リーフ幾何学的形状から開始し、続けて、ツリー構成に従って各非リーフノードの幾何学的演算を適用することになる。編集可能なフィーチャツリーによって表される３Ｄ形状は、編集可能なフィーチャツリーのルートノードの結果に対応する。
【００６８】
リーフ幾何学的形状は、任意のタイプのものであり得る。リーフ幾何学的形状はそれぞれ、たとえば、それぞれの３Ｄソリッドなどのそれぞれの３Ｄ形状を備え得る（たとえば、それからなり得る）。幾何学的演算は、任意のタイプのものであり得る。例では、幾何学的演算は、すべて同じタイプ、たとえば、すべて加算／和集合演算である。そのような例では、推測方法は、単一のタイプの幾何学的演算のみを用いるものに制限される編集可能なフィーチャツリーを推測するように構成され得る。代替的なより優れた例では、幾何学的演算は、加算／和集合演算タイプ、減算演算タイプ、および／もしくは交差演算タイプを含む異なるタイプの演算、たとえば、異なるブール演算タイプ（すなわち、たとえば、２つの３Ｄ形状に、新しい３Ｄ形状を関連付ける２進数の連続演算子）を備え得る。そのような例では、推測方法は、利用可能なすべてのタイプの幾何学的演算を用いて編集可能なフィーチャツリーを推測するように構成され得る。本明細書における任意の編集可能なフィーチャツリーは、特に、ソリッドモデリングの分野から知られる空間領域構成（ＣＳＧ）ツリーであり得る。特に正確な例では、推測方法は、ＣＳＧツリーのみを推測するように構成される。ツリー構成は、任意のタイプのものであり得る。本明細書における任意の編集可能なフィーチャツリーは、特に、単根ツリー、バイナリツリー、および／またはフルバイナリツリー（すなわち、各非リーフノードが子として少なくとも１つのリーフノードを有するタイプのバイナリツリー）であり得る。特に効率的な例では、推測方法は、そのような構成タイプのみを提示するツリーを推測するように構成される。認識されるように、推測方法は、対応するニューラルネットワークアーキテクチャが学習方法に与えられることを介していくつかの条件に制限される編集可能なフィーチャツリーを推測するように構成され得る。
【００６９】
編集可能なフィーチャツリーの各リーフ幾何学的形状は、ユーザによって選択可能および編集可能である。幾何学的演算が異なるタイプの演算を備え得る編集可能なフィーチャツリーの場合、幾何学的演算のうちの１つまたは複数は、例ではユーザによって選択可能および編集可能であり得る。代替例では、幾何学的演算は編集可能でない。すべての例では、編集可能なフィーチャツリーのブランチは削除され得、および／またはブランチは追加され得る。ブランチはそれ自体、リーフ幾何学的形状に適用される幾何学的演算のツリー構成である。
【００７０】
リーフ幾何学的形状のまたは幾何学的演算の編集は、現在のパラメータ値を有するそれの少なくとも１つのパラメータの選択およびパラメータ値の変更を備えるなど、ＣＡＤの分野から知られる任意の方法でユーザによって実行され得る。そのような編集は、未加工メッシュなどの離散幾何学的表現の編集と比較して人間工学的な特性を提示する。特に、推測された編集可能なフィーチャツリーは、５倍よりも多い（たとえば、１０倍より多い）倍数で入力メッシュの離散幾何学的エンティティの数よりも少ないリーフ幾何学的形状の数、ならびに／または１００個よりも少ない（たとえば、５０個よりも少ない）リーフ幾何学的形状の数を備え得る。各リーフ幾何学的形状は、２０個よりも少ない（たとえば、１０個よりも少ない）いくつかのパラメータによって定義され得る。したがって、編集可能なフィーチャツリーは、離散幾何学的表現と比較してよりコンパクトで整理された方法で３Ｄ形状を表す。また、ＣＡＤの分野から知られているように、編集可能なフィーチャツリーの単一のパラメータに作用することは、グローバルな影響を提示し得、一方、離散幾何学的表現の場合、単一の幾何学的エンティティに作用することは、ローカルな影響しか提示しない。たとえば、本明細書における任意の編集可能なフィーチャツリーは、多数のメッシュ三角形を移動／増加するのとは反対に、５つよりも少ない（たとえば、３つよりも少ない）いくつかのパラメータ値を変更することによって（たとえば、カーブした、たとえば、円筒形の）部分または３Ｄ形状の全体をスケールアップするために構成され得る。さらに、編集可能なフィーチャツリーは、離散幾何学的表現よりもユーザに意味論的に有意味である。
【００７１】
例では、推測方法は、対応するリーフ幾何学的形状または幾何学的演算をそれぞれ表すグラフアイテムのツリー構成を含む編集可能なフィーチャツリーのグラフ表現を表示することを備え得る。編集は、たとえば、グラフ対話によってグラフアイテムを選択することを備え得る。本明細書におけるグラフ対話は、ディスプレイ上のグラフアイテムの位置に対応するロケーションにおいてピクセルをアクティブ化するように触覚デバイスを動作することを意味する。たとえば、マウスカーソルを表示されたグラフアイテム上に配置し得るか、または表示されたグラフアイテムをタッチスクリーンを介して直接もしくはタッチパッドを介して間接的にタッチし得る。選択は、ダイアログボックスなどを開くことと、たとえば、キーボードを介して、ユーザによって１つまたは複数のパラメータ値を入力することとをトリガし得る。
【００７２】
例では、推測方法は、離散幾何学的表現のグラフ表現を表示することと、その間に、ユーザによって、ニューラルネットワークのアプリケーションと編集可能なフィーチャツリーの推測とを起動し、したがって、離散幾何学的表現のグラフ表現に同時に編集可能なフィーチャツリーのグラフ表現を表示することとを備え得る。ユーザは、次いで、編集可能なフィーチャツリーの編集のための離散幾何学的表現のグラフ表現を非表示にし得る。代替として、推測方法は、両方のグラフ表現を同時に表示し続け得、ユーザが編集を実行するときに、方法は、相応して離散幾何学的表現のグラフ表現を更新し得る（たとえば、変更し得る）。これは、編集を実行するユーザに視覚フィードバックを与える。
【００７３】
例では、推測方法は、入力として、現実のオブジェクトに対する物理的測定から決定された３Ｄメッシュまたは３Ｄポイントクラウドを取るように構成され、推測方法により、現実のオブジェクトの３Ｄ形状を表す対応する編集可能なフィーチャツリーを決定することが可能になる。ユーザは、次いで、たとえば、現実のオブジェクトに似ているがそれとは異なる設計を作成するために編集可能なフィーチャツリーの編集を実行し得る。代替および追加の例では、推測方法は、入力として、遠くのコンピュータシステムから受信されたか、または不揮発性メモリから取り出された対応する編集可能なフィーチャツリーを有しない３Ｄモデル化オブジェクトの３Ｄメッシュを取るように構成され、推測方法により、３Ｄ形状を表す対応する編集可能なフィーチャツリーを決定することが可能になる。ユーザは、次いで、たとえば、３Ｄメッシュに似ているがそれとは異なる設計を作成するか、または３Ｄメッシュによって形成される設計を完了するために編集可能なフィーチャツリーの編集を実行し得る。
【００７４】
より多くの人間工学的な方法での３Ｄ形状の編集を実行する可能性への追加または代替として、編集可能なフィーチャツリーの獲得は、３Ｄ形状のマージまたは機械シミュレーションなどの他の目的をサービスし得る。
【００７５】
３Ｄ形状をマージする方法は、コンピュータシステムにおいて、第１の３Ｄ形状を表す第１の編集可能なフィーチャツリーを与えることと、第２の３Ｄ形状の離散幾何学的表現を与えることと、第２の３Ｄ形状を表す第２の編集可能なフィーチャツリーを取得するために離散幾何学的表現に対して推測方法を実行することと、第１の編集可能なフィーチャツリーと第２の編集可能なフィーチャツリーとをマージすることとを備え得る。マージすることは、任意のマージ技法に従って、および／または第１の３Ｄ形状と第２の３Ｄ形状との間の機械的なアセンブリもしくは機械的な協働を表すために実行され得る。マージすることは、たとえば、第１のツリーに第２のツリーを接続することを備え得る。３Ｄ形状をマージする方法は、さらに、マージされたツリーに幾何学的モデルを適用して、それによって表される３Ｄ形状のグラフ表現を取得すること、および／またはユーザにグラフ表現を表示することを備え得る。
【００７６】
機械的なシミュレーションは、編集可能なフィーチャツリーに基づいて実行され得る。実際、編集可能なフィーチャツリーが（離散幾何学的表現に対して）コンパクトでパラメータ化された方法で３Ｄ形状を表すので、機械的な計算が編集可能なフィーチャツリーに対してより正確に実行され得る。特に、ＣＳＧから有限要素メッシュを計算することは、（論文（非特許文献１１参照）または論文（非特許文献１２参照）によって教示されるように）より容易でより直接的である。さらに、ＣＳＧは、サーフェスの防水性の保証を提供する。したがって、機械的なシミュレーションは、編集可能なフィーチャツリー（たとえば、ＣＳＧ）および／もしくはそれの１つまたは複数の変更から１つもしくは複数の有限要素メッシュを計算し、次いで、各有限要素メッシュに基づいて有限要素分析を実行することを備え得る。また、ＣＳＧがパラメータ化されるので、シミュレーションの結果に従ってＣＳＧを容易に最適化することができる。したがって、１つまたは複数の変更は、それぞれの以前の有限要素分析結果に基づいて編集可能なフィーチャツリー（たとえば、ＣＳＧ）を最適化するためのものであり得る。
【００７７】
次に、概して、データ集合形成方法および学習方法を提示する。
【００７８】
データ集合形成方法は、それぞれのデータ片を与えるステップを備える。それぞれのデータ片は、３Ｄ形状を表す編集可能なフィーチャツリーを含む。編集可能なフィーチャツリーは、リーフ幾何学的形状に適用される幾何学的演算のツリー構成を備える。それぞれのデータ片は、３Ｄ形状の離散幾何学的表現をさらに含む。離散幾何学的表現は、リーフ幾何学的形状に幾何学的演算のツリー構成を適用することの結果に対応する。データ集合形成方法は、トレーニングサンプルとしてデータ集合中にデータ片の部分を挿入するステップをさらに含む。データ集合中に挿入される１つまたは複数の第１のデータ片の各々のそれぞれの３Ｄ形状は、データ集合中に挿入されないそれぞれの１つまたは複数の第２のデータ片のそれぞれの３Ｄ形状と同一である。
【００７９】
「それぞれのデータ片を与えること」によって、データ集合形成方法の少なくともある時点において、データ片が、コンピュータシステムの、プロセッサにとってアクセス可能なメモリ上に記録され得ることを意味する。
【００８０】
「データ集合」によって、トレーニングサンプルを備え、機械学習のために構成された任意のデータ構造を意味し、データ構造は、コンピュータシステムの、プロセッサにとってアクセス可能なメモリ上に記録される。データ集合形成方法は、不揮発性メモリ上にデータ集合を記録するステップを備え得る。
【００８１】
トレーニングサンプルとしてデータ集合中にデータ片を「挿入すること」または「挿入しないこと」によって、データ集合形成方法の少なくともある時点（たとえば、終わり）において、データ集合は、データ集合がすべての「挿入された」データ片を含む（すなわち、したがって、それらがデータ集合を表すデータ構造内のメモリ上の記録された）状態でコンピュータシステムの（たとえば、不揮発性）メモリ上に記録され、一方、データ集合は、すべての「挿入されていない」データ片を除外する（すなわち、備えない）（すなわち、したがって、それらは、メモリ上に、少なくともデータ集合を表すデータ構造内に記録されない）ことを意味する。したがって、少なくともこの時点において、メモリロケーション上に記録される同じデータ集合に関して、すべての第１のデータ片が同時に記録され、一方、第２のデータ片のいずれも記録されない。学習は、次いで、例では、データ集合のさらなる処理後のデータ集合に基づき得る。学習は、（たとえば、実質的に）第１のデータ片（にのみ）（たとえば、実質的にすべての第１のデータ片に）関与し、第２のデータ片に実質的に関与しないことがある。したがって、学習されたニューラルネットワークは、第１のデータ片に一致し、第２のデータ片と一致しないことになる。
【００８２】
データ集合形成方法は、デジタル化のための改善された解決策を形成する。形成されたデータ集合は、それぞれの３Ｄ形状の離散幾何学的表現と３Ｄ形状を表すそれぞれの編集可能なフィーチャツリーとをそれぞれ含むトレーニングサンプルを備える。したがって、データ集合は、例では、提案された学習方法を用いて提示される編集可能なフィーチャツリーに離散幾何学的表現を変換するために使用可能なニューラルネットワークを学習するために構成される。さらに、データ集合は、企図された学習に関してラベルをつけられる。実際、ニューラルネットワーク（離散幾何学的表現）の潜在的な入力は、グラウンドトゥルース出力（それぞれの編集可能なフィーチャツリー）によってデータ集合中にそれぞれラベルをつけられる。したがって、学習は、教師つきであり得、したがって、特に効率的であり得る。さらに、データ集合は、すべての与えられたデータ片でポピュレートされない。むしろ、トレーニングサンプルの中で、与えられるがトレーニングサンプルの部分ではない１つまたは複数の（第２の）データ片のそれぞれの３Ｄ形状と同じ３Ｄ形状に対応する１つまたは複数の（第１の）データ片がある。第２のデータ片のそのようなフィルタ処理して除外することは、学習を改善する。実際、せいぜい、第２のデータ片は、第１のデータ片にレラティブな冗長情報を形成する。最悪の場合でも、第２のデータ片は、第１のデータ片に対して矛盾する情報を形成し、それによって、学習を摂動する。フィルタ処理して除去することは、「冗長性」の低減／管理と呼ばれることがある。
【００８３】
学習方法は、それぞれの３Ｄ形状の離散幾何学的表現それぞれを含むデータ集合を与えるステップを備える。学習方法は、リーフ幾何学的形状の候補集合を与えることをさらに備える。学習方法はまた、データ集合と候補集合とに基づいてニューラルネットワークを学習するステップを備える。候補集合は、リーフ幾何学的形状の少なくとも１つの連続サブ集合を備える。
【００８４】
「リーフ幾何学的形状の候補集合を与えること」によって、学習方法、特に、学習ステップが、（少なくともある時点における）推測のための候補として候補集合の各要素について考えることが可能になることを意味する。機械学習の分野から知られているように、学習ステップは、ニューラルネットワークの重み値を自由に設定することを備え得、したがって、推測方法は、学習方法に供給されるデータ集合に一致する推測を実行する傾向がある。そして、「リーフ幾何学的形状の候補集合を与えること」によって、ニューラルネットワークアーキテクチャがある程度あらかじめ決定され、学習ステップが、候補集合の各要素が推測中に潜在的に推測されるために利用可能であるような方式で実行されることを意味する。例では、候補集合の各要素は、（すなわち、ツリー構成中の位置はどこであっても）推測されたリーフ幾何学的形状ごとの候補である。
【００８５】
「連続」によって、サブ集合の各候補リーフ幾何学的形状は、サブ集合の別の候補リーフ幾何学的形状が、特定の連続する変形によって取得され得る（たとえば、固定数のパラメータを用いてパラメータ化され得る）ことを意味し、したがって、連続する変形の各中間状態はそれ自体、サブ集合の候補リーフ幾何学的形状である。例では、リーフ幾何学的形状の候補集合は、いくつかの連続サブ集合（たとえば、プリミティブ形状タイプごとに１つ）を備える。
【００８６】
学習方法は、デジタル化のための改善された解決策を形成する。特に、学習されたニューラルネットワークは、編集可能なフィーチャツリーに離散幾何学的表現を変換するために使用可能である。デジタル化のコンテキストでは、これは、すでに説明したように、特に有用。さらに、学習されたニューラルネットワークを用いてそのようなデジタル化を実行することは、高速でリアルタイムの実行、冗長な事前のマニュアルでのプログラミング／コーディングの非必要性、および結果の精度（たとえば、ここでの精度は、出力された編集可能なフィーチャツリーと入力された離散幾何学的表現とを再生することの結果の間で評価される３Ｄ類似性の値を指す）など、機械学習の分野によって与えられる利益を達成することを可能にする。したがって、学習方法は、３Ｄ設計のコンテキストでは人間工学を改善する。さらに、リーフ幾何学的形状の候補集合は、論文［１０］中で提案される解決策に反して、リーフ幾何学的形状の少なくとも１つの連続サブ集合を備える。これは、学習の精度を改善する。実際、３Ｄ形状の少なくとも１つの連続体がすべて、推測された編集可能なフィーチャツリーのリーフになるためにアクセス可能であるので、推測は、そのような連続体内で高精度の方法で実行され得る。
【００８７】
学習は、データ集合の少なくとも部分に基づいて教師つきトレーニングを備え得る。そのような場合、データ集合の少なくとも部分は、離散幾何学的表現ごとに、離散幾何学的表現を用いて（ラベルをつけられた）トレーニングサンプルを形成するそれぞれの編集可能なフィーチャツリーを含む。データ集合の少なくとも部分は、任意の方法で与えられ、たとえば、データ集合形成方法に従って形成され得る。
【００８８】
代替または追加として、学習は、データ集合の少なくとも別の部分に基づいて教師つきトレーニングを備え得る。そのような場合、データ集合の少なくとも別の部分の離散幾何学的表現はそれぞれ、それぞれの（ラベルをつけられていない）トレーニングサンプルを形成する。データ集合の少なくとも別の部分は、任意の方法で与えられ、たとえば、離散幾何学的表現の商用データベースとして取り出され得る。
【００８９】
特に効率的な例では、学習方法は、データ集合形成方法によって形成されるデータ集合に基づいて教師つきトレーニングを備え得る。そのような例のロバストな例では、学習は、たとえば、教師つきトレーニングの後に別のデータ集合に基づいて教師なしトレーニングをさらに備え得る。機械学習の分野から知られているように、各トレーニングは、たとえば、ミニバッチごとにそれぞれのデータ集合を反復的に処理することと、反復処理に沿ってニューラルネットワークの重み値を変更することとを備え得る。これは、確率勾配降下に従って実行され得る。重み値は、トレーニングごとに何らかの方法で初期化され得る。例では、教師なしトレーニングの重み値は、教師つきトレーニングの最後に取得された重み値を用いて初期化され得る。重み値は、たとえば、ランダムにまたはそれぞれゼロ値に任意の方法で教師つきトレーニングのために初期化され得る。したがって、データ集合形成方法と教師つきトレーニングとは、別のデータ集合に基づき得るさらなるトレーニング、すなわち、教師なしトレーニングのための重み値を初期化する方法を形成する。他のデータ集合は、たとえば、データ集合形成方法によって形成されるラベルをつけられたデータ集合よりも現実を表すラベルをつけられていないデータ集合であり得る。したがって、教師なしトレーニングは、教師つきトレーニング後に停止することと比較してより正確な結果につながり得る。しかしながら、機械学習の分野から知られているように、教師なしトレーニングは、任意に初期化される場合、非常に長くなり、不正確な結果を与え得る。提案された手法では、教師つき学習は、比較的良好な初期化を与える。
【００９０】
方法は、コンピュータに実装される。
【００９１】
これは、方法のステップ（または実質的にすべてのステップ）が少なくとも１つのコンピュータまたは類似の任意のシステムによって実行されることを意味する。したがって、方法のステップは、おそらく完全に自動的にまたは半自動的にコンピュータによって実行される。例では、方法のステップのうちの少なくともいくつかのトリガは、ユーザコンピュータ対話を通して実行され得る。必要とされるユーザとコンピュータとの対話のレベルは、予見される自動性のレベルに依存し、ユーザの要望を実装する必要とバランスを取られ得る。例では、このレベルは、ユーザによって定義され、および／またはあらかじめ定義され得る。
【００９２】
これはまた、ニューラルネットワーク、データ集合、１つもしくは複数の（たとえば、すべての）入力、および／または１つもしくは複数の（たとえば、すべての）出力がそれぞれ、それぞれのデータ構造によって表され得ることを意味する。１つまたは複数の（たとえば、すべての）データ構造はそれぞれ、それぞれのデータ記憶媒体上に非一時的に記録され得る。
【００９３】
方法のコンピュータ実装の典型的な例は、この目的のために適応されたシステムを用いて方法を実行することである。システムは、メモリに結合されたプロセッサとグラフィカルユーザインターフェース（ＧＵＩ）とを備え得、メモリは、方法を実行するための命令を備えるコンピュータプログラムを記録している。メモリはまた、データベースを記憶し得る。メモリは、そのようなストレージのために適応された任意のハードウェアであり、場合によっては、いくつかの物理的に別個の部分（たとえば、プログラムのための１つと、場合によっては、データベースのための１つと）を備える。システムは、ＣＡＤシステムであり得る。
【００９４】
図１に、本明細書における任意のシステムのＧＵＩの一例を示し、ここにおいて、システムはＣＡＤシステムである。
【００９５】
ＧＵＩ２１００は、標準的なメニューバー２１１０、２１２０ならびに下部および側面ツールバー２１４０、２１５０を有する典型的なＣＡＤ様のインターフェースであり得る。そのようなメニューバーとツールバーとは、ユーザ選択可能なアイコンの集合を含んでおり、各アイコンは、当技術分野で知られているように、１つまたは複数の動作または関数に関連付けられる。これらのアイコンのうちのいくつかは、ＧＵＩ２１００中に表示された３Ｄモデル化オブジェクト２０００を編集するおよび／またはそれに作用するように適応されたソフトウェアツールに関連付けられる。ソフトウェアツールは、ワークベンチにグループ化され得る。各ワークベンチは、ソフトウェアツールのサブ集合を備える。特に、ワークベンチのうちの１つは、モデル化された製品２０００の幾何学的フィーチャを編集するのに好適な編集ワークベンチである。動作時に、設計者は、たとえば、オブジェクト２０００の部分をあらかじめ選択し、次いで、適切なアイコンを選択することによって動作を開始する（たとえば、寸法、色などを変更する）か、または幾何学的制約を編集し得る。たとえば、典型的なＣＡＤ動作は、パンチングのモデリングまたはスクリーン上に表示された３Ｄモデル化オブジェクトの折り曲げである。ＧＵＩは、たとえば、表示された製品２０００に関係するデータ２５００を表示し得る。図の例では、「フィーチャツリー」として表示されるデータ２５００とそれらの３Ｄ表現２０００とは、ブレーキキャリパーとディスクとを含むブレーキアセンブリに関する。ＧＵＩは、さらに、たとえば、オブジェクトの３Ｄ向きを容易にすることのための、編集された製品の動作のシミュレーションをトリガするための、または表示された製品２０００の様々な属性をレンダリングする様々なタイプのグラフィックツール２１３０、２０７０、２０８０を示し得る。カーソル２０６０は、ユーザがグラフィックツールと対話することを可能にするために触覚デバイスによって制御され得る。
【００９６】
３Ｄモデル化オブジェクト２０００は、３Ｄ形状の離散幾何学的表現のグラフ表現であり得、推測方法は、編集可能なフィーチャツリー２５００を決定することを可能にし得る。したがって、推測方法は、フィーチャツリーが関連付けられていない３Ｄ形状の離散幾何学的表現２０００から開始し、次いで、編集可能なフィーチャツリー２５００を取り出すことを可能にする。これにより、ＣＡＤシステムのすべての能力を使用することが可能になる。
【００９７】
図２に、本明細書における任意のシステムの一例を示し、ここにおいて、システムは、クライアントコンピュータシステム、たとえば、ユーザのワークステーションである。
【００９８】
例のクライアントコンピュータは、内部通信バス１０００に接続された中央処理ユニット（ＣＰＵ）１０１０を備え、ランダムアクセスメモリ（ＲＡＭ）１０７０はまた、バスに接続される。クライアントコンピュータはさらに、バスに接続されたビデオランダムアクセスメモリ１１００に関連付けられるグラフィック処理ユニット（ＧＰＵ）１１１０を備える。ビデオＲＡＭ１１００はまた、フレームバッファとして当技術分野で知られている。大容量ストレージデバイスコントローラ１０２０は、ハードドライブ１０３０などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令とデータとを有形に具体化するのに好適な大容量メモリデバイスは、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイスと、内蔵ハードディスクおよびリムーバブルディスクなどの磁気ディスクと、光磁気ディスクと、ＣＤ−ＲＯＭディスク１０４０とを含むすべての形態の不揮発性メモリを含む。上記のいずれかは、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補われるか、またはそれに組み込まれ得る。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御デバイス、キーボードなどの触覚デバイス１０９０を含み得る。カーソル制御デバイスは、ユーザがディスプレイ１０８０上の任意の所望のロケーションにカーソルを選択的に配置することを可能にするためにクライアントコンピュータ中で使用される。さらに、カーソル制御デバイスにより、ユーザが様々なコマンドを選択し、制御信号を入力することが可能になる。カーソル制御デバイスは、システムへの制御信号の入力のためのいくつかの信号生成デバイスを含む。一般に、カーソル制御デバイスは、マウスであり得、マウスのボタンが信号を生成するために使用される。代替または追加として、クライアントコンピュータシステムは、感知パッドおよび／または感知スクリーンを備え得る。 
【００９９】
本明細書における任意のコンピュータプログラムは、コンピュータによって実行可能な命令を備え、命令は、上記のシステムに方法を実行させるための手段を備え得る。プログラムは、システムのメモリを含む任意のデータ記憶媒体上に記録可能であり得る。プログラムは、たとえば、デジタル電子回路中に、またはコンピュータハードウェア、ファームウェア、ソフトウェア中に、またはそれらの組合せ中に実装され得る。プログラムは、装置、たとえば、プログラマブルプロセッサが実行するための機械可読ストレージデバイス中に有形に具体化された製品として実装され得る。方法ステップは、入力データに対して動作し、出力を生成することによって方法の機能を実行するように命令のプログラムを実行するプログラマブルプロセッサによって実行され得る。プロセッサは、したがって、プログラム可能であり、データストレージシステム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータと命令とを受信し、それらにデータと命令とを送信するために結合され得る。アプリケーションプログラムは、高レベルの手続き型もしくはオブジェクト指向プログラミング言語、または所望される場合、アセンブリまたは機械語で実装され得る。いずれの場合も、言語は、コンパイル型言語またはインタープリタ型言語であり得る。プログラムは、完全インストールプログラムまたは更新プログラムであり得る。システム上でのプログラムの適用は、いずれの場合も、方法を実行するための命令を生じる。
【０１００】
本明細書における任意の方法は、３Ｄモデル化オブジェクトを設計するためのプロセスの部分であり得る。「３Ｄモデル化オブジェクトを設計すること」は、３Ｄモデル化オブジェクトを作るプロセスの少なくとも部分である任意の行為または一連の行為を指定する。したがって、方法は、ゼロから３Ｄモデル化オブジェクトを作成するステップを備え得る。代替として、方法は、前に作成された３Ｄモデル化オブジェクトを与えるステップと、次いで、３Ｄモデル化オブジェクトを変更するステップとを備え得る。
【０１０１】
本明細書における任意の方法は、方法を実行した後に、モデル化オブジェクトに対応する物理的製品を生成することを備え得る製造プロセス中に含まれ得る。いずれの場合も、方法によって設計されたモデル化オブジェクトは、製造オブジェクトを表し得る。したがって、モデル化オブジェクトは、モデル化ソリッド（すなわち、ソリッドを表すモデル化オブジェクト）であり得る。製造オブジェクトは、部分または部分のアセンブリなどの製品であり得る。方法がモデル化オブジェクトの設計を改善するので、方法はまた、製品の製造を改善し、したがって、製造プロセスの生産性を増加させる。
【０１０２】
次に、リーフ幾何学的形状の例について説明する。
【０１０３】
（それぞれのデータ片の編集可能なフィーチャツリーの部分として）データ集合形成方法中に与えられる１つまたは複数の（たとえば、すべての）リーフ幾何学的形状、学習方法中に与えられる１つまたは複数の（たとえば、すべての）候補リーフ幾何学的形状、および／または（推測された編集可能なフィーチャツリーの部分として）推測方法によって与えられる１つまたは複数の（たとえば、すべての）リーフ幾何学的形状はそれぞれ、これらの例に一致するものであり得る。
【０１０４】
プリミティブ形状タイプの離散集合と、プリミティブ形状タイプごとの、それぞれの連続パラメータの１つまたは複数のパラメータ領域それぞれの離散集合のそれぞれであって、各パラメータ領域が、それぞれの連続パラメータのそれぞれのパラメータ値を有する、それぞれの離散集合とが与えられれば、リーフ幾何学的形状は、１つまたは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値を用いてそれぞれのプリミティブ形状タイプによって形成され得る。
【０１０５】
したがって、データ集合形成方法および／または学習方法は、プリミティブ形状タイプのそのような離散集合に基づき、プリミティブ形状タイプごとの１つまたは複数のパラメータ領域のそのようなそれぞれの離散集合に基づき得る。集合は、データ集合形成方法と学習方法とで同じであることも異なることもある。集合が同じである場合、トレーニングサンプルのリーフ幾何学的形状が推測のためのリーフ幾何学的形状候補に一致するので、機械学習プロセスは特に正確になる。
【０１０６】
次に、学習方法におけるリーフ幾何学的形状の候補集合は、プリミティブ形状タイプの離散集合と、プリミティブ形状タイプごとの１つまたは複数のパラメータ領域のそれぞれの離散集合との積集合を備え得る。積集合の各要素は、それぞれの候補リーフ幾何学的形状を表す。
【０１０７】
データ集合形成方法の場合、トレーニングサンプルの各リーフ幾何学的形状は、そのような積集合に属し得る。例では、データ集合形成方法は、プリミティブ形状タイプの離散集合（を表すデータ）と、プリミティブ形状タイプごとの、１つまたは複数のパラメータ領域のそれぞれの離散集合（を表すデータ）とを含む初期データを備え得る。そのような例では、リーフ幾何学的形状は、そのような初期データに基づいて与えられ得る（たとえば、合成され得る）。
【０１０８】
「プリミティブ形状タイプ」によって、幾何学的形状（たとえば、ソリッド）のクラスを意味し、ここで、各幾何学的形状は、共通の一般的な形態（たとえば、ユーザにそのようなものとして認識可能なもの）を提示する。プリミティブ形状タイプは、パラメータに関連付けられる。各パラメータは、（間隔、すなわち、実数の連続範囲であり得る）「パラメータ領域」と呼ばれる集合中の値を取り、各パラメータ領域に特定のパラメータ値を与えることは、プリミティブ形状タイプのインスタンスを定義する。プリミティブ形状タイプは、それぞれの集合のためのパラメータ値とともに供給されるとき、１つまたは複数のパラメータのそれぞれの集合と、プリミティブ形状タイプのそのような幾何学的形状インスタンスを生成するように構成された所定のアルゴリズムとによって定義され得る。インスタンスは、１つまたは複数の編集可能なフィーチャツリーに介入することができるリーフ幾何学的形状を形成する。
【０１０９】
プリミティブ形状タイプは、１つまたは複数の連続パラメータにそれぞれ関連付けられ得る。パラメータについての「連続」によって、リーフ幾何学的形状を出力する機能が、パラメータに関して少なくとも区分的に連続していることを意味する。また、パラメータ領域が少なくとも区分的に連続していると言うこともできる。これにより、非常に多様な形状のコンパクトな表現が可能になる。
【０１１０】
例では、１つまたは複数のプリミティブ形状タイプの各々について、１つまたは複数のそれぞれの連続パラメータは、１つもしくは複数の次元パラメータおよび／または１つもしくは複数の配置パラメータを備える。次元パラメータは、所与のプリミティブ形状タイプの形状の特性寸法のサイズを定義するパラメータである。次元パラメータは、プリミティブ形状タイプごとに特有であり得る。配置パラメータは、３Ｄ空間における形状の配置を可能にするパラメータである。配置パラメータは、すべてのプリミティブ形状タイプに対して同じ、たとえば（０，Ｘ，Ｙ，Ｚ）基準に対して定義された（ｘ，ｙ，ｚ）座標であり得る。
【０１１１】
計算時間および／または学習の収束対多様な現実の状況の見本の点で特に効率的な例では、プリミティブ形状タイプの離散集合は、直方体タイプ、球体タイプ、１つもしくは複数の円柱タイプ、および／または１つもしくは複数の角柱タイプを備え得る。例では、プリミティブ形状タイプの離散集合は、以下のタイプのうちのいずれか１つまたはそれらの任意の組合せ（たとえば、すべて）を備え得る。
【０１１２】
−  たとえば、３つの配置パラメータと３次元パラメータとによってパラメータ化される直方体
【０１１３】
−  たとえば、３つの配置パラメータと１次元パラメータ（直径）とによってパラメータ化される球体
【０１１４】
−  たとえば、３つの配置パラメータと、高さを表す１次元パラメータと、直径を表す１次元パラメータとによってパラメータ化される、Ｘ、ＹまたはＺ軸に沿って配向する（したがって、３つのプリミティブ形状タイプに対応する）直円柱
【０１１５】
−  たとえば、３つの配置パラメータと、大きい台形の底の長さを表す１次元パラメータと、小さい台形の底の長さを表す１次元パラメータと、台形の高さを表す１次元パラメータと、角柱の深度を表す１次元パラメータとによってパラメータ化される、軸（Ｘ，Ｙ）、（Ｘ，Ｚ）、（Ｙ，Ｚ）、（Ｙ，Ｘ）、（Ｚ，Ｘ）、（Ｚ，Ｙ）に沿って配向する等脚台形の底をもつ（したがって、６つのプリミティブ形状タイプに対応する）直線角柱
【０１１６】
プリミティブ形状タイプの離散集合は、さらに３つの回転パラメータをもつ未配向円柱、多角形ベースの円柱、非直線円柱、多角形ベースの角柱、非配向角柱、および／または不規則多面体などの任意の他のプリミティブ形状タイプを備え得る。
【０１１７】
（たとえば、メモリ上に）本明細書において提供される任意のリーフ幾何学的形状は、プリミティブ形状タイプを表すデータ（たとえば、文字情報）と、パラメータごとの、パラメータ値を表すそれぞれのデータ（たとえば、浮動小数点などの値）とを含むデータ構造として（たとえば、与えられたデータ片、トレーニングサンプル、および／または推測の出力内に）記録され得る。
【０１１８】
次に、データ集合形成方法の例について説明する。
【０１１９】
第１の例では、挿入することは、１つまたは複数の（たとえば、すべての）（すなわち、データ集合中に挿入される）第１のデータ片の各々について、第１のデータ片の編集可能なフィーチャツリーの正規性に応じて第１のデータ片を選択することを備え得る。たとえば、１つまたは複数の（たとえば、すべての）第１のデータ片の各々について、第１のデータ片の編集可能なフィーチャツリーは、（すなわち、データ集合中で挿入されない）１つまたは複数の（たとえば、実質的に、たとえば、すべての）それぞれの第２のデータ片の各々の編集可能なフィーチャツリーよりも正準である。同じ３Ｄ形状を表す第２の編集可能なフィーチャツリーに対する３Ｄ形状を表す第１の編集可能なフィーチャツリーについてのより「より正準である」により、第１の編集可能なフィーチャツリーのリーフ幾何学的形状（たとえば、ソリッド）のサイズ（たとえば、体積）の和は、第２の編集可能なフィーチャツリーのリーフ幾何学的形状（たとえば、ソリッド）のサイズ（たとえば、体積）の和よりも小さく（または等しく）なることを意味する。「実質的に」によって、挿入することは、それらのそれぞれの第２のデータ片にそれぞれ対する第１のデータ片の正準を最大化することを意図し得ることを意味するが、判断は、めったに最適にならないことがあり、したがって、真の最小値を得られないことを意味する。トレーニングサンプルの編集可能なフィーチャツリーの高い正準を与えることは、非正準が許可される場合に高められ得るあいまいさを小さくすること（たとえば、回避すること）によって学習の精度を改善する。
【０１２０】
第１の例と組み合わせ可能な第２の例では、それぞれのデータ片を与えることは、データ片を合成することを備え得る。
【０１２１】
「合成する」ことによって、編集可能なフィーチャツリーと離散幾何学的表現とを生成することを含む自動プロセスを意味する。例では、方法は、最初に、編集可能なフィーチャツリーを合成し、次いで、リーフ幾何学的形状に幾何学的演算のツリー構成を適用することによって（含む）離散幾何学的表現を決定し得る。データ集合形成方法は、たとえば、編集可能なフィーチャツリーを再生するための所定の方式を与えることを備え得、離散幾何学的表現を決定することは、編集可能なフィーチャツリーに方式を適用することによって自動的に実行され得る。方法はまた、任意選択でさらに、１つまたは複数の離散幾何学的表現に雑音（たとえば、パーリン雑音）を追加し得る。これにより、より現実的な離散幾何学的表現を取得することが可能になり、したがって、学習のロバストネスを改善する。
【０１２２】
合成することは、（それの要素の冗長性および／または正準に関して）準最適であり得る。したがって、合成されたデータ片のうちの少なくともいくつかは、任意選択で、それらに基づいて、（たとえば、少なくとも１つのそのような他のデータ片がデータ集合中に最終的に挿入された状態で）他のデータ片を決定した後に、フィルタ処理して除去され、それによって、データ集合中に挿入されないことがある。言い換えれば、データ集合は、すべての合成されたデータでポピュレートされないが、むしろそれの選択された厳密な部分でポピュレートされる。
【０１２３】
そのような第２の例の第１のオプションでは（第１のオプションはまた、第２の例ではなく他の例に適用可能である）、フィルタ処理して除去することは、（第３のおよび第４の）データ片のペアを与えることと、少なくとも１つの（たとえば、それぞれの）ペアの（第３のおよび第４の）データ片の３Ｄ形状間の識別情報をテストすることとを備え得る。テストは、あらかじめ決定され、３Ｄ形状のペアの間で同じ特性を定義し得、それらの代表的なデータ片間のテストが正である場合、３Ｄ形状のペアは同じであるとみなされる。したがって、テストが正の結果を生じ（したがって、第３のおよび第４のデータ片が冗長であると決定し）たとき、フィルタ処理して除去することは、第３のおよび第４のデータ片のうちのデータ片を（データ集合中に挿入されるべきでない）第２のデータ片として識別し、それによって第２のデータをフィルタ処理して除去し得る。識別されたデータ片は、任意選択で、最小の正準のデータ片であり得る（すなわち、データ片は、最小の正準の編集可能なフィーチャツリーを有する）。
【０１２４】
第１のオプションと組み合わせ可能な第２の例の第２のオプションでは、データ片は、データ片の１つまたは複数の（たとえば、別個のおよび／または非交差の）グループを備え得、それぞれのグループのすべてのデータ片は、同じ３Ｄ形状を表す。言い換えれば、各グループのすべての編集可能なフィーチャツリーは、同じ３Ｄ形状を表す離散幾何学的表現をもたらす。そのような場合、データ集合形成方法は、データ集合中への挿入のために、少なくとも１つの（たとえば、それぞれの）グループについて、任意選択で、正準（たとえば、最も正準な編集可能なフィーチャツリーを有するもの）に応じて、だた１つまたは複数の（たとえば、単一の１つの）データ片をトレーニングサンプルとして保持し、グループの任意の他のデータ片を破棄／削除し得る（すなわち、データ集合中に含まないことがある）。
【０１２５】
第２のオプションの特定の例では、グループは、第１のオプションの場合のように処理され、すなわち、「データ片のペア」的な処理がテストステップを含み得る。そのような例では、グループとペアとは、任意の方法で与えられ得る。たとえば、処理は、グループについての事前知識を有していないことがある。そのような場合、テストは、第３のおよび第４のデータ片が同じグループ中にあることを保証することを可能にする。
【０１２６】
たとえば、合成することは、少なくとも１つの初期データ片を生成することと、次いで、初期データ片に基づいて少なくとも１つの隠れたデータ片を決定することとを備え得る。各初期データ片とそれの隠れたデータ片とは、それぞれのグループを形成する。隠れたデータ片を決定することは、反復的に、初期データ片から開始して、編集可能なフィーチャツリー編集のステップを実行することを含み得、（編集可能なフィーチャツリー編集のステップの）各反復の出力は、隠れたデータ片を形成する。「反復的に、初期データ片から開始して」によって、編集可能なフィーチャツリー編集のステップが、入力として各時間ｔにおいて前の時間の出力を使用して１回または複数回繰り返されることと、（初期時間ｔ＝０における）最初の（すなわち、開始の／第１の）入力が初期データ片の編集可能なフィーチャツリーであることとを意味する。各反復において、前の時間は、（すなわち、前の反復、すなわち、ｔ−１に対応する）以前の時間または（初期時間ｔ＝０などの）任意の他の前の時間であり得る。反復は、データ集合中で挿入されるべき第１のデータ片として決定するために、たとえば、最も正準のデータ片を見つけることを狙ったグループのブラインド探査に対応し得る。データ片を反復的に合成し、与えることは、合成されたデータ片の未加工の（未編成の）集合を与えることと比較して、計算に関する効率を増加させる。実際、合成で反復的に進めることによって、すでに合成されているが組織化されてないデータに対してランダムに（したがって、乱雑に）進めることと比較して、データ片を編成し、グループごとに自然に動作し、それによって、少なくとも不要なテストを減らすことが可能になる。
【０１２７】
特に、テストは、合成と組み合わせて実行され得る。たとえば、テストは、（たとえば、実質的に唯一）編集可能なフィーチャツリー編集の各ステップ後に実行され得る。そのような例では、第３のデータ片は、現在の時間に決定された隠れたデータ片であり得、ならびに／または第４のデータ片は、初期データ片、前の時間に決定された隠れたデータ片などの別の利用可能なデータ片、たとえば、編集可能なフィーチャツリー編集の現在のステップに入力されるデータ片であり得る。テストにより、反復がグループ中にとどまったのか否か、言い換えれば、編集可能なフィーチャツリー編集のステップが表された３Ｄ形状を変更したのか否かを知ることが可能になる。テストが正の結果を生じる場合、フィルタ処理して除去することは、上記のように実行され得、（たとえば、グループをさらに探査するために）反復が続き得る。言い換えれば、フィルタ処理して除去することは、合成することと組み合わされ、それによって、合成することの順序に従う。代替として、テストが負の結果を生じる場合、第３のデータ片がグループに属していないことを意味する。そのような場合、第３のデータ片は、ビー削除／破棄されるか、または代替として、何らかの目的のために（データ集合中に挿入するために、または別個のグループを探査するためにそこから開始する別の別個の反復を起動するために）保持され得る。いずれの場合も、第３のデータ片は、現在の反復から破棄され、これは、たとえば、第４のデータ片に戻って、異なる編集可能なフィーチャツリー編集を実行することによって続き得る。
【０１２８】
第２のオプションに従って（たとえば、グループに対応する初期データ片を生成することを含む）１つのグループの処理について説明した。第２のオプションの例では、同じ処理が、（たとえば、互いのグループに対応する初期データ片を生成することを含め）少なくとも１つの（たとえば、それぞれの）他のグループのために実行され得る。すべてのグループは、並行してまたは連続的に処理され得る。
【０１２９】
第１のおよび／または第２の例と組み合わせ可能な第３の例では、（すなわち、データ集合中で挿入された）第１のデータ片ごとに）、第１のデータ片の編集可能なフィーチャツリーは、（すなわち、第１のデータ片に対応し、データ集合中に挿入されない）それぞれの第２のデータ片の編集可能なフィーチャツリーに構造的に適合し（たとえば、それよりもより正準であり）得る。第１の編集可能なフィーチャツリーと第２の編集可能なフィーチャツリーとは、それらが同じ３Ｄ形状を潜在的に生じるとき、「構造的に適合する」とみなされる。「構造互換性」は、任意の所定のツリー構造のコンパティビリティクライテリオンに対応し得る。たとえば、第１の編集可能なフィーチャツリーと第２の編集可能なフィーチャツリーとは、それらが互いに少なくとも部分的にマッチングするとき、「構造的に適合する」とみなされ得る。所定のツリー構造のコンパティビリティクライテリオンは、２つの編集可能なフィーチャツリーの要素が同じである程度を測定し得る。実際、多数の同じ要素を有する２つの編集可能なフィーチャは、潜在的に同じ３Ｄ形状を生じる。同じである２つの編集可能なフィーチャは、必ずしも構造的に適合するとは限らない。しかしながら、構造的にコンパティブルメイである２つの編集可能なフィーチャツリーは、同じであるかまたは異なる。第３の例は、効率を改善する。
【０１３０】
たとえば、第２の例の第１のオプションでは、テストするステップを含む１つまたは複数の（たとえば、すべての）「データ片のペア」的なプロセスについて、第３のおよび第４のデータ片は、構造的に適合し得る（すなわち、構造的に適合する編集可能なフィーチャツリーを有し得る）。これによって、正の結果が特に可能性がある状況においてのみテストを実行することが可能になり、それによって、効率を改善する。
【０１３１】
代替または追加として、さらに第２の例の第１のオプションでは、テストは、体積比較方式を備え得る。体積比較方式は、（離散幾何学的表現に基づいて任意の体積計算方式を使用して）第１の体積値と第２の体積値とを計算することと、第２の体積値と第１の体積値を比較することとを備え得る。第１の体積値は、第３のデータ片の離散幾何学的表現の体積を表す。第２の体積値は、第４のデータ片の離散幾何学的表現の体積を表す。これは、高速の識別情報テストを与える。テストに関与する３Ｄ形状のペアが構造的に適合する編集可能なフィーチャツリーを有するとき、速度は、比較的小さいほとんどないロバストネスコストで達成される。
【０１３２】
代替または追加として、第２の例の第２のオプションでは、少なくとも１つの（たとえば、それぞれの）グループのデータ片は、２対２で構造的に適合し得る。たとえば、編集可能なフィーチャツリー編集のステップは、各出力データ片が入力データ片に構造的に適合することを保証し得る（すなわち、そのように制限され得る）。編集可能なフィーチャツリー間の構造適合性は、同値関係を形成し得る。これは、特に、第２の例の第２のオプションが第２の例の第１のオプションのテストを含むときに効率を改善する。
【０１３３】
第３の例のオプションでは、第１の編集可能なフィーチャツリーと第２の編集可能なフィーチャツリーとは、２つの以下の（たとえば、必要なおよび／または十分な）条件が満たされるときに「構造的に適合する」とみなされ得る。
【０１３４】
条件１。第１の編集可能なフィーチャツリーが、第２の編集可能なフィーチャツリーの幾何学的演算の（第２の）ツリー構成に少なくとも部分的に一致する幾何学的演算のそれぞれの（第１の）ツリー構成を有する。言い換えれば、第１のツリー構成の少なくとも部分が、第２のツリー構成の少なくとも部分に一致する（すなわち、それに等しくなる／それと同じである）。例では、第１のツリー構成は、第２のツリー構成に一致し得る（すなわち、それに等しくなり得る／それと同じであり得る）か、または第１の（もしくはそれぞれの第２の）ツリー構成は、第２の（もしくはそれぞれの第１の）ツリー構成中に含まれ得る（すなわち、それの部分に一致し得る）。さらに、対応する幾何学的演算の各ペアは、同じである。条件１は、さらに任意選択で、それらの一方または両方が他方に対する１つまたは複数の追加の単一リーフのブランチ（すなわち、ただ１つのリーフノードを有するブランチ）を有することを除いて第１のおよび第２のツリー構成が互いに正確に一致することを与え得る。言い換えれば、第１のおよび第２のツリー構成は、第１のツリー構成が第２のツリー構成にレラティブな追加のリーフ幾何学的形状を有し得るという点でのみ、ならびに／または第２のツリー構成が第１のツリー構成にレラティブな追加のリーフ幾何学的形状を有し得るという点でのみ異なり得る。
【０１３５】
条件２。対応するリーフ幾何学的形状の各ペアは、同じそれぞれのプリミティブ形状タイプを有し、各無次元パラメータ（次元パラメータ以外の各パラメータ）について、対応するリーフ幾何学的形の各ペアは、同じそれぞれのパラメータ値を有する。言い換えれば、対応するリーフ幾何学的形状の各ペアは、それらの次元パラメータ値を除いて同じである。
【０１３６】
要素のペアについての「対応する」によって、（条件１によって与えられたツリー構成の一致に従って）それらのそれぞれの編集可能なフィーチャツリーの一致するロケーションに位置する第１の編集可能なフィーチャツリーの第１の要素と第２の編集可能なフィーチャツリーの第２の要素とを意味する。
【０１３７】
次元パラメータ値が異なる場合でも、幾何学的演算と、プリミティブ形状タイプと、他のパラメータとが得られた３Ｄ形状が同じであるようなものであり得るので、これらの両方の条件を満たす編集可能なフィーチャツリーは同じ３Ｄ形状を潜在的に生じる。また、例では、データ集合形成方法によって与えられたそれぞれのデータ片は、それぞれのデータ片の１つまたは複数の集合を効果的に備え得、ここで、各集合のそれぞれの編集可能なフィーチャツリーはすべて、構造的に適合する。例では、１つまたは複数の集合はそれぞれ、異なる（すなわち、同じでない）３Ｄ形状を表す編集可能なフィーチャツリーに対応する少なくとも２つのデータ片を備え得る。しかし、代替または追加として、集合は、（少なくとも１つのリーフ幾何学的形状のプリミティブ形状タイプのための）少なくとも１つの異なる次元パラメータを有する（さらに、同じ３Ｄ形状を表す）編集可能なフィーチャツリーに対応する少なくとも２つのデータ片を備え得る。データ集合形成方法は、２つのデータ片のうちの単一の１つを挿入し得る。単一のデータ片を決定することは、任意の方法で実行され得る。
【０１３８】
次に、第２の例についてさらに説明する。
【０１３９】
例では、データ集合形成方法は、プリミティブ形状タイプの離散集合と、プリミティブ形状タイプごとの、１つまたは複数のパラメータ領域のそれぞれの離散集合とを備える初期データを与えるステップを備え得る。これは、初期データが、プリミティブ形状タイプごとに、プリミティブ形状タイプのパラメータに対応するフィールドをもつ（オブジェクト指向プログラミングを指す）オブジェクトクラスに対応するそれぞれのデータ構造を備えることを意味する。そのような場合、それぞれのデータ片を合成することは、初期データに基づいて実行され得る。たとえば、少なくとも１つのそれぞれのデータ片を与えることは、初期データに基づいて編集可能なフィーチャツリーを合成することを含み得る。合成することは、演算のツリー構成を生成することと、ツリー構成のリーフノードごとに、初期データに基づいて、リーフ幾何学的形状を生成することとを含み得る。特に、リーフ幾何学的形状を生成することは、プリミティブ形状タイプを選択することと、プリミティブ形状タイプの各パラメータのためにパラメータ値を選択することとを備え得る。これは、所与のクラスのインスタンスを作成することに対応する。
【０１４０】
方法が単一のタイプの幾何学的演算を伴うツリーに限定されない場合、初期データは、幾何学的演算の集合をさらに備え得る。そのような場合、演算のツリー構成を生成することは、ツリー構成を生成することと、非リーフノードごとに、幾何学的演算を選択することとを備え得る。幾何学的演算の集合は、たとえば、加算／和集合、減算、および／または交差を含む１つまたは複数のブール演算を備える離散型であり得る。これは、特に、ＣＳＧツリーを生成するために適用される。
【０１４１】
ツリー構成を生成することは、ノードとノードを接続するツリー構造とを生成することを備え得る。前に説明したように、ツリー構成は、単一ルートのツリー、バイナリツリー、および／または完全バイナリツリーに制限され得る。特に、１つまたは複数の編集可能なフィーチャツリーは、単一ルートと完全バイナリとの両方のタイプのツリー内に生成され得、ここで、各非リーフノードは、子として少なくとも１つのリーフノードを有する。そのような場合、ツリー構成を生成することは、ツリー構成の深度、すなわち、非リーフノードの数を選択することを備え得る。この情報は、上記のタイプのツリーを完全に定義するのに十分である。
【０１４２】
編集可能なフィーチャツリーを合成するときに実行される任意の選択は、（たとえば、ランダム）サンプリングを介して実行され得る。これにより、現実の状況の多様性を比較的うまく表すデータを生成することが可能になる。したがって、これは、最終的に正確な学習につながる。
【０１４３】
任意の（たとえば、ランダム）サンプリングは、選択されるべき変数が値を取る集合内の均一な（たとえば、ランダム）サンプリングを備え得る（たとえば、均一なランダムサンプリングは均一な確率分布によるランダムサンプリングである）。
【０１４４】
たとえば、
【０１４５】
−  深度は、Ｎ１よりも大きく、Ｎ２よりも小さいすべての整数の集合上での均一な分布に従ってサンプリングされ得、ここで、Ｎ１は、たとえば、１に等しい０よりも大きい、および／または５よりも小さい「最小深度の」整数であり、Ｎ２は、たとえば、７に等しい、Ｎ１よりも大きい、および／または１００、５０、もしくは２０よりも小さい「最大深度の」整数である。
【０１４６】
−  プリミティブ形状タイプは、プリミティブ形状タイプの離散集合上での均一な分布に従ってサンプリングされ得る。
【０１４７】
−  各ブール演算は、（たとえば、加算／和集合、減算、および交差からなる）ブール演算の離散集合上での均一な分布に従ってサンプリングされ得る。
【０１４８】
−  それぞれの選択されたプリミティブ形状タイプのためのパラメータ値は、超長方形中の均一な分布（プリミティブ形状タイプのそれぞれのパラメータに固有のパラメータ領域をそれぞれ形成する間隔のデカルト積）に従ってサンプリングされ得る。簡略化するために、データ集合形成方法は、ハイパーキューブ［ａ，ｂ］＾ｌ中に上記の各プリミティブのすべてのパラメータを一様にサンプリングし得、ここで、ｌは、プリミティブのパラメータの数であり、ａとｂｅとは、実数であり、ａは、０以上および／または１以下、たとえば、０．２に等しくなり得、ｂは、１以上および／または１０以下、たとえば、２に等しくなり得る。
【０１４９】
次に、第２の例の第２のオプションの特定の例についてさらに説明する。
【０１５０】
１つまたは複数のプリミティブ形状タイプの各々について、１つまたは複数のそれぞれの連続パラメータが、１つまたは複数の次元パラメータを備えるとき、合成することは、例では、（上記で説明したように）初期データから１つまたは複数の初期データ片それぞれを生成することと、それぞれのそのような生成された初期データ片に基づいて、生成されたデータ片の変更に基づいて１つまたは複数のそれぞれの他の（隠れた）データ片を導出することとの間の混合を備え得る。例では、合成することは、初期データに基づく少なくとも１つの（たとえば、いくつかの）初期データ片の初期生成を備え得る。初期生成は、（各リーフ幾何学的形状の）次元パラメータごとに、（たとえば、サンプリング、任意選択で、ランダムサンプリングを介して）初期パラメータ値の前に説明した選択を含む。そのような例では、合成することは、次いで、（たとえば、１つまたは複数の、たとえば、それぞれの生成された初期データ片について）、反復的に、初期データ片から開始すること、それぞれの次元パラメータの１つもしくは複数のパラメータ値それぞれを変更すること、ならびに／または１つもしくは複数のリーフ幾何学的形状を削除することを行うことによって１つもしくは複数の隠れたデータ片を決定することを備え得る。
【０１５１】
特に、初期データ片から開始して、反復プロセスは、表された３Ｄ形状を同じに保ちながら、１つもしくは複数の（たとえば、できるだけ多く）次元パラメータ値を（たとえば、できるだけ多く）低減すること、ならびに／または１つもしくは複数の（たとえば、できるだけ多く）リーフ幾何学的形状を削除することを備え得る。言い換えれば、反復プロセスは、たとえば、次元パラメータ値を低減することならびに／またはリーフ幾何学的形状を削除することによって同じ３Ｄ形状を表すより正準のデータ片によって初期データ片を置き換えることを意図し得、それは、初期データ片として同じ３Ｄ形状をスチルス表す。
【０１５２】
例では、反復処理は、初期データ片から開始して、以下を含む低減アルゴリズムを備え得る。
【０１５３】
ａ．以下を初期化する。
【０１５４】
〇第３のデータ片（すなわち変数）
【０１５５】
〇第４のデータ片（すなわち変数）
【０１５６】
ｂ．初期データ片を用いて第４のデータ片の値を設定する。
【０１５７】
ｃ．以下を「未訪問」としてマークする。
【０１５８】
〇第４のデータ片の編集可能なフィーチャツリーのすべてのリーフ幾何学的形状
【０１５９】
〇第４のデータ片の編集可能なフィーチャツリーのすべてのリーフ幾何学的形状のすべての次元パラメータ
【０１６０】
ｄ．未訪問のリーフを選択し、訪問済みとして選択されたリーフをマークする（そうでない場合、未訪問のリーフが利用可能でない場合、ステップｋにジャンプする）。
【０１６１】
ｅ．選択されたリーフの未訪問の次元パラメータを選択し、訪問済みとして選択された次元パラメータをマークする（そうでない場合、未訪問の次元パラメータが利用可能でない場合、ステップｄに行って戻る）。
【０１６２】
ｆ．０よりも高く、選択された次元パラメータのパラメータ値を下回るパラメータ低減値を初期化する（たとえば、二分アルゴリズムに対応する選択された次元パラメータのパラメータ値の半分）。
【０１６３】
ｇ．選択された次元パラメータのパラメータ値からパラメータ低減値を減算することの結果として第３のデータ片の値を設定する。
【０１６４】
ｈ．（たとえば、第３のデータ片と第４のデータ片との編集可能なツリーが構造的に適合するので、それらの離散幾何学的表現間の単純な体積比較を介して）第３のデータ片の３Ｄ形状と第４のデータ片の３Ｄ形状との間で識別情報をテストする。
【０１６５】
ｉ．テストが正の結果を生じる場合、以下を行う。
【０１６６】
〇第３のデータ片の値によって第４のデータ片の値を置き換える（第４のデータ片は第２のデータ片として識別され、したがって、それの値は削除され得る）
【０１６７】
〇ステップｆに行って戻る
【０１６８】
ｊ．それ以外の場合（すなわち、テストが負の結果を生じる場合）、以下を行う。
【０１６９】
〇（たとえば二分アルゴリズムに対応するそれの半分に）パラメータ低減値を低減する
【０１７０】
〇パラメータ低減値が所定のしきい値（たとえば、０．１または０．０５）より高い場合、ステップｇに行って戻り、それ以外の場合、ステップｅに行って戻る
【０１７１】
ｋ．第４のデータ片の編集可能なフィーチャツリーのすべてのリーフ幾何学的形状を「未訪問」としてマークする。
【０１７２】
ｌ．未訪問のリーフを選択し、訪問済みとして選択されたリーフをマークする（そうでない場合、未訪問の次元パラメータが利用可能でない場合、アルゴリズムを終了する）。
【０１７３】
ｍ．第４のデータ片から選択されたリーフを削除することの結果として第３のデータ片の値を設定する。
【０１７４】
ｎ．（たとえば、第３のデータ片と第４のデータ片との編集可能なツリーが構造的に適合するので、それらの離散幾何学的表現間の単純な体積比較を介して）第３のデータ片の３Ｄ形状と第４のデータ片の３Ｄ形状との間で識別情報をテストする。
【０１７５】
ｏ．テストが正の結果を生じる場合、以下を行う。
【０１７６】
〇第３のデータ片の値によって第４のデータ片の値を置き換える（第４のデータ片は第２のデータ片として識別され、したがって、それの値は削除され得る）
【０１７７】
〇ステップｌに行って戻る
【０１７８】
この低減アルゴリズムは、次元パラメータにわたる第２の「ｆｏｒ」ループが各次元パラメータをできるだけ多く低減するための第１の「ｆｏｒ」ループ中に埋め込まれた状態で、幾何学的形状リーフをできるだけ多く低減するためのリーフにわたる第１の「ｆｏｒ」ループと、次いで、幾何学的形状リーフをできるだけ多く削除するためのリーフにわたる第３の「ｆｏｒ」ループとを備える。
【０１７９】
各プリミティブの低減は、たとえば、Ｘ、ＹまたはＺ軸に従って次元パラメータごとに行われ得る。考慮されるべき次元の順序は、任意に設定し得る。少なくとも１つのパラメータが、１次元での低減によって影響を及ぼされ得る。たとえば、合成することが低減しようと試みているのが立方体である場合、立方体の三次元（長さ、幅、深度）がＸ、Ｙ、Ｚ上に並べられる場合、次元ごとに１つの影響パラメータしかないことになる。逆に、軸（Ｘ，Ｙ）に沿って配向する直角等脚台形角柱の低減などのより複雑な場合では、いくつかのパラメータが並行して影響することができる。
【０１８０】
次に、学習方法の例について説明する。
【０１８１】
ニューラルネットワークは、例では、再帰型ニューラルネットワーク（ＲＮＮ）セル（すなわち、同じＲＮＮのセル）を備え得る。そのような例により、正確なニューラルネットワークを学習することが可能になり、それによって、正確な推測を実行し、ニューラルネットワークは、推測されるべき編集可能なフィーチャツリーの連続特性に対応する連続アーキテクチャを（ＲＮＮを介して）提示する。
【０１８２】
特に、各ＲＮＮセルは、それぞれの時間ステップにおいて、それぞれのプリミティブ形状タイプの推測のためのそれぞれの第１のデータと１つまたは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値の推測のためのそれぞれの第２のデータとを出力する。したがって、出力されたデータにより、それぞれのリーフ幾何学的形状の推測が可能になる。幾何学的演算は、任意の方法で推測され得、たとえば、あらかじめ決定され得る（たとえば、推測された編集可能なフィーチャツリーは、加法ツリーに制限され得、したがって、各幾何学的演算は加算になる）。代替として、各ＲＮＮセルは、さらに、それぞれの時間ステップにおいて、（たとえば、加算／和集合、減算および／または交差を含むか、またはそれからなる、たとえば、幾何学的演算の所定の集合のうちの）それぞれの幾何学的演算の推測のためのそれぞれのデータを出力し得る。時間ステップの数は、あらかじめ決定され得る。代替として、各ＲＮＮセルは、さらに、編集可能なフィーチャツリーのための終了または継続判断（すなわち、終了トークン）の推測のためのそれぞれのデータを出力し得る。
【０１８３】
次に、ＲＮＮ出力の特に効率的な例について説明する。
【０１８４】
それぞれの第１のデータは、プリミティブ形状タイプの離散集合の各々にそれぞれ起因する確率のそれぞれの離散分布を備え得る。言い換えれば、各ＲＮＮセルは、プリミティブ形状タイプにわたる確率の分布を出力し、したがって、可能性が高いプリミティブ形状タイプが、それぞれの時間ステップに対応するリーフ幾何学的形状のために推測され得る。
【０１８５】
代替または追加として、それぞれの第２のデータは、（プリミティブ形状タイプごとに）１つまたは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値を備える。言い換えれば、ＲＮＮセルは、推測されたプリミティブ形状タイプのためのパラメータ値を直接出力する。特に、パラメータが連続し、密度分布を出力するニューラルネットワークを学習するのが困難であるので、これは、学習を簡略化し、収束および精度を改善する。
【０１８６】
さらに、それぞれの幾何学的演算の推測のための随意のそれぞれのデータは、幾何学的演算の所定の（たとえば、離散）集合の各々にそれぞれ起因する確率のそれぞれの（たとえば、離散）分布を備え得る。さらに、終了トークンの推測のためのそれぞれのデータは、ＲＮＮに典型的なように、終了の確率および／または継続の確率（たとえば、ベルヌーイ分布）を備え得る。
【０１８７】
次に、特に正確な結果につながるニューラルネットワークのアーキテクチャについて説明する。
【０１８８】
オプションでは、ニューラルネットワークは、入力として離散幾何学的表現またはそれの表現を取る初期エンコーダを備え得る。エンコーダは、例では、ポイントクラウドエンコーダ（たとえば、ＰｏｉｎｔＮｅｔエンコーダ）であり、入力として、（離散幾何学的表現を形成するか、または離散幾何学的表現を表すおよび／もしくはそれから抽出される）ポイントクラウドを直接取り得る。エンコーダは、他の例では、２Ｄ畳み込みニューラルネットワーク（ＣＮＮ）であり、入力として、（離散幾何学的表現を表すおよび／もしくはそれから抽出される）２Ｄ画像データを取る。２Ｄ画像データは、離散幾何学的表現のシングルチャネルレンダリング（すなわち、単一ビュー画像）またはマルチチャネルレンダリング（すなわち、マルチビュー画像）であり得る。効率的な例では、マルチチャネルレンダリングは、たとえば、離散幾何学的表現の周りの正方形を実質的に形成する離散幾何学的表現の周りに（たとえば、規則的に）分散された４つの観点に基づく４ビューのレンダリングであり得る。
【０１８９】
代替または追加のオプションでは、各ＲＮＮセルは、（追加の）入力として、現在の予測されたシーケンス（フィードバックループ）の結果を取り得る。これは、精度を改善する。フィードバックループが可能であり、関与する連続パラメータのためにフィードバックループのエントリは微分可能である。そのようなオプションでは、ニューラルネットワークは、現在の予測されたシーケンスを計算するために各ＲＮＮセルの結果に適用される所定の幾何学的モデラを備え得る（すなわち、静的であり、すなわち、学習せず、言い換えれば、任意の変更可能な重みを備えない）。モデラは、編集可能なフィーチャツリーとそれの表現（たとえば、マルチチャネルレンダリング）との間のマッピングを与える任意のデータ構造であり得る。幾何学的モデラは、編集可能なフィーチャツリーを再生し、次いで、得られた３Ｄ形状の表現を抽出するための方式を備え得る。
【０１９０】
そのようなオプションの例では、各ＲＮＮセルは、それぞれのエンコーダを含み得る。それぞれのエンコーダは、たとえば、入力を表すグローバルフィーチャを計算するためにＲＮＮの入力に適用され得る。幾何学的モデラの出力によっては、幾何学的モデラがポイントクラウドを出力する場合、それぞれのエンコーダは、例では、ポイントクラウドエンコーダ（たとえば、ＰｏｉｎｔＮｅｔエンコーダ）であり得る。幾何学的モデラが２Ｄ画像データを出力する場合、それぞれは、他の例では、２Ｄ  ＣＮＮであり得る。２Ｄ画像データは、前に提示した例などでは、シングルチャネルレンダリング（すなわち、単一ビュー画像）またはマルチチャネルレンダリング（すなわち、マルチビュー画像）であり得る。
【０１９１】
そのような例では、それぞれのエンコーダは、各時間ステップで同じであり得る。代替または追加として、それぞれのエンコーダのうちの１つまたは複数（たとえば、すべて）は、任意選択で、初期エンコーダと同じであり得る。これは、プロセスのロバストネスを改善する。
【０１９２】
正確な結果につながる教師つきトレーニングの損失の一例は、各離散幾何学的表現の各リーフ幾何学的形状に対応する時間ステップについて（各離散幾何学的表現は、ここで、それぞれのグラウンドトゥルースの編集可能なフィーチャツリーに関連付けられる）、以下の量のうちの一方または両方にペナルティーを課す。
【０１９３】
−  対応するグラウンドトゥルースのリーフ幾何学的形状のそれぞれのプリミティブ形状タイプに起因するそれぞれの第１のデータの確率の低さ、ならびに／または
【０１９４】
−  対応するグラウンドトゥルースのリーフ幾何学的形状の１つもしくは複数のそれぞれのパラメータ値とそれぞれの第２のデータの１つもしくは複数のそれぞれのパラメータ値との間の格差
【０１９５】
言い換えれば、教師つきトレーニングは、そのような損失を最小化することによって、各ＲＮＮセルによって出力されるそれぞれの確率を対応するグラウンドトゥルースのプリミティブ形状タイプについて１に近く（すなわち、低くなく）し、他のプリミティブ形状タイプについて０に近く（すなわち、低く）し、ならびに／または各セルによって出力されるそれぞれの連続パラメータ値をそれらのグランドトゥルース値に近くする傾向があるようにニューラルネットワークの重みに作用し得る。そのような損失は、問題の離散的な／連続的な混合を正確に扱う。
【０１９６】
この例のオプションでは、損失は、さらに同様に、各離散幾何学的表現の各リーフ幾何学的形状に対応する時間ステップについて、以下の追加の量のうちの一方または両方にペナルティーを課し得る。
【０１９７】
−  対応するグラウンドトゥルースの幾何学的演算に起因する（ＲＮＮセルによって出力される）それぞれの確率の低さ、ならびに／または
【０１９８】
−  終了トークンの推測のためのそれぞれのデータに基づく対応するグラウンドトゥルースの編集可能なフィーチャツリーのツリー構成（たとえば、深度または長さ）に達する（ＲＮＮセルによって出力された）確率の低さ
【０１９９】
次に、正確な結果につながる教師なしトレーニングの一例について説明し、ここで、それぞれの第１のデータは、プリミティブ形状タイプの離散集合の各々にそれぞれ起因する確率のそれぞれの離散分布を備える。
【０２００】
知られているように、教師なしトレーニングは、損失を最小化する。最小化することは、確率の候補のそれぞれの離散分布を探査することを含む。言い換えれば、最小化することは、確率の出力されたそれぞれの離散分布を探査し、それらをラベルをつけられていないデータ集合に一致させるためにニューラルネットワークの重みを反復的に変更する（ここで、各離散幾何学的表現は、任意のグラウンドトゥルースな編集可能なフィーチャツリーに関連付けられない）。ある意味では、確率の候補のそれぞれの離散分布の探査は、間接的であり、重みの直接的な探査の結果である。オプションでは、最小化することは、幾何学的演算を介して確率の候補のそれぞれの離散分布および／または終了トークンのための確率の候補のそれぞれの離散分布を探査することをさらに含む。例では、最小化することは、１つまたは複数のパラメータ領域のそれぞれの離散集合の各々のための候補のそれぞれのパラメータ値を探査することをさらに含む。
【０２０１】
次に、損失は、データ集合の離散幾何学的表現ごとに、および候補ごとに、対応する離散幾何学的表現との格差にペナルティーを課す。対応する離散幾何学的表現は、それ自体確率の探査された候補のそれぞれの離散分布に基づいて推測可能なそれぞれの編集可能なフィーチャツリーから導出される。言い換えれば、（教師なしトレーニングの任意の反復における）ニューラルネットワークの重み値が与えられれば、ニューラルネットワークは、編集可能なフィーチャツリーの推測を実行するためにラベルをつけられていないデータ集合の離散幾何学的表現が入力され得る。それぞれの推測された編集可能なフィーチャツリーはそれ自体、（ツリーを再生し、結果の離散幾何学的表現を決定することによって）離散幾何学的表現中で派生することに基づき得る。そのような導出された離散幾何学的表現は、初期の対応するデータ集合の離散幾何学的表現と比較され得る。
【０２０２】
例では、教師なしトレーニングは、少なくとも１つの（たとえば、各）離散幾何学的表現のためのサンプリングステップを備え得る。トレーニングはミニバッチを与えることを備え得、サンプリングは、ミニバッチごとに、（ＲＮＮによって出力される確率分布と連続パラメータ値とを含む）ニューラルネットワークによって出力されるデータに従うことによってミニバッチの離散幾何学的表現ごとに編集可能なフィーチャツリーをサンプリングすることを備え得る。サンプリングは、次いで、入力された離散幾何学的表現（またはそれの表現、たとえば、レンダリング）とサンプリングされた編集可能なフィーチャツリーに対応する離散幾何学的表現とを比較する（すなわち、それらの間の格差にペナルティーを課す）損失を計算し得る。サンプリングは、確率的であり、離散的であるので、この損失は、サンプリングに対して微分可能でない。したがって、そのような真の勾配がないので、変数に対する真の勾配の典型的なバックプロパゲーションは実行されないことがある。
【０２０３】
教師なしトレーニングの提案された例は、それぞれの第１のデータの候補のそれぞれの離散分布を表す変数に対する損失の擬似勾配と、任意選択で、幾何学的演算を介して候補のそれぞれの離散分布を表す変数に対する損失の擬似勾配および／もしくは終了トークンの分布を表す変数に対する損失の擬似勾配とを与えるために強化手法を使用することを提案する。最小化することは、次いで、ニューラルネットワークを学習するために損失のそのような擬似勾配のバックプロパゲーション（たとえば、確率下降）を含み得る。擬似勾配が強化アルゴリズムによって与えられるので、バックプロパゲーションが真の勾配のうちの１つでない場合でも学習は正確である。最小化することはまた、（損失がこれらの変数に対して微分可能であるので）１つまたは複数のパラメータ領域のそれぞれの離散集合の各々のためのそれぞれのパラメータ値に対する損失の（真の）勾配のバックプロパゲーションを含み得る。したがって、強化手法は、離散確率分布の導入によってもたらされた微分可能性問題を解き、この問題のみを解く。
【０２０４】
次に、方法の例を含む例示的な機械学習プロセスについて説明する。
【０２０５】
再帰型ニューラルネットワーク
【０２０６】
例示的な機械学習プロセスは、再帰型ニューラルネットワーク（ＲＮＮ）に基づく。再帰型ニューラルネットワークは、内部メモリ状態を用いるディープニューラルネットワークである。したがって、再帰型ニューラルネットワークは、フィードフォワードニューラルネットワークとは異なり時間挙動を示すことができる。それらは、次の結果を予測するために過去のエントリを暗黙的に考慮に入れる。それらは、
【０２０７】
【数１０】
2020109659.tif 000012
【０２０８】
、
【０２０９】
【数１１】
2020109659.tif 000013
【０２１０】
として書かれ得、ここで、ｙは出力であり、ｘは、入力であり、ｈは、メモリとも呼ばれる内部隠れ状態である。ｗは、ＲＮＮの重みである。メモリｈは、すべての過去の入力をスタックするハードメモリではなく、それは、固定サイズのベクトルであり、
【０２１１】
【数１２】
2020109659.tif 000014
【０２１２】
を通して学習され、したがって、ＲＮＮは、過去のステップからの有用な情報のみを保つように学習する。
【０２１３】
例示的な機械学習プロセスの目的
【０２１４】
未加工メッシュから開始して、例示的な機械学習プロセスにより、いかなる教師もなしに、ブール演算を用いて連続的にマージされる一連のプリミティブからなるＣＳＧツリーを構築することが可能になる。この例示的な機械学習プロセスは、未加工メッシュをＣＡＤフォーマットに変換するために特に有用であり得る。このＣＳＧデジタル化により、未加工サーフェスを編集可能な３Ｄモデルに変換することが可能になり得、それは、次いで、モデルを変形させるか、機械的アセンブリにそれを接続するか、またはそれをシミュレートするために使用され得る。これらの未加工メッシュは、現実の３Ｄ機械部分のレーザー走査から、または３Ｄ市場上で取得されたＢ−ｒｅｐモデルから来ることができる。
【０２１５】
例示的な機械学習プロセスの原則
【０２１６】
例示的な機械学習プロセスにより、未加工メッシュからＣＳＧツリーを予測する再帰型ニューラルネットワークを学習することが可能になる。第１に、ＣＳＧツリーの合成データ集合がランダムに生成される。データ集合中の各ＣＳＧツリーは、あらゆる冗長性を除去するためにそれの最小表現まで低減される。このデータ集合は、未加工メッシュからＣＳＧツリーを予測するために教師つきの方法で再帰型ニューラルネットワークを訓練するために使用される。ネットワークは、次いで、ＣＳＧツリーが未知である未加工メッシュの現実のデータ集合に対する強化学習によって教師なしの方法で改良される。最後に、ネットワークは、新しい未加工メッシュから妥当なＣＳＧツリーを推測するために使用される。最適化方式は、せいぜいＣＳＧツリーを入力メッシュに最良の状態で適合させるためにツリーの連続パラメータを改良するために使用される。
【０２１７】
また、例示的な機械学習プロセスにおける任意のＣＳＧツリーは、（各非リーフノードが子として少なくとも１つのリーフノードを有するタイプの）単一ルートの完全バイナリツリーである。
【０２１８】
例示的な機械学習プロセスの効果
【０２１９】
例示的な機械学習プロセスは、曲率分析に基づく他の決定性方法よりも入力メッシュ中の雑音および不完全なデータに対してはるかにロバストである。例示的な機械学習プロセスは、いくつかの理由のために論文［１０］を上回る改善を与える。第１に、論文［１０］は、離散化されたプリミティブしか扱わないが、例示的な機械学習プロセスは、連続プリミティブ（パラメトリックソリッド）を扱う。第２に、例示的な機械学習プロセスは、ＣＳＧツリーを連続的に改良するためにロバストな最終最適化を与える。第３に、例示的な機械学習プロセスのＲＮＮは、推測プロセスを容易にするフィードバックループを含む。第４に、新しいアルゴリズムに従って冗長性を回避するためにすべてのＣＳＧツリーが低減されているＣＳＧデータ集合に適用されるので、例示的な機械学習プロセスの事前トレーニングステップはサウンダである。
【０２２０】
例示的な機械学習プロセスの説明
【０２２１】
１．合成ＣＳＧデータ集合を生成する
【０２２２】
第１のステップでは、例示的な機械学習プロセスは、ＣＳＧツリーの合成データ集合を生成する。ツリーは、各プリミティブ間にブール演算でインターリーブされるプリミティブのシーケンスである。各ブール演算は、後続のプリミティブと以前の演算の結果に適用されるバイナリ演算子である。３つの通常のブール演算は、加算／サブストラクション／交差である。したがって、シーケンス中の各プリミティブは、図３に示すようにシーケンスの現在の結果に（加算／交差／減算）される。
【０２２３】
プリミティブは、（直方体、円柱、角柱など、｛１，．．．，Ｌ｝とラベルを付けられたベースタイプの集合に属する。各プリミティブタイプは、連続パラメータのそれ自体の集合（たとえば、直方体のサイズおよび位置）を有する。
【０２２４】
ＣＳＧツリーをサンプリングするために、例示的な機械学習プロセスは、それの深度、プリミティブタイプ、およびブール演算をランダムにサンプリングする。プリミティブごとに、例示的な機械学習プロセスはまた、それの連続パラメータをサンプリングする。したがって、例示的な機械学習プロセスは、ランダムＣＳＧツリーを得る。このＣＳＧは、プリミティブのそれのシーケンスに連続的にそれのブール演算を適用することによって未加工メッシュに変えられ得る。
【０２２５】
例示的な機械学習プロセスは、最後に、対応するＣＳＧツリーをもつ未加工メッシュのデータ集合を得る。事前トレーニングステップについての主要な問題のうちの１つは、ＣＳＧツリーの無限シーケンスが全く同じ未加工ジオメトリに対応することができるということである。たとえば、同じ結果の立方体につながる２つの立方体と交差するための無限の方法がある。図４に一例を示す。
【０２２６】
異なるＣＳＧツリーに同じ未加工入力メッシュをマッピングするネットワークをトレーニングすることははるかにより困難である。この問題を緩和するために、例示的な機械学習プロセスは、ＣＳＧツリーとそれらの得られたメッシュとの間の全単射を強制するためにそれの最小表現にそれぞれのサンプリングされたＣＳＧツリーを低減するアルゴリズムに関与する。
【０２２７】
第１に、結果の３Ｄ形状を同じままにすることを制約しながら、例示的な機械学習プロセスは、すべてのそれの軸に沿った各プリミティブの次元を低減するために二分アルゴリズムを使用する。結果が不変のままであるのかどうかをチェックする高速テストを得るために、例示的な機械学習プロセスは、結果の３Ｄ形状の体積を比較する。得られたＣＳＧの体積が同じままである間、例示的な機械学習プロセスは各プリミティブを低減し続ける。
【０２２８】
第２に、それが結果を変更しない場合、例示的な機械学習プロセスは、ツリー中の任意のプリミティブとそれの後続の演算とを除去する。
【０２２９】
この低減アルゴリズムを図５〜図６に示す。
【０２３０】
最後に、例示的な機械学習プロセスは、得られたメッシュに（パーリン雑音、アプリケーションによってはそのような雑音などの）雑音をまた追加することができる。
【０２３１】
２．再帰型ニューラルネットワークを教師つき学習する
【０２３２】
例示的な機械学習プロセスは、以下のように再帰型ニューラルネットワーク（ＲＮＮ）を定義する。ＲＮＮは、入力として、たとえば、マルチチャネル画像Ｉをデジタル化するために３Ｄメッシュの離散表現Ｉを取り、ここで、各チャネルは、入力メッシュ、３Ｄボクセルグリッド、３Ｄポイントクラウドなどのレンダリングビューまたは深度ビューを表す。
【０２３３】
ＲＮＮは、入力形状を表すグローバルフィーチャを計算するためにそれの入力に適用されるエンコーダを含む。これを図７によって示す。
【０２３４】
エンコーダは、たとえば、以下の論文によって説明されているように、入力が画像である場合は２Ｄ  ＣＮＮであり、それがポイントクラウドである場合はＰｏｉｎｔＮｅｔエンコーダであり得る。
【０２３５】
−  非特許文献１３
【０２３６】
ＣＮＮは、ＣＳＧの各ステップで同じであり得る。ＣＳＧのステップにおいて使用されるＣＮＮはそれ自体、初期ＣＮＮと同じであることも異なることもある。それが同じである場合、プロセスはよりロバストである。
【０２３７】
各ＲＮＮセルはまた、任意選択で、入力として、現在の予測されたシーケンス（フィードバックループ）の結果を取ることができる。
【０２３８】
現在の予測されたシーケンスの結果は、幾何学的モデラを用いて計算される。モデラｍは、ＣＳＧシーケンスとそれの得られた表現（たとえば、マルチチャネルレンダリング）との間のマッピングとみなされ得る。
【０２３９】
各ＲＮＮセルは、各時間ステップｔにおいて、プリミティブタイプにわたる離散分布ｐ、ブール演算にわたる分布ｏ、ならびにＣＳＧが終わったのかどうかを示す終了トークンにわたるベルヌーイ分布ｑを出力する。ｑは、現在のステップｔが現在のＣＳＧシーケンスの最後のステップでない確率であり、したがって、１−ｑは、現在のステップがシーケンス中の最後のステップである確率である。ｐyは、プリミティブタイプｙの確率であり、ｏyは、演算ｙの確率である。
【０２４０】
それはまた、各プリミティブタイプｌのための各時間ステップｔにおける連続パラメータｇｌを出力する。
【０２４１】
図８に、例示的な機械学習プロセスによって学習されるニューラルネットワークの例示的なアーキテクチャを示す。
【０２４２】
このＲＮＮは、合成データ集合を使用して教師つき方法で事前トレーニングされる。現実のＣＳＧデータ集合が同じく使用され得ることに注意されたい。
【０２４３】
Ｎをデータ集合のサイズであり、
【０２４４】
【数１３】
2020109659.tif 000015
【０２４５】
をｎ番目のＣＳＧシーケンスの深度であるとする。各ＣＳＧシーケンスは、プリミティブタイプのシーケンス
【０２４６】
【数１４】
2020109659.tif 000016
【０２４７】
および一連の動作
【０２４８】
【数１５】
2020109659.tif 000017
【０２４９】
として書かれる。プリミティブ
【０２５０】
【数１６】
2020109659.tif 000018
【０２５１】
ごとに、
【０２５２】
【数１７】
2020109659.tif 000019
【０２５３】
をそれのパラメータであるとする。ｎ番目のＣＳＧの入力表現は、示されたＩｎである。
【０２５４】
また
【０２５５】
【数１８】
2020109659.tif 000020
【０２５６】
によって、時間ステップｔにおける知られているＣＳＧツリーｎの中間結果の表現、すなわち
【０２５７】
【数１９】
2020109659.tif 000021
【０２５８】
（および
【０２５９】
【数２０】
2020109659.tif 000022
【０２６０】
）を示す。
【０２６１】
文字の上のハットは、ＣＳＧシーケンスのグラウンドトゥルースのラベルを示す。
【０２６２】
問題のＲＮＮの一般式：
【０２６３】
【数２１】
2020109659.tif 000023
【０２６４】
，
【０２６５】
【数２２】
2020109659.tif 000024
【０２６６】
，ｈ0＝０、ここで、ｗは、ニューラルネットワークの重みである。フィードバックループ（ＲＮＮの入力Ｉt-1）は随意であることを想起する。
【０２６７】
（ミニバッチを介してＡＤＡＭソルバーなどの標準的なディープ学習技法を使用して）ネットワークの重みをトレーニングするために例示的な機械学習プロセスが最小化する損失は、以下の通りであり得る。
Ｌ1（ｗ）＝Ｌprimitives（ｗ）＋Ｌoperations（ｗ）＋Ｌlength（ｗ）＋λＬparameters（ｗ）
【０２６８】
【数２３】
2020109659.tif 000025
【０２６９】
【数２４】
2020109659.tif 000026
【０２７０】
【数２５】
2020109659.tif 000027
【０２７１】
【数２６】
2020109659.tif 000028
【０２７２】
λは、離散変数にわたる分類損失Ｌprimitives（ｗ）＋Ｌoperations（ｗ）＋Ｌlength（ｗ）と連続回帰損失Ｌparameters（ｗ）との間のトレードオフパラメータである。それは、たとえば、
【０２７３】
【数２７】
2020109659.tif 000029
【０２７４】
として初期化され得、ここで、ｗ0は、ニューラルネットワークのランダムに初期化された重みである。 
【０２７５】
項Ｌprimitives（ｗ）、Ｌoperations（ｗ）、およびＬlength（ｗ）のいずれかのために対数（交差エントロピー項）以外の任意の低さペナルティー関数が使用され得、ならびに／またはＬparameters（ｗ）のためにＬ２距離以外の任意の距離ｄおよび／もしくは２乗関数以外の任意の増加および／もしくは正関数ｉｎｃｒが使用され得る。
【０２７６】
フィードバックループが使用される場合、ＲＮＮが入力された３Ｄ表現からＣＳＧを予測するために推測において使用されるとき、例示的な機械学習プロセスは、グラウンドトゥルースの中間表現
【０２７７】
【数２８】
2020109659.tif 000030
【０２７８】
にアクセスできないことがある。推測中に、
【０２７９】
【数２９】
2020109659.tif 000031
【０２８０】
は、ＲＮＮによってそれの推測されたバージョンと置き換えられ得る。
【０２８１】
Ｉt＝ｍ（［ａ1，．．．，ａt］，［ｘ1，．．．，ｘt］，［ｂ2，．．．，ｂt］）であり、 
【０２８２】
ここで、ａiおよびｂiは、ｐtおよびｏtからサンプリングされ、
【０２８３】
【数３０】
2020109659.tif 000032
【０２８４】
である。
【０２８５】
例示的な機械学習プロセスがフィードバックループを使用する場合、ＲＮＮが損失Ｌ1（ｗ）を最小化することによって学習されると、例示的な機械学習プロセスは、それのフィードバックループのためにそれ自体の予測された中間表現Ｉtを使用するためにＲＮＮをトレーニングするために以下の損失
【０２８６】
【数３１】
2020109659.tif 000033
【０２８７】
を最小化し得る。
【０２８８】
【数３２】
2020109659.tif 000034
【０２８９】
は、例示的な機械学習プロセスがすべてのグラウンドトゥルースの中間表現
【０２９０】
【数３３】
2020109659.tif 000035
【０２９１】
を
【０２９２】
【数３４】
2020109659.tif 000036
【０２９３】
によってを置き換えることを除いてＬ1（ｗ）と全く同じ損失であり、ここで、
【０２９４】
【数３５】
2020109659.tif 000037
【０２９５】
は、ＲＮＮによって推測されたパラメータである。
【０２９６】
それは、例示的な機械学習プロセスが、中間表現を計算するためにＲＮＮによって予測された推測された連続パラメータを使用する（が、ＣＳＧツリーのグラウンドトゥルース構造を保つ）ことを意味する。
【０２９７】
次に、
【０２９８】
【数３６】
2020109659.tif 000038
【０２９９】
は、もはやグラウンドトゥルースの固定表現でなく、（重みに依存するｇ1，．．．，ｇtを介して）ニューラルネットワークの重みに依存する。したがって、
【０３００】
【数３７】
2020109659.tif 000039
【０３０１】
を最小化するために、例示的な機械学習プロセスは、ｘ1，．．．，ｘtに関して
【０３０２】
【数３８】
2020109659.tif 000040
【０３０３】
を微分すること、すなわち、幾何学的モデラｍを微分することが可能であり得る。マッピングｍの差分は、有限差分を用いて計算され得る。さらに、結果を平滑化するために、平滑化カーネルをも適用され得る。
【０３０４】
３．再帰型ニューラルネットワークの教師なし学習
【０３０５】
ＲＮＮは、現実のデータ集合を表さない合成データ集合に対して事前トレーニングされている。したがって、例示的な機械学習プロセスは、現実のデータ集合に対してそれを微調整し得る。しかしながら、現実のデータ集合は、しばしばそれらのＣＳＧツリーに関連付けられていない。すなわち、例示的な機械学習プロセスは、教師なしにネットワークを微調整するために強化手法を提案する。さらに、この手法により、ネットワークがより一貫したツリーを予測することが可能になるが、事前トレーニングステップは、低減アルゴリズムにもかかわらず３Ｄ形状がまったく同様である異なるＣＳＧツリーを提示することができる合成データ集合に一致させられる。
【０３０６】
ＲＮＮはまた、微調整ステップのために本明細書で提示したのと同じ技法を使用して教師なしの方法で直接トレーニングされ得る。その場合、例示的な機械学習プロセスは、ランダムに初期化されたＲＮＮから直接開始し得る。しかし、収束は、事前トレーニングされたネットワークから開始するよりもはるかに遅くなる。
【０３０７】
教師なしの学習ステップでは、データ集合は、あらゆるラベル、ＣＳＧ情報などもなしにＮ個の未加工メッシュのみを含んでいる。
【０３０８】
損失は、単に、入力メッシュのレンダリングと予測されたＣＳＧのレンダリングを比較し得る。予測されたＣＳＧを計算するために、例示的な機械学習プロセスは、入力によって調整されるそれの分布に従ってＲＮＮをサンプリングし得る。サンプリングは、第４節で後で提示される推測方法の例に従って、ただし、現在の重み値に基づいて実行され得る。
【０３０９】
例示的な機械学習プロセスは、
【０３１０】
【数３９】
2020109659.tif 000041
【０３１１】
から開始し、
【０３１２】
【数４０】
2020109659.tif 000042
【０３１３】
を
【０３１４】
【数４１】
2020109659.tif 000043
【０３１５】
からサンプリングし、
【０３１６】
【数４２】
2020109659.tif 000044
【０３１７】
を
【０３１８】
【数４３】
2020109659.tif 000045
【０３１９】
からサンプリングし、
【０３２０】
【数４４】
2020109659.tif 000046
【０３２１】
を設定し、ここで、
【０３２２】
【数４５】
2020109659.tif 000047
【０３２３】
である。
【０３２４】
例示的な機械学習プロセスはまた、
【０３２５】
【数４６】
2020109659.tif 000048
【０３２６】
から終了／継続トークンをサンプリングし得る。終了トークンをサンプリングする場合、それはここで停止する。場合によっては、例示的な機械学習プロセスは、終了トークンがサンプリングされるまで、または時間ステップが最大許可時間ステップである最大許可時間ステップＴ（すなわち、ＣＳＧシーケンスの最大長）に達するまでこのサンプリングプロセスを反復し、例示的な機械学習プロセスは、
【０３２７】
【数４７】
2020109659.tif 000049
【０３２８】
を
【０３２９】
【数４８】
2020109659.tif 000050
【０３３０】
からサンプリングし、
【０３３１】
【数４９】
2020109659.tif 000051
【０３３２】
を
【０３３３】
【数５０】
2020109659.tif 000052
【０３３４】
からサンプリングし、
【０３３５】
【数５１】
2020109659.tif 000053
【０３３６】
を設定し、ここで、
【０３３７】
【数５２】
2020109659.tif 000054
【０３３８】
である。
【０３３９】
Ｔnによってｎ番目に入力された未加工メッシュのサンプリングされたＣＳＧの深度を示す。
【０３４０】
これらの表記法を用いて、損失は以下のように簡易に書かれ得る。
【０３４１】
【数５３】
2020109659.tif 000055
【０３４２】
ここで、ｄは、Ｉnと
【０３４３】
【数５４】
2020109659.tif 000056
【０３４４】
との間の類似性の測度である。たとえば、例示的な機械学習プロセスが３Ｄ入力の表現としてマルチチャネル画像または３Ｄボクセルグリッドを使用する場合、例示的な機械学習プロセスは、
【０３４５】
【数５５】
2020109659.tif 000057
【０３４６】
を使用することができる。
【０３４７】
例示的な機械学習プロセスがポイントクラウドを使用する場合、例示的な機械学習プロセスは、面取り距離を使用することができる。
【０３４８】
この損失は、連続パラメータ
【０３４９】
【数５６】
2020109659.tif 000058
【０３５０】
に関して微分可能である。したがって、この損失を最小化することにより、それらの連続パラメータに関係するニューラルネットワークの重みを学習する（または、ＲＮＮが事前トレーニングされている場合は微調整する）ことしか可能にならず、それは離散分布ｐ、ｏ、ｑを学習することができない。実際、（ネットワークの重みに関して微分可能である）離散分布は、離散変数（プリミティブタイプ、ブール演算、ＣＳＧ長）を推測するために使用され、損失は、離散変数に関して微分可能でないことがある。
【０３５１】
また、これらの分布を微調整するために、例示的な機械学習プロセスは、これらの分布に関して損失の勾配を逆方向伝播し得る。例示的な機械学習プロセスは、離散分布ｐ、ｏ、ｑのためのそのような勾配を得るために強化アルゴリズムを使用し得る。強化アルゴリズムは、これらの離散分布に限定され、したがって、教師なし学習は、他の変数のための真の勾配を得ることができる。これは近似を限定し、それによって精度に影響を及ぼし、これにより、普通なら更新されず、したがって、学習されないはずの分布を最適化することが可能になる。
【０３５２】
強化アルゴリズムは、以下の論文に記載されている強化アルゴリズムであり得る。
【０３５３】
非特許文献１４
【０３５４】
これは、以下の勾配式を与える。
【０３５５】
【数５７】
2020109659.tif 000059
【０３５６】
ここで、ｐは、ＣＳＧツリーが最小サイズのための最大表現度を有することを奨励するために追加のスパース性報酬であり、βは、推定された勾配の分散を低減するために使用されるベースラインである。
【０３５７】
一般に、ｐは、ネットワークを事前トレーニングするために使用される教師つきデータ集合にわたって計算されるＬ2損失にほぼ等しくなり得る。
【０３５８】
ｗ0を教師なし学習の前の重みであるとする（ｗ0はランダム初期化から来るか、または教師つき事前トレーニングステップから来る）。次いで、ネットワークが事前トレーニングされている場合、または
【０３５９】
【数５８】
2020109659.tif 000060
【０３６０】
がランダム重みｗ0から開始する場合、βは、定数、たとえば、
【０３６１】
【数５９】
2020109659.tif 000061
【０３６２】
として選定され得る。または、例示的な機械学習プロセスはまた、トレーニング中のＬ2損失の移動平均としてβを設定することができる。
【０３６３】
教師なし学習の設定では、例示的な機械学習プロセスはまた、前の節（フィードバックループを用いた教師つき学習）の場合と同じ理由からマッピングｍを微分することが可能になり得ることに注意されたい。差は、教師なし設定では、例示的な機械学習プロセスがフィードバックループを使用しない場合でも、損失が最終的なＣＳＧ表現
【０３６４】
【数６０】
2020109659.tif 000062
【０３６５】
に明示的に依存するので、例示的な機械学習プロセスがモデラを微分し得るということである。
【０３６６】
４．推測および最終的な改良
【０３６７】
ネットワークがトレーニングされると、例示的な機械学習プロセスは、未加工入力メッシュから最も可能性がある妥当なＣＳＧツリーを推測するためにそれを使用することができる。そうするために、貪欲な探索はディープＣＳＧツリーのために禁止になることがあるので、例示的な機械学習プロセスは、幅ｋをもつビーム探索アルゴリズムを適用し得る。
【０３６８】
第１のステップｔ＝１において、例示的な機械学習プロセスは、ｋ個の最も可能性があるＣＳＧシーケンスをサンプリングし得る。次いで、それぞれの以下のステップにおいて、現在のシーケンスごとに、例示的な機械学習プロセスは、ｋ個の最も可能性がある演算およびプリミティブを計算し得る。各ステップにおいて、これは、例示的な機械学習プロセスがｋ個の最も高い可能性しか保たないことがあるｋ2のＣＳＧシーケンスを与える。それらは、終了トークンの確率を乗算した演算の確率を乗算したプリミティブの確率を乗算した現在のシーケンスの確率である新しい潜在的なシーケンスの確率に基づいて選択される。
【０３６９】
最後に、例示的な機械学習プロセスは、ｋ個の妥当なＣＳＧシーケンスを取得する。シーケンスごとに、例示的な機械学習プロセスは、たとえば、（ＢＦＧＳなどの）微分可能な最適化を用いて損失Ｌ2を最小化することによってシーケンスのすべてのプリミティブの連続パラメータを改良し得る。最後に、例示的な機械学習プロセスは、この損失を最小化するＣＳＧツリーのみを保ち得るか、または例示的な機械学習プロセスは、ユーザにすべてのｋ個のＣＳＧツリーを提案し得る。
【０３７０】
図９〜図１１に、例示的な機械学習プロセスに従って学習されるニューラルネットワークに基づく例示的な機械学習プロセスの推測方法の適用例のテストを示す。図９に、機械ツールを表す未加工入力メッシュを示す。図１０に、（推測された編集可能なフィーチャツリーに幾何学的モデラを適用した後の）改良の前に推測方法を適用した結果を示す。図１１に、改良後の結果を示す。
【図１】
2020109659.tif 000081
【図２】
2020109659.tif 000082
【図３】
2020109659.tif 000083
【図４】
2020109659.tif 000084
【図５】
2020109659.tif 000085
【図６】
2020109659.tif 000086
【図７】
2020109659.tif 000087
【図８】
2020109659.tif 000088
【図９】
2020109659.tif 000089
【図１０】
2020109659.tif 000090
【図１１】
2020109659.tif 000091
【外国語明細書】
2020109659000001.pdf