(57)【要約】  本技術は、ネットワークの設計を容易に行うことができるようにするプログラム、情報処理方法、および情報処理装置に関する。本技術の一側面のプログラムは、コンピュータを、学習用のデータを含むデータセットが指定されることに応じて、データセットに対応する推論実行用ネットワークと学習用ネットワークを生成する生成部と、学習用のデータを学習用ネットワークに入力し、推論実行用ネットワークの学習を行う学習部として機能させるためのプログラムである。本技術は、Deep Learningによるネットワークの設計を支援するプログラムに適用することができる。
2019035364.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
学習用のデータを含むデータセットが指定されることに応じて、前記データセットに対応する推論実行用ネットワークと学習用ネットワークを生成する生成部と、
前記学習用のデータを前記学習用ネットワークに入力し、前記推論実行用ネットワークの学習を行う学習部と
して機能させるためのプログラム。
【請求項２】
前記生成部は、前記学習用のデータのドメインに応じた構造を有する前記推論実行用ネットワークと前記学習用ネットワークを生成する
請求項１に記載のプログラム。
【請求項３】
前記生成部は、前記学習用のデータのドメインが画像または音声である場合、畳み込み層を有する前記推論実行用ネットワークと前記学習用ネットワークを生成し、前記学習用のデータのドメインが項目またはテキストである場合、全結合層を有する前記推論実行用ネットワークと前記学習用ネットワークを生成する
請求項２に記載のプログラム。
【請求項４】
前記生成部は、前記推論実行用ネットワークに、推論によって解こうとする問題に応じたロス関数を付加することによって前記学習用ネットワークを生成する
請求項１に記載のプログラム。
【請求項５】
前記生成部は、前記問題が回帰問題である場合、二乗誤差関数を付加し、前記問題が分類問題である場合、クロスエントロピー関数を付加する
請求項４に記載のプログラム。
【請求項６】
前記生成部は、前記問題がメトリック学習を用いた問題である場合、前記推論実行用ネットワークとパラメータを共有するネットワークを含むsiameseネットワークまたはtripletネットワーク、あるいは、これらから派生したネットワークを、前記学習用ネットワークとして生成する
請求項４に記載のプログラム。
【請求項７】
前記生成部は、前記問題が、半教師学習を用いた回帰問題または分類問題である場合、前記推論実行用ネットワークとパラメータを共有するネットワークを含むVATのネットワーク、あるいは、その派生したネットワークを、前記学習用ネットワークとして生成する
請求項４に記載のプログラム。
【請求項８】
前記生成部は、前記問題が、生成モデルを用いた問題である場合、前記推論実行用ネットワークとパラメータを共有するネットワークを含む変分オートエンコーダのネットワークまたはGAN、あるいは、これらから派生したネットワークを、前記学習用ネットワークとして生成する
請求項４に記載のプログラム。
【請求項９】
前記データセットの内容に基づいて前記問題を推定する問題推定部をさらに備える
請求項４に記載のプログラム。
【請求項１０】
前記問題推定部は、前記データセットにおける正解ラベルが連続値である場合、前記問題が回帰問題であるとして推定し、離散値である場合、前記問題が分類問題であるとして推定する
請求項９に記載のプログラム。
【請求項１１】
前記問題推定部は、前記学習用のデータと評価用のデータが前記データセットに含まれ、正解ラベルの値の範囲が、前記学習用のデータと前記評価用のデータとで異なる場合、前記問題が、メトリック学習を用いた問題であるとして推定する
請求項９に記載のプログラム。
【請求項１２】
前記問題推定部は、前記学習用のデータとして、正解ラベルを含むデータと正解ラベルを含まないデータが前記データセットに含まれている場合、前記問題が、半教師学習を用いた回帰問題または分類問題であるとして推定する
請求項９に記載のプログラム。
【請求項１３】
前記問題推定部は、前記学習用のデータに、正解ラベルが含まれていない場合、前記問題が、生成モデルを用いた問題であるとして推定する
請求項９に記載のプログラム。
【請求項１４】
前記問題推定部は、前記データセットに含まれる、前記問題を指定するデータに基づいて前記問題を推定する
請求項９に記載のプログラム。
【請求項１５】
前記生成部により生成された前記推論実行用ネットワークと前記学習用ネットワークに関する情報を提示する提示制御部をさらに備える
請求項１に記載のプログラム。
【請求項１６】
前記提示制御部は、前記推論実行用ネットワークと前記学習用ネットワークのソースコード、または、前記推論実行用ネットワークと前記学習用ネットワークのモジュール構成を表す画像を提示する
請求項１５に記載のプログラム。
【請求項１７】
前記生成部は、ユーザによる入力に応じて、提示された前記推論実行用ネットワークと前記学習用ネットワークの設計変更を行う
請求項１５に記載のプログラム。
【請求項１８】
前記生成部による前記推論実行用ネットワークと前記学習用ネットワークの生成は、前記データセットが指定された後、ユーザによる操作によらずに行われる
請求項１に記載のプログラム。
【請求項１９】
情報処理装置が、
学習用のデータを含むデータセットが指定されることに応じて、前記データセットに対応する推論実行用ネットワークと学習用ネットワークを生成し、
前記学習用のデータを前記学習用ネットワークに入力し、前記推論実行用ネットワークの学習を行う
情報処理方法。
【請求項２０】
学習用のデータを含むデータセットが指定されることに応じて、前記データセットに対応する推論実行用ネットワークと学習用ネットワークを生成する生成部と、
前記学習用のデータを前記学習用ネットワークに入力し、前記推論実行用ネットワークの学習を行う学習部と
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、プログラム、情報処理方法、および情報処理装置に関し、特に、ネットワークの設計を容易に行うことができるようにしたプログラム、情報処理方法、および情報処理装置に関する。
【背景技術】
【０００２】
従来、Deep Learningのネットワーク（ニューラルネットワーク）の設計では、最終層やロス関数を、解きたい問題の種別に応じて設計者が決める必要があった。これらの設計には、例えば、回帰問題であれば二乗誤差を用いる、分類問題であればクロスエントロピーロスを用いる、などの定石と言えるような設計がある。【０００３】
設計の定石は、回帰問題・分類問題によるものに限られない。例えば、メトリック学習であれば、シャミーズ(Siamese)ネットワークやトリプレット(Triplet)ネットワークを用いるといった定石がある。また、生成モデルを作成するのであれば、その学習に変分オートエンコーダ(VAE(Variational Auto Encoder))やGAN(Generative Adversarial Network)を用いる、半教師学習であれば、VAT(Virtual Adversarial Training)を用いる、といった定石がある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems  ＜URL: https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45166.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したようなロス関数の選択や学習ネットワークの構造の選択は、設計者の知識に依存するところが大きい。従って、知識がない設計者にとっては、それらの選択が、適切なネットワークを設計するための大きな障害となる。【０００６】
本技術はこのような状況に鑑みてなされたものであり、ネットワークの設計を容易に行うことができるようにするものである。
【課題を解決するための手段】
【０００７】
本技術の一側面のプログラムは、コンピュータを、学習用のデータを含むデータセットが指定されることに応じて、前記データセットに対応する推論実行用ネットワークと学習用ネットワークを生成する生成部と、前記学習用のデータを前記学習用ネットワークに入力し、前記推論実行用ネットワークの学習を行う学習部として機能させるためのプログラムである。【０００８】
本技術の一側面においては、学習用のデータを含むデータセットが指定されることに応じて、前記データセットに対応する推論実行用ネットワークと学習用ネットワークが生成され、前記学習用のデータを前記学習用ネットワークに入力して、前記推論実行用ネットワークの学習が行われる。
【発明の効果】
【０００９】
本技術によれば、ユーザは、ネットワークの設計を容易に行うことができる。【００１０】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００１１】
【図１】本技術の一実施形態に係るプログラムを提供する提供システムの構成例を示す図である。
【図２】ネットワーク設計支援プログラムの表示画面の例を示す図である。
【図３】ネットワークの構造を示す図である。
【図４】学習の例を示す図である。
【図５】PCの構成例を示すブロック図である。
【図６】PCの機能構成例を示すブロック図である。
【図７】ネットワーク自動生成処理について説明するフローチャートである。
【図８】回帰問題におけるデータセットの第１の例を示す図である。
【図９】回帰問題におけるデータセットの第２の例を示す図である。
【図１０】予測器と学習器の例を示す図である。
【図１１】分類問題におけるデータセットの第１の例を示す図である。
【図１２】分類問題におけるデータセットの第２の例を示す図である。
【図１３】二値分類問題における分類器と学習器の例を示す図である。
【図１４】多値分類問題における分類器と学習器の例を示す図である。
【図１５】ネットワークの定石の設計をまとめて示す図である。
【図１６】特徴抽出器とSiameseロスを用いた学習器の例を示す図である。
【図１７】特徴抽出器とTripletロスを用いた学習器の例を示す図である。
【図１８】メトリック学習におけるデータセットの第１の例を示す図である。
【図１９】メトリック学習におけるデータセットの第２の例を示す図である。
【図２０】分類器と学習器の例を示す図である。
【図２１】ノイズ計算ネットワークの例を示す図である。
【図２２】予測器と学習器の例を示す図である。
【図２３】生成器とVAEを用いた学習器の例を示す図である。
【図２４】生成器とGANを用いた学習器の例を示す図である。
【図２５】図７のステップＳ２において行われる問題推定処理について説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本技術を実施するための形態について説明する。説明は以下の順序で行う。
１．ネットワークの自動生成機能
２．PCの構成と動作
３．各問題に応じたネットワークの具体例
４．その他
【００１３】
＜＜１．ネットワークの自動生成機能＞＞
＜１−１．ネットワーク設計支援プログラムについて＞
図１は、本技術の一実施形態に係るプログラムを提供する提供システムの構成例を示す図である。
【００１４】
図１に示す提供システムは、PC１と提供サーバ２が、インターネットなどのネットワーク３を介して接続されることによって構成される。
【００１５】
PC１は、例えば、Deep Learningのためのネットワークを設計する設計者が使用する装置である。PC１には、提供サーバ２が提供するプログラムがインストールされ、そのプログラムを用いてネットワークの設計が行われる。
【００１６】
提供サーバ２が提供するプログラムは、ネットワークの設計を支援するためのプログラムである。以下、適宜、提供サーバ２が提供するプログラムをネットワーク設計支援プログラムという。
【００１７】
ネットワーク設計支援プログラムには、ネットワークを設計するための各種のツールが用意されている。ネットワーク設計支援プログラムのユーザ（設計者）は、ネットワーク設計支援プログラムの機能を利用することにより、ネットワークの設計、学習、評価などを行うことができる。
【００１８】
図２は、ネットワーク設計支援プログラムの表示画面の例を示す図である。
【００１９】
ウィンドウ２１の上方にはツールの選択に用いられるボタンが並ぶツールバーが表示され、その下に、選択領域２１Ａとモデル表示領域２１Ｂが形成される。
【００２０】
縦長帯状の選択領域２１Ａは、ネットワークを構成する各種のコンポーネントの選択に用いられる領域である。図２の例においては、各コンポーネントが、「IO」、「Loss」、「Parameter」、「Basic」、「Pooling」、「Activation」、「LoopControl」、・・・などのカテゴリ毎に分けて表示されている。
【００２１】
例えば「Loss」のコンポーネントとして、「SquaredError」、「HuberLoss」、「BinaryCrossEntropy」、「SingmoidCrossEntropy」、「SoftmaxCrossEntropy」、「KLmultinominal」が用意されている。また、「Basic」のコンポーネントとして、「Affine」、「Convolution」、「Deconvolution」、「Embed」などの項目が用意されている。「Activation」のコンポーネントとして、「Tanh」、「Sigmoid」、「Abs」などの項目が用意されている。
【００２２】
モデル表示領域２１Ｂは、選択領域２１Ａに用意されているコンポーネントを用いて設計したネットワークの表示領域である。図２の例においては、「Input」、「Affine」、「Sigmoid」、「BinaryCrossEntropy」の各コンポーネントが順に選択されることによって、各コンポーネントを表すブロック３１−１乃至３１−４が重ねて表示されている。ブロック３１−１乃至３１−４は、入力層、線形層、活性化層、ロス関数層を含むネットワーク（学習器）を表す。
【００２３】
学習用データセットを指定し、学習の実行をユーザが指示したとき、このネットワークを用いた学習が行われる。このように、ユーザは、選択領域２１Ａからコンポーネントを選択することでネットワークの設計を行うことができる。
【００２４】
ネットワーク設計支援プログラムには、ネットワークを用いた推論によってユーザが解こうとしている問題と、ユーザが指定したデータセットに基づいて、ネットワークを自動的に構築する機能が搭載されている。ネットワーク設計支援プログラムには、問題の種類とデータセットの内容に応じた、ネットワークの設計の定石に関する情報が設定されている。
【００２５】
ここで、問題には、例えば以下のような種類の問題が含まれる。
（１）回帰問題
（２）分類問題
（３）メトリック学習（メトリック学習の結果を用いた特徴抽出）
（４）半教師学習（半教師学習の結果を用いた回帰・分類問題）
（５）生成モデル（生成モデルを用いたデータの生成）
【００２６】
このような問題が、ユーザにより指定されることによってネットワーク設計支援プログラムに与えられる。後述するように、データセットなどに基づいてネットワーク設計支援プログラムにより推定されるようにすることも可能である。ユーザが解こうとしている問題の推定がネットワーク設計支援プログラムにより行われる場合、データセットをユーザが指定するだけで、データセットに応じたネットワークが自動的に生成されることになる。
【００２７】
データセットは、学習用データセットと評価用データセットから構成される。データセットが学習用データセットのみからなり、評価用データセットが含まれないこともある。データセットには、例えば以下のようなドメインのデータが含まれる。
（１）画像（動画、静止画）
（２）音声
（３）項目
（４）テキスト
【００２８】
なお、センサデータは、音声と同じドメインのデータとして扱われる。加速度センサ、ジャイロセンサ、温度センサ、湿度センサ、生体センサ（心拍センサ、血圧センサなど）などの各種のセンサにより測定されたセンサデータも、ネットワークの学習などに用いられる。
【００２９】
定石の設計によって自動的に生成されたネットワークは、図２に示すような画面によってユーザに提示される。ユーザは、提示されたネットワークに変更を適宜加えて、所望のネットワークを設計することができる。ネットワーク設計支援プログラムが自動的に生成し、ユーザに提示するネットワークは定番のネットワークであり、それに変更を加えることで所望のネットワークの設計が行われることになる。
【００３０】
このように、解きたい問題とデータセットをインタフェースを介して指定するだけで定番のネットワークを得ることができるため、ユーザは、ネットワークの設計に要する時間を大幅に短縮することができる。
【００３１】
また、ユーザは、ネットワークの設計に関する知識が少ない場合であっても、ネットワークを容易に設計することが可能になる。
【００３２】
＜１−２．ネットワークについて＞
ここで、ネットワークの基本的な事項について説明する。
【００３３】
図３は、ネットワークの構造を示す図である。
【００３４】
図３の上段に示すように、ニューラルネットワークは、線形層と活性化層を重ね、入力層と出力層を付加することによって構成される。図３の例においては、三層のニューラルネットワークが示されている。
【００３５】
線形層は、変数（ベクトル）の線形変換を行う層である。線形層に対する入力をx、各入力に対する重みをwとすると、出力yは、下式（１）のような、各入力に重みを掛け、バイアスbを足した値として表される。重みwが、学習により最適化する対象のパラメータとなる。
【数１】
2019035364.tif 000003
【００３６】
活性化層は、変数の非線形変換を行う層である。活性化層には、学習するパラメータがない（ことが多い）。活性化関数の１つであるSigmoid関数は、下式（２）により表される。
【数２】
2019035364.tif 000004
【００３７】
図２のブロック３１−１乃至３１−４は、このようなネットワークを模式的に示す画像である。
【００３８】
図４は、学習の例を示す図である。
【００３９】
解こうとしている問題が回帰問題である場合、図４の左側に示すような予測器が用いられる。予測器に対する入力をデータx、入力から出力までの変換をまとめて関数fθと表記すると、予測値yは下式（３）により表される。
【数３】
2019035364.tif 000005
【００４０】
このような予測器のパラメータの学習は、白抜き矢印の先に示すように、予測器の最終層にロス関数を設けた学習器を用いて行われる。ロスは、予測値と、データのラベル（正解値）との誤差であり、問題に合わせて設定される。図４の例においては、ロス関数として、二乗誤差の演算を行う関数が設定されている。
【００４１】
学習器を用いた学習は、計算したロスの勾配を逆伝搬しつつ、各パラメータに勾配を加えて更新し（勾配法）、ロスを最小化するパラメータを求めるようにして行われる（誤差逆伝搬法）。
【００４２】
＜＜２．PCの構成と動作＞＞
＜２−１．PCの構成＞
図５は、PC１の構成例を示すブロック図である。
【００４３】
CPU(Central Processing Unit)１０１、ROM(Read Only Memory)１０２、RAM(Random Access Memory)１０３は、バス１０４により相互に接続されている。
【００４４】
バス１０４には、さらに、入出力インタフェース１０５が接続されている。入出力インタフェース１０５には、入力部１０６、出力部１０７、記憶部１０８、通信部１０９、およびドライブ１１０が接続される。ドライブ１１０には、リムーバブルメディア１１１が接続される。
【００４５】
入力部１０６は、キーボード、マウスなどにより構成される。入力部１０６を用いて、問題の指定などの操作が行われる。
【００４６】
出力部１０７は、ディスプレイ、スピーカなどにより構成される。図２を参照して説明したような画面が、出力部１０７を構成するディスプレイに表示される。
【００４７】
記憶部１０８は、ハードディスクや不揮発性のメモリなどにより構成される。記憶部１０８には、上述したネットワーク設計支援プログラムが記憶される。
【００４８】
通信部１０９は、ネットワークインタフェースなどにより構成される。ネットワーク設計支援プログラムをダウンロードするための通信などの各種の通信が通信部１０９において行われる。ネットワーク設計支援プログラムのインストールが通信を介して行われるのではなく、リムーバブルメディア１１１を介して行われるようにしてもよい。この場合、ネットワーク設計支援プログラムが記憶されたリムーバブルメディア１１１が、ドライブ１１０に接続され、読み出される。
【００４９】
以上のような構成を有するPC１においては、CPU１０１が、記憶部１０８に記憶されているネットワーク設計支援プログラムをRAM１０３にロードして実行することにより、ネットワークの設計のための処理が行われる。
【００５０】
図６は、PC１の機能構成例を示すブロック図である。
【００５１】
ネットワーク設計支援プログラムがCPU１０１により実行されることによって、図６に示す情報処理部１３１が実現される。図６に示すように、情報処理部１３１は、問題推定部１４１、ネットワーク生成部１４２、提示制御部１４３、および学習実行部１４４から構成される。学習用のデータを含むデータセットは、問題推定部１４１、ネットワーク生成部１４２、および学習実行部１４４に入力される。
【００５２】
問題推定部１４１は、データセットを解析し、ユーザが解こうとしている問題を推定する。問題推定部１４１により、例えば上述した５種類の問題のうちのいずれかの問題が推定される。問題の推定結果を表す情報はネットワーク生成部１４２に供給される。解こうとしている問題がユーザにより指定された場合、問題推定部１４１による問題の推定は行われない。
【００５３】
ネットワーク生成部１４２は、問題推定部１４１により推定された問題とデータセットに基づいて、推論器（推論実行用のネットワーク）と学習器（学習用のネットワーク）を生成する。ネットワーク生成部１４２には、問題とデータセットに応じた定石の設計に関する情報が予め設定されている。ネットワーク生成部１４２は、ユーザによる操作によらずに、定石の設計を踏まえたネットワークを生成することになる。
【００５４】
なお、問題の推定が問題推定部１４１により行われない場合、ネットワーク生成部１４２は、ユーザにより指定された問題とデータセットに基づいて、ネットワークを生成する。ネットワーク生成部１４２により生成されたネットワークに関する情報は、デフォルトのネットワークに関する情報として提示制御部１４３と学習実行部１４４に供給される。
【００５５】
また、ネットワーク生成部１４２は、デフォルトのネットワークを生成した後、デフォルトのネットワークをユーザによる操作に応じて変更する。変更が加えられたネットワークの情報も提示制御部１４３と学習実行部１４４に供給される。
【００５６】
提示制御部１４３は、ネットワーク生成部１４２により生成されたネットワークをネットワーク設計支援プログラムの画面に表示させ、ユーザに提示する。ネットワーク設計支援プログラムの画面には、デフォルトのネットワークの情報とともに、ネットワークに変更を加えるための各種のツールを選択するための表示なども設けられる。
【００５７】
学習実行部１４４は、ユーザにより適宜変更が加えられることによって生成された学習器を用いて学習を実行する。学習実行部１４４による学習には、データセットに含まれる学習用のデータが用いられる。学習を行うことによって得られた推論器は、PC１が有するアプリケーション、PC１の外部の装置が有するアプリケーションなどに提供され、推論処理に用いられる。
【００５８】
PC１が、ユーザによる操作を受け付けるとともにネットワークの設計を行うための情報をユーザに提示するインタフェースとして機能し、問題の推定、ネットワークの生成、学習の実行などの各機能が提供サーバ２などの外部の装置に用意されるようにしてもよい。この場合、図６に示す構成のうちの少なくとも一部が、外部の装置において実現されることになる。
【００５９】
＜２−２．PCの動作＞
ここで、図７のフローチャートを参照して、以上のような構成を有する情報処理部１３１のネットワーク自動生成処理について説明する。
【００６０】
ステップＳ１において、問題推定部１４１は、学習用のデータを含むデータセットを取得する。
【００６１】
ステップＳ２において、問題推定部１４１は問題推定処理を行う。問題推定処理により、ユーザが解こうとしている問題がデータセットに基づいて推定される。問題推定処理の詳細については後述する。
【００６２】
ステップＳ３において、ネットワーク生成部１４２は、データセットと問題に応じた推論器を生成する。
【００６３】
ステップＳ４において、ネットワーク生成部１４２は、問題に応じたロス関数を推論器に付加することによって、学習器を生成する。
【００６４】
ステップＳ５において、提示制御部１４３は、ネットワーク生成部１４２により生成された推論器と学習器をデフォルトのネットワークとして、デフォルトのネットワークに関する情報をネットワーク設計支援プログラムの画面に表示させる。
【００６５】
ステップＳ６において、ネットワーク生成部１４２は、ユーザの操作に基づいて、提示制御部１４３により提示されたネットワークの変更を行う。
【００６６】
ステップＳ７において、学習実行部１４４は、学習の実行が指示されることに応じて、データセットに含まれる学習用のデータを学習器に入力し、学習を実行する。
【００６７】
ステップＳ８において、学習実行部１４４は、学習を行うことによって得られた推論器を外部に出力し、処理を終了させる。
【００６８】
以上のように、問題の推定がネットワーク設計支援プログラムにより行われるため、ユーザは、学習用のデータを含むデータセットを指定するだけで、ネットワークを生成することができる。また、問題の推定が行われない場合においても、ユーザは、問題とデータセットを指定するだけでネットワークを生成することが可能になる。
【００６９】
＜＜３．各問題に応じたネットワークの具体例＞＞
ここで、ユーザが解こうとする問題に応じて自動的に生成される推論器と学習器の具体例について説明する。重複する説明については適宜省略する。
【００７０】
＜３−１．回帰問題＞
回帰問題は、連続値を想定したデータの予測を行うものである。推論器として生成されるネットワークは予測器となる。
【００７１】
・３−１−１．回帰問題における学習の流れ
（１）前提
ユーザは、データを入力して、別のデータ（連続値）を予測する予測器を作りたいとする。このような予測器には、例えば、不動産物件の様々な情報を入力して、不動産物件の価格を予測（査定）する予測器がある。不動産物件の価格の予測の他に、画像から特定の物体の位置（座標）を予測する予測器、音声から音源の位置を推定する予測器、センサデータから他のセンサ値を予測する予測器などがある。
【００７２】
この場合、ユーザは、データと正解値（ラベル）をネットワーク設計支援プログラムに与え、学習を行わせることによって、このような予測器を作ることになる。
【００７３】
（２）事前準備
ユーザは、データセットを事前に用意しておく。データセットには、学習用データセットと評価用データセットが含まれていることが望ましいが、学習用データセットだけでもよい。学習用データセットと評価用データセットにおいては、各データとラベルが対応付けて管理されている。
【００７４】
例えば、データ毎に対応するラベルを記録しているファイル、データのファイルとラベルのファイルが保存されたファイルシステムがデータセットとして用意される。
【００７５】
（３）実行
ユーザは、学習用データセットを指定して、予測器の設計をシステム（ネットワーク設計支援プログラム）に指示する。システムにおいては、学習用データセットから、ユーザが解こうとしている問題が回帰問題であるとして推定され、回帰問題における定番の予測器と定番の学習器が生成される。定番の学習器は、定番の予測器に、定番のロス関数を付加することによって生成される。
【００７６】
定番の予測器の構造は、予測に用いるデータのドメインに基づいて特定される。予測に用いるデータのドメインは、学習用データセットに含まれるファイルの拡張子などに基づいて推定される。ドメインがユーザにより入力されるようにしてもよい。
【００７７】
定番のロス関数は、解こうとしている問題が回帰問題であることに基づいて特定される。
【００７８】
自動的に生成された定番の予測器と定番の学習器は、ネットワークのソースコードをディスプレイに表示することによって、または、図２を参照して説明したような、ネットワークのモジュール構成を示す画像を画面に表示することによってユーザに提示される。
【００７９】
ユーザは、提示されたネットワークに対して、必要に応じて変更（例えば、事前知識に基づく変更や、評価に基づく試行錯誤）を加えて、学習の実行を指示する。
【００８０】
システムにおいては、学習用データセットを用いた学習が行われ、予測器が生成される。ユーザは、最後に、学習によって得られた予測器を外部に提供する。
【００８１】
・３−１−２．データセットの例
図８は、データセットの第１の例を示す図である。
【００８２】
図８の例においては、各サンプルのデータにはデータIDが設定され、連続値のラベルが対応付けて管理されている。各データは、項目１、項目２、項目３などの各項目の値から構成される。不動産物件の価格を予測する予測器を作成する場合、項目は、駅からの距離、階数、築年数などの、価格決定に寄与するデータであり、ラベルは、成約価格を表す値（例えば小数値）となる。
【００８３】
このように、項目の値をユーザが直接書き込む場合、データとラベルをまとめた１つのファイルによって学習用データセットが構成されるようにすることができる。
【００８４】
図８に示すような学習用データセットが入力された場合、システムにおいては、例えば、ラベルが整数値でないことに基づいて、ユーザが解こうとしている問題が回帰問題であるとして推定される。解こうとしている問題が回帰問題であることをユーザが指定するようにしてもよい。
【００８５】
また、システムにおいては、各データに項目の値が含まれていることに基づいて、データのドメインが項目として特定される。
【００８６】
図９は、データセットの第２の例を示す図である。
【００８７】
図９のファイルシステムにおいては、学習用データセットとして、ファイル名「data_0」、「data_1」、「data_2」、「data_3」、「data_4」の各ファイルが「ForTraining」のディレクトリに保存されている。各ファイルは、画像や音楽などのファイルである。適宜、ラベルのファイルも保存される。「ForTest」のディレクトリには評価用データセットを構成するファイルが保存される。
【００８８】
このように、ラベルが対応付けられたファイルを保存するファイルシステムによって学習用データセットが構成されるようにすることができる。
【００８９】
図９に示すような学習用データセットが入力された場合、システムにおいては、ファイルシステムの構造に基づいて、ユーザが解こうとしている問題が回帰問題であるとして推定される。例えば、回帰問題であることを表す構造を有するファイルシステムが学習用データセットとして用意される。解こうとしている問題が回帰問題であることをユーザが指定するようにしてもよい。
【００９０】
また、システムにおいては、wav,mp3である場合には音楽、png,jpeg,bmpである場合には静止画、mp4,wmvである場合には動画、txtである場合にはテキストといったように、ファイルの拡張子に基づいてデータのドメインが特定される。
【００９１】
・３−１−３．回帰問題における定番のネットワーク
図１０は、予測器と学習器の例を示す図である。
【００９２】
図１０の左側に示すように、予測器は、回帰問題における定番の予測器を含むように構成される。定番の予測器は、上から順に、全結合層（Affine層）、活性化層（Relu層）、全結合層（Affine層）を重ねることによって構成される。定番の予測器のネットワークには入力層（x）と出力層（z）が付加される。
【００９３】
一方、図１０の右側に示すように、学習器は、定番の予測器に、二乗誤差関数の層を付加して構成される。
【００９４】
太線Ｌ１で囲んで示す、予測器における定番の予測器のパラメータと、太線Ｌ２で囲んで示す、学習器における定番の予測器のパラメータは共有される。学習によって学習器のパラメータが更新された場合、予測器のパラメータも同様に更新される。
【００９５】
このように、回帰問題においては、定番の予測器に、二乗誤差関数の層を付けて学習器とすることが定石の設計とされる。また、予測器の最終層を、線形層とすることが定石の設計とされる。
【００９６】
線形層を畳み込み層とするのか全結合層とするのかは、特定されたデータのドメインに応じて選択される。例えば、データのドメインが画像または音声である場合には畳み込み層が選択され、項目またはテキストである場合には、全結合層が選択される。図１０は、データのドメインが項目またはテキストである場合のデフォルトのネットワークの例を示している。
【００９７】
データのドメインが画像または音声である場合、畳み込み層を含むLenetやResnetなどのネットワークを定番の予測器として採用することが可能である。また、データのドメインが項目またはテキストである場合、Embed層を含むネットワークを定番の予測器として採用することが可能である。
【００９８】
なお、Resnetについては下記の文献に開示されている。
・Deep Residual Learning for Image Recognition  <https://arxiv.org/abs/1512.03385>
【００９９】
図１０に示すような予測器と学習器が自動的に生成され、デフォルトのネットワークとしてユーザに提示される。２つのネットワークに関する情報が並べて提示されるようにしてもよいし、別々に提示されるようにしてもよい。ネットワークの提示画面において、定番の予測器の近くに、「ここを改造してください」などの、設計変更を促すメッセージが表示されるようにしてもよい。
【０１００】
＜３−２．分類問題＞
分類問題は、入力されたデータを、それが属するカテゴリに分類するものである。分類問題は、クラス数が２である二値分類問題と、３以上である多値分類問題に分けられる。推論器として生成されるネットワークは分類器となる。
【０１０１】
・３−２−１．分類問題における学習の流れ
（１）前提
ユーザは、データを入力して、そのデータが所属するカテゴリ（離散値）を分類する分類器を作りたいとする。このような分類器には、例えば、花が写る画像を入力して、花の種類毎に分類する分類器、動物が写る画像を入力して、動物の種類毎に分類する分類器がある。
【０１０２】
この場合、ユーザは、データとラベルをネットワーク設計支援プログラムに与え、学習を行わせることによって、このような分類器を作ることになる。
【０１０３】
（２）事前準備
ユーザは、データセットを事前に用意しておく。データセットには、学習用データセットと評価用データセットが含まれていることが望ましいが、学習用データセットだけでもよい。学習用データセットと評価用データセットにおいては、各データとラベルが対応付けて管理されている。
【０１０４】
例えば、データ毎に対応するラベルを記録しているファイル、データのファイルがラベル毎に予め分類した形で保存されたファイルシステムがデータセットとして用意される。
【０１０５】
（３）実行
ユーザは、学習用データセットを指定して、分類器の設計をシステムに指示する。システムにおいては、学習用データセットから、ユーザが解こうとしている問題が分類問題であるとして推定され、分類問題における定番の分類器と定番の学習器が生成される。定番の学習器は、定番の分類器に、定番のロス関数を付加することによって生成される。
【０１０６】
定番の分類器の構造は、分類に用いるデータのドメインに基づいて特定される。分類に用いるデータのドメインは、学習用データセットに含まれるファイルの拡張子などに基づいて推定される。ドメインがユーザにより入力されるようにしてもよい。
【０１０７】
定番のロス関数は、解こうとしている問題が分類問題であることに基づいて特定される。
【０１０８】
自動的に生成された定番の分類器と定番の学習器は、ネットワークのソースコードをディスプレイに表示することによって、または、ネットワークのモジュール構成を示す画像を画面に表示することによってユーザに提示される。
【０１０９】
ユーザは、提示されたネットワークに対して、必要に応じて変更を加えて、学習の実行を指示する。
【０１１０】
システムにおいては、学習用データセットを用いた学習が行われ、分類器が生成される。ユーザは、最後に、学習によって得られた分類器を外部に提供する。
【０１１１】
・３−２−２．データセットの例
図１１は、データセットの第１の例を示す図である。
【０１１２】
図１１の例においては、各サンプルのデータにはデータIDが設定され、離散値のラベルが対応付けて管理されている。各データは、項目１、項目２、項目３などの各項目の値から構成される。画像に写る花の種類に分類する分類器を作成する場合、項目は、雄しべの数、花弁の数などの、花の種類を特徴付けるデータであり、ラベルは、花の種類を表す整数値となる。
【０１１３】
このように、項目の値をユーザが直接書き込む場合、データとラベルをまとめた１つのファイルによって学習用データセットが構成されるようにすることができる。
【０１１４】
図１１に示すような学習用データセットが入力された場合、システムにおいては、例えば、ラベルが整数値であることに基づいて、ユーザが解こうとしている問題が分類問題であるとして推定される。解こうとしている問題が分類問題であることをユーザが指定するようにしてもよい。
【０１１５】
また、システムにおいては、ラベルを表す整数値が２種類以上あることに基づいて、分類問題の中でも、多値分類問題であると推定される。ラベルを表す整数値が２種類である場合、二値分類問題であると推定されることになる。このように、分類問題の場合、分類するカテゴリの数も学習用データセットに基づいて推定される。
【０１１６】
図１２は、データセットの第２の例を示す図である。
【０１１７】
図１２のファイルスシステムにおいては、「ForTraining」のディレクトリの下に、「label_0」、「label_1」、「label_2」の各ディレクトリが設定されている。「label_0」のディレクトリにはファイル名「data_0」、「data_1」、「data_2」の各ファイルが保存されている。「label_1」のディレクトリにはファイル名「data_3」のファイルが保存され、「label_2」のディレクトリにはファイル名「data_4」のファイルが保存されている。各ファイルは、画像や音楽などのファイルである。
【０１１８】
「label_0」、「label_1」、「label_2」のディレクトリは、それぞれのディレクトリに保存されているファイルのデータのラベルを表す。
【０１１９】
このように、ラベルを表すディレクトリ毎に分類してファイルを保存するファイルシステムによって学習用データセットが構成されるようにすることができる。
【０１２０】
図１２に示すような学習用データセットが入力された場合、システムにおいては、ファイルシステムの構造に基づいて、ユーザが解こうとしている問題が分類問題であり、カテゴリの数が３であるとして推定される。解こうとしている問題が分類問題であることをユーザが指定するようにしてもよい。
【０１２１】
また、システムにおいては、ファイルの拡張子に基づいてデータのドメインが特定される。
【０１２２】
・３−２−３．分類問題における定番のネットワーク
図１３は、二値分類問題における分類器と学習器の例を示す図である。
【０１２３】
図１３の左側に示すように、分類器は、二値分類問題における定番の分類器を含むように構成される。定番の分類器は、上から順に、全結合層（Affine層）、活性化層（Relu層）、全結合層（Affine層）を重ねることによって構成される。定番の分類器の下の最終層には、ソフト二値分類（確率）を表す出力を得るためにSigmoid関数が設定される。定番の分類器のネットワークには入力層（x）と出力層（z）が付加される。
【０１２４】
一方、図１３の中央と右側に示すように、学習器＃１と学習器＃２の２つの学習器が生成される。
【０１２５】
学習器＃１は、定番の分類器に、Sigmoid関数の層とBinaryCE（バイナリクロスエントロピー）関数の層を付加して構成される。
【０１２６】
学習器＃２は、定番の分類器に、SigmoidCE関数の層を付加して構成される。このように、実用上、Sigmoid関数とBinaryCE関数の層の代わりに、SigmoidCE関数の層を最終層として用いることも可能である。
【０１２７】
太線Ｌ１１で囲んで示す、分類器における定番の分類器のパラメータと、太線Ｌ１２，Ｌ１３で囲んで示す、学習器における定番の分類器のパラメータは共有される。学習によって学習器のパラメータが更新された場合、分類器のパラメータも同様に更新される。
【０１２８】
このように、二値分類問題においては、定番の分類器に、Sigmoid関数とBinaryCE関数の層、またはSigmoidCE関数の層を付けて学習器とすることが定石の設計とされる。
【０１２９】
線形層を畳み込み層とするのか全結合層とするのかは、特定されたデータのドメインに応じて選択される。例えば、データのドメインが画像または音声である場合には畳み込み層が選択され、項目またはテキストである場合には、全結合層が選択される。
【０１３０】
図１３に示すような分類器と学習器＃１，＃２が自動的に生成され、デフォルトのネットワークとしてユーザに提示される。３つのネットワークに関する情報が並べて提示されるようにしてもよいし、別々に提示されるようにしてもよい。ネットワークの提示画面において、定番の分類器の近くに、「ここを改造してください」などの、設計変更を促すメッセージが表示されるようにしてもよい。
【０１３１】
図１４は、多値分類問題における分類器と学習器の例を示す図である。
【０１３２】
図１４の左側に示すように、分類器は、多値分類問題における定番の分類器を含むように構成される。定番の分類器は、上から順に、全結合層（Affine層）、活性化層（Relu層）、全結合層（Affine層）を重ねることによって構成される。定番の分類器の下の最終層には、ソフト多値分類（確率）を表す出力を得るためにSoftmax関数が設定される。定番の分類器のネットワークには入力層（x）と出力層（z）が付加される。
【０１３３】
一方、図１４の中央と右側に示すように、学習器＃１と学習器＃２の２つの学習器が生成される。
【０１３４】
学習器＃１は、定番の分類器の下に、Softmax関数の層とCategoricalCE（カテゴリカルクロスエントロピー）関数の層を付加して構成される。
【０１３５】
学習器＃２は、定番の分類器の下に、SoftmaxCE関数の層を付加して構成される。このように、実用上、Softmax関数とCategoricalCE関数の層の代わりに、SoftmaxCE関数の層を最終層として用いることも可能である。
【０１３６】
太線Ｌ２１で囲んで示す、分類器における定番の分類器のパラメータと、太線Ｌ２２，Ｌ２３で囲んで示す、学習器における定番の分類器のパラメータは共有される。学習によって学習器のパラメータが更新された場合、分類器のパラメータも同様に更新される。
【０１３７】
このように、多値分類問題においては、定番の分類器に、Softmax関数とCategoricalCE関数の層、またはSoftmaxCE関数の層を付けて学習器とすることが定石の設計とされる。
【０１３８】
線形層を畳み込み層とするのか全結合層とするのかは、特定されたデータのドメインに応じて選択される。例えば、データのドメインが画像または音声である場合には畳み込み層が選択され、項目またはテキストである場合には、全結合層が選択される。
【０１３９】
図１４に示すような分類器と学習器＃１，＃２が自動的に生成され、デフォルトのネットワークとしてユーザに提示される。３つのネットワークに関する情報が並べて提示されるようにしてもよいし、別々に提示されるようにしてもよい。ネットワークの提示画面において、定番の分類器の近くに、「ここを改造してください」などの、設計変更を促すメッセージが表示されるようにしてもよい。
【０１４０】
・３−２−４．Feedforwardネットワークの設計
図１５は、以上のような、回帰問題と分類問題において用いられるネットワークの定石の設計をまとめて示す図である。図６のネットワーク生成部１４２は、このような定石の設計に関する情報を有している。
【０１４１】
ラベルの型が連続値である場合（ラベルの値が小数値である場合）、回帰問題を解こうとしていることが推定され、ロス関数として二乗誤差関数が選択される。
【０１４２】
ラベルの型が離散二値である場合（ラベルの値が２種類の整数値である場合）、二値分類問題を解こうとしていることが推定され、ロス関数として、Sigmoid関数とBinaryCE関数の組み合わせ、またはSigmoidCE関数が選択される。
【０１４３】
ラベルの型が離散多値である場合（ラベルの値が３種類以上の整数値である場合）、多値分類問題を解こうとしていることが推定され、ロス関数として、Softmax関数とCategoricalCE関数の組み合わせ、またはSoftmaxCE関数が選択される。
【０１４４】
これらのロス関数の層が定番の推論器のネットワークに付加されることによって学習器が自動的に生成され、ユーザに提示される。
【０１４５】
また、線形層を畳み込み層とするのか全結合層とするのかは、特定されたデータのドメインに応じて選択される。データのドメインが画像または音声である場合には畳み込み層が選択され、テキストまたは項目である場合には全結合層が選択される。
【０１４６】
このように、データのドメインに応じて選択された畳み込み層を含むネットワーク、または全結合層を含むネットワークが、定番の推論器として自動的に生成され、ユーザに提示される。
【０１４７】
＜３−３．メトリック学習＞
メトリック学習（特徴空間学習）は、データの、特徴空間への埋め込み方法を推定する学習である。推論器として生成されるネットワークは特徴抽出器となる。
【０１４８】
・３−３−１．メトリック学習の流れ
（１）前提
ユーザは、データを入力して、特徴空間上に射影する特徴抽出器を作りたいとする。特徴抽出器は、例えば、事前登録されているデータと、入力されたデータのマッチング（同じデータであるか違うデータであるかの判定）を行うアプリケーションなどで用いられる。
【０１４９】
特徴抽出器を用いることにより、例えば、手書き数字の"2"の画像がラベル無しで入力された時に、太さや傾きなどが近い"2"の画像を選ぶことができる。また、後述するような、所定の対象の識別、認証、トラッキングが可能になる。
【０１５０】
この場合、ユーザは、データとラベルをネットワーク設計支援プログラムに与え、メトリック学習を行わせることによって、このような特徴抽出器を作ることになる。
【０１５１】
（２）事前準備
ユーザは、データセットを事前に用意しておく。データセットには、学習用データセットと評価用データセットが含まれていることが望ましいが、学習用データセットだけでもよい。学習用データセットと評価用データセットにおいては、各データとラベルが対応付けて管理されている。
【０１５２】
例えば、分類問題で用いられるデータセットと同様のデータセットがメトリック学習において用いられる。
【０１５３】
（３）実行
ユーザは、学習用データセットを指定して、特徴抽出器の設計をシステムに指示する。システムにおいては、メトリック学習を行うことが推定され、メトリック学習における定番の特徴抽出器と定番の学習器が生成される。定番の学習器は、定番の特徴抽出器を含むネットワークに、定番のロス関数を付加することによって生成される。
【０１５４】
定番の特徴抽出器の構造は、特徴抽出に用いるデータのドメインに基づいて特定される。特徴抽出に用いるデータのドメインは、学習用データセットに含まれるファイルの拡張子などに基づいて推定される。ドメインがユーザにより入力されるようにしてもよい。
【０１５５】
定番のロス関数は、学習手法がメトリック学習であることに基づいて特定される。メトリック学習におけるロスには、SiameseロスとTripletロスがある。なお、ここでは、Tripletロスと対比的に書くため、Siameseネットワークに用いるロスを、便宜的にSiameseロスと呼ぶことにしている。SiameseロスとTripletロスのうちのいずれのロスを用いるのかがシステムにより選択されるようにしてもよいし、ユーザに選択させるようにしてもよい。
【０１５６】
自動的に生成された定番の特徴抽出器と定番の学習器は、ネットワークのソースコードをディスプレイに表示することによって、または、ネットワークのモジュール構成を示す画像を画面に表示することによってユーザに提示される。
【０１５７】
ユーザは、提示されたネットワークに対して、必要に応じて変更を加えて、学習の実行を指示する。
【０１５８】
システムにおいては、学習用データセットを用いた学習が行われ、特徴抽出器が生成される。ユーザは、最後に、学習によって得られた特徴抽出器を外部に提供する。
【０１５９】
・３−３−２．メトリック学習における定番のネットワーク
図１６は、特徴抽出器とSiameseロスを用いた学習器の例を示す図である。Siameseロスを用いる場合のメトリック学習は、Siameseネットワークとして構成される学習器を用いて行われる。
【０１６０】
図１６の左側に示すように、特徴抽出器は、定番の特徴抽出器を含むように構成される。定番の特徴抽出器は、上から順に、全結合層（Affine層）、活性化層（Relu層）、全結合層（Affine層）を重ねることによって構成される。定番の特徴抽出器のネットワークには入力層（x）と出力層（z）が付加される。
【０１６１】
一方、図１６の右側に示すように、学習器としてSiameseネットワークが生成される。Siameseネットワークは、入力が異なる、２つの定番の特徴抽出器を並列に並べることによって構成される。太線Ｌ３２で囲んで示す定番の特徴抽出器に入力されるデータx_0と、太線Ｌ３３で囲んで示す定番の特徴抽出器に入力されるデータx_1の組み合わせはランダムでも良いが、同じラベルの組み合わせが十分に出現するように、ランダムネスがコントロールされていることが望ましい。
【０１６２】
Siameseネットワークは、２つの定番の特徴抽出器の下に、全結合層（Affine層）とSigmoidCE関数の層を付加して構成される。全結合層に対しては、データx_0とデータx_1のそれぞれの特徴空間上の位置を表すデータが入力される。
【０１６３】
なお、SigmoidCE関数の層に入力されるラベル（Same/Different）は、データx_0とデータx_のラベルが同じであるか否かを表す。例えば、ラベルとして与えられる値が0である場合、データx_0とデータx_1のラベルが同じであることを表し、1である場合、データx_0とデータx_1のラベルが異なることを表す。
【０１６４】
太線Ｌ３１で囲んで示す、特徴抽出器における定番の特徴抽出器のパラメータと、太線Ｌ３２，Ｌ３３で囲んで示す、Siameseネットワークにおける定番の特徴抽出器のパラメータは共有される。学習によってSiameseネットワークのパラメータが更新された場合、特徴抽出器のパラメータも同様に更新される。
【０１６５】
Siameseネットワークによるメトリック学習は、定番の特徴抽出器の出力の距離（|f(x0)-f(x1)|）が、データx_0とデータx_1のラベルが同一ラベルのとき小さくなり、異なるラベルのとき大きくなるパラメータを求めるようにして行われる。
【０１６６】
このように、メトリック学習においては、Siameseネットワークが、学習器を構成する定番のネットワークとされる。
【０１６７】
線形層を畳み込み層とするのか全結合層とするのかは、特定されたデータのドメインに応じて選択される。例えば、データのドメインが画像または音声である場合には畳み込み層が選択され、項目またはテキストである場合には、全結合層が選択される。
【０１６８】
図１６に示すような特徴抽出器と学習器が自動的に生成され、デフォルトのネットワークとしてユーザに提示される。２つのネットワークに関する情報が並べて提示されるようにしてもよいし、別々に提示されるようにしてもよい。ネットワークの提示画面において、定番の特徴抽出器の近くに、「ここを改造してください」などの、設計変更を促すメッセージが表示されるようにしてもよい。
【０１６９】
図１７は、特徴抽出器とTripletロスを用いた学習器の例を示す図である。Tripletロスを用いる場合のメトリック学習は、Tripletネットワークとして構成される学習器を用いて行われる。
【０１７０】
図１７の左側に示す特徴抽出器は、図１６の特徴抽出器と同じである。
【０１７１】
図１７の右側に示すように、学習器としてTripletネットワークが生成される。Tripletネットワークは、入力が異なる、３つの定番の特徴抽出器を並列に並べることによって構成される。太線Ｌ４２で囲んで示す定番の特徴抽出器に入力されるデータx_0と、太線Ｌ４３で囲んで示す定番の特徴抽出器に入力されるデータx_1は、例えばlabel_0またはlabel_1として同じラベルが設定された、異なるサンプルのデータである。データx_0は、学習用データセットからランダムに選択される。一方、太線Ｌ４４で囲んで示す定番の特徴抽出器に入力されるデータx_2は、データx_0と異なるラベルが設定されたデータである。
【０１７２】
Tripletネットワークは、３つの定番の特徴抽出器のそれぞれの下に、全結合層（Affine層）を付加して構成される。全結合層に対しては、データx_0、データx_1、データx_2のそれぞれの特徴空間上の位置を表すデータが入力される。
【０１７３】
各全結合層の下にはTripletロスを求める層が付加される。Tripletロスは、同一ラベルのデータx_0とデータx_1の距離が近いと小さくなり、別ラベルのデータx_0とデータx_2の距離が遠いと小さくなるロスである。Tripletロスは、下式（４）により表される。式（４）のαはマージンと呼ばれるパラメータであり、例えば１が設定される。
【数４】
2019035364.tif 000006
【０１７４】
太線Ｌ４１で囲んで示す、特徴抽出器における定番の特徴抽出器のパラメータと、太線Ｌ４２，Ｌ４３，Ｌ４４で囲んで示す、Tripletネットワークにおける定番の特徴抽出器のパラメータは共有される。学習によってTripletネットワークのパラメータが更新された場合、特徴抽出器のパラメータも同様に更新される。
【０１７５】
このように、メトリック学習においては、Tripletネットワークが、学習器を構成する定番のネットワークとされる。
【０１７６】
線形層を畳み込み層とするのか全結合層とするのかは、特定されたデータのドメインに応じて選択される。例えば、データのドメインが画像または音声である場合には畳み込み層が選択され、項目またはテキストである場合には、全結合層が選択される。
【０１７７】
図１７に示すような特徴抽出器と学習器が自動的に生成され、デフォルトのネットワークとしてユーザに提示される。２つのネットワークに関する情報が並べて提示されるようにしてもよいし、別々に提示されるようにしてもよい。ネットワークの提示画面において、定番の特徴抽出器の近くに、「ここを改造してください」などの、設計変更を促すメッセージが表示されるようにしてもよい。
【０１７８】
・３−３−３．Siamese／Tripletネットワークを用いたメトリック学習の応用例
メトリック学習を用いることにより、画像や音声等の所定のデータを最初に登録しておき、新たに入力されたデータが、登録済みのデータと同一か否かを判別することが可能になる。このような技術は、例えば顔識別のアプリケーションや物体トラッキングのアプリケーションに用いられる。
【０１７９】
顔識別は、入力された顔画像を、事前に登録された顔画像のリストと照合して人物を識別するものである。学習により、顔の特徴のうち、同じ人か別の人かを判別することに寄与する特徴を用いて特徴抽出器が構築される。
【０１８０】
メトリック学習を用いた顔識別については、例えば下記の文献に開示されている。
・DeepFace - Closing the Gap to Human-Level Performance in Face Verification, Taigman  <https://research.fb.com/publications/deepface-closing-the-gap-to-human-level-performance-in-face-verification/>
・Triplet Similarity Embedding for Face Verification、Sankaranarayanan  <https://arxiv.org/abs/1602.03418>
【０１８１】
物体トラッキングは、動画を構成するフレームのうちの最初のフレームで指定したオブジェクトを、続くフレームの中から検出するものである。メトリック学習を用いた物体トラッキングについては、例えば下記の文献に開示されている。
・Fully-Convolutional Siamese Networks for Object Tracking, Bertinetto  <https://arxiv.org/abs/1606.09549>
【０１８２】
なお、Tripletネットワークについては例えば下記の文献に開示されている。
・Deep metric learning using Triplet network, Hoffer  <https://arxiv.org/abs/1412.6622>
【０１８３】
＜３−４．半教師学習＞
半教師学習は、ラベルありデータとラベルなしデータを用いた学習である。推論器として生成されるネットワークは、解こうとしている問題が回帰問題である場合には予測器となり、分類問題である場合には分類器となる。回帰問題と分類問題について上述した説明と重複する説明については適宜省略する。
【０１８４】
・３−４−１．半教師学習の流れ
（１）前提
ユーザは、ラベルありデータとラベルなしデータを持っていて、別のデータを予測する予測器、または、入力したデータが所属するカテゴリを分類する分類器を作りたいとする。
【０１８５】
この場合、ユーザは、ラベルありデータとラベルなしデータをネットワーク設計支援プログラムに与え、半教師学習を行わせることによって、予測器または分類器を作ることになる。
【０１８６】
（２）事前準備
ユーザは、データセットを事前に用意しておく。データセットには、学習用データセットと評価用データセットが含まれていることが望ましいが、学習用データセットだけでもよい。学習用データセットには、各データにラベルが対応付けられたラベルありデータセットと、ラベルが対応付けられていないラベルなしデータセットの両方のデータセットが含まれる。評価用データセットには、ラベルありデータセットが含まれる。
【０１８７】
例えば、ラベルありデータセットのファイルとラベルなしデータセットのファイルのペア、ラベルありデータセットのファイルとラベルなしデータセットのファイルが区別して保存されたファイルシステムが、データセットとして用意される。
【０１８８】
（３）実行
ユーザは、学習用データセットを指定して、ネットワークの設計をシステムに指示する。システムにおいては、学習用データセットから、半教師学習を行うことが推定される。また、システムにおいては、ユーザが解こうとしている問題が、回帰問題であるのか、分類問題であるのかが推定される。
【０１８９】
回帰問題であると推定された場合、回帰問題を解くための定番の予測器と定番の学習器が生成される。定番の学習器は、定番の予測器に、定番のロス関数を付加することによって生成される。
【０１９０】
また、分類問題であると推定された場合、分類問題を解くための定番の分類器と定番の学習器が生成される。定番の学習器は、定番の分類器に、定番のロス関数を付加することによって生成される。
【０１９１】
自動的に生成された定番のネットワークは、ネットワークのソースコードをディスプレイに表示することによって、または、ネットワークのモジュール構成を示す画像を画面に表示することによってユーザに提示される。
【０１９２】
ユーザは、提示されたネットワークに対して、必要に応じて変更を加えて、学習の実行を指示する。
【０１９３】
システムにおいては、学習用データセットを用いた半教師学習が行われ、予測器または分類器が生成される。ユーザは、最後に、学習によって得られた予測器または分類器を外部に提供する。
【０１９４】
・３−４−２．データセットの例
図１８は、データセットの第１の例を示す図である。
【０１９５】
図１８に示すように、半教師学習の場合、ラベルありデータセットとラベルなしデータセットが用意される。左側に示すラベルありデータセットは図８のデータセットと同じであり、各データには、ラベルが対応付けて管理されている。一方、右側に示すラベルなしデータセットにおいては、ラベルが含まれていない。
【０１９６】
図１８に示すような学習用データセットが入力された場合、システムにおいては、ラベルありデータセットとラベルなしデータセットが学習用データセットに含まれていることに基づいて、半教師学習を行うことが推定される。
【０１９７】
また、図１８の例では、ラベルが整数値でないことに基づいて、ユーザが解こうとしている問題が回帰問題であるとして推定される。解こうとしている問題をユーザが指定するようにしてもよい。
【０１９８】
図１９は、データセットの第２の例を示す図である。
【０１９９】
左側に示すラベルありデータセットは、図１２のデータセットと同じである。ラベルありデータセットからなるファイルシステムにおいて、各ファイルは、ラベルを表すディレクトリに保存されている。
【０２００】
一方、右側に示すラベルなしデータセットは、図９のデータセットと同じである。ラベルなしデータセットからなるファイルシステムにおいて、各ファイルは、ラベルを表すディレクトリ毎に分けるような形ではなく、「ForTraining」のディレクトリに保存されている。
【０２０１】
図１９に示すようなデータセットが入力された場合、システムにおいては、ラベルありデータセットのファイルシステムとラベルなしデータセットのファイルシステムが学習用データセットに含まれていることに基づいて、半教師学習を行うことが推定される。
【０２０２】
また、システムにおいては、ファイルシステムの構造に基づいて、ユーザが解こうとしている問題が分類問題であるとして推定される。解こうとしている問題をユーザが指定するようにしてもよい。
【０２０３】
・３−４−３．半教師学習における定番のネットワーク
図２０は、分類器と学習器の例を示す図である。
【０２０４】
解こうとしている問題が分類問題である場合、図２０の左側に示すように、分類器が生成される。分類器は、定番の分類器を含むように構成される。定番の分類器は、上から順に、全結合層（Affine層）、活性化層（Relu層）、全結合層（Affine層）を重ねることによって構成される。定番の分類器の下の最終層には、ソフト多値分類を表す出力を得るためにSoftmax関数が設定される。定番の分類器のネットワークには入力層（x）と出力層（z）が付加される。
【０２０５】
なお、図２０に示す分類器は、多値分類問題において用いられる図１４の分類器と同じネットワークである。解こうとしている問題が二値分類問題である場合、Softmax関数の層に代えて、図１３を参照して説明したようにSigmoid関数の層が設定される。
【０２０６】
一方、図２０の中央と右側に示すように、ラベルありデータ用学習器とラベルなしデータ用学習器の２つの学習器が生成される。半教師学習における学習器は、ラベルありデータ用とラベルなしデータ用とで別のネットワークになっている。
【０２０７】
ラベルありデータ用学習器は、図１４の学習器＃２と同じである。ラベルありデータ用学習器は、定番の分類器に、SoftmaxCE関数の層を付加して構成される。
【０２０８】
ラベルなしデータ用学習器は、VAT(Virtual Adversarial Training)と呼ばれるネットワークとして構成される。VATについては、例えば下記の文献に開示されている。
・"Distributional Smoothing with Virtual Adversarial Training, Miyato"  <https://arxiv.org/abs/1507.00677>
【０２０９】
ラベルなしデータ用学習器であるVATのネットワークは、Siameseネットワークと同じように定番の分類器を並列に配置し、ロスを多項分布用KL（KLMultinomial）としたネットワークである。太線Ｌ５３で囲んで示す定番の分類器にはデータxが入力され、太線Ｌ５４で囲んで示す定番の分類器にはデータxとともにノイズnが入力される。VATを用いた半教師学習は、データxの確率分布と、ノイズnを加えたデータxの確率分布が滑らかになるパラメータを求めるようにして行われる。
【０２１０】
太線Ｌ５１で囲んで示す、分類器における定番の分類器のパラメータと、太線Ｌ５２，Ｌ５３，Ｌ５４で囲んで示す、学習器における定番の分類器のパラメータは共有される。学習によって学習器のパラメータが更新された場合、分類器のパラメータも同様に更新される。
【０２１１】
このように、半教師学習で分類問題を解く場合には、図１４の学習器＃２と同じ学習器がラベルありデータ用の学習器とされ、VATのネットワークを含む学習器が、ラベルなしデータ用の学習器とされる。
【０２１２】
図２０に示すような分類器と学習器が自動的に生成され、デフォルトのネットワークとしてユーザに提示される。３つのネットワークに関する情報が並べて提示されるようにしてもよいし、別々に提示されるようにしてもよい。ネットワークの提示画面において、定番の分類器の近くに、「ここを改造してください」などの、設計変更を促すメッセージが表示されるようにしてもよい。
【０２１３】
なお、VATのネットワークを用いた学習にはノイズnが必要になる。ノイズnを生成するためのネットワークであるノイズ計算ネットワークも、図２０に示す３つのネットワークとともに自動的に生成され、ユーザに提示される。
【０２１４】
図２１は、ノイズ計算ネットワークの例を示す図である。
【０２１５】
図２１に示すように、ノイズ計算ネットワークは、ラベルなしデータ用のSiameseネットワークを流用したネットワークとされる。太線Ｌ６１，Ｌ６２で囲んで示す、ノイズ計算ネットワークにおける定番の分類器のパラメータは、図２０の定番の分類器のパラメータと共有される。
【０２１６】
ノイズは、ラベルなしデータ用のSiameseネットワークのロスから、ノイズに関する勾配を逆伝搬することによって求められる。この逆伝搬においては、中間層のパラメータの更新を行わないようにするための設定が行われる。
【０２１７】
このようなノイズ計算ネットワークにより求められたノイズは、図２０のラベルなしデータ用学習器に入力され、ロスの計算に用いられる。
【０２１８】
このように、半教師学習時、ラベルなしデータ用学習器に必要なノイズの計算に用いるネットワークについても、デフォルトのネットワークとして自動的に生成される。
【０２１９】
図２２は、予測器と学習器の例を示す図である。
【０２２０】
解こうとしている問題が回帰問題である場合、図２２の左側に示すように、予測器が生成される。予測器は、定番の予測器を含むように構成される。定番の予測器は、上から順に、全結合層（Affine層）、活性化層（Relu層）、全結合層（Affine層）を重ねることによって構成される。定番の予測器のネットワークには入力層（x）と出力層（z）が付加される。
【０２２１】
なお、図２２に示す予測器は、図１０の予測器と同じネットワークである。
【０２２２】
一方、図２２の中央と右側に示すように、ラベルありデータ用学習器とラベルなしデータ用学習器の２つの学習器が生成される。図２２に示す２つの学習器は、ロス関数が回帰問題用の二乗誤差関数に変更されている点を除いて、図２０のラベルありデータ用学習器とラベルなしデータ用学習器と同じである。
【０２２３】
すなわち、図２２のラベルありデータ用学習器は、定番の予測器の最終層に、二乗誤差関数の層を付加して構成される。ラベルありデータ用学習器は図１０の学習器と同じである。
【０２２４】
ラベルなしデータ用学習器であるVATは、Siameseネットワークと同じように定番の予測器を並列に配置し、ロスを二乗誤差としたネットワークである。太線Ｌ７３で囲んで示す定番の予測器にはデータxが入力され、太線Ｌ７４で囲んで示す定番の予測器にはデータxとともにノイズnが入力される。
【０２２５】
ノイズnの計算に用いられるノイズ計算ネットワークは、図２１を参照して説明したネットワークと同じである。
【０２２６】
太線Ｌ７１で囲んで示す、予測器における定番の予測器のパラメータと、太線Ｌ７２，Ｌ７３，Ｌ７４で囲んで示す、学習器における定番の予測器のパラメータは共有される。学習によって学習器のパラメータが更新された場合、予測器のパラメータも同様に更新される。
【０２２７】
このように、半教師学習で回帰問題を解く場合には、図１０を参照して説明した学習器がラベルなしデータ用の学習器とされ、VATのネットワークを含む学習器が、ラベルなしデータ用の学習器とされる。
【０２２８】
図２２に示すような予測器と学習器、および図２１のノイズ計算ネットワークが自動的に生成され、デフォルトのネットワークとしてユーザに提示される。それぞれのネットワークに関する情報を並べて提示されるようにしてもよいし、別々に提示されるようにしてもよい。ネットワークの提示画面において、定番の予測器の近くに、「ここを改造してください」などの、設計変更を促すメッセージが表示されるようにしてもよい。
【０２２９】
＜３−５．生成モデル＞
・３−５−１．生成モデルの学習の流れ
（１）前提
ユーザは、生成したいドメインのデータを持っていて、乱数を入力して擬似データを生成する生成器（生成モデル）を作りたいとする。
【０２３０】
この場合、ユーザは、学習用データセットをネットワーク設計支援プログラムに与え、学習を行わせることによって、このような生成器を作ることになる。生成器の学習には、例えば、変分オートエンコーダ（VAE(Variational Auto Encoder)）が用いられる。VAEについては下記の文献に開示されている。
・Auto-Encoding Variational Bayes, Kingma, 1312.6114v10  <https://arxiv.org/abs/1312.6114>
【０２３１】
また、生成器の学習には、敵対的生成ネットワーク（GAN(Generative Adversarial Network)）が用いられる。GANについては下記の文献に開示されている。
・Generative Adversarial Nets, Goodfellow, 1406.2661v1  <https://arxiv.org/abs/1406.2661>
【０２３２】
（２）事前準備
ユーザは、生成したいドメインのデータからなる学習用データセットを事前に用意しておく。学習用データセットの各データはラベルなしであってもよいが、ドメインがある程度絞られているデータであることが望ましい。
【０２３３】
（３）実行
ユーザは、学習技術（VAEを用いた学習、またはGANを用いた学習など）を指定して、生成器の設計をシステムに指示する。ユーザが生成器を作成しようとしていることが学習用データセットに基づいてシステムにより推定されるようにしてもよい。この場合、生成器の設計を指示することは不要となる。
【０２３４】
システムにおいては、定番の生成器と定番の学習器が生成される。定番の学習器は、定番の生成器に、定番の追加ネットワークとロス関数を付加することによって生成される。
【０２３５】
定番の生成器の構造は、学習用データセットのドメインに基づいて特定される。データのドメインは、学習用データセットに含まれるファイルの拡張子などに基づいて推定される。ドメインがユーザにより入力されるようにしてもよい。
【０２３６】
自動的に生成された定番の生成器と定番の学習器は、ネットワークのソースコードをディスプレイに表示することによって、または、ネットワークのモジュール構成を示す画像を画面に表示することによってユーザに提示される。
【０２３７】
ユーザは、提示されたネットワークに対して、必要に応じて変更を加えて、学習の実行を指示する。
【０２３８】
システムにおいては、学習用データセットを用いた学習が行われ、生成器が生成される。ユーザは、最後に、学習によって得られた生成器を、アプリケーションに適用するなどのために外部に提供する。
【０２３９】
・３−５−２．生成器の定番のネットワーク
図２３は、生成器と、VAEを用いた学習器の例を示す図である。
【０２４０】
図２３の左側に示すように、生成器は、定番の生成器を含み、乱数（と付加情報）であるデータzを入力して、擬似データであるデータxを出力するネットワークとして構成される。定番の生成器は、上から順に、全結合層（Affine層）、活性化層（Relu層）、逆畳み込み層（Deconvolution層）を重ねることによって構成される。定番の分類器にはサンプリング層が設定される。
【０２４１】
一方、図２３の右側に示すように、学習器は、変分オートエンコーダのネットワークとして構成される。破線Ｌ８２で囲んで示すネットワークがエンコーダ側のネットワークとなり、太線Ｌ８３で囲んで示すネットワークがデコーダ側のネットワークとなる。
【０２４２】
エンコーダ側のネットワークは推論モデルであり、太線Ｌ８１で囲んで示す定番の生成器とは異なるパラメータを有する。エンコーダ側のネットワークの出力は、KL距離ロスのネットワークに接続されるとともに、サンプリング層を介して、デコーダ側のネットワークに接続される。
【０２４３】
デコーダ側のネットワークは、太線Ｌ８１で囲んで示す定番の生成器と同一である。デコーダ側のネットワークのパラメータは、定番の生成器のパラメータと共有される。デコーダ側のネットワークに付加されるロスは、データ分布のパラメータを元にした尤度（Likelihood）である。
【０２４４】
エンコーダ側のネットワークの出力のロスであるKL距離ロスと、デコーダ側のネットワークの出力のロスである尤度は、加算されて１つのLossとして出力される。
【０２４５】
図２３に示すような生成器とVAEの学習器が自動的に生成され、デフォルトのネットワークとしてユーザに提示される。２つのネットワークに関する情報が並べて提示されるようにしてもよいし、別々に提示されるようにしてもよい。ネットワークの提示画面において、定番の生成器の近くに、「ここを改造してください」などの、設計変更を促すメッセージが表示されるようにしてもよい。
【０２４６】
図２４は、生成器と、GANを用いた学習器の例を示す図である。
【０２４７】
図２４の左側に示す生成器は、サンプリング層が設けられていない点を除いて、図２３の生成器と同じである。
【０２４８】
一方、図２４の中央と右側に示すように、学習器＃１と学習器＃２の２つの学習器が生成される。
【０２４９】
学習器＃１は、畳み込み層（Convolution層）、活性化層（Relu層）、全結合層（Affine層）を重ねて構成される、discriminatorとしてのネットワークを有する。discriminatorの下には、SigmoidCE関数の層が設けられる。学習器＃１による学習は、入力されたデータxを、真のデータとして判定するようにして行われる。
【０２５０】
学習器＃２は、太線Ｌ９３で囲んで示す定番の生成器をgeneratorとして、generatorの下に、学習器＃１のdiscriminatorと同じネットワーク（破線Ｌ９４で囲んで示すネットワーク）が設けられることによって構成される。discriminatorの下には、SigmoidCE関数の層が付加される。
【０２５１】
generatorには乱数であるデータzが入力され、擬似データx’が出力される。generatorから出力された擬似データx’はdiscriminatorに入力される。学習器＃２による学習は、generatorから出力された擬似データx’を、偽のデータとして判定するようにして行われる。
【０２５２】
太線Ｌ９１で囲んで示す、生成器における定番の生成器のパラメータと、太線Ｌ９３で囲んで示す、学習器＃２におけるgeneratorのパラメータは共有される。学習によってgeneratorのパラメータが更新された場合、生成器のパラメータも同様に更新される。また、破線Ｌ９２で囲んで示す、学習器＃１におけるdiscriminatorのパラメータと、破線Ｌ９４で囲んで示す、学習器＃２におけるdiscriminatorのパラメータは共有される。
【０２５３】
このように、GANは、generatorとしてのネットワークと、discriminatorとしてのネットワークを含むようにして構成される。
【０２５４】
図２４に示すような生成器と学習器＃１，＃２が自動的に生成され、デフォルトのネットワークとしてユーザに提示される。３つのネットワークに関する情報が並べて提示されるようにしてもよいし、別々に提示されるようにしてもよい。ネットワークの提示画面において、定番の生成器（generator）とdiscriminatorの近くに、「ここを改造してください」などの、設計変更を促すメッセージが表示されるようにしてもよい。
【０２５５】
ユーザが生成器を生成しようとしている場合、図２３のVAEのネットワーク、または図２４のGANのネットワークが自動的に生成される。いずれのネットワークが自動的に生成されるようにするのかを、ユーザが選択することができるようにしてもよい。
【０２５６】
＜３−６．問題の推定＞
ユーザが解こうとしている問題の推定は、図１５等を参照して説明したように、ラベルの型が連続値である場合には回帰問題として推定し、ラベルの型が離散値である場合には分類問題として推定するようにして行われる。ここで、半教師学習等の、それ以外の上述した問題を含む場合の推定処理について説明する。
【０２５７】
図２５のフローチャートを参照して、図７のステップＳ２において行われる問題推定処理について説明する。
【０２５８】
ステップＳ５１において、問題推定部１４１は、ステップＳ１で取得したデータセットの中に、解きたい問題の記載が含まれているか否かを判定する。例えば、ユーザが解こうとしている問題を指定したファイルがデータセットに含まれている場合、データセットのファイルシステムの構造が、特定の問題を指定する構造である場合などにおいて、解きたい問題の記載が含まれているものとして判定される。
【０２５９】
解きたい問題の記載がデータセットの中に含まれているとステップＳ５１において判定された場合、図７のステップＳ３に戻り、それ以降の処理が行われる。ステップＳ３においては、データセットによって指定された問題に応じた推論器が生成される。
【０２６０】
一方、解きたい問題の記載がデータセットの中に含まれていないとステップＳ５１において判定した場合、ステップＳ５２において、問題推定部１４１は、学習用データセットの構造を確認する。
【０２６１】
学習用データセットに、ラベルありデータが含まれておらず、ラベルなしデータが含まれている場合、ステップＳ５３において、問題推定部１４１は、ユーザが解こうとしている問題が生成モデルを用いた問題であるとして判定する。
【０２６２】
また、学習用データセットに、ラベルありデータとラベルなしデータが混在している場合、ステップＳ５４において、問題推定部１４１は、ユーザが解こうとしている問題が半教師学習を用いた問題であるとして判定する。半教師学習を用いて回帰問題を解こうとしているのか、分類問題を解こうとしているのかは、上述したようにラベルの型に基づいて判定される。
【０２６３】
学習用データセットに、ラベルなしデータが含まれておらず、ラベルありデータが含まれている場合、ステップＳ５５において、問題推定部１４１は、教師あり学習を用いた問題であるとして推定する。
【０２６４】
教師あり学習を用いた問題であるとして推定した後、ステップＳ５６において、問題推定部１４１は、評価用データセットのラベルに、学習用データセットにないラベルが含まれているか否かを判定する。ここでは、評価用データセットに含まれるラベルと学習用データセットに含まれるラベルが比較され、両方のデータセットに含まれるラベルが同じラベルであるか否かが判定されることになる。
【０２６５】
評価用データセットのラベルに学習用データセットにないラベルが含まれているとステップＳ５６において判定した場合、ステップＳ５７において、問題推定部１４１は、ユーザが解こうとしている問題がメトリック学習を用いた問題であるとして判定する。例えば、メトリック学習によって得られた特徴抽出器を上述した顔識別のアプリケーションに用いる場合、評価用データセットに含まれる人物ID（ラベル）の範囲と、学習用データセットに含まれる人物IDの範囲は異なる範囲となる。
【０２６６】
なお、学習用データセットに含まれるデータが動画ファイルであり、ラベルが、物体の位置（領域）を指定するような値である場合にメトリック学習として判定されるようにしてもよい。
【０２６７】
一方、評価用データセットのラベルに学習用データセットにないラベルが含まれていないとステップＳ５６において判定した場合、ステップＳ５８において、問題推定部１４１は、ユーザが解こうとしている問題が回帰問題または分類問題であるとして判定する。回帰問題と分類問題のうちのいずれの問題であるのかは、上述したようにラベルの型に基づいて判定される。
【０２６８】
なお、ユーザにより入力されたデータセットに学習用データセットのみが含まれ、評価用データセットが含まれていない場合も、評価用データセットのラベルに学習用データセットにないラベルが含まれていないものとして判定される。
【０２６９】
学習用データセットに含まれるデータが時系列データである場合、ステップＳ５９において、問題推定部１４１は、時系列データを用いた学習の問題であるとして推定する。時系列データを用いた学習については後述する。
【０２７０】
ユーザが解こうとしている問題が、生成モデルを用いた問題、半教師学習を用いた問題、メトリック学習を用いた問題、回帰問題、分類問題、時系列データを用いた学習の問題のうちのいずれかの問題として推定された後、処理はステップＳ６０に進む。
【０２７１】
ステップＳ６０において、提示制御部１４３は、「〇〇問題と推定したので〇〇ネットワークを提案します」などのメッセージをネットワーク設計支援プログラムの画面に表示し、問題の推定結果が正しいか否かを確認する。例えば、問題の推定結果が間違っている場合、正しい問題がユーザにより指定される。
【０２７２】
問題の推定結果が正しいか否かが確認された後、図７のステップＳ３に戻り、それ以降の処理が行われる。
【０２７３】
このように、ユーザが解こうとしている問題がシステムにより推定されるため、ユーザは、問題を自ら指定する必要がなく、ネットワークの設計を容易に行うことが可能になる。
【０２７４】
＜＜４．その他＞＞
＜４−１．時系列データ＞
学習用データセットに含まれるデータを時系列データとすることも可能である。学習用データセットに含まれるデータが時系列データである場合、時系列データを構成する各時刻のデータ（スナップショットデータ）を用いて、以上の処理と同様の処理が行われる。
【０２７５】
すなわち、時系列データを用いた学習の問題は、上述した予測器、分類器、特徴抽出器、生成器を時系列方向に拡張したネットワークを用いた処理である。ネットワークの構造を時系列方向に拡張するために、LSTMやGRUと呼ばれるデフォルトのユニットを含むネットワークが用いられる。
【０２７６】
時系列データを用いた学習によって解こうとしている問題に応じた定番の推論器と定番の学習器が生成され、ユーザに提示される。定番の推論器と定番の学習器として生成されるネットワークは、上述した各問題に応じたネットワークと同じネットワークである。推論器の学習はスナップショットデータを用いて行われる。
【０２７７】
＜４−２．変形例＞
デフォルトのネットワークとしてシステムにより自動的に生成されるネットワークは、上述したものに限られない。
【０２７８】
例えば、ユーザが解こうとしている問題が回帰問題である場合、図１０に示すネットワークとは異なるネットワークがデフォルトのネットワークとして生成されるようにすることが可能である。また、ユーザが解こうとしている問題が分類問題である場合、図１３または図１４に示すネットワークとは異なるネットワークがデフォルトのネットワークとして生成されるようにすることが可能である。
【０２７９】
すなわち、設計の定石に沿ったネットワークであれば、他のロス関数が付加されたネットワークがデフォルトのネットワークとして生成されるようにすることが可能である。また、他の構造を有するネットワークがデフォルトのネットワークとして生成されるようにすることが可能である。
【０２８０】
例えば、解決しようとする問題がメトリック学習を用いた問題である場合、上述したsiameseネットワークまたはtripletネットワークではなく、これらから派生したネットワークが学習器として生成されるようにしてもよい。また、解決しようとする問題が、半教師学習を用いた回帰問題または分類問題である場合、上述したVATのネットワークではなく、その派生したネットワークが学習器として生成されるようにしてもよい。さらに、解決しようとする問題が生成モデルを用いた問題である場合、上述した変分オートエンコーダのネットワークまたはGANではなく、これらから派生したネットワークが学習器として生成されるようにしてもよい。
【０２８１】
PC１が実行するネットワーク設計支援プログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２８２】
ネットワーク設計支援プログラムがPC１において実行されるものとしたが、ネットワーク設計支援プログラムがインストールされ、実行される装置はPCに限られない。すなわち、スマートフォン、タブレット端末などの携帯端末においてネットワーク設計支援プログラムが実行されるようにすることも可能である。
【０２８３】
なお、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０２８４】
なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
【０２８５】
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０２８６】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０２８７】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２８８】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２８９】
＜４−３．構成の組み合わせ例＞
本技術は、以下のような構成をとることもできる。
（１）
コンピュータを、
学習用のデータを含むデータセットが指定されることに応じて、前記データセットに対応する推論実行用ネットワークと学習用ネットワークを生成する生成部と、
前記学習用のデータを前記学習用ネットワークに入力し、前記推論実行用ネットワークの学習を行う学習部と
して機能させるためのプログラム。
（２）
前記生成部は、前記学習用のデータのドメインに応じた構造を有する前記推論実行用ネットワークと前記学習用ネットワークを生成する
前記（１）に記載のプログラム。
（３）
前記生成部は、前記学習用のデータのドメインが画像または音声である場合、畳み込み層を有する前記推論実行用ネットワークと前記学習用ネットワークを生成し、前記学習用のデータのドメインが項目またはテキストである場合、全結合層を有する前記推論実行用ネットワークと前記学習用ネットワークを生成する
前記（２）に記載のプログラム。
（４）
前記生成部は、前記推論実行用ネットワークに、推論によって解こうとする問題に応じたロス関数を付加することによって前記学習用ネットワークを生成する
前記（１）乃至（３）のいずれかに記載のプログラム。
（５）
前記生成部は、前記問題が回帰問題である場合、二乗誤差関数を付加し、前記問題が分類問題である場合、クロスエントロピー関数を付加する
前記（４）に記載のプログラム。
（６）
前記生成部は、前記問題がメトリック学習を用いた問題である場合、前記推論実行用ネットワークとパラメータを共有するネットワークを含むsiameseネットワークまたはtripletネットワーク、あるいは、これらから派生したネットワークを、前記学習用ネットワークとして生成する
前記（４）に記載のプログラム。
（７）
前記生成部は、前記問題が、半教師学習を用いた回帰問題または分類問題である場合、前記推論実行用ネットワークとパラメータを共有するネットワークを含むVATのネットワーク、あるいは、その派生したネットワークを、前記学習用ネットワークとして生成する
前記（４）に記載のプログラム。
（８）
前記生成部は、前記問題が、生成モデルを用いた問題である場合、前記推論実行用ネットワークとパラメータを共有するネットワークを含む変分オートエンコーダのネットワークまたはGAN、あるいは、これらから派生したネットワークを、前記学習用ネットワークとして生成する
前記（４）に記載のプログラム。
（９）
前記データセットの内容に基づいて前記問題を推定する問題推定部をさらに備える
前記（４）乃至（８）のいずれかに記載のプログラム。
（１０）
前記問題推定部は、前記データセットにおける正解ラベルが連続値である場合、前記問題が回帰問題であるとして推定し、離散値である場合、前記問題が分類問題であるとして推定する
前記（９）に記載のプログラム。
（１１）
前記問題推定部は、前記学習用のデータと評価用のデータが前記データセットに含まれ、正解ラベルの値の範囲が、前記学習用のデータと前記評価用のデータとで異なる場合、前記問題が、メトリック学習を用いた問題であるとして推定する
前記（９）に記載のプログラム。
（１２）
前記問題推定部は、前記学習用のデータとして、正解ラベルを含むデータと正解ラベルを含まないデータが前記データセットに含まれている場合、前記問題が、半教師学習を用いた回帰問題または分類問題であるとして推定する
前記（９）に記載のプログラム。
（１３）
前記問題推定部は、前記学習用のデータに、正解ラベルが含まれていない場合、前記問題が、生成モデルを用いた問題であるとして推定する
前記（９）に記載のプログラム。
（１４）
前記問題推定部は、前記データセットに含まれる、前記問題を指定するデータに基づいて前記問題を推定する
前記（９）に記載のプログラム。
（１５）
前記生成部により生成された前記推論実行用ネットワークと前記学習用ネットワークに関する情報を提示する提示制御部をさらに備える
前記（１）乃至（１４）のいずれかに記載のプログラム。
（１６）
前記提示制御部は、前記推論実行用ネットワークと前記学習用ネットワークのソースコード、または、前記推論実行用ネットワークと前記学習用ネットワークのモジュール構成を表す画像を提示する
前記（１５）に記載のプログラム。
（１７）
前記生成部は、ユーザによる入力に応じて、提示された前記推論実行用ネットワークと前記学習用ネットワークの設計変更を行う
前記（１５）または（１６）に記載のプログラム。
（１８）
前記生成部による前記推論実行用ネットワークと前記学習用ネットワークの生成は、前記データセットが指定された後、ユーザによる操作によらずに行われる
前記（１）乃至（１７）のいずれかに記載のプログラム。
（１９）
情報処理装置が、
学習用のデータを含むデータセットが指定されることに応じて、前記データセットに対応する推論実行用ネットワークと学習用ネットワークを生成し、
前記学習用のデータを前記学習用ネットワークに入力し、前記推論実行用ネットワークの学習を行う
情報処理方法。
（２０）
学習用のデータを含むデータセットが指定されることに応じて、前記データセットに対応する推論実行用ネットワークと学習用ネットワークを生成する生成部と、
前記学習用のデータを前記学習用ネットワークに入力し、前記推論実行用ネットワークの学習を行う学習部と
を備える情報処理装置。
【符号の説明】
【０２９０】
１  PC，  ２  提供サーバ，  １３１  情報処理部，  １４１  問題推定部，  １４２  ネットワーク生成部，  １４３  提示制御部，  １４４  学習実行部
【図１】
2019035364.tif 000007
【図２】
2019035364.tif 000008
【図３】
2019035364.tif 000009
【図４】
2019035364.tif 000010
【図５】
2019035364.tif 000011
【図６】
2019035364.tif 000012
【図７】
2019035364.tif 000013
【図８】
2019035364.tif 000014
【図９】
2019035364.tif 000015
【図１０】
2019035364.tif 000016
【図１１】
2019035364.tif 000017
【図１２】
2019035364.tif 000018
【図１３】
2019035364.tif 000019
【図１４】
2019035364.tif 000020
【図１５】
2019035364.tif 000021
【図１６】
2019035364.tif 000022
【図１７】
2019035364.tif 000023
【図１８】
2019035364.tif 000024
【図１９】
2019035364.tif 000025
【図２０】
2019035364.tif 000026
【図２１】
2019035364.tif 000027
【図２２】
2019035364.tif 000028
【図２３】
2019035364.tif 000029
【図２４】
2019035364.tif 000030
【図２５】
2019035364.tif 000031
【国際調査報告】
2019035364.tif 000032
2019035364.tif 000033
2019035364.tif 000034
2019035364.tif 000035