IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機エンジニアリング株式会社の特許一覧 ▶ 国立大学法人 熊本大学の特許一覧

特開2025-24665ニューラルネットワーク作成装置およびニューラルネットワーク作成方法
<>
  • 特開-ニューラルネットワーク作成装置およびニューラルネットワーク作成方法 図1
  • 特開-ニューラルネットワーク作成装置およびニューラルネットワーク作成方法 図2
  • 特開-ニューラルネットワーク作成装置およびニューラルネットワーク作成方法 図3
  • 特開-ニューラルネットワーク作成装置およびニューラルネットワーク作成方法 図4
  • 特開-ニューラルネットワーク作成装置およびニューラルネットワーク作成方法 図5
  • 特開-ニューラルネットワーク作成装置およびニューラルネットワーク作成方法 図6
  • 特開-ニューラルネットワーク作成装置およびニューラルネットワーク作成方法 図7
  • 特開-ニューラルネットワーク作成装置およびニューラルネットワーク作成方法 図8
  • 特開-ニューラルネットワーク作成装置およびニューラルネットワーク作成方法 図9
  • 特開-ニューラルネットワーク作成装置およびニューラルネットワーク作成方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025024665
(43)【公開日】2025-02-20
(54)【発明の名称】ニューラルネットワーク作成装置およびニューラルネットワーク作成方法
(51)【国際特許分類】
   G06N 3/0985 20230101AFI20250213BHJP
【FI】
G06N3/0985
【審査請求】有
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2024041796
(22)【出願日】2024-03-18
(31)【優先権主張番号】P 2023128226
(32)【優先日】2023-08-07
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】591036457
【氏名又は名称】三菱電機エンジニアリング株式会社
(71)【出願人】
【識別番号】504159235
【氏名又は名称】国立大学法人 熊本大学
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(72)【発明者】
【氏名】伊東 正義
(72)【発明者】
【氏名】笹川 渚
(72)【発明者】
【氏名】尼崎 太樹
(72)【発明者】
【氏名】小野 倖平
(72)【発明者】
【氏名】木山 真人
(57)【要約】
【課題】制約条件に応じて、エッジデバイス向けのニューラルネットワークを自動で作成可能とする。
【解決手段】ニューラルネットワークが有する層の構造のうち、パラメータ化された複数の構造を示すパラメータ化情報を取得するパラメータ化情報取得部101と、制約条件を取得する制約条件取得部102と、制約条件取得部102により取得された制約条件に基づいて、パラメータ化情報取得部101により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定することで、複数のニューラルネットワークを作成するニューラルネットワーク作成部103とを備えた。
【選択図】図1
【特許請求の範囲】
【請求項1】
ニューラルネットワークが有する層の構造のうち、パラメータ化された複数の構造を示すパラメータ化情報を取得するパラメータ化情報取得部と、
制約条件を取得する制約条件取得部と、
前記制約条件取得部により取得された制約条件に基づいて、前記パラメータ化情報取得部により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定することで、複数のニューラルネットワークを作成するニューラルネットワーク作成部と
を備えたニューラルネットワーク作成装置。
【請求項2】
前記ニューラルネットワーク作成部により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、学習データを用いて学習処理を行う学習部と、
前記学習部による学習後のニューラルネットワークのうち、学習が妥当であると判定されたニューラルネットワークの中から、ニューラルネットワークを1つ選択するニューラルネットワーク選択部と、
前記ニューラルネットワーク選択部により選択されたニューラルネットワークを前記エッジデバイスに実装するニューラルネットワーク実装部とを備えた
ことを特徴とする請求項1記載のニューラルネットワーク作成装置。
【請求項3】
前記学習部は、
学習データとしてラベル付データセットを用い、ニューラルネットワークを学習させる第1の学習部と、
ラベル無データセットを取得し、前記第1の学習部による学習後のニューラルネットワークに当該ラベル無データセットを入力することで、疑似ラベルを付与した疑似ラベル付データセットを生成する疑似ラベル付データセット生成部と、
前記ラベル付データセット、および、前記疑似ラベル付データセット生成部により生成された疑似ラベル付データセットに対して、それぞれノイズをかけるノイズ付加部と、
前記ノイズ付加部によりノイズがかけられたラベル付データセットおよび疑似ラベル付データセットを用い、ニューラルネットワークを学習させる第2の学習部とを有し、
前記疑似ラベル付データセット生成部は、前記第2の学習部によりニューラルネットワークが学習された場合には、当該第2の学習部による学習後のニューラルネットワークに前記ラベル無データセットを入力することで、疑似ラベルを付与した疑似ラベル付データセットを生成する
ことを特徴とする請求項2記載のニューラルネットワーク作成装置。
【請求項4】
前記ニューラルネットワーク作成部は、学習後の全てのニューラルネットワークについて学習が妥当ではないと判定された場合、前回とは異なるパラメータの複数のニューラルネットワークを再度作成する
ことを特徴とする請求項1から請求項3のうちの何れか1項記載のニューラルネットワーク作成装置。
【請求項5】
前記パラメータ化される構造は、チャネル数、モジュール、カーネル数、ストライド数、層の数、または、expansion layerでの拡大率である
ことを特徴とする請求項1記載のニューラルネットワーク作成装置。
【請求項6】
前記パラメータ化される構造は、ニューラルネットワークの種類に基づく
ことを特徴とする請求項1記載のニューラルネットワーク作成装置。
【請求項7】
パラメータ化情報取得部が、ニューラルネットワークが有する層の構造のうち、パラメータ化された複数の構造を示すパラメータ化情報を取得するステップと、
制約条件取得部が、制約条件を取得するステップと、
ニューラルネットワーク作成部が、前記制約条件取得部により取得された制約条件に基づいて、前記パラメータ化情報取得部により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定することで、複数のニューラルネットワークを作成するステップと
を有するニューラルネットワーク作成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ニューラルネットワークを作成するニューラルネットワーク作成装置およびニューラルネットワーク作成方法に関する。
【背景技術】
【0002】
従来、環境に応じて柔軟にニューラルネットワークのサイズを変えることができるCNN(Convolutional Neural Network)として、EfficientNetが知られている(例えば非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】https://arxiv.org/pdf/1905.11946.pdf
【発明の概要】
【発明が解決しようとする課題】
【0004】
このEfficientNetでは、ニューラルネットワークのサイズを簡単に変えることは可能である。しかしながら、このEfficientNetでは、計算量が大きく、資源の少ないエッジデバイス向けのニューラルネットワークではない。
【0005】
本開示は、上記のような課題を解決するためになされたもので、制約条件に応じて、エッジデバイス向けのニューラルネットワークを自動で作成可能となるニューラルネットワーク作成装置を提供することを目的としている。
【課題を解決するための手段】
【0006】
本開示に係るニューラルネットワーク作成装置は、ニューラルネットワークが有する層の構造のうち、パラメータ化された複数の構造を示すパラメータ化情報を取得するパラメータ化情報取得部と、制約条件を取得する制約条件取得部と、制約条件取得部により取得された制約条件に基づいて、パラメータ化情報取得部により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定することで、複数のニューラルネットワークを作成するニューラルネットワーク作成部とを備えたことを特徴とする。
【発明の効果】
【0007】
本開示によれば、上記のように構成したので、制約条件に応じて、エッジデバイス向けのニューラルネットワークを自動で作成可能となる。
【図面の簡単な説明】
【0008】
図1】実施の形態1に係るニューラルネットワーク作成装置の構成例を示す図である。
図2】実施の形態1に係るニューラルネットワーク作成装置の動作例を示すフローチャートである。
図3】実施の形態1に係るニューラルネットワーク作成装置の別の動作例を示すフローチャートである。
図4】実施の形態1に係るニューラルネットワーク作成装置で用いられる、ニューラルネットワークが有する層の構造に対するパラメータ化の一例を示す図である。
図5】実施の形態1に係るニューラルネットワーク作成装置で用いられる、ニューラルネットワークが有する層の構造に対するパラメータ化の別の一例を示す図である。
図6】実施の形態1に係るニューラルネットワーク作成装置で用いられる、ニューラルネットワークが有する層の構造に対するパラメータ化の別の一例を示す図である。
図7】実施の形態2に係るニューラルネットワーク作成装置の構成例を示す図である。
図8】実施の形態2における学習部の構成例を示す図である。
図9】実施の形態2における学習部の動作例を示す図である。
図10図10A図10Bは、実施の形態1,2に係るニューラルネットワーク作成装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0009】
以下、実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は実施の形態1に係るニューラルネットワーク作成装置1の構成例を示す図である。
このニューラルネットワーク作成装置1は、ニューラルネットワークを自動で作成する装置である。このニューラルネットワーク作成装置1は、図1に示すように、パラメータ化情報取得部101、制約条件取得部102、ニューラルネットワーク作成部103、学習部104、学習判定部105、ニューラルネットワーク選択部106、および、ニューラルネットワーク実装部107を備えている。
【0010】
パラメータ化情報取得部101は、パラメータ化情報を取得する。パラメータ化情報は、ニューラルネットワークが有する層の構造のうち、パラメータ化された複数の構造を示す情報である。
なお、上記パラメータ化される構造としては、例えば、チャネル数、モジュール、カーネル数、ストライド数、層の数、または、expansion layerでの拡大率などが挙げられる。このパラメータ化される構造は、ニューラルネットワークの種類によっても異なる。
【0011】
この際、パラメータ化情報取得部101は、外部から、上記パラメータ化された複数の構造を示す情報そのものを取得する。
【0012】
制約条件取得部102は、制約条件を取得する。制約条件は、パラメータ化情報取得部101により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定するための条件である。
この制約条件としては、例えば、上記パラメータ化された複数の構造のうちのニューラルネットワークのアルゴリズムに基づきまたは経験則に基づき設定可能な構造を示す情報、ならびに、エッジデバイスに関する情報または学習結果に関する情報などが挙げられる。エッジデバイスに関する情報としては、例えば、回路規模または消費電力などが挙げられる。学習結果に関する情報としては、例えば、求められるニューラルネットワークのサイズ、正解率、または、fps(frames per second)などが挙げられる。なお、fpsは、一秒間あたりに何枚の画像を処理できるかを意味する評価指標である。
【0013】
ニューラルネットワーク作成部103は、制約条件取得部102により取得された制約条件に基づいて、パラメータ化情報取得部101により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定することで、複数のニューラルネットワークを作成する。
この際、ニューラルネットワーク作成部103は、上記制約条件に基づいて、上記パラメータ化された複数の構造に対してニューラルネットワークのアルゴリズムに基づきまたは経験則に基づきパラメータを設定することで、複数のニューラルネットワークを作成する。
【0014】
なお、上記パラメータ化された複数の構造の中で、ニューラルネットワークのアルゴリズムに基づきまたは経験則に基づきパラメータを設定可能な構造は、1種類でもよいし、複数種類でもよい。また、上記1種類であるのか上記複数種類であるのかは制約条件により決められる。
【0015】
また、後述する図2に示すように、学習判定部105またはユーザにより全てのニューラルネットワークについて学習が妥当ではないと判定された場合、ニューラルネットワーク作成部103は、前回とは異なるパラメータの複数のニューラルネットワークを再度作成してもよい。
【0016】
学習部104は、ニューラルネットワーク作成部103により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、学習データを用いて学習処理を行う。
【0017】
また、後述する図2に示すように、学習判定部105またはユーザにより全てのニューラルネットワークについて学習が妥当ではないと判定された場合であって、ニューラルネットワーク作成部103により複数のニューラルネットワークが再度作成された場合、学習部104は、当該ニューラルネットワークに基づいて、当該ニューラルネットワークごとに、学習データを用いて学習処理を再度行ってもよい。
また、後述する図3に示すように、学習判定部105またはユーザにより全てのニューラルネットワークについて学習が妥当ではないと判定された場合、学習部104は、ニューラルネットワーク作成部103により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、前回とは異なる学習データを用いて学習処理を再度行ってもよい。
【0018】
学習判定部105は、学習部104による学習後のニューラルネットワークに基づいて、当該ニューラルネットワークごとに学習の妥当性を判定する。
この際、例えば、学習判定部105は、学習後のニューラルネットワークに対して、テストデータを入力し、その際の出力の正解率に基づいて妥当性を判定する。テストデータは、学習後のニューラルネットワークの精度を判定するためのデータである。また、例えば、学習判定部105は、学習結果に関する情報に基づいて、妥当性を判定してもよい。
また、学習判定部105による上記判定に代えて、ユーザが手動で上記判定を行ってもよい。
【0019】
ニューラルネットワーク選択部106は、学習判定部105またはユーザにより学習が妥当であると判定されたニューラルネットワークの中から、ニューラルネットワークを1つ選択する。
この際、例えば、ニューラルネットワーク選択部106は、学習判定部105またはユーザにより学習が妥当であると判定されたニューラルネットワークの中から、エッジデバイスに関する情報および学習結果に関する情報などの条件に基づいて、ニューラルネットワークを1つ選択する。
【0020】
なお、ニューラルネットワーク選択部106は、学習判定部105により学習が妥当であると判定されたニューラルネットワークの中に、エッジデバイスに関する情報および求められる性能などの条件を満たすニューラルネットワークが複数存在する場合、当該複数のニューラルネットワークの中から1つのニューラルネットワークを選択する。
この際、例えば、ニューラルネットワーク選択部106は、上記複数のニューラルネットワークのうち、最も条件のよいニューラルネットワークを選択してもよい。また、例えば、ニューラルネットワーク選択部106は、上記複数のニューラルネットワークのうち、制約条件以外の判定基準(例えば条件の優先度)に基づいて、1つのニューラルネットワークを選択してもよい。また、例えば、ニューラルネットワーク選択部106は、上記複数のニューラルネットワークを示す情報をユーザに通知し、当該ユーザによる選択に基づいて、1つのニューラルネットワークを選択してもよい。
【0021】
その後、ユーザは、ニューラルネットワーク選択部106により選択されたニューラルネットワークに基づいて、論理合成を行う。論理合成は、上記選択されたニューラルネットワークに基づいて、論理を最適化し、実際の回路構造を設計する工程である。
そして、ユーザは、論理合成の結果に基づいて、ニューラルネットワーク選択部106により選択されたニューラルネットワークをエッジデバイスで実行可能かを判断する。
ここで、ユーザがエッジデバイスで実行可能ではないと判断した場合、ニューラルネットワーク選択部106による処理に戻り、ニューラルネットワーク選択部106は他のニューラルネットワークを選択する。そして、ユーザは上記の処理を繰り返す。
また、ユーザがエッジデバイスで実行可能であると判断した場合、ニューラルネットワーク実装部107による処理に移行する。
【0022】
ニューラルネットワーク実装部107は、ニューラルネットワーク選択部106により選択されたニューラルネットワークをエッジデバイスに実装する。
【0023】
なお、図1では、学習部104、学習判定部105、ニューラルネットワーク選択部106、および、ニューラルネットワーク実装部107が、ニューラルネットワーク作成装置1の内部に設けられた場合を示した。
しかしながら、これに限らず、学習部104、学習判定部105、ニューラルネットワーク選択部106、および、ニューラルネットワーク実装部107は、ニューラルネットワーク作成装置1の外部に設けられていてもよい。
【0024】
次に、図1に示す実施の形態1に係るニューラルネットワーク作成装置1の動作例について、図2および図3を参照しながら説明する。
図2および図3では、学習判定部105が判定を行う場合を示している。また、図2では、学習判定部105により全てのニューラルネットワークについて学習が妥当ではないと判定された場合に、ニューラルネットワーク作成部103がニューラルネットワークの再作成を行う場合を示している。また、図3では、学習判定部105により全てのニューラルネットワークについて学習が妥当ではないと判定された場合に、学習部104が再学習を行う場合を示している。ニューラルネットワーク作成装置1は、図2に示す動作と図3に示す動作のどちらを実施してもよい。
【0025】
この図1に示す実施の形態1に係るニューラルネットワーク作成装置1の動作例では、図2および図3に示すように、まず、パラメータ化情報取得部101は、ニューラルネットワークが有する層の構造のうち、パラメータ化された複数の構造を示す情報であるパラメータ化情報を取得する(ステップST101)。
なお、上記パラメータ化される構造としては、例えば、チャネル数、モジュール、カーネル数、ストライド数、層の数、または、expansion layerでの拡大率などが挙げられる。このパラメータ化される構造は、ニューラルネットワークの種類によっても異なる。
【0026】
この際、パラメータ化情報取得部101は、外部から、上記パラメータ化された複数の構造を示す情報そのものを取得する。
【0027】
図4図6では、ニューラルネットワークが有する層の構造に対するパラメータ化の一例について示している。
図4では、ニューラルネットワークが有するパラメータ化された複数の構造のうち、各層の出力チャネル数を任意に設定可能である場合を示している。
また、図5では、ニューラルネットワークが有するパラメータ化された複数の構造のうち、使用するモジュール(図5ではSEモジュール)の挿入箇所を任意に設定可能である場合を示している。
また、図6では、ニューラルネットワークが有するパラメータ化された複数の構造のうち、中間層の数を任意に設定可能である場合を示している。
なお、図4図6において、exp_sizeはbottleneck blockの中間層でのチャネル数を示し、tはexpansion layerでの拡大率を示し、SEはSqueeze and Excitationモジュールの有無を示し、NLは使用する非線形関数(HS:h-swish、RE:RELU)を示し、sはストライド数を示している。
【0028】
また、制約条件取得部102は、上記パラメータ化された複数の構造に対してパラメータを設定するための条件である制約条件を取得する(ステップST102)。
この制約条件としては、例えば、パラメータ化された複数の構造のうちのニューラルネットワークのアルゴリズムに基づきまたは経験則に基づき設定可能な構造を示す情報、エッジデバイスに関する情報、または、学習結果に関する情報などが挙げられる。エッジデバイスに関する情報としては、例えば、回路規模または消費電力などが挙げられる。学習結果に関する情報としては、例えば、求められるニューラルネットワークのサイズ、正解率、または、fpsなどが挙げられる。
【0029】
次いで、ニューラルネットワーク作成部103は、制約条件取得部102により取得された制約条件に基づいて、パラメータ化情報取得部101により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定することで、複数のニューラルネットワークを作成する(ステップST103、ST104)。
この際、ニューラルネットワーク作成部103は、上記制約条件に基づいて、上記パラメータ化された複数の構造に対してニューラルネットワークのアルゴリズムに基づきまたは経験則に基づきパラメータを設定することで、複数のニューラルネットワークを作成する。
【0030】
なお、上記パラメータ化された複数の構造の中で、ニューラルネットワークのアルゴリズムに基づきまたは経験則に基づきパラメータを設定可能な構造は、1種類でもよいし、複数種類でもよい。また、上記1種類であるのか上記複数種類であるのかは制約条件により決められる。
【0031】
例えば、ニューラルネットワーク作成部103は、上記制約条件を満たすように、図4に対して各層の出力チャネル数をニューラルネットワークのアルゴリズムに基づきまたは経験則に基づき設定することで、ニューラルネットワークを作成してもよい。
また、例えば、ニューラルネットワーク作成部103は、上記制約条件を満たすように、図5に対してモジュールの挿入箇所をニューラルネットワークのアルゴリズムに基づきまたは経験則に基づき設定することで、ニューラルネットワークを作成してもよい。
また、例えば、ニューラルネットワーク作成部103は、上記制約条件を満たすように、図6に対して中間層の数をニューラルネットワークのアルゴリズムに基づきまたは経験則に基づき設定することで、ニューラルネットワークを作成してもよい。
【0032】
また、例えば、ニューラルネットワーク作成部103は、上記制約条件を満たすように、図4に対して各層の出力チャネル数、図5に対してモジュールの挿入箇所、および、図6に対して中間層の数のうちの複数種類のパラメータをニューラルネットワークのアルゴリズムに基づきまたは経験則に基づき設定することで、ニューラルネットワークを作成してもよい。
【0033】
次いで、学習部104は、ニューラルネットワーク作成部103により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、学習データを用いて学習処理を行う(ステップST105)。
【0034】
次いで、学習判定部105は、学習部104による学習後のニューラルネットワークに基づいて、当該ニューラルネットワークごとに学習の妥当性を判定する(ステップST106)。
この際、例えば、学習判定部105は、学習後のニューラルネットワークに対して、テストデータを入力し、その際の出力の正解率に基づいて妥当性を判定する。テストデータは、学習後のニューラルネットワークの精度を判定するためのデータである。また、例えば、学習判定部105は、学習結果に関する情報に基づいて、妥当性を判定してもよい。
【0035】
例えば、学習判定部105は、上記正解率が75%以上かつ10fps(frames per second)以上である場合に、学習が妥当であると判定する。なお、fpsは、一秒間あたりに何枚の画像を処理できるかを意味する評価指標である。
【0036】
図2の場合には、このステップST106において、学習判定部105が全てのニューラルネットワークについて学習が妥当ではないと判定した場合、シーケンスはステップST103に戻る。
すなわち、この場合、ニューラルネットワーク作成部103は、前回とは異なるパラメータの複数のニューラルネットワークを再度作成する。その後、学習部104は、上記ニューラルネットワークに基づいて、当該ニューラルネットワークごとに、学習データを用いて学習処理を再度行う。
【0037】
図3の場合には、このステップST106において、学習判定部105が全てのニューラルネットワークについて学習が妥当ではないと判定した場合、シーケンスはステップST104に戻る。
すなわち、この場合、学習部104は、ニューラルネットワーク作成部103により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、前回とは異なる学習データを用いて学習処理を再度行う。
【0038】
一方、ステップST106において、学習判定部105により学習が妥当であると判定された場合、ニューラルネットワーク選択部106は、当該学習が妥当であると判定されたニューラルネットワークの中から、ニューラルネットワークを1つ選択する(ステップST107)。
この際、例えば、ニューラルネットワーク選択部106は、学習判定部105またはユーザにより学習が妥当であると判定されたニューラルネットワークの中から、エッジデバイスに関する情報および学習結果に関する情報などの条件に基づいて、ニューラルネットワークを1つ選択する。
【0039】
なお、ニューラルネットワーク選択部106は、学習判定部105により学習が妥当であると判定されたニューラルネットワークの中に、エッジデバイスに関する情報および求められる性能などの条件を満たすニューラルネットワークが複数存在する場合、当該複数のニューラルネットワークの中から1つのニューラルネットワークを選択する。
この際、例えば、ニューラルネットワーク選択部106は、上記複数のニューラルネットワークのうち、最も条件のよいニューラルネットワークを選択してもよい。また、例えば、ニューラルネットワーク選択部106は、上記複数のニューラルネットワークのうち、制約条件以外の判定基準(例えば条件の優先度)に基づいて、1つのニューラルネットワークを選択してもよい。また、例えば、ニューラルネットワーク選択部106は、上記複数のニューラルネットワークを示す情報をユーザに通知し、当該ユーザによる選択に基づいて、1つのニューラルネットワークを選択してもよい。
【0040】
例えば、上記複数のニューラルネットワークの中に、「精度は高いがサイズが大きいニューラルネットワーク」と「精度は低いがサイズが小さいニューラルネットワーク」があった場合、どちらを選択するかはトレードオフとなる。このような場合、制約条件の他に判定基準(例えば条件の優先度)が必要となる。そこで、このような場合、例えば、ニューラルネットワーク選択部106は、上記複数のニューラルネットワークのうち、判定基準またはユーザによる選択に応じて、1つのニューラルネットワークを選択する。
【0041】
その後、ユーザは、ニューラルネットワーク選択部106により選択されたニューラルネットワークに基づいて、論理合成を行う。論理合成は、上記選択されたニューラルネットワークに基づいて、論理を最適化し、実際の回路構造を設計する工程である。
そして、ユーザは、論理合成の結果に基づいて、ニューラルネットワーク選択部106により選択されたニューラルネットワークをエッジデバイスで実行可能かを判断する。例えば、ユーザは、論理合成の結果が、回路規模が100kロジックセル以下であり、消費電力が1W以下であるかを判断することで、上記選択されたニューラルネットワークをエッジデバイスで実行可能かを判断する。
ここで、ユーザがエッジデバイスで実行可能ではないと判断した場合、ニューラルネットワーク選択部106による処理に戻り、ニューラルネットワーク選択部106は他のニューラルネットワークを選択する。そして、ユーザは上記の処理を繰り返す。
また、ユーザがエッジデバイスで実行可能であると判断した場合、ニューラルネットワーク実装部107による処理に移行する。
【0042】
次いで、ニューラルネットワーク実装部107は、ニューラルネットワーク選択部106により選択されたニューラルネットワークをエッジデバイスに実装する(ステップST108)。
【0043】
このように、実施の形態1に係るニューラルネットワーク作成装置1では、ニューラルネットワークが有する層の構造のうちのパラメータ化された複数の構造を示す情報であるパラメータ化情報を取得するとともに、制約条件を取得し、これらの情報に基づいて、パラメータを設定することで複数のニューラルネットワークを作成する。これにより、実施の形態1に係るニューラルネットワーク作成装置1では、制約条件に応じてニューラルネットワークを自動で作成可能となり、軽量かつスケーラブルなニューラルネットワークを実現可能となる。その結果、実施の形態1に係るニューラルネットワーク作成装置1では、エッジデバイスの規模に依存せず、従来に対して容易にニューラルネットワークを実装可能となる。
【0044】
また、従来のニューラルネットワーク作成装置1では、学習が妥当ではないと判定した場合、新たなニューラルネットワークを1から作成する必要がある。
これに対し、実施の形態1に係るニューラルネットワーク作成装置1では、学習が妥当ではないと判定した場合、前回とは異なるパラメータのニューラルネットワークを作成することでも対応可能であり、処理がより簡易となる。
【0045】
以上のように、この実施の形態1によれば、ニューラルネットワーク作成装置1は、ニューラルネットワークが有する層の構造のうち、パラメータ化された複数の構造を示すパラメータ化情報を取得するパラメータ化情報取得部101と、制約条件を取得する制約条件取得部102と、制約条件取得部102により取得された制約条件に基づいて、パラメータ化情報取得部101により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定することで、複数のニューラルネットワークを作成するニューラルネットワーク作成部103とを備えた。これにより、実施の形態1に係るニューラルネットワーク作成装置1は、制約条件に応じて、エッジデバイス向けのニューラルネットワークを自動で作成可能となる。
【0046】
実施の形態2.
実施の形態1に係るニューラルネットワーク作成装置1では、学習部104による学習処理の詳細については特に示していない。ここで、学習後のニューラルネットワークの実装先であるエッジデバイスの使用環境下で適応学習させるためのラベル付データセットがない場合、エッジデバイスの使用環境の変化(例えば画像の明暗)によって精度が低下してしまう。
【0047】
一方、精度を効率よく向上させる学習方法として、Noisy Studentが知られている(例えば非特許文献2参照)。
【非特許文献2】https://arxiv.org/pdf/1911.04252.pdf
【0048】
そこで、実施の形態2に係るニューラルネットワーク作成装置1では、エッジデバイスの使用環境下に合わせたNoisy Studentによる学習方法を適用した構成例について説明する。
【0049】
図7は実施の形態2に係るニューラルネットワーク作成装置1の構成例を示す図である。この図7に示す実施の形態2に係るニューラルネットワーク作成装置1では、図1に示す実施の形態1に係るニューラルネットワーク作成装置1に対して、学習部104が学習部104bに変更されている。図7に示す実施の形態2に係るニューラルネットワーク作成装置1におけるその他の構成例は、実施の形態1に係るニューラルネットワーク作成装置1におけるその他の構成例と同様であり、同一の符号を付して異なる部分についてのみ説明を行う。
【0050】
学習部104bは、エッジデバイスの使用環境下に合わせたNoisy Studentによる学習を行う。学習部104bは、上記の点以外は、実施の形態1で示した学習部104と同様である。
この学習部104bは、図8に示すように、第1の学習部1041、疑似ラベル付データセット生成部1042、ノイズ付加部1043、および、第2の学習部1044を有する。
【0051】
第1の学習部1041は、学習データとしてラベル付データセットを用い、ニューラルネットワークを学習させる。この第1の学習部1041による学習後のニューラルネットワークを、Teacherモデルとも呼ぶ。
なお、第1の学習部1041は、ニューラルネットワーク作成部103により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、上記学習処理を行う。
【0052】
疑似ラベル付データセット生成部1042は、ラベル無データセットを取得し、第1の学習部1041による学習後のニューラルネットワーク(Teacherモデル)に当該ラベル無データセットを入力することで、疑似ラベルを付与した疑似ラベル付データセットを生成する。
なお、ラベル無データセットは、エッジデバイスの使用環境下に合わせたデータ、例えば明暗の画像を含むデータである。
【0053】
また、疑似ラベル付データセット生成部1042は、第2の学習部1044によりStudentモデルが得られた場合には、当該Studentモデルにラベル無データセットを入力することで、疑似ラベルを付与した疑似ラベル付データセットを生成する。
すなわち、疑似ラベル付データセット生成部1042は、第2の学習部1044によりStudentモデルが得られた場合には、当該Studentモデルを次のTeacherモデルとして使用する。
【0054】
ノイズ付加部1043は、ラベル付データセット、および、疑似ラベル付データセット生成部1042により生成された疑似ラベル付データセットに対して、それぞれノイズをかける。
【0055】
第2の学習部1044は、ノイズ付加部1043によりノイズがかけられたラベル付データセットおよび疑似ラベル付データセットを用い、ニューラルネットワークを学習させる。この第2の学習部1044による学習後のニューラルネットワークを、Studentモデルとも呼ぶ。
なお、第2の学習部1044は、ニューラルネットワーク作成部103により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、上記学習処理を行う。
【0056】
なお、学習判定部105は、第2の学習部1044による学習後のニューラルネットワークに基づいて、当該ニューラルネットワークごとに学習の妥当性を判定する。
【0057】
次に、図8に示す実施の形態2における学習部104bの動作例について、図9を参照しながら説明する。
図8に示す実施の形態2における学習部104bの動作例では、例えば図9に示すように、まず、第1の学習部1041は、学習データとしてラベル付データセットを用い、ニューラルネットワークを学習させる(ステップST201)。なお、第1の学習部1041は、ニューラルネットワーク作成部103により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、上記学習処理を行う。
【0058】
次いで、疑似ラベル付データセット生成部1042は、ラベル無データセットを取得し、第1の学習部1041による学習後のニューラルネットワーク(Teacherモデル)に当該ラベル無データセットを入力することで、疑似ラベルを付与した疑似ラベル付データセットを生成する(ステップST202)。なお、ラベル無データセットは、エッジデバイスの使用環境下に合わせたデータ、例えば明暗の画像を含むデータである。
【0059】
次いで、ノイズ付加部1043は、ラベル付データセット、および、疑似ラベル付データセット生成部1042により生成された疑似ラベル付データセットに対して、それぞれノイズをかける(ステップST203)。
【0060】
次いで、第2の学習部1044は、ノイズ付加部1043によりノイズがかけられたラベル付データセットおよび疑似ラベル付データセットを用い、ニューラルネットワークを学習させる(ステップST204)。なお、第2の学習部1044は、ニューラルネットワーク作成部103により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、上記学習処理を行う。
【0061】
その後、シーケンスは、ステップST202に戻る。
そして、疑似ラベル付データセット生成部1042は、第2の学習部1044による学習後のニューラルネットワーク(Studentモデル)にラベル無データセットを入力することで、疑似ラベルを付与した疑似ラベル付データセットを生成する。すなわち、疑似ラベル付データセット生成部1042は、第2の学習部1044によりStudentモデルが得られた場合には、当該Studentモデルを次のTeacherモデルとして使用する。
【0062】
このように、実施の形態2に係るニューラルネットワーク作成装置1では、Noisy Studentのラベル無データセットに、エッジデバイスの使用環境下に合わせたデータを用いることで、エッジデバイスの使用環境下に応じて精度を向上させることが可能となる。
【0063】
以上のように、この実施の形態2によれば、学習部104bは、学習データとしてラベル付データセットを用い、ニューラルネットワークを学習させる第1の学習部1041と、ラベル無データセットを取得し、第1の学習部1041による学習後のニューラルネットワークに当該ラベル無データセットを入力することで、疑似ラベルを付与した疑似ラベル付データセットを生成する疑似ラベル付データセット生成部1042と、ラベル付データセット、および、疑似ラベル付データセット生成部1042により生成された疑似ラベル付データセットに対して、それぞれノイズをかけるノイズ付加部1043と、ノイズ付加部1043によりノイズがかけられたラベル付データセットおよび疑似ラベル付データセットを用い、ニューラルネットワークを学習させる第2の学習部1044とを有し、疑似ラベル付データセット生成部1042は、第2の学習部1044によりニューラルネットワークが学習された場合には、当該第2の学習部1044による学習後のニューラルネットワークにラベル無データセットを入力することで、疑似ラベルを付与した疑似ラベル付データセットを生成する。これにより、実施の形態2に係るニューラルネットワーク作成装置1は、実施の形態1における効果に加え、エッジデバイスの使用環境下に応じて精度を向上させることが可能となる。
【0064】
最後に、図10を参照して、実施の形態1,2に係るニューラルネットワーク作成装置1のハードウェア構成例を説明する。なお、以下では、実施の形態1に係るニューラルネットワーク作成装置1のハードウェア構成例について説明するが、実施の形態2に係るニューラルネットワーク作成装置1のハードウェア構成例についても同様である。
ニューラルネットワーク作成装置1におけるパラメータ化情報取得部101、制約条件取得部102、ニューラルネットワーク作成部103、学習部104、学習判定部105、ニューラルネットワーク選択部106、および、ニューラルネットワーク実装部107の各機能は、処理回路51により実現される。処理回路51は、図10Aに示すように、専用のハードウェアであってもよいし、図10Bに示すように、メモリ53に格納されるプログラムを実行するCPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、またはDSP(Digital Signal Processor)ともいう)52であってもよい。
【0065】
処理回路51が専用のハードウェアである場合、処理回路51は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせたものが該当する。パラメータ化情報取得部101、制約条件取得部102、ニューラルネットワーク作成部103、学習部104、学習判定部105、ニューラルネットワーク選択部106、および、ニューラルネットワーク実装部107の各部の機能それぞれを処理回路51で実現してもよいし、各部の機能をまとめて処理回路51で実現してもよい。
【0066】
処理回路51がCPU52の場合、パラメータ化情報取得部101、制約条件取得部102、ニューラルネットワーク作成部103、学習部104、学習判定部105、ニューラルネットワーク選択部106、および、ニューラルネットワーク実装部107の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアおよびファームウェアはプログラムとして記述され、メモリ53に格納される。処理回路51は、メモリ53に記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。すなわち、ニューラルネットワーク作成装置1は、処理回路51により実行されるときに、例えば図2および図3に示した各ステップが結果的に実行されることになるプログラムを格納するためのメモリ53を備える。また、これらのプログラムは、パラメータ化情報取得部101、制約条件取得部102、ニューラルネットワーク作成部103、学習部104、学習判定部105、ニューラルネットワーク選択部106、および、ニューラルネットワーク実装部107の手順および方法をコンピュータに実行させるものであるともいえる。ここで、メモリ53としては、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)などの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、またはDVD(Digital Versatile Disc)などが該当する。
【0067】
なお、パラメータ化情報取得部101、制約条件取得部102、ニューラルネットワーク作成部103、学習部104、学習判定部105、ニューラルネットワーク選択部106、および、ニューラルネットワーク実装部107の各機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。例えば、パラメータ化情報取得部101については専用のハードウェアとしての処理回路51でその機能を実現し、制約条件取得部102、ニューラルネットワーク作成部103、学習部104、学習判定部105、ニューラルネットワーク選択部106、および、ニューラルネットワーク実装部107については処理回路51がメモリ53に格納されたプログラムを読み出して実行することによってその機能を実現することが可能である。
【0068】
このように、処理回路51は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現することができる。
【0069】
なお、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。
【0070】
以下、本開示の諸態様を付記としてまとめて記載する。
【0071】
(付記1)
ニューラルネットワークが有する層の構造のうち、パラメータ化された複数の構造を示すパラメータ化情報を取得するパラメータ化情報取得部と、
制約条件を取得する制約条件取得部と、
前記制約条件取得部により取得された制約条件に基づいて、前記パラメータ化情報取得部により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定することで、複数のニューラルネットワークを作成するニューラルネットワーク作成部と
を備えたニューラルネットワーク作成装置。
(付記2)
前記ニューラルネットワーク作成部により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、学習データを用いて学習処理を行う学習部と、
前記学習部による学習後のニューラルネットワークのうち、学習が妥当であると判定されたニューラルネットワークの中から、ニューラルネットワークを1つ選択するニューラルネットワーク選択部と、
前記ニューラルネットワーク選択部により選択されたニューラルネットワークをエッジデバイスに実装するニューラルネットワーク実装部とを備えた
ことを特徴とする付記1記載のニューラルネットワーク作成装置。
(付記3)
前記学習部は、
学習データとしてラベル付データセットを用い、ニューラルネットワークを学習させる第1の学習部と、
ラベル無データセットを取得し、前記第1の学習部による学習後のニューラルネットワークに当該ラベル無データセットを入力することで、疑似ラベルを付与した疑似ラベル付データセットを生成する疑似ラベル付データセット生成部と、
前記ラベル付データセット、および、前記疑似ラベル付データセット生成部により生成された疑似ラベル付データセットに対して、それぞれノイズをかけるノイズ付加部と、
前記ノイズ付加部によりノイズがかけられたラベル付データセットおよび疑似ラベル付データセットを用い、ニューラルネットワークを学習させる第2の学習部とを有し、
前記疑似ラベル付データセット生成部は、前記第2の学習部によりニューラルネットワークが学習された場合には、当該第2の学習部による学習後のニューラルネットワークに前記ラベル無データセットを入力することで、疑似ラベルを付与した疑似ラベル付データセットを生成する
ことを特徴とする付記2記載のニューラルネットワーク作成装置。
(付記4)
前記ニューラルネットワーク作成部は、学習後の全てのニューラルネットワークについて学習が妥当ではないと判定された場合、前回とは異なるパラメータの複数のニューラルネットワークを再度作成する
ことを特徴とする付記1から付記3のうちの何れか1項記載のニューラルネットワーク作成装置。
(付記5)
前記パラメータ化される構造は、チャネル数、モジュール、カーネル数、ストライド数、層の数、または、expansion layerでの拡大率である
ことを特徴とする付記1から付記4のうちの何れか1項記載のニューラルネットワーク作成装置。
(付記6)
前記パラメータ化される構造は、ニューラルネットワークの種類に基づく
ことを特徴とする付記1から付記5のうちの何れか1項記載のニューラルネットワーク作成装置。
(付記7)
パラメータ化情報取得部が、ニューラルネットワークが有する層の構造のうち、パラメータ化された複数の構造を示すパラメータ化情報を取得するステップと、
制約条件取得部が、制約条件を取得するステップと、
ニューラルネットワーク作成部が、前記制約条件取得部により取得された制約条件に基づいて、前記パラメータ化情報取得部により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定することで、複数のニューラルネットワークを作成するステップと
を有するニューラルネットワーク作成方法。
【符号の説明】
【0072】
1 ニューラルネットワーク作成装置、51 処理回路、52 CPU、53 メモリ、101 パラメータ化情報取得部、102 制約条件取得部、103 ニューラルネットワーク作成部、104,104b 学習部、105 学習判定部、106 ニューラルネットワーク選択部、107 ニューラルネットワーク実装部、1041 第1の学習部、1042 疑似ラベル付データセット生成部、1043 ノイズ付加部、1044 第2の学習部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【手続補正書】
【提出日】2025-01-23
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0006
【補正方法】変更
【補正の内容】
【0006】
本開示に係るニューラルネットワーク作成装置は、ニューラルネットワークが有する層の構造のうち、パラメータ化された複数の構造を示すパラメータ化情報を取得するパラメータ化情報取得部と、制約条件を取得する制約条件取得部と、制約条件取得部により取得された制約条件に基づいて、パラメータ化情報取得部により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定することで、複数のニューラルネットワークを作成するニューラルネットワーク作成部と、前記ニューラルネットワーク作成部により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、学習データを用いて学習処理を行う学習部と、前記学習部による学習後のニューラルネットワークのうち、学習が妥当であると判定されたニューラルネットワークの中から、前記制約条件以外の判定基準またはユーザによる選択に基づいて、ニューラルネットワークを1つ選択するニューラルネットワーク選択部と、前記ニューラルネットワーク選択部により選択されたニューラルネットワークをエッジデバイスに実装するニューラルネットワーク実装部とを備えたことを特徴とする。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ニューラルネットワークが有する層の構造のうち、パラメータ化された複数の構造を示すパラメータ化情報を取得するパラメータ化情報取得部と、
制約条件を取得する制約条件取得部と、
前記制約条件取得部により取得された制約条件に基づいて、前記パラメータ化情報取得部により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定することで、複数のニューラルネットワークを作成するニューラルネットワーク作成部と
前記ニューラルネットワーク作成部により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、学習データを用いて学習処理を行う学習部と、
前記学習部による学習後のニューラルネットワークのうち、学習が妥当であると判定されたニューラルネットワークの中から、前記制約条件以外の判定基準またはユーザによる選択に基づいて、ニューラルネットワークを1つ選択するニューラルネットワーク選択部と、
前記ニューラルネットワーク選択部により選択されたニューラルネットワークをエッジデバイスに実装するニューラルネットワーク実装部と
を備えたニューラルネットワーク作成装置。
【請求項2】
前記学習部は、
学習データとしてラベル付データセットを用い、ニューラルネットワークを学習させる第1の学習部と、
ラベル無データセットを取得し、前記第1の学習部による学習後のニューラルネットワークに当該ラベル無データセットを入力することで、疑似ラベルを付与した疑似ラベル付データセットを生成する疑似ラベル付データセット生成部と、
前記ラベル付データセット、および、前記疑似ラベル付データセット生成部により生成された疑似ラベル付データセットに対して、それぞれノイズをかけるノイズ付加部と、
前記ノイズ付加部によりノイズがかけられたラベル付データセットおよび疑似ラベル付データセットを用い、ニューラルネットワークを学習させる第2の学習部とを有し、
前記疑似ラベル付データセット生成部は、前記第2の学習部によりニューラルネットワークが学習された場合には、当該第2の学習部による学習後のニューラルネットワークに前記ラベル無データセットを入力することで、疑似ラベルを付与した疑似ラベル付データセットを生成する
ことを特徴とする請求項記載のニューラルネットワーク作成装置。
【請求項3】
前記ニューラルネットワーク作成部は、学習後の全てのニューラルネットワークについて学習が妥当ではないと判定された場合、前回とは異なるパラメータの複数のニューラルネットワークを再度作成する
ことを特徴とする請求項1または請求項記載のニューラルネットワーク作成装置。
【請求項4】
前記パラメータ化される構造は、チャネル数、モジュール、カーネル数、ストライド数、層の数、または、expansion layerでの拡大率である
ことを特徴とする請求項1記載のニューラルネットワーク作成装置。
【請求項5】
前記パラメータ化される構造は、ニューラルネットワークの種類に基づく
ことを特徴とする請求項1記載のニューラルネットワーク作成装置。
【請求項6】
パラメータ化情報取得部が、ニューラルネットワークが有する層の構造のうち、パラメータ化された複数の構造を示すパラメータ化情報を取得するステップと、
制約条件取得部が、制約条件を取得するステップと、
ニューラルネットワーク作成部が、前記制約条件取得部により取得された制約条件に基づいて、前記パラメータ化情報取得部により取得されたパラメータ化情報が示すパラメータ化された複数の構造に対してパラメータを設定することで、複数のニューラルネットワークを作成するステップと
学習部が、前記ニューラルネットワーク作成部により作成された複数のニューラルネットワークに基づいて、当該ニューラルネットワークごとに、学習データを用いて学習処理を行うステップと、
ニューラルネットワーク選択部が、前記学習部による学習後のニューラルネットワークのうち、学習が妥当であると判定されたニューラルネットワークの中から、前記制約条件以外の判定基準またはユーザによる選択に基づいて、ニューラルネットワークを1つ選択するステップと、
ニューラルネットワーク実装部が、前記ニューラルネットワーク選択部により選択されたニューラルネットワークをエッジデバイスに実装するステップと
を有するニューラルネットワーク作成方法。