(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】予測モデルの学習方法、予測モデル及び学習装置
(51)【国際特許分類】
G06F 30/27 20200101AFI20241203BHJP
G06F 30/15 20200101ALI20241203BHJP
G06F 30/10 20200101ALI20241203BHJP
G06N 20/00 20190101ALI20241203BHJP
G06N 3/084 20230101ALI20241203BHJP
G06F 111/18 20200101ALN20241203BHJP
【FI】
G06F30/27
G06F30/15
G06F30/10 100
G06N20/00 130
G06N3/084
G06F111:18
(21)【出願番号】P 2021050097
(22)【出願日】2021-03-24
【審査請求日】2024-01-16
(73)【特許権者】
【識別番号】000003997
【氏名又は名称】日産自動車株式会社
(74)【代理人】
【識別番号】110000486
【氏名又は名称】弁理士法人とこしえ特許事務所
(72)【発明者】
【氏名】陳 放歌
【審査官】三沢 岳志
(56)【参考文献】
【文献】特開2014-006805(JP,A)
【文献】特開2014-006813(JP,A)
【文献】赤坂 啓ほか,“機械学習を用いた自動車空気抵抗係数のインタラクティブ予測ツール開発”,人工知能学会全国大会論文集,日本,2020年12月31日,第JSAI2020巻、2O6-GS-13-02
【文献】Nobuyuki Umetani et al.,“Learning three-dimensional flow for interactive aerodynamic design”,ACM Transactions on Graphics,2018年07月30日,Vol. 37,No. 4
【文献】Xiaoxiao Guo et al.,“Convolutional Neural Networks for Steady Flow Approximation”,Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,2016年08月13日,pp.481-490
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/27
G06F 30/15
G06F 30/10
G06N 20/00
G06N 3/084
G06F 111/18
(57)【特許請求の範囲】
【請求項1】
プロセッサが、物体の空力性能を予測する予測モデルのパラメータを、損失関数に基づいて更新する学習方法であって、
前記プロセッサは、
前記物体を含む仮想空間、及び、前記仮想空間を切断した少なくとも1つの仮想断面を設定し、
前記仮想断面の全体面積から前記物体の断面の面積を除いた仮想面積を算出し、
前記物体の形状データを前記予測モデルに入力し、
前記物体の前記形状データに基づいて前記予測モデルが予測した前記物体の前記空力性能を予測データとして取得し、
データベースから前記物体の形状データと前記形状データに関連付けられた前記空力性能とを含む教師データを取得し、
前記教師データに対する前記予測データの誤差を算出し、
前記損失関数から導出される評価値を最小値に近づけるように、前記仮想面積、及び、前記仮想断面における前記教師データに対する前記予測データの誤差に基づいて、前記予測モデルのパラメータを更新し、
前記損失関数は、前記仮想断面における前記教師データに対する前記予測データの誤差が大きいほど前記評価値が大きく、かつ、前記仮想面積が大きいほど前記評価値が小さくなるように定義される、学習方法。
【請求項2】
前記プロセッサは、前記予測データに対する前記損失関数の勾配を算出し、前記勾配に基づいて、前記予測モデルのパラメータを更新する、請求項1に記載の学習方法。
【請求項3】
前記仮想断面における前記教師データに対する前記予測データの誤差は、前記仮想断面の単位面積領域毎に算出した前記教師データに対する前記予測データの誤差の総和である、請求項1又は2に記載の学習方法。
【請求項4】
前記教師データの前記空力性能は、前記物体の前記形状データに基づいて、数値流体解析によって解析されたデータである、請求項1~3のいずれか一項に記載の学習方法。
【請求項5】
前記損失関数は、前記仮想断面における前記教師データに対する前記予測データの誤差を、前記仮想面積で除算した第1損失評価要素を含む、請求項1~4のいずれか一項に記載の学習方法。
【請求項6】
前記プロセッサは、少なくとも1つの方向について、前記方向に垂直な複数の前記仮想断面を設定し、
前記損失関数は、前記複数の仮想断面の前記第1損失評価要素の平均値を算出するための第2損失評価要素を含む、請求項5に記載の学習方法。
【請求項7】
前記プロセッサは、互いに垂直な3つの方向の各々について、各々の前記方向に垂直な複数の前記仮想断面を設定し、
前記損失関数は、前記3つの方向の各々に対応する前記第2損失評価要素を加算した第3損失評価要素を含む、請求項6に記載の学習方法。
【請求項8】
前記空力性能は、前記物体の周囲の流れ場の速度分布及び圧力分布の少なくともいずれか一方を表す指標である、請求項1~7のいずれか一項に記載の学習方法。
【請求項9】
前記仮想空間は、前記物体を含み、互いに垂直な3つの方向の各々において幅を有する空間である、請求項1~8のいずれか一項に記載の学習方法。
【請求項10】
前記プロセッサは、
前記物体の周囲の流れ場の速度分布を含む前記空力性能を予測データとして取得し、
前記予測データに基づいて、前記物体の周囲の流れ場の速度の発散予測値を算出し、
非圧縮条件における速度の発散に対する前記発散予測値の差分を算出し、
前記損失関数から導出される評価値が最小値を近づけるように、前記仮想断面における前記教師データに対する前記予測データの誤差、前記仮想面積、及び、非圧縮条件における速度の発散に対する前記発散予測値の差分に基づいて、前記予測モデルのパラメータを更新し、
前記損失関数は、前記仮想断面における前記教師データに対する前記予測データの誤差が大きいほど前記評価値が大きく、前記仮想面積が大きいほど前記評価値が小さく、かつ、非圧縮条件における速度の発散に対する前記発散予測値の差分が大きいほど前記評価値が大きくなるように定義される、請求項1~9のいずれか一項に記載の学習方法。
【請求項11】
前記物体の前記形状データは、SDFデータ、又は、voxelデータである、請求項1~10のいずれか一項に記載の学習方法。
【請求項12】
前記プロセッサは、前記物体の構造データを変換して、前記物体の前記形状データを作成する、請求項1~11のいずれか一項に記載の学習方法。
【請求項13】
前記物体は、車両である、請求項1~12のいずれか一項に記載の学習方法。
【請求項14】
前記物体は、車両であり、前記物体の構造データは、前記車両のデザインデータである、請求項12に記載の学習方法。
【請求項15】
請求項1~14のいずれか一項に記載の学習方法を用いて学習された学習済みの予測モデルであって、
前記物体の前記形状データに基づいて、前記仮想空間を構成する複数の単位空間領域の各々について出力結果を生成する、予測モデル。
【請求項16】
物体の空力性能を予測する予測モデルのパラメータを、損失関数に基づいて更新するプロセッサを有する学習装置であって、
前記プロセッサは、
前記物体を含む仮想空間、及び、前記仮想空間を切断した少なくとも1つの仮想断面を設定する仮想空間設定部と、
前記仮想断面の全体面積から前記物体の断面の面積を除いた仮想面積を算出する仮想面積算出部と、
前記物体の形状データを前記予測モデルに入力する入力部と、
前記物体の前記形状データに基づいて前記予測モデルにより予測した前記物体の前記空力性能を予測データとして取得する予測データ取得部と、
前記物体の形状データと前記形状データに関連付けられた前記空力性能とを含む教師データを記憶するデータベースと、
前記データベースから前記教師データを取得する教師データ取得部と、
前記教師データに対する前記予測データの誤差を算出する誤差算出部と、
前記損失関数から導出される評価値を最小値に近づけるように、前記仮想面積、及び、前記仮想断面における前記教師データに対する前記予測データの誤差に基づいて、前記予測モデルのパラメータを更新するパラメータ更新部とを備え、
前記損失関数は、前記仮想断面における前記教師データに対する前記予測データの誤差が大きいほど前記評価値が大きく、かつ、前記仮想面積が大きいほど前記評価値が小さくなるように定義される、学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体の空力性能を予測する予測モデルの学習方法、当該学習方法によって学習された学習済みの予測モデル及び学習装置に関するものである。
【背景技術】
【0002】
特許文献1に記載の予測モデルは、車両のデザインデータから抽出した特徴量に基づいて、車両の空力性能を予測するものである。また、特許文献1には、予測モデルによって予測された空力性能の予測値、及び、CFD(シュミレーション解析)によって測定された空力性能に基づいて、予測モデルが適切であることを定量的に示す評価値を算出し、当該評価値を用いて予測モデルのパラメータを更新する学習方法が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の予測モデルの学習方法では、評価値の算出に車両の形状が考慮されていないため、予測モデルを用いた空力性能の予測の精度を上げ難いという問題があった。
【0005】
本発明が解決しようとする課題は、物体の形状を考慮して、物体の空力性能を予測する予測モデルのパラメータを更新する学習方法、当該学習方法によって学習された学習済みの予測モデル及び学習装置を提供することである。
【課題を解決するための手段】
【0006】
本発明は、物体を含む仮想空間、及び、仮想空間を切断した仮想断面を設定し、仮想断面の全体面積から物体の断面の面積を除いた仮想面積を算出し、教師データに対する予測データの誤差が大きいほど評価値が大きく、かつ、仮想面積が大きいほど評価値が小さくなるように定義される損失関数に基づいて、予測モデルのパラメータを更新することによって上記課題を解決する。
【発明の効果】
【0007】
本発明によれば、物体の形状を反映する仮想面積の大きさに応じて評価値が算出されるため、物体の形状を考慮して、物体の空力性能を予測する予測モデルのパラメータを更新することができるという効果を奏する。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態に係る学習装置の構成を示すブロック図である。
【
図2】
図1に示す学習装置によって学習される予測モデルの構成を示すブロック図である。
【
図3】
図3(a)は、
図1に示す学習装置によって設定された仮想空間、及び、方向Xに垂直な仮想断面の例を示す図であり、
図3(b),(c)は、
図3(a)に例示する2つの仮想断面の各々の仮想面積を斜線で示した図である。
【
図4】
図4(a)は、
図1に示す学習装置によって設定された仮想空間、及び、方向Yに垂直な仮想断面の例を示す図であり、
図4(b),(c)は、
図4(a)に例示する2つの仮想断面の各々の仮想面積を斜線で示した図である。
【
図5】
図5(a)は、
図1に示す学習装置によって設定された仮想空間、及び、方向Zに垂直な仮想断面の例を示す図であり、
図5(b),(c)は、
図5(a)に例示する2つの仮想断面の各々の仮想面積を斜線で示した図である。
【
図6】第2実施形態に係る学習装置の構成を示すブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態を図面に基づいて説明する。
《第1実施形態》
第1実施形態に係るプロセッサ10による予測モデル100の学習方法を、
図1~5を用いて説明する。
プロセッサ10は、物体の空力性能を予測する予測モデル100を学習させる学習装置である。プロセッサ10は、予測モデル100が出力する予測データと、予め記憶されている教師データとを比較し、予測データの教師データに対する誤差を予め定義された損失関数に基づいて評価する。そして、プロセッサ10は、損失関数から導出される評価値が最小値に近づくように、予測モデル100のパラメータを更新する。すなわち、プロセッサが実行する学習方法は、物体の空力性能を予測する予測モデルのパラメータを、損失関数に基づいて更新するものである。また、空力性能は、物体の周囲の流れ場の速度分布及び圧力分布を示す指標である。
なお、以下の説明において、予測モデル100が空力性能を予測する対象である物体は、車両であるものと仮定して、本発明を説明する。
【0010】
プロセッサ10は、データベース11、仮想空間設定部12、仮想面積算出部13、入力部14、予測データ取得部15、教師データ取得部16、誤差算出部17、及び、パラメータ更新部18を有する。なお、プロセッサ10は、CPU、ROM及びRAMを備えるコンピュータである。データベース11は、プロセッサ10のメモリに格納されている。仮想空間設定部12、仮想面積算出部13、入力部14、予測データ取得部15、教師データ取得部16、誤差算出部17、及び、パラメータ更新部18は、プロセッサ10の機能を実行するためのプログラムである。なお、予測モデル100は、プロセッサ10のプログラムの一部であってもよく、プロセッサ10とは別のハードウェアのプログラムであってもよい。
【0011】
データベース11は、予測モデル100の学習に使用するための車両の形状データを記憶する。車両のデザインデータであるCADデータは、SDFデータ(SDF:Signed Distance Function:符号付距離関数)、又は、voxelデータ(格子単位データ)に変換されて、データベース11に記憶されている。すなわち、データベース11に記憶されている車両の形状データは、SDFデータ、又は、voxelデータである。また、データベース11は、車両の形状データと形状データに関連付けられた空力性能とを含む教師データを記憶している。教師データの空力性能は、予め、物体の形状データに基づいて、数値流体解析によって解析されたデータである。
なお、車両のデザインデータは、車両の構造データを示している。
【0012】
仮想空間設定部12は、データベース11から取得した車両の形状データに基づいて仮想空間Aを設定する(
図3(a),4(a),5(a)参照)。仮想空間Aは、互いに垂直な3つの方向X,Y,Zの各々において幅を有する空間である。また、仮想空間設定部12は、仮想空間Aを3つの方向X,Y,Zの各々に垂直な方向に切断した複数の仮想断面Cx1,Cx2,Cy1,Cy2,Cz1,Cz2を設定する。仮想空間A,及び,仮想断面Cx1,Cx2,Cy1,Cy2,Cz1,Cz2の設定方法の詳細については、後述する。
【0013】
次に、仮想面積算出部13は、仮想断面Cx1,Cx2,Cy1,Cy2,Cz1,Cz2の全体面積から車両の断面の面積を除いた仮想面積Cxa1,Cxa2,Cya1,Cya2,Cza1,Cza2を算出する(
図3(b),(c)、4(b),(c)、6(b),(c)参照)。仮想面積の算出方法の詳細については、後述する。
【0014】
一方、入力部14は、データベース11から取得した車両の形状データを予測モデル100に入力する。予測モデル100は、ニューラルネットワークを利用した、空力性能の予測モデルである。予測モデル100は、入力された形状データに基づいて、予測データ取得部15に、車両の空力性能を出力する。
【0015】
ここで、
図2に示すように、予測モデル100は、形状データ入力部1,特徴抽出部2,特徴整合部3,出力結果生成部4、及び、出力部5を有する。形状データ入力部1は、車両の形状データをSDFデータ、又は、voxelデータとして取得する。なお、元になる形状データがCADデータである場合は、車両の形状データは、SDFデータ、又は、voxelデータに変換されてから、形状データ入力部1に入力される。特徴抽出部2は、形状データ入力部1から取得した形状データの特徴量を抽出する。具体的には、特徴抽出部2は、車両の形状データに対して三次元畳み込みや活性化関数の処理を繰り返して、複数の中間層特徴を抽出する。特徴整合部3は、特徴抽出部2が抽出した中間層特徴の整合を行い、一次元の特徴ベクトルを生成する。出力結果生成部4は、特徴抽出部2が抽出した中間層特徴、及び、特徴整合部3が生成した一次元の特徴ベクトルに基づいて、車両の空力性能、すなわち、車両の周囲の流れ場の速度の3成分(Ux,Uy,Uz)及び圧力(P)を生成する。なお、速度の3成分(Ux,Uy,Uz)は、
図3(a),4(a),5(a)に示す方向X,Y,Zに対応する。また、出力結果生成部4は、
図3(a),4(a),5(a)に示す仮想空間Aを構成する複数の単位空間領域(1cm×1cm×1cmの立方体形状の3次元領域)の各々について、出力結果を生成する。具体的には、仮想空間Aが10m×4m×3mの直方体形状の空間である場合、仮想空間Aを構成する100×40×30=120000個の単位空間領域の各々について、空力性能(Ux,Uy,Uz,P)が予測される。出力部5は、出力結果生成部4が生成した出力結果(Ux,Uy,Uz,P)を出力する。
なお、単位空間領域は、1cm×1cm×1cmの立方体形状の3次元領域に限定されず、例えば、1mm×1mm×1mmの立方体形状の3次元領域であってもよい。また、車両の形状データがvoxelデータである場合は、単位空間領域は、ボクセル(格子単位)であってもよい。
【0016】
予測モデル100に入力される形状データ(F)と、予測モデル100が出力する空力性能(Ux,Uy,Uz,P)との関係は、以下の式(1)で表される。なお、wは、重みを表すパラメータであり、bは、バイアスを表すパラメータである。
【数1】
【0017】
図1に示す予測データ取得部15は、入力部14によって入力された車両の形状データ(F)に基づいて予測モデル100が出力した空力性能(Ux,Uy,Uz,P)を、予測データとして取得する。具体的には、予測データ取得部15は、予測モデル100が単位空間領域毎に出力した空力性能(Ux,Uy,Uz,P)に基づいて、各々の仮想断面を構成する単位面積領域毎の空力性能(Ux,Uy,Uz,P)を、予測データとして取得する。ここで、各々の仮想断面を構成する単位面積領域は、
図3(b)に示すような、1cm×1cmの正方形の領域Qである。単位面積領域は、予め定義することができる。
なお、単位面積領域は、これに限定されず、例えば、1mm×1mmの正方形の領域であってもよい。
【0018】
また、
図1に示す教師データ取得部16は、データベース11から、車両の形状データと形状データに関連付けられた空力性能とを含む教師データを取得する。教師データの空力性能は、車両の形状データに基づいて、数値流体解析によって解析されたデータである。なお、教師データ取得部16が取得する教師データに含まれる形状データは、入力部14が予測モデル100に入力する形状データと同一のものである。また、教師データ取得部16も、データベース11の教師データに基づいて、各々の仮想断面を構成する単位面積領域Q毎の空力性能を取得する。
【0019】
誤差算出部17は、速度の3成分(Ux,Uy,Uz)及び圧力(P)の各々に関して、教師データの空力性能に対する予測データの空力性能の差分(誤差)を算出する。なお、誤差算出部17は、仮想空間設定部12が設定した仮想断面毎に、教師データに対する予測データの誤差を算出する。また、各々の仮想断面における教師データに対する予測データの誤差は、仮想断面を構成する単位面積領域Qの各々における誤差の総和である。
【0020】
次に、パラメータ更新部18は、仮想面積算出部13が算出した仮想面積、及び、誤差算出部17が算出した誤差に基づいて、予測モデル100のパラメータ(重みを表すパラメータw,バイアスを表すパラメータb)を更新する。予測モデル100のパラメータw,bの具体的な更新方法については、後述する。
【0021】
図3(a)~(c),4(a)~(c),5(a)~(c)に基づいて、仮想空間Aの設定方法、及び、仮想面積の算出方法について詳細に説明する。
まず、
図3(a),4(a),5(a)に示すように、仮想空間設定部12は、車両Vの3Dデータを内部に含む仮想空間Aを設定する。以下の説明において、
図3(a),4(a),5(a)に示す仮想空間Aの長さ方向を方向X,幅方向(奥行き方向)を方向Y,高さ方向を方向Zとする。3方向X,Y,Zは、互いに垂直な方向である。また、仮想空間Aの方向Xにおける長さはLであり、方向Yにおける幅はWであり、方向Zにおける高さはHである。
【0022】
図3(a)~(c)に、仮想空間Aを方向Xに垂直に切断した2つの仮想断面Cx1,Cx2を例示する。なお、仮想空間設定部12が設定する仮想断面は、仮想断面Cx1,Cx2のみならず、方向Xに沿って、単位長さ(1cm)おきに仮想断面が設定されるものとする。
図3(a)に示すように、仮想断面Cx1は、車両Vの前方部分(ボンネット)を切断しており、仮想断面Cx2は、車両Vの中央部分を切断している。
なお、単位長さは、1cmに限定されず、例えば、1mmであってもよい。
【0023】
図3(b)に示す仮想断面Cx1では、仮想断面Cx1の全体面積H・Wから車両Vの断面の面積Cxv1を除いた面積Cxa1を仮想面積として算出する。また、
図3(c)に示す仮想断面Cx2では、仮想断面Cx2の全体面積H・Wから車両Vの断面の面積Cxv2を除いた面積Cxa2を仮想面積として算出する。仮想面積Cxa1は、仮想面積Cxa2よりも大きい。
【0024】
図4(a)~(c)に、仮想空間Aを方向Yに垂直に切断した2つの仮想断面Cy1,Cy2を例示する。なお、仮想空間設定部12が設定する仮想断面は、仮想断面Cy1,Cy2のみならず、方向Yに沿って単位長さ(1cm)おきに仮想断面が設定されるものとする。
図4(a)に示すように、仮想断面Cy1は、車両Vを中心軸に沿って切断しており、仮想断面Cy2は、車両Vを切断せずに、車両Vが無い部分を切断している。
【0025】
図4(b)に示す仮想断面Cy1では、仮想断面Cy1の全体面積H・Lから車両Vの断面の面積Cyv1を除いた面積Cya1を仮想面積として算出する。また、
図4(c)に示す仮想断面Cy2では、仮想断面Cy2の全体面積Cya2(=H・L)を仮想面積として算出する。仮想面積Cya1は、仮想面積Cya2よりも小さい。
【0026】
図5(a)~(c)に、仮想空間Aを方向Zに垂直に切断した2つの仮想断面Cz1,Cz2を例示する。なお、仮想空間設定部12が設定する仮想断面は、仮想断面Cz1,Cz2のみならず、方向Zに沿って単位長さ(1cm)おきに仮想断面が設定されるものとする。
図5(a)に示すように、仮想断面Cz1は、車両Vの上方部分(ウィンドウが設けられている高さに相当する部分)を略水平に切断しており、仮想断面Cz2は、車両Vの下方部分(バンパーが設けられている高さに相当する部分)を略水平に切断している。
【0027】
図5(b)に示す仮想断面Cz1では、仮想断面Cz1の全体面積W・Lから車両Vの断面の面積Czv1を除いた面積Cza1を仮想面積として算出する。また、
図5(c)に示す仮想断面Cz2では、仮想断面Cz2の全体面積W・Lから車両Vの断面の面積Czv2を除いた面積Cza2を仮想面積として算出する。仮想面積Cza1は、仮想面積Cza2よりも大きい。
【0028】
次に、パラメータ更新部18が、仮想面積、及び、仮想断面における教師データに対する予測データの誤差に基づいて、予測モデル100のパラメータw,bを更新する方法について、詳細に説明する。
【0029】
まず、前述のように、予測モデル100に入力される形状データ(F)と、予測モデル100が出力する空力性能(Ux,Uy,Uz,P)との関係は、以下の式(2)で表される。
【数2】
【0030】
パラメータ更新部18は、予め定義された損失関数から導出される評価値(Loss)を最小値に近づけるように、予測モデル100のパラメータw,bを更新する。ここで、本発明において、損失関数は、以下の式(3)によって定義される。
【数3】
【0031】
上述の損失関数において、1つの仮想断面における教師データに対する予測データの誤差は、例えば、
図3(a)~(c)に示す仮想断面Cx1,Cx2では、以下の式(4)で表される。すなわち、仮想断面における教師データに対する予測データの誤差は、仮想断面の単位面積領域Q毎に算出した教師データに対する予測データの誤差の総和である。なお、
図3(b)に示す仮想断面Cx1の例では、1cm×1cmの正方形の単位面積領域Qの数はW×H個である。すなわち、誤差算出部17は、W×H個分の単位面積領域Q毎に算出した教師データに対する予測データの誤差を全て加算することにより、仮想断面における教師データに対する予測データの誤差を算出する。
【数4】
【0032】
また、同様に、例えば、
図4(a)~(c)に示す仮想断面Cy1,Cy2では、各々の仮想断面における教師データに対する予測データの誤差は、以下の式(5)で表される。
【数5】
【0033】
また、同様に、例えば、
図5(a)~(c)に示す仮想断面Cz1,Cz2では、各々の仮想断面における教師データに対する予測データの誤差は、以下の式(6)で表される。
【数6】
【0034】
また、損失関数は、仮想断面における教師データに対する予測データの誤差を仮想面積で除算した第1損失評価要素を含む。
図3(a)~(c)に示す仮想断面Cx1,Cx2では、第1損失評価要素は、以下の式(7)で表される。
【数7】
【0035】
ここで、上述の式(7)の分母である下記の式(8)は、仮想断面Cx1,Cx2の仮想面積Cxa1,Cxa2を表している。具体的には、仮想面積算出部13は、仮想断面Cx1,Cx2の単位面積領域Qの各々について、車両Vの断面が存在する領域を「0」、車両Vの断面が存在しない領域を「1」と置き、W×H個分の単位面積領域Qについての「0」及び「1」の総和を算出する。これにより、仮想面積算出部13は、仮想断面Cx1,Cx2の各々について、仮想面積Cxa1,Cxa2を算出することができる。
【数8】
【0036】
従って、例えば、
図3(b)の仮想面積Cxa1は、
図3(c)の仮想面積Cxa2よりも大きいため、各々の仮想断面における第1損失評価要素(式(7))は、仮想断面Cx1よりも仮想断面Cx2の方が大きくなる。
【0037】
仮想面積算出部13は、
図4(b)の仮想面積Cya1、
図4(c)の仮想面積Cya2、
図5(b)の仮想面積Cza1、及び、
図5(c)の仮想面積Cza2も、仮想断面Cx1,Cx2の仮想面積Cxa1,Cxa2と同様に算出する。
【0038】
図4(a)~(c)に示す仮想断面Cy1,Cy2では、第1損失評価要素は、以下の式(9)で表される。従って、例えば、
図4(b)の仮想面積Cya1は、
図4(c)の仮想面積Cya2よりも小さいため、各々の仮想断面における第1損失評価要素は、仮想断面Cy1よりも仮想断面Cy2の方が小さくなる。
【数9】
【0039】
また、
図5(a)~(c)に示す仮想断面Cz1,Cz2では、第1損失評価要素は、以下の式(10)で表される。従って、例えば、
図5(b)の仮想面積Cza1は、
図5(c)の仮想面積Cza2よりも大きいため、各々の仮想断面における第1損失評価要素は、仮想断面Cz1よりも仮想断面Cz2の方が大きくなる。
【数10】
【0040】
さらに、損失関数は、以下の式(11),(12),(13)によって表される第2損失評価要素を含む。すなわち、第2損失評価要素は、方向X,Y,Zの各々に沿って単位長さ(1cm)おきに設定された複数の仮想断面の第1損失評価要素の平均値を、各々、算出する式で表される。第2損失評価要素の以下の式(11),(12),(13)は、各々、方向X,Y,Zに対応している。
【数11】
【数12】
【数13】
【0041】
さらに、プロセッサ10が、予測モデル100の更新に用いる損失関数は、3つの方向X,Y,Zの各々に対応する上記の第2損失評価要素(式(11)~(13))を加算した第3損失評価要素を含む。本実施形態においては、評価値(Loss)を求めるための損失関数の式は、第3損失評価要素を表す式(14)と同じものとなる。
【数14】
【0042】
上述のように、損失関数は、仮想断面における教師データに対する予測データの誤差が大きいほど評価値(Loss)が大きく、かつ、仮想面積が大きいほど評価値が小さくなるように定義される。プロセッサ10が実行する学習方法の目的は、上述の式(3)に示す損失関数から導出される評価値(Loss)を最小値に近づけることである。
【0043】
損失関数から導出される評価値を最小値に近づけるために、プロセッサ10のパラメータ更新部18は、予測データに対する損失関数の勾配を算出し、算出した勾配に基づいて、予測モデルのパラメータw,bを更新する。
【0044】
具体的には、パラメータw,bは、各々、以下の式(15)、(16)により更新され、新しいパラメータw’,b’が生成される。なお、ηは、予め設定された学習率である。
【数15】
【数16】
【0045】
ここで、方向Xの速度の成分(Ux)を予測するためのパラメータw,bを更新する場合、上記の式(15)、(16)は、連鎖律を用いて、各々、以下の式(17),(18)に展開することができる。
【数17】
【数18】
【0046】
δLoss/δUxは、予測データのうち方向Xの速度の成分(Ux)に対する損失関数の勾配である。また、パラメータw,bに対する予測データの傾きであるδUx/δw,δUx/δbは、式(19)に基づいて、誤差逆伝播法により算出することができる。
【数19】
【0047】
すなわち、プロセッサ10は、予測データ(Ux)に対する損失関数の勾配(δLoss/δUx)を算出し、この勾配に基づいて、予測モデル100のパラメータw,bを更新する。
また、方向Y,Zの速度の成分(Ux,Uz)及び圧力(P)を予測するためのパラメータw,bも、同様に更新することができる。
【0048】
以上より、本実施形態に係る学習方法では、損失関数は、仮想断面における教師データに対する予測データの誤差が大きいほど評価値(Loss)が大きく、かつ、仮想面積が大きいほど評価値(Loss)が小さくなるように定義される。すなわち、車両Vの断面積が大きい程、教師データに対する予測データの誤差が損失関数の評価値(Loss)に与える影響の重み付けが大きくなる。従って、車両Vの形状に応じて、車両Vの周囲の空力性能に関する評価値(Loss)を集中的に予測モデル100の更新に反映させることができる。すなわち、プロセッサ10は、車両Vの形状を反映する仮想面積の大きさに応じて評価値(Loss)を算出するため、車両Vの形状を考慮して、車両Vの空力性能を予測する予測モデルのパラメータw,bを更新することができる。これにより、プロセッサ10は、予測モデル100のパラメータw,bの更新の効率を高め、予測モデル100の予測精度を向上させることができる。
【0049】
より具体的には、プロセッサ10は、予測データに対する損失関数の勾配(δLoss/δUx)を算出し、この勾配に基づいて、損失関数から導出される評価値(Loss)を最小値に近づけるように、予測モデル100のパラメータw,bを更新する。これにより、教師データに対する予測モデル100の予測データの誤差を小さくするように、予測モデル100を効率よく学習させることができる。
【0050】
また、仮想断面における教師データに対する予測データの誤差は、仮想断面の単位面積領域Q毎に算出した教師データに対する予測データの誤差の総和である。これによって、プロセッサ10は、車両の周囲の流れ場に対する予測データの誤差を総合的に評価し、損失関数の評価値(Loss)の算出に反映させることができる。また、このように、仮想空間設定部12が設定した仮想断面を利用することによって、誤差算出部17は、車両Vの周囲の領域における教師データに対する予測データの誤差を、予測モデル100の学習に利用しやすい態様で、算出することができる。
【0051】
また、教師データの空力性能は、車両Vの形状データに基づいて、数値流体解析によって解析されたデータである。これにより、予測モデル100の学習に、精度の高い教師データを利用することができる。
【0052】
また、損失関数は、仮想断面における教師データに対する予測データの誤差を、仮想面積で除算した第1損失評価要素を含む。これにより、仮想断面における教師データに対する予測データの誤差が大きいほど評価値(Loss)が大きく、かつ、仮想面積が大きいほど評価値(Loss)が小さくなるように、損失関数を定義することができる。
【0053】
さらに、損失関数は、各々の方向に沿って複数の仮想断面の第1損失評価要素の平均値を算出するための第2損失評価要素を含む。これにより、方向毎に教師データに対する予測データの誤差を平均的に評価した値を、損失関数の評価値(Loss)に反映させることができる。
【0054】
また、損失関数は、3つの方向X,Y,Zの各々に対応する第2損失評価要素を加算した第3損失評価要素を含む。これにより、教師データに対する予測データの誤差を3次元的に評価した値を、損失関数の評価値(Loss)に反映させることができる。
【0055】
また、空力性能は、車両Vの周囲の流れ場の速度分布及び圧力分布を示す指標であるため、実際に車両Vが走行する際の空気抵抗の影響を網羅的に予測することができる。なお、空力性能は、車両Vの周囲の流れ場の速度分布のみを示す指標であってもよく、圧力分布のみを示す指標であってもよい。
【0056】
仮想空間Aは、車両Vを含み、互いに垂直な3つの方向X,Y,Zの各々において幅を有する空間である。これにより、方向X,Y,Zの各々において、車両Vの形状を3次元的に反映した損失関数の評価値(Loss)を算出することができる。
【0057】
車両Vの形状データは、SDFデータ、又は、voxelデータである。そのため、プロセッサ10が予測モデル100に入力する形状データは、予測モデル100が処理しやすい形式のデータとなっている。
【0058】
プロセッサ10は、車両Vのデザインデータである構造データを変換して、車両Vの形状データに変換する。これによって、予測モデル100が形状データに基づいて予測した空力性能の予測データを、車両Vのデザイン設計に利用することができる。
なお、予測モデル100に入力される形状データは、車両の形状データに限定されず、他の物体の形状データであってもよい。
【0059】
プロセッサ10によって学習される学習済みの予測モデル100は、車両Vの形状データに基づいて、仮想空間Aを構成する複数の単位空間領域の各々について、出力結果(空力性能)を出力する。これによって、予測モデル100は、車両の周囲の流れ場の空力性能を詳細に予測することができる。また、プロセッサ10の誤差算出部17は、仮想空間Aの仮想断面の単位面積領域Q毎に、教師データに対する予測データの誤差を算出することができる。従って、プロセッサ10が予測モデル100のパラメータをさらに更新する場合に、予測モデル100の学習の効率を向上させることができる。
【0060】
《第2実施形態》
第2実施形態に係るプロセッサ20を
図6に示す。プロセッサ20は、
図1に示すプロセッサ10の構成に発散予測値算出部21を追加したものである。プロセッサ20は、プロセッサ10と同様に、物体の空力性能を予測する予測モデル100のパラメータw,bを、損失関数に基づいて更新する学習装置である。
以下の説明において、
図1と同一の符号は、同一又は同様の構成を示すものであるため、詳細な説明は省略する。
【0061】
発散予測値算出部21は、予測データ取得部15が取得した予測データに基づいて、車両Vの周囲の流れ場の速度(Ux,Uy,Uz)の発散予測値divUを以下の式(20)で算出する。すなわち、発散予測値算出部21は、予測データ取得部15から取得した予測速度場の空間での三方向の各々について三分量の偏微分を算出し、それらの合計値を算出する。
【数20】
【0062】
さらに、発散予測値算出部21は、非圧縮条件における速度の発散に対する発散予測値divUの差分を算出する。ここで、非圧縮条件における速度の発散は「0」であるため、非圧縮条件における速度の発散に対する発散予測値divUの差分は、発散予測値の絶対値|divU|‐0である。そして、発散予測値算出部21は、非圧縮条件における速度の発散に対する発散予測値の差分、すなわち、発散予測値の絶対値をパラメータ更新部18に出力する。
【0063】
本実施形態において、プロセッサ20は、予測モデル100のパラメータw,bを更新するために、以下の式(21)に示す損失関数を定義する。式(21)に示す損失関数は、仮想断面における教師データに対する予測データの誤差が大きいほど評価値(Loss)が大きく、仮想面積が大きいほど評価値(Loss)が小さく、かつ、非圧縮条件における速度の発散に対する発散予測値の差分|divU|‐0が大きいほど評価値(Loss)が大きくなるように定義されている。
【数21】
【0064】
パラメータ更新部18は、上記の損失関数から導出される評価値(Loss)が最小値に近づくように、仮想断面における教師データに対する前記予測データの誤差、仮想面積、及び、非圧縮条件における速度の発散に対する発散予測値の差分(|divU|‐0)に基づいて、予測モデル100のパラメータw,bを更新する。
【0065】
以上より、本実施形態に係る学習方法では、損失関数は、教師データに対する予測データの誤差、及び、仮想面積に加えて、非圧縮条件における速度の発散に対する発散予測値の差分も考慮して定義されている。ここで、実際の車両Vの流れ場の条件は、非圧縮条件に近似する。従って、予測データの空力性能の速度が発散する場合は、予測データの空力性能と実際の車両Vの空力性能との間の誤差が生じている可能性が高いため、非圧縮条件における速度の発散に対する発散予測値の差分が大きい場合は評価値(Loss)も大きくなるように、損失関数が定義されている。これにより、プロセッサ20のパラメータ更新部18は、より高い精度で、予測モデル100のパラメータw,bを更新することができる。
【0066】
なお、第1実施形態及び第2実施形態では、プロセッサ10,20は、3つの方向X,Y,Zの各々に沿って複数の仮想断面を設定しているが、これに限定されず、いずれか1つ、又は、2つの方向のみに沿って仮想断面を設定してもよい。
【符号の説明】
【0067】
10…プロセッサ(学習装置)
11…データベース
12…仮想空間設定部
13…仮想面積算出部
14…入力部
15…予測データ取得部
16…教師データ取得部
17…誤差算出部
18…パラメータ更新部
100…予測モデル
A…仮想空間
V…車両
Cx1,Cx2,Cy1,Cy2,Cz1,Cz2…仮想断面
Cxa1,Cxa2,Cya1,Cya2,Cza1,Cza2…仮想面積