(57)【特許請求の範囲】
【請求項１】
所定の学習データを取得する取得部と、
ニューラルネットワークを用いる学習モデルであって、前記ニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数を前記隠れ層の所定のノード群に共通して適用する前記学習モデルに、前記所定の学習データを入力して学習を行う学習部と、
前記所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新される場合、前記第１関数の各重みを調整する調整部と、
前記学習の結果、調整後の前記各重みが前記第１関数に設定される第２関数を生成する生成部と、
を備える情報処理装置。
【請求項２】
所定の学習データを取得する取得部と、
ニューラルネットワークを用いる学習モデルであって、前記ニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数を適用する前記学習モデルに、前記所定の学習データを入力して学習を行う学習部と、
前記所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新される場合、前記第１関数の各重みを調整する調整部と、
前記学習の結果、調整後の前記各重みが前記第１関数に設定される第２関数を生成する生成部と、
前記第２関数と前記所定の学習データの種類とを対応付けて記憶する記憶部と、
を備える情報処理装置。
【請求項３】
前記各関数に活性化関数が用いられる場合、平滑化された活性化関数を含む第１群と、任意の活性化関数を含む第２群とのうち、いずれかの群を選択する選択部をさらに備え、
前記第１関数に用いられる複数の関数は、選択された群の中の活性化関数が用いられる、請求項１又は２に記載の情報処理装置。
【請求項４】
前記各関数は、正規化関数、標準化関数、ノイズ除去関数、平滑化関数、及び正則化関数のいずれか１つの関数である、請求項１又は２に記載の情報処理装置。
【請求項５】
情報処理装置に備えられたプロセッサが、
所定の学習データを取得することと、
ニューラルネットワークを用いる学習モデルであって、前記ニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数を前記隠れ層の所定のノード群に共通して適用する前記学習モデルに、前記所定の学習データを入力して学習を行うことと、
前記所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新される場合、前記第１関数の各重みを調整すること、
前記学習の結果、調整後の前記各重みが前記第１関数に設定される第２関数を生成することと、
を実行する情報処理方法。
【請求項６】
情報処理装置に備えられたプロセッサが、
所定の学習データを取得することと、
ニューラルネットワークを用いる学習モデルであって、前記ニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数を適用する前記学習モデルに、前記所定の学習データを入力して学習を行うことと、
前記所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新される場合、前記第１関数の各重みを調整すること、
前記学習の結果、調整後の前記各重みが前記第１関数に設定される第２関数を生成することと、
前記第２関数と前記所定の学習データの種類とを対応付けることと、
を実行する情報処理方法。
【請求項７】
情報処理装置に備えられたプロセッサに、
所定の学習データを取得することと、
ニューラルネットワークを用いる学習モデルであって、前記ニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数を前記隠れ層の所定のノード群に共通して適用する前記学習モデルに、前記所定の学習データを入力して学習を行うことと、
前記所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新される場合、前記第１関数の各重みを調整すること、
前記学習の結果、調整後の前記各重みが前記第１関数に設定される第２関数を生成することと、
を実行させるプログラム。
【請求項８】
情報処理装置に備えられたプロセッサに、
所定の学習データを取得することと、
ニューラルネットワークを用いる学習モデルであって、前記ニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数を適用する前記学習モデルに、前記所定の学習データを入力して学習を行うことと、
前記所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新される場合、前記第１関数の各重みを調整すること、
前記学習の結果、調整後の前記各重みが前記第１関数に設定される第２関数を生成することと、
前記第２関数と前記所定の学習データの種類とを対応付けることと、
を実行させるプログラム。
【請求項９】
情報処理装置に備えられたプロセッサが、
所定のデータを取得すること、
学習モデルにおけるニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数として、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新され、前記第１関数の各重みが調整された場合の調整後の各重みが前記第１関数に設定される第２関数が前記隠れ層の所定のノード群に共通して適用される、前記学習モデルに前記所定のデータを入力して学習を行うことと、
前記学習の結果を出力すること、
を実行する情報処理方法。
【請求項１０】
情報処理装置に備えられたプロセッサが、
所定のデータを取得すること、
前記所定のデータの特徴に基づいて当該所定のデータの種類を特定すること、
前記所定のデータの各種類に対応する第２関数を記憶する記憶部から、特定された種類に対応する第２関数を抽出することであって、前記第２関数は、学習モデルにおけるニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数に対し、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新され、前記第１関数の各重みが調整された場合の調整後の各重みが前記第１関数に設定される関数である、抽出すること、
前記第２関数が前記隠れ層に適用される前記学習モデルに前記所定のデータを入力して学習を行うことと、
前記学習の結果を出力すること、
を実行する情報処理方法。
【請求項１１】
プロセッサを備える情報処理装置であって、
前記プロセッサが、
所定のデータを取得すること、
学習モデルにおけるニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数として、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新され、前記第１関数の各重みが調整された場合の調整後の各重みが前記第１関数に設定される第２関数が前記隠れ層の所定のノード群に共通して適用される、前記学習モデルに前記所定のデータを入力して学習を行うことと、
前記学習の結果を出力すること、
を実行する情報処理装置。
【請求項１２】
プロセッサを備える情報処理装置であって、
前記プロセッサが、
所定のデータを取得すること、
前記所定のデータの特徴に基づいて当該所定のデータの種類を特定すること、
前記所定のデータの各種類に対応する第２関数を記憶する記憶部から、特定された種類に対応する第２関数を抽出することであって、前記第２関数は、学習モデルにおけるニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数に対し、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新され、前記第１関数の各重みが調整された場合の調整後の各重みが前記第１関数に設定される関数である、抽出すること、
前記第２関数が前記隠れ層に適用される前記学習モデルに前記所定のデータを入力して学習を行うことと、
前記学習の結果を出力すること、
を実行する情報処理装置。
【請求項１３】
情報処理装置に備えられたプロセッサに、
所定のデータを取得すること、
学習モデルにおけるニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数として、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新され、前記第１関数の各重みが調整された場合の調整後の各重みが前記第１関数に設定される第２関数が前記隠れ層の所定のノード群に共通して適用される、前記学習モデルに前記所定のデータを入力して学習を行うことと、
前記学習の結果を出力すること、
を実行させるプログラム。
【請求項１４】
情報処理装置に備えられたプロセッサに、
所定のデータを取得すること、
前記所定のデータの特徴に基づいて当該所定のデータの種類を特定すること、
前記所定のデータの各種類に対応する第２関数を記憶する記憶部から、特定された種類に対応する第２関数を抽出することであって、前記第２関数は、学習モデルにおけるニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数に対し、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新され、前記第１関数の各重みが調整された場合の調整後の各重みが前記第１関数に設定される関数である、抽出すること、
前記第２関数が前記隠れ層に適用される前記学習モデルに前記所定のデータを入力して学習を行うことと、
前記学習の結果を出力すること、
を実行させるプログラム。
【請求項１５】
所定の学習データを取得する取得部と、
ニューラルネットワークを用いる学習モデルであって、前記ニューラルネットワークの隠れ層に使用可能な平滑化された各活性化関数に重み付けして生成される第１関数を適用する前記学習モデルに、前記所定の学習データを入力して学習を行う学習部と、
前記所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新される場合、前記第１関数の各重みを調整する調整部と、
前記学習の結果、調整後の前記各重みが前記第１関数に設定される第２関数を生成する生成部と、
を備える情報処理装置。
【請求項１６】
情報処理装置に備えられたプロセッサが、
所定の学習データを取得することと、
ニューラルネットワークを用いる学習モデルであって、前記ニューラルネットワークの隠れ層に使用可能な平滑化された各活性化関数に重み付けして生成される第１関数を適用する前記学習モデルに、前記所定の学習データを入力して学習を行うことと、
前記所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新される場合、前記第１関数の各重みを調整すること、
前記学習の結果、調整後の前記各重みが前記第１関数に設定される第２関数を生成することと、
を実行する情報処理方法。
【請求項１７】
情報処理装置に備えられたプロセッサに、
所定の学習データを取得することと、
ニューラルネットワークを用いる学習モデルであって、前記ニューラルネットワークの隠れ層に使用可能な平滑化された各活性化関数に重み付けして生成される第１関数を適用する前記学習モデルに、前記所定の学習データを入力して学習を行うことと、
前記所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新される場合、前記第１関数の各重みを調整すること、
前記学習の結果、調整後の前記各重みが前記第１関数に設定される第２関数を生成することと、
を実行させるプログラム。
【請求項１８】
情報処理装置に備えられたプロセッサが、
所定のデータを取得すること、
学習モデルにおけるニューラルネットワークの隠れ層に使用可能な平滑化された各活性化関数に重み付けして生成される第１関数として、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新され、前記第１関数の各重みが調整された場合の調整後の各重みが前記第１関数に設定される第２関数が適用される、前記学習モデルに前記所定のデータを入力して学習を行うことと、
前記学習の結果を出力すること、
を実行する情報処理方法。
【請求項１９】
プロセッサを備える情報処理装置であって、
前記プロセッサが、
所定のデータを取得すること、
学習モデルにおけるニューラルネットワークの隠れ層に使用可能な平滑化された各活性化関数に重み付けして生成される第１関数として、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新され、前記第１関数の各重みが調整された場合の調整後の各重みが前記第１関数に設定される第２関数が適用される、前記学習モデルに前記所定のデータを入力して学習を行うことと、
前記学習の結果を出力すること、
を実行する情報処理装置。
【請求項２０】
情報処理装置に備えられたプロセッサに、
所定のデータを取得すること、
学習モデルにおけるニューラルネットワークの隠れ層に使用可能な平滑化された各活性化関数に重み付けして生成される第１関数として、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新され、前記第１関数の各重みが調整された場合の調整後の各重みが前記第１関数に設定される第２関数が適用される、前記学習モデルに前記所定のデータを入力して学習を行うことと、
前記学習の結果を出力すること、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、いわゆる人工知能を様々な問題に応用する試みがなされている。例えば、下記特許文献１には、様々な現実的な事象における問題の解決に用いることを目的としたモデル選択装置が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１９−２２００６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ニューラルネットワークを用いる学習モデルにおいて、隠れ層（中間層）に使用される関数について、開発者の経験等により既存の関数が選択されるのが現状である。例えば、活性化関数として、ＲｅＬｕ関数やシグモイド関数が選ばれることが多い。しかし、その理由としては、多くの研究で使われているから、という理論的な理由ではなく感覚的な理由が多い。そのため、入力データに対し、必ずしもその入力データに適応した活性化関数が選択されているわけではなかった。また、活性化関数だけではなく、隠れ層において使用される正規化関数、ノイズ除去（denoising operation）関数、正則化関数、平滑化関数などにおいても同様の問題がある。
【０００５】
そこで、本発明の目的の１つは、ニューラルネットワークにおける隠れ層に適用される関数を、より適切にすることを可能にする情報処理装置、情報処理方法及びプログラムを提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る情報処理装置は、所定の学習データを取得する取得部と、ニューラルネットワークを用いる学習モデルであって、前記ニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数を適用する前記学習モデルに、前記所定の学習データを入力して学習を行う学習部と、前記所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いて前記ニューラルネットワークのパラメータが更新される場合、前記第１関数の各重みを調整する調整部と、前記学習の結果、調整後の前記各重みが前記第１関数に設定される第２関数を生成する生成部と、を備える。
【発明の効果】
【０００７】
本発明によれば、ニューラルネットワークにおける隠れ層に適用される関数を、より適切にすることを可能にする情報処理装置、情報処理方法及びプログラムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る情報処理装置の物理的構成の一例を示す図である。
【図２】実施形態に係る情報処理装置の処理ブロックの一例を示す図である。
【図３】実施形態に係る学習モデルの一例を示す図である。
【図４】実施形態に係る隠れ層に適用される関数を説明するための図である。
【図５】実施形態に係る関数ライブラリの一例を示す図である。
【図６】実施形態に係るデータの種類及び第２関数の対応データの一例を示す図である。
【図７】実施形態に係る学習フェーズにおける処理の一例を示すフローチャートである。
【図８】実施形態に係る推論フェーズにおける処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【００１０】
［実施形態］
＜処理構成＞
図１は、実施形態に係る情報処理装置１０の物理的構成の一例を示す図である。情報処理装置１０は、演算部に相当するＣＰＵ（Central Processing Unit）１０ａと、記憶部に相当するＲＡＭ（Random Access Memory）１０ｂと、記憶部に相当するＲＯＭ（Read only Memory）１０ｃと、通信部１０ｄと、入力部１０ｅと、表示部１０ｆと、を有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。
【００１１】
本実施形態では、情報処理装置１０が一台のコンピュータで構成される場合について説明するが、情報処理装置１０は、複数のコンピュータ又は複数の演算部が組み合わされて実現されてもよい。また、図１で示す構成は一例であり、情報処理装置１０はこれら以外の構成を有してもよいし、これらの構成のうち一部を有さなくてもよい。
【００１２】
ＣＰＵ１０ａは、ＲＡＭ１０ｂ又はＲＯＭ１０ｃに記憶されたプログラムの実行に関する制御やデータの演算、加工を行う制御部である。ＣＰＵ１０ａは、隠れ層に適用される関数をより適切にするための学習モデルを用いて学習を行うプログラム（学習プログラム）を実行する演算部である。ＣＰＵ１０ａは、入力部１０ｅや通信部１０ｄから種々のデータを受け取り、データの演算結果を表示部１０ｆに表示したり、ＲＡＭ１０ｂに格納したりする。
【００１３】
ＲＡＭ１０ｂは、記憶部のうちデータの書き換えが可能なものであり、例えば半導体記憶素子で構成されてよい。ＲＡＭ１０ｂは、ＣＰＵ１０ａが実行するプログラム、隠れ層に適用される関数に関する関数データ、この関数を適用する隠れ層を有する学習モデル、データのカテゴリと学習モデルとの対応関係を示すデータなどのデータを記憶してもよい。なお、これらは例示であって、ＲＡＭ１０ｂには、これら以外のデータが記憶されていてもよいし、これらの一部が記憶されていなくてもよい。
【００１４】
ＲＯＭ１０ｃは、記憶部のうちデータの読み出しが可能なものであり、例えば半導体記憶素子で構成されてよい。ＲＯＭ１０ｃは、例えば学習プログラムや、書き換えが行われないデータを記憶してよい。
【００１５】
通信部１０ｄは、情報処理装置１０を他の機器に接続するインターフェースである。通信部１０ｄは、インターネット等の通信ネットワークに接続されてよい。
【００１６】
入力部１０ｅは、ユーザからデータの入力を受け付けるものであり、例えば、キーボード及びタッチパネルを含んでよい。
【００１７】
表示部１０ｆは、ＣＰＵ１０ａによる演算結果を視覚的に表示するものであり、例えば、ＬＣＤ（Liquid Crystal Display）により構成されてよい。表示部１０ｆが演算結果を表示することは、ＸＡＩ（eXplainable AI：説明可能なＡＩ）に貢献し得る。表示部１０ｆは、例えば、学習結果や、関数データを表示してもよい。
【００１８】
学習プログラムは、ＲＡＭ１０ｂやＲＯＭ１０ｃ等のコンピュータによって読み取り可能な記憶媒体に記憶されて提供されてもよいし、通信部１０ｄにより接続される通信ネットワークを介して提供されてもよい。情報処理装置１０では、ＣＰＵ１０ａが学習プログラムを実行することにより、後述する図２を用いて説明する様々な動作が実現される。なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、情報処理装置１０は、ＣＰＵ１０ａとＲＡＭ１０ｂやＲＯＭ１０ｃが一体化したＬＳＩ（Large-Scale Integration）を備えていてもよい。また、情報処理装置１０は、ＧＰＵ（Graphical Processing Unit）やＡＳＩＣ（Application Specific Integrated Circuit）を備えていてもよい。
【００１９】
＜処理構成＞
図２は、実施形態に係る情報処理装置１０の処理ブロックの一例を示す図である。情報処理装置１０は、取得部１１、学習部１２、調整部１３、生成部１４、選択部１５、出力部１６、及び記憶部１７を備える。情報処理装置１０は、汎用のコンピュータで構成されてもよい。
【００２０】
取得部１１は、所定の学習データを入力する。例えば、取得部１１は、公知の訓練データを入力する。訓練データには、例えばアノテーションがなされた教師ラベルが付与されているとよい。また、取得部１１は、訓練データに対応するテストデータを入力してもよい。
【００２１】
学習部１２は、ニューラルネットワークを用いる学習モデル１２ａであって、ニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数を適用する、この学習モデル１２ａに、取得された所定の学習データを入力して学習を行う。例えば、学習部１２は、隠れ層の活性化関数、正規化関数、正則化関数、ノイズ除去関数、平滑化関数の少なくとも１つを第１関数に適用した学習モデル１２ａの学習を実行する。いずれを用いるかは、学習される所定の問題、又は所定のデータセットに対して、適宜設定されるとよい。
【００２２】
所定の問題は、例えば画像データ、系列データ及びテキストデータの少なくともいずれかについて、分類、生成及び最適化の少なくともいずれかを行う問題を含む。ここで、画像データは、静止画のデータと、動画のデータとを含む。系列データは、音声データや株価のデータを含む。
【００２３】
また、所定の学習モデル１２ａは、ニューラルネットワークを含む学習モデルであり、例えば、画像認識モデル、系列データ解析モデル、ロボットの制御モデル、強化学習モデル、音声認識モデル、音声生成モデル、画像生成モデル、自然言語処理モデル等の少なくとも１つを含む。また、具体例としては、所定の学習モデル１２ａは、ＣＮＮ（Convolutional Neural Network）、ＲＮＮ（Recurrent Neural Network）、ＤＮＮ（Deep Neural Network）、ＬＳＴＭ（Long Short-Term Memory）、双方向ＬＳＴＭ、ＤＱＮ（Deep Q-Network）、ＶＡＥ（Variational AutoEncoder）、ＧＡＮｓ（Generative Adversarial Networks）、ｆｌｏｗ−ｂａｓｅｄ生成モデル等のいずれかでもよい。
【００２４】
また、学習モデル１２ａは、学習済みモデルを枝刈り（Pruning）、量子化（Quantization）、蒸留（Distillation）又は転移（Transfer）して得られるモデルを含む。なお、これらは一例に過ぎず、学習部１２は、これら以外の問題について、学習モデルの機械学習を行ってもよい。
【００２５】
図３は、実施形態に係る学習モデル１２ａの一例を示す図である。図３に示す例において、学習モデル１２ａは、入力層３１、隠れ層３２及び出力層３３を含むニューラルネットワークにより構成される。学習部１２は、所定の訓練データを学習データとして教師あり学習を行い、第１関数の各重みを調整した学習モデル１２ａを生成する。具体的には、学習部１２は、訓練データを入力層３１に入力し、出力層３３から最適な学習結果が出力されるように、ハイパーパラメータ等の学習を行う。このとき、調整部１３は、ハイパーパラメータが更新（調整）される際に、隠れ層３２に適用される第１関数の各重みを調整する。
【００２６】
図４は、実施形態に係る隠れ層に適用される関数を説明するための図である。図４に示す例では、隠れ層３２における所定の関数１が適用されるノード群Ｎ１と、所定の関数２が適用されるノード群Ｎ２とが示される。例えば、所定の関数１には、活性化関数が適用され、所定の関数２には、正規化関数、ノイズ除去関数、正則化関数、平滑化関数などが適用されるが、これらの例に限られるものではない。また、ノード群Ｎ１とノード群Ｎ２における隠れ層３２の位置関係も一例であって、隠れ層３２内のその他の位置に設けられてもよい。これにより、隠れ層３２に適用される所定の関数１及び／又は所定の関数２をより適切に設定することで、学習モデル１２ａの学習精度の向上を図ることができるようになる。
【００２７】
図２に戻り、調整部１３は、所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いてニューラルネットワークのパラメータが更新される場合、第１関数の各重みを調整する。例えば、学習部１２は、学習モデル１２ａを学習する際に、学習データ（訓練データ）の教師ラベルに基づいて誤差逆伝搬法により学習モデル１２ａのハイパーパラメータやバイアスを更新する。この際に、調整部１３は、第１関数の各重みについて所定の方法により調整を行う。また、学習部１２によるハイパーパラメータ等の更新がされずに、調整部１３による各重みの調整が行われ、それぞれのハイパーパラメータ等で、損失関数が最小となる各重みが記憶されてもよい。
【００２８】
例えば、各重みの調整については、あらかじめ設定される初期値から逐次的に各重みが調整されるとよい。このとき、各重みが全て加算して１になるように調整され、以前に行った調整と異なる調整が行われればいずれの調整方法が用いられてもよい。例えば、調整部１３は、各重みを順に所定値ずつ変更していき、全ての組み合わせについて変更する。例えば、調整部１３は、重みｗkに対して初期値から所定値ずつ減算し、重みｗk+1に対して初期値から所定値ずつ加算し、どちらかの重みが０以下、又は１以上になると、ｋに１を加算して、各初期値からの変更を繰り返す。また、各重みが全て加算して１になる条件は設けなくてもよく、この場合、Ｓｏｆｔｍａｘ関数などを用いて、各重みを加算して１になるように最後に調整されればよい。
【００２９】
生成部１４は、学習部１２による学習が所定条件を満たすことで終了した結果、調整後の各重みが第１関数に設定される第２関数を生成する。生成部１４は、学習が終了した時点において、最終的な各重みは第１関数に設定されているので、この最終的な第１関数を第２関数としてもよい。また、生成部１４は、各ハイパーパラメータに対して損失関数を最小とする各重みが記憶されている場合は、損失関数が最も小さい値を示すハイパーパラメータに対する各重みを特定し、第２関数を生成してもよい。
【００３０】
例えば、第１関数は、各関数に重みを付けて線形結合した式などである。第２関数は、第１関数と基本的な式の構造は同じであり、各関数の重みが、機械学習が行われ、調整された後の値が設定される。
【００３１】
以上の処理により、ニューラルネットワークにおける隠れ層に適用される関数を、より適切にすることを可能にする。従来、エンジニアの経験則で適用されていた隠れ層の関数について、様々な関数を複合的に用いて新たな関数を生成し、取り扱うデータに応じて構築される隠れ層を含む学習モデルを用いることにより、学習精度を向上させることができる。
【００３２】
第１関数として、上記例のように、既存の各関数に重みを付けて線形結合する場合、経験則的に用いられていた関数の重みの初期値を例えば１とすれば、この場合よりも学習精度がよくなるように、各関数の重み調整が調整部１３により行われる。したがって、経験則的に用いられる関数よりも、調整後の重みが設定された第２関数を用いることで、学習精度が向上することが期待できる。
【００３３】
（活性化関数）
隠れ層の関数として、活性化関数を例にする場合、第１関数に用いられる複数の関数は、活性化関数として適用される関数を含み、第２関数は、活性化関数に関する関数を含む。第２関数は、例えば、調整後の重みが各活性化関数に乗算されて新たに生成される関数である。
【００３４】
例えば、活性化関数は、Ｓｗｉｓｈ、Ｇａｕｓｓｉａｎ  Ｅｒｒｏｒ  Ｌｉｎｅａｒ  Ｕｎｉｔ、Ｅｘｐｏｎｅｎｔｉａｌ  Ｌｉｎｅａｒ  Ｕｎｉｔ、ＳｍｏｏｔｈＲｅＬＵ、Ｂｅｎｔ  Ｉｄｅｎｔｉｔｙ関数、シグモイド関数（sigmoid）、ｌｏｇＳｉｇｍｏｉｄ関数、ｔａｎｈ関数、ｔａｎｈＳｈｒｉｎｋ関数、ＥＬＵ関数、ＳＥＬＵ関数、ＣＥＬＵ関数、ｓｏｆｔｐｌｕｓ関数、ＡＣＯＮ関数、Ｍｉｓｈ関数、ｔａｎｈＥｘｐ関数などである。これらの活性化関数は、平滑化された関数であり、微分可能な関数である。また、これらの活性化関数のうち、少なくとも２つ以上の関数が第１関数に用いられる。
【００３５】
また、活性化関数の他の例として、ステップ関数（step）、恒等関数（identity）  、ｈａｒｄＳｈｒｉｎｋ関数、Ｔｈｒｅｓｈｏｌｄ関数、ｈａｒｄＳｉｇｍｏｉｄ関数、ｈａｒｄｔａｎｈ関数、ＲｅＬＵ関数、ＲｅＬＵ６関数、ｌｅａｋｙ−ＲｅＬＵ関数、ソフトマックス関数（softmax）、ｓｏｆｔｍｉｎ関数、ｓｏｆｔｓｉｇｎ関数、ｈａｒｄＳｗｉｓｈ関数などもある。これらの関数は、平滑化されていない関数であり、微分できない点が存在する。第１関数は、平滑化に関せず上述した活性化関数を含む活性化関数ライブラリの中から任意の活性化関数が選択されて生成されてもよい。なお、活性化関数ライブラリに含まれる活性化関数は、上記例に限られるものではなく、活性化関数として適用可能な関数を含む。
【００３６】
なお、活性化関数に関する第１関数Ｆ1（ｘ）の例として、式（１）が挙げられるが、あくまでも一例にすぎない。
Ｆ1（ｘ）＝Ｗ1Ａ1＋Ｗ2Ａ2＋Ｗ3Ａ3…＋ＷnＡn    式（１）
Ｗn：重み
Ａn：活性化関数
【００３７】
これにより、活性化関数として、適応的に変更が可能な関数を定義することが可能になる。また、単一の活性化関数よりも精度が高くなるように学習済みの各重みが設定された第２関数を適用することで、ニューラルネットワークの学習精度を向上させることができる。
【００３８】
また、活性化関数ライブラリが用いられる場合、つまり、第１関数の各関数に活性化関数が用いられる場合、平滑化された活性化関数を含む第１群と、任意の活性化関数を含む第２群とのうち、いずれかの群を選択する選択部１５をさらに備えてもよい。例えば、選択部１５は、ユーザの操作に応じて、第１群か第２群かを選択し、選択した群の中から任意の活性化関数を用いて第１関数を生成する。なお、第１群には、上述した平滑化された関数が含まれ、第２群には、上述した全ての関数が含まれてもよい。すなわち、第１群と第２群とにおいて、重複する活性化関数が含まれてもよい。
【００３９】
これにより、第１群が選択された場合には、敵対的攻撃（Adversarial Attack）に対する防御手法となる活性化関数を生成することが可能になる。以下、第１群の活性化関数が敵対的攻撃への防御主張となることについて説明する。
【００４０】
敵対例（adversarial example, AE）とは、入力データに摂動（perturbation）を加えたデータである。通常、敵対例は、ノイズを加えた画像を指すが、実際には自然言語などあらゆるＡＩに適用出来る概念である。ここでは理解を容易にするため画像認識の例をあげて説明をする。人間の目には、元画像とＡＥはほとんど同じに見えるにも関わらず、機械学習による推論結果は変わる。つまり、ＡＥは、学習精度が下がり、推論結果として望ましい結果が得られない。
【００４１】
ＡＥによる攻撃への対抗手段は、ＡＥ自体を学習することである。これを敵対訓練（adversarial training, AT）という。ＡＴにはいくつか種類があるが、ＡＥが正しく識別されるようになると、逆に、元画像が正しく識別されなくなることがある。言い換えると、データの多少のブレに対応できる代わりに学習精度が下がる。一般的に、機械学習モデルのロバスト性（頑健性、堅牢性、robustness）と正確性（accuracy）はトレードオフであり、ＡＴにおいても同様に成り立つと考えられてきた。
【００４２】
しかし、ｓｍｏｏｔｈ  ａｄｖｅｒｓａｒｉａｌ  ｔｒａｉｎｉｎｇ（Cihang Xie, Mingxing Tan, Boqing Gong, Alan Yuille, Quoc V. Le, "Smooth adversarial training," arXiv:2006.14536, Jun 25, 2020）の研究（以下、「本研究」ともいう。）では、ＡＥが勾配をもとに生成されることと、勾配は活性化関数を微分したものであることに着目し、より良いＡＴを行うためには活性化関数が平滑（smooth）であるべきだと結論付けた（smooth adversarial training, SAT）。
【００４３】
また、よく使用されるＲｅｓＮｅｔの活性化関数はＲｅＬＵであるが、本研究では、ＲｅＬＵの非平滑性がＡＴを弱体化させていることを明らかにし、ＳＡＴがＡＴを強化していることが検証された。
【００４４】
よって、第１関数に用いられる複数の活性化関数として、微分可能な活性化関数の集合である第１群の活性化関数ライブラリを使用することで、第２関数は、敵対訓練を強化することが可能である。
【００４５】
なお、第１群に含まれる活性化関数を用いて生成される第１関数Ｆ2（ｘ）の例として、式（２）が挙げられるが、あくまでも一例にすぎない。
Ｆ2（ｘ）＝Ｗ1ＡＲ1＋Ｗ2ＡＲ2＋Ｗ3ＡＲ3…＋ＷnＡＲn    式（２）
Ｗn：重み
ＡＲn：微分可能な活性化関数（平滑化の活性化関数）
【００４６】
これにより、活性化関数として、適応的に変更が可能な関数を定義することが可能になる。また、単一の平滑化の活性化関数よりも精度が高くなるように学習済みの各重みが設定された第２関数を適用することで、ニューラルネットワークの学習精度を向上させつつ、頑健性も向上させることができる。
【００４７】
（次元圧縮関数）
隠れ層の関数として、正規化関数又は標準化関数を例にする場合、第１関数に用いられる複数の関数は、正規化関数又は標準化関数として適用される関数を含み、第２関数は、正規化関数又は標準化関数に関する関数を含む。ここで、正規化関数及び標準化関数をまとめて次元圧縮関数と呼ぶ。第２関数は、例えば、調整後の重みが各次元圧縮関数に乗算されて新たに生成される関数である。
【００４８】
例えば、正規化関数は、バッチ正規化(BN)、主成分分析（PCA）、特異値分解（SVD）、ゼロ位相成分分析（ZCA）、局所的応答正規化（LRN）、大域コントラスト正規化（GCN）、局所コントラスト正規化（LCN）などである。
【００４９】
また、標準化関数は、例えば、ＭｉｎＭａｘＳｃａｌｅｒ、ＳｔａｎｄａｒｄＳｃａｌｅｒ、ＲｏｂｕｓｔＳｃａｌｅｒ、Ｎｏｒｍａｌｉｚｅｒなどである。第１関数は、上述した次元圧縮関数を含む次元圧縮関数ライブラリの中から任意の次元圧縮関数が選択されて生成されてもよい。なお、次元圧縮関数ライブラリに含まれる次元圧縮関数は、上記例に限られるものではなく、次元圧縮関数として適用可能な関数を含んでもよい。また、次元圧縮関数は、学習対象のデータの特性に応じて、正規化又は標準化が選択されて、選択された関数の中から第１関数が生成されてもよい。
【００５０】
なお、次元圧縮関数を用いて生成される第１関数Ｆ3（ｘ）の例として、式（３）が挙げられるが、あくまでも一例にすぎない。
Ｆ3（ｘ）＝Ｗ1Ｎ1＋Ｗ2Ｎ2＋Ｗ3Ｎ3…＋ＷnＮn    式（３）
Ｗn：重み
Ｎn：次元圧縮関数
【００５１】
これにより、次元圧縮関数として、適応的に変更が可能な関数を定義することが可能になる。また、単一の次元圧縮関数よりも精度が高くなるように学習済みの各重みが設定された第２関数を適用することで、各入力データのスケールの違いをそろえることができ、ニューラルネットワークの学習精度を向上させることができる。
【００５２】
（ノイズ除去関数）
隠れ層の関数として、ノイズ除去（denoising operation）に関する関数を例にする場合、第１関数に用いられる複数の関数は、ノイズ除去関数として適用される関数を含み、第２関数は、ノイズ除去関数に関する関数を含む。第２関数は、例えば、調整後の重みが各ノイズ除去関数に乗算されて新たに生成される関数である。
【００５３】
例えば、ノイズ除去関数は、ｎｏｎ−ｌｏｃａｌ、ＧＡＵＳＳＩＡＮ  ｓｏｆｔｍａｘ、Ｄｏｔ  Ｐｒｏｄｕｃｔ  ｓｅｔｓ、Ｂｉｌａｔｅｒａｌ  ｆｉｌｔｅｒ、Ｍｅａｎ  ｆｉｌｔｅｒ、Ｍｅｄｉａｎ  ｆｉｌｔｅｒなどである。第１関数は、上述したノイズ除去関数を含むノイズ除去関数ライブラリの中から任意のノイズ除去関数が選択されて生成されてもよい。なお、ノイズ除去関数ライブラリに含まれるノイズ除去関数は、上記例に限られるものではなく、ノイズ除去関数として適用可能な関数を含んでもよい。
【００５４】
なお、ノイズ除去関数を用いて生成される第１関数Ｆ4（ｘ）の例として、式（４）が挙げられるが、あくまでも一例にすぎない。
Ｆ4（ｘ）＝Ｗ1Ｄ1＋Ｗ2Ｄ2＋Ｗ3Ｄ3…＋ＷnＤn    式（４）
Ｗn：重み
Ｄn：ノイズ除去関数
【００５５】
これにより、ノイズ除去関数として、適応的に変更が可能な関数を定義することが可能になる。また、単一のノイズ除去関数よりも精度が高くなるように学習済みの各重みが設定された第２関数を適用することで、入力データのノイズを適切に除去することができ、ニューラルネットワークの学習精度を向上させることができる。
【００５６】
（平滑化関数）
隠れ層の関数として、平滑化に関する関数を例にする場合、第１関数に用いられる複数の関数は、平滑化関数として適用される関数を含み、第２関数は、平滑化関数に関する関数を含む。第２関数は、例えば、調整後の重みが各平滑化関数に乗算されて新たに生成される関数である。
【００５７】
例えば、平滑化関数は、移動平均フィルター、Ｓａｖｉｔｚｋｙ−Ｇｏｌａｙ  ｆｉｌｔｅｒ、フーリエ変換、局所回帰平滑化（LowessとLoess、局所回帰法、ロバスト局所回帰など）などである。第１関数は、上述した平滑化関数を含む平滑化関数ライブラリの中から任意の平滑化関数が選択されて生成されてもよい。なお、平滑化関数ライブラリに含まれる平滑化関数は、上記例に限られるものではなく、平滑化関数として適用可能な関数を含んでもよい。
【００５８】
なお、平滑化関数を用いて生成される第１関数Ｆ5（ｘ）の例として、式（５）が挙げられるが、あくまでも一例にすぎない。
Ｆ5（ｘ）＝Ｗ1Ｓ1＋Ｗ2Ｓ2＋Ｗ3Ｓ3…＋ＷnＳn    式（５）
Ｗn：重み
Ｓn：平滑化関数
【００５９】
これにより、平滑化関数として、適応的に変更が可能な関数を定義することが可能になる。また、単一の平滑化関数よりも精度が高くなるように学習済みの各重みが設定された第２関数を適用することで、例えば、系列データが入力される際にノイズを適切に除去することができ、ニューラルネットワークの学習精度を向上させることができる。
【００６０】
（正則化関数）
隠れ層の関数として、正則化に関する関数を例にする場合、第１関数に用いられる複数の関数は、正則化関数として適用される関数を含み、第２関数は、正則化関数に関する関数を含む。第２関数は、例えば、調整後の重みが各正則化関数に乗算されて新たに生成される関数である。
【００６１】
例えば、正則化関数は、Ｌ１正則化[Tibshirani, 1996]、Ｌ２正則化[Tikhonov, 1943]、Ｗｅｉｇｈｔ  ｄｅｃａｙ [Hanson and Pratt, 1988]、Ｅａｒｌｙ  Ｓｔｏｐｐｉｎｇ [Morgan and Bourlard, 1990]、Ｄｒｏｐｏｕｔ [Srivastava et al., 2014]、Ｂａｔｃｈ  ｎｏｒｍａｌｉｚａｔｉｏｎ  [Ioffe and Szegedy, 2015]、Ｍｉｘｕｐ [Zhang et al., 2018]、Ｉｍａｇｅ  ａｕｇｍｅｎｔ [Shorten and Khoshgoftaar, 2019]
・Flooding[Ishida,2020]などである。第１関数は、上述した正則化関数を含む正則化関数ライブラリの中から任意の正則化関数が選択されて生成されてもよい。なお、正則化関数ライブラリに含まれる正則化関数は、上記例に限られるものではなく、正則化関数として適用可能な関数を含んでもよい。
【００６２】
なお、正則化関数を用いて生成される第１関数Ｆ6（ｘ）の例として、式（６）が挙げられるが、あくまでも一例にすぎない。
Ｆ6（ｘ）＝Ｗ1Ｌ1＋Ｗ2Ｌ2＋Ｗ3Ｌ3…＋ＷnＬn    式（６）
Ｗn：重み
Ｌn：正則化関数
【００６３】
これにより、正則化関数として、適応的に変更が可能な関数を定義することが可能になる。また、単一の正則化関数よりも精度が高くなるように学習済みの各重みが設定された第２関数を適用することで、例えば、過学習を適切に防止することができ、ニューラルネットワークの学習精度を向上させることができる。
【００６４】
上述した機械学習により調整された各重みを有する第２関数を用いる学習モデルに対し、テストデータで学習結果（推論結果）の評価が行われてもよい。既存の関数が用いられる学習モデルによる第１評価結果（分類問題であれば分類精度）と、第２関数が適用された学習モデルによる第２評価結果とが比較される。第２評価結果の方が第１評価結果よりも実際に高い場合に、第２関数が適用されるようにすればよい。
【００６５】
以上、学習フェーズにおける情報処理装置１０の処理について説明した。以下、学習フェーズで生成された第２関数が適用される学習モデルを用いて、未知のデータに対して学習（推論）を行う場合の推論フェーズにおける情報処理装置１０の処理について説明する。
【００６６】
取得部１１は、所定のデータを取得する。例えば、取得部１１は、記憶部１７に記憶されたデータを取得してもよいし、ネットワークを介して受信されたデータを取得してもよいし、ユーザ操作に応じて取得されてもよい。
【００６７】
学習部１２は、上述した第２関数が適用される学習モデルに、取得部１１により取得された所定のデータを入力して学習を行う。この学習モデルは、ニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数を用いる学習モデルである。各重みは、誤差逆伝搬法を用いてニューラルネットワークのパラメータが更新される場合、第１関数の各重みが調整され、調整後の各重みが設定される。また、ニューラルネットワークのパラメータが更新される場合、第１関数の各重みが調整されるとは、誤差逆伝搬法を用いてニューラルネットワークのパラメータが更新される前に、第１関数の各重みが一通り調整されてから、ニューラルネットワークのパラメータが更新されて、また、第１関数の各重みが一通り調整されることも含む。
【００６８】
例えば、この学習モデルにおけるニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数として、誤差逆伝搬法を用いてニューラルネットワークのパラメータが更新され、第１関数の各重みが調整された場合の調整後の各重みが第１関数に設定される第２関数が適用される。
【００６９】
上述したとおり、推論フェーズでは、学習フェーズにより学習され、調整された各重みが設定された第１関数（第２関数と同義）を隠れ層に適用した学習モデルが利用される。また、隠れ層に適用される第２関数について、必ずしも事前の学習が必要というわけではなく、複数の関数を複合的に用いて結合した１つの関数（例えば、線形結合する関数）に係る係数又は重みが適切に調整されていればよい。
【００７０】
出力部１６は、学習部１２により学習の結果を出力する。例えば、出力部１６は、学習部１２による推論結果を出力結果として出力する。これにより、隠れ層３２における関数をより適切にした学習モデルを利用して推論を行うことが可能になり、より適切な推論結果を得ることができるようになる。
【００７１】
また、学習フェーズにおいて、訓練データの種類、例えば、画像データ、系列データ、テキストデータなどのデータの種類に応じて、それぞれ適切な第２関数が求められるとよい。また、記憶部１７は、データの種類ごとに、適切な第２関数が対応付けられた対応データ（例、対応テーブル。図６参照）を記憶しておく。この場合、学習部１２は、取得部１１により取得された所定のデータの特徴に基づいてデータの種類を特定してもよい。さらに学習部１２は、特定されたデータの種類に対応する第２関数を記憶部１７から抽出し、抽出された第２関数を学習モデル１２ａの隠れ層３２の所定位置（例、所定層）に適用してもよい。
【００７２】
これにより、情報処理装置１０は、推論対象のデータの種類に応じて適切な第２関数を特定し、この第２関数を隠れ層３２に適用することで、データに応じてより適切に推論することができる。
【００７３】
＜データ例＞
図５は、実施形態に係る関数ライブラリの一例を示す図である。図５に示す例では、関数ＩＤごとに関数が関連付けられている。例えば、関数ライブラリが、活性化関数ライブラリであれば、関数１はＳｗｉｓｈ、関数２はＧａｕｓｓｉａｎ  Ｅｒｒｏｒ  Ｌｉｎｅａｒ  Ｕｎｉｔなどである。また、関数ライブラリにＩＤを付与し、関数ライブラリＩＤごとに、活性化関数ライブラリ、次元圧縮関数ライブラリ、ノイズ除去関数ライブラリ、平滑化処理ライブラリ、正則化ライブラリなどが記憶部１７に記憶されてもよい。
【００７４】
学習部１２は、関数ライブラリに保存されている関数全てに重みを付与した第１関数を用いてもよいし、関数ライブラリに保存されている任意の関数に重みを付与した第１関数を用いてもよい。
【００７５】
図６は、実施形態に係るデータの種類及び第２関数の対応データの一例を示す図である。図６に示す例では、データの種類Ａに第２関数Ｆ1A（ｘ）、データの種類Ｂに第２関数Ｆ1B（ｘ）が対応付けられている。なお、第２関数にも活性化関数、正規化関数、次元圧縮関数、ノイズ除去関数、正則化関数、平滑化関数などの種類がある。そのため、データの種類ごとに、活性化関数に関する第２関数、正規化関数に関する第２関数、次元圧縮関数に関する第２関数、ノイズ除去関数に関する第２関数、正則化関数に関する第２関数、平滑化関数に関する第２関数が対応付けられてもよい。なお、図５及び図６に示すデータは、関数データ１７ａの一例である。
【００７６】
＜動作＞
図７は、実施形態に係る学習フェーズにおける処理の一例を示すフローチャートである。図７に示す処理は、情報処理装置１０により実行される。
【００７７】
ステップＳ１０２において、情報処理装置１０の取得部１１は、所定の学習データを取得する。学習データとして、まずは訓練データが取得され、次に評価用のテストデータが入力されてもよい。また、学習データには教師ラベルが付与されている。取得部１１は、記憶部１７に記憶される所定のデータを取得してもよいし、ネットワークを介して受信された所定のデータを取得してもよいし、ユーザ操作に応じて入力された所定のデータを取得してもよい。
【００７８】
ステップＳ１０４において、情報処理装置１０の学習部１２は、ニューラルネットワークを用いる学習モデルであって、このニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数を適用する学習モデルに、所定の学習データを入力して学習を行う。
【００７９】
ステップＳ１０６において、情報処理装置１０の調整部１３は、所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いてニューラルネットワークのパラメータが更新される場合、第１関数の各重みを調整する。
【００８０】
ステップＳ１０８において、情報処理装置１０の生成部１４は、学習部１２による学習の結果、調整後の各重みが第１関数に設定される第２関数を生成する。例えば、損失関数が最小化することにより学習が終了すると、生成部１４は、その時点での第１関数の各重みを抽出してもよい。
【００８１】
これにより、第１関数の各重みが調整され、調整後の各重みが設定される第２関数を生成することで、隠れ層３２に適用される関数をより適切にすることが可能になる。また、訓練データに対して生成された第２関数を適用する学習モデル１２について、テストデータを入力して評価が行われてもよい。
【００８２】
例えば、第１関数及び第２関数が活性化関数に関する場合、単一の活性化関数を用いる学習モデルによるテストデータの第１評価結果と、第２関数を用いる学習モデルによるテストデータの第２評価結果とが比較される。理論的には、単一の活性化関数を用いるよりも精度が良くなるように第１関数の各重みが調整されるので、第２評価結果の方が良いと推定されるが、実際にテストデータを用いて実証することが可能である。このとき、仮にテストデータにおいて第２評価結果の方が悪い場合、第１関数の各重みの調整の仕方や、各重みの初期値を変更して、再度訓練データを用いて上述した学習が実行されてもよい。
【００８３】
これにより、テストデータを用いて評価した後の第２関数が記憶され、適用されることで、学習精度向上の信頼性を高めることができる。また、記憶部１７は、学習データごとに、学習データの特徴に基づく種類と、第２関数とを対応付けて保持しておくとよい。
【００８４】
図８は、実施形態に係る推論フェーズにおける処理の一例を示すフローチャートである。図８に示す処理は、情報処理装置１０により実行される。また、図８に示す処理は、図７に示す処理が実行され、適切な第２関数が適用可能な状態にある。
【００８５】
ステップＳ２０２において、情報処理装置１０の学習部１２は、学習モデルにおけるニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数として、誤差逆伝搬法を用いてニューラルネットワークのパラメータが更新され、第１関数の各重みが調整された場合の調整後の各重みが第１関数に設定される第２関数を適用する。
【００８６】
ステップＳ２０４において、取得部１１は、所定のデータを取得する。
【００８７】
ステップＳ２０６において、学習部１２は、第２関数が適用される学習モデルに所定のデータを入力して学習（推論）を行う。
【００８８】
ステップＳ２０８において、出力部１６は、学習部１２による学習（推論）の結果を出力する。
【００８９】
これにより、学習モデルの隠れ層における関数として、単一の関数を用いるよりも適切な関数が適用された学習モデルを利用することで、推論の精度を向上させることができる。なお、図８における処理において、ステップＳ２０２とステップＳ２０４とを入れ替えて、学習部１２は、取得されたデータの種類に対応する第２関数を特定し、特定された第２関数を適用した学習モデルを利用してもよい。
【００９０】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。また、学習フェーズにおける情報処理装置１０と、推論フェーズにおける情報処理装置１０とは別のコンピュータでもよい。この場合、生成された第２関数がネットワークを介して送信されてもよい。
【符号の説明】
【００９１】
１０…情報処理装置、１０ａ…ＣＰＵ、１０ｂ…ＲＡＭ、１０ｃ…ＲＯＭ、１０ｄ…通信部、１０ｅ…入力部、１０ｆ…表示部、１１…取得部、１２…学習部、１２ａ…学習モデル、１３…調整部、１４…生成部、１５…選択部、１６…出力部、１７…記憶部、１７ａ…関数データ
【要約】
【課題】ニューラルネットワークにおける隠れ層に適用される関数をより適切にすること。
【解決手段】情報処理装置は、所定の学習データを取得する取得部と、ニューラルネットワークを用いる学習モデルであって、ニューラルネットワークの隠れ層に使用可能な各関数に重み付けして生成される第１関数を適用する学習モデルに、所定の学習データを入力して学習を行う学習部と、所定の学習データの教師ラベルに基づいて、誤差逆伝搬法を用いてニューラルネットワークのパラメータが更新される場合、第１関数の各重みを調整する調整部と、学習の結果、調整後の各重みが第１関数に設定される第２関数を生成する生成部と、を備える。
【選択図】図２【図１】
0006942900.tif 000002
【図２】
0006942900.tif 000003
【図３】
0006942900.tif 000004
【図４】
0006942900.tif 000005
【図５】
0006942900.tif 000006
【図６】
0006942900.tif 000007
【図７】
0006942900.tif 000008
【図８】
0006942900.tif 000009